當前位置:首頁 » 考試成績 » c語言怎麼錄入一個學生的成績

c語言怎麼錄入一個學生的成績

發布時間: 2021-02-05 20:59:24

㈠ 用C語言做一個學生成績管理系統 輸入學生人數,錄入學生成績

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
using namespace std;

/*定義學生結構體*/

struct Student

{

char ID[20];

char Name[20];

float Mark1;

float Mark2;

float Mark3;

float Average;

};

/*聲明學生數組及學生數量*/

struct Student students[1000];

int num=0;

/*求平均值*/

float Avg(struct Student stu)

{

return (stu.Mark1+stu.Mark2+stu.Mark3)/3;

}

/*通過學號返回數組下標*/

int Student_SearchByIndex(char id[])

{

int i;

for (i=0;i<num;i++)

{

if (strcmp(students[i].ID,id)==0)

{

return i;

}

}

return -1;

}

/*通過姓名返回數組下標*/

int Student_SearchByName(char name[])

{

int i;

for (i=0;i<num;i++)

{

if (strcmp(students[i].Name,name)==0)

{

return i;

}

}

return -1;

}

/*顯示單條學生記錄*/

void Student_DisplaySingle(int index)

{

printf("%10s%10s%8s%8s%8s%10s\n","學號","姓名","成績","成績","成績","平均成績");

printf("-------------------------------------------------------------\n");

printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name,

students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);

}

/*插入學生信息*/

void Student_Insert()

{

while(1)

{

printf("請輸入學號:");

scanf("%s",&students[num].ID);

getchar();

printf("請輸入姓名:");

scanf("%s",&students[num].Name);

getchar();

printf("請輸入成績:");

scanf("%f",&students[num].Mark1);

getchar();

printf("請輸入成績:");

scanf("%f",&students[num].Mark2);

getchar();

printf("請輸入成績:");

scanf("%f",&students[num].Mark3);

getchar();

students[num].Average=Avg(students[num]);

num++;

printf("是否繼續?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*修改學生信息*/

void Student_Modify()

{

//float mark1,mark2,mark3;

while(1)

{

char id[20];

int index;

printf("請輸入要修改的學生的學號:");

scanf("%s",&id);

getchar();

index=Student_SearchByIndex(id);

if (index==-1)

{

printf("學生不存在!\n");

}

else

{

printf("你要修改的學生信息為:\n");

Student_DisplaySingle(index);

printf("-- 請輸入新值--\n");

printf("請輸入學號:");

scanf("%s",&students[index].ID);

getchar();

printf("請輸入姓名:");

scanf("%s",&students[index].Name);

getchar();

printf("請輸入成績:");

scanf("%f",&students[index].Mark1);

getchar();

printf("請輸入成績:");

scanf("%f",&students[index].Mark2);

getchar();

printf("請輸入成績:");

scanf("%f",&students[index].Mark3);

getchar();

students[index].Average=Avg(students[index]);

}

printf("是否繼續?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*刪除學生信息*/

void Student_Delete()

{

int i;

while(1)

{

char id[20];

int index;

printf("請輸入要刪除的學生的學號:");

scanf("%s",&id);

getchar();

index=Student_SearchByIndex(id);

if (index==-1)

{

printf("學生不存在!\n");

}

else

{

printf("你要刪除的學生信息為:\n");

Student_DisplaySingle(index);

printf("是否真的要刪除?(y/n)");

if (getchar()=='y')

{

for (i=index;i<num-1;i++)

{

students[i]=students[i+1];//把後邊的對象都向前移動

}

num--;

}

getchar();

}

printf("是否繼續?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*按姓名查詢*/

void Student_Select()

{

while(1)

{

char name[20];

int index;

printf("請輸入要查詢的學生的姓名:");

scanf("%s",&name);

getchar();

index=Student_SearchByName(name);

if (index==-1)

{

printf("學生不存在!\n");

}

else

{

printf("你要查詢的學生信息為:\n");

Student_DisplaySingle(index);

}

printf("是否繼續?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*按平均值排序*/

void Student_SortByAverage()

{

int i,j;

struct Student tmp;

for (i=0;i<num;i++)

{

for (j=1;j<num-i;j++)

{

if (students[j-1].Average<students[j].Average)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}

}

/*顯示學生信息*/

void Student_Display()

{

int i;

printf("%10s%10s%8s%8s%8s%10s\n","學號","姓名","成績","成績","成績","平均成績");

printf("-------------------------------------------------------------\n");

for (i=0;i<num;i++)

{

printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name,

students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);

}

}

/*將學生信息從文件讀出*/

void IO_ReadInfo()

{

FILE *fp;

int i;

if ((fp=fopen("Database.txt","rb"))==NULL)

{

printf("不能打開文件!\n");

return;

}

if (fread(&num,sizeof(int),1,fp)!=1)

{

num=-1;

}

else

{

for(i=0;i<num;i++)

{

fread(&students[i],sizeof(struct Student),1,fp);

}

}

fclose(fp);

}

/*將學生信息寫入文件*/

void IO_WriteInfo()

{

FILE *fp;

int i;

if ((fp=fopen("Database.txt","wb"))==NULL)

{

printf("不能打開文件!\n");

return;

}

if (fwrite(&num,sizeof(int),1,fp)!=1)

{

printf("寫入文件錯誤!\n");

}

for (i=0;i<num;i++)

{

if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1)

{

printf("寫入文件錯誤!\n");

}

}

fclose(fp);

}

/*主程序*/

void main()

{

int choice;

IO_ReadInfo();

while(1)

{

/*主菜單*/

printf("\n------ 學生成績管理系統------\n");

printf("1. 增加學生記錄\n");

printf("2. 修改學生記錄\n");

printf("3. 刪除學生記錄\n");

printf("4. 按姓名查詢學生記錄\n");

printf("5. 按平均成績排序\n");

printf("6. 退出\n");

printf("請選擇(1-6):");

scanf("%d",&choice);

getchar();

switch(choice)

{

case 1:

Student_Insert();

break;

case 2:

Student_Modify();

break;

case 3:

Student_Delete();

break;

case 4:

Student_Select();

break;

case 5:

Student_SortByAverage();

Student_Display();

break;

case 6:

exit(0);

break;

}

IO_WriteInfo();

}

}

㈡ C語言怎麼用數組錄入3個學生成績,每個學生有5門課成績,並統計每個學生的平均分

#include<stdio.h>
#include<math.h>

intmain()

{
floatg[3][5];

for(inti=0;i<3;i++){
printf("請輸入第%d個學生的成績中間用空格分開: ",i+1);
scanf("%f%f%f%f%f",&g[i][0],&g[i][1],&g[i][2],&g[i][3],&g[i][4]);
}
for(inti=0;i<3;i++){
floatavg=0.0;
floatsum=0.0;
for(intj=0;j<5;j++){
sum+=g[i][j];
}
avg=sum/5;
printf("第%d個學生的平均成績為:%f ",i+1,avg);
}

return0;

}

望採納,謝謝

㈢ 如何用C語言編一個學生成績管理系統

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define NULL 0
int shoudsave=0;
struct student
{
char num[10];
char name[20];
char sex[4];
int cgrade;
int mgrade;
int egrade;
int totle;
int ave;
char neartime[10];
};
typedef struct node
{
struct student data;
struct node *next;
}Node,*Link;
void menu()
{
printf("********************************************************************************");
printf("\t1輸入學生資料\t\t\t\t\t2刪除學生資料\n");
printf("\t3查詢學生資料\t\t\t\t\t4修改學生資料\n");
printf("\t5顯示學生資料\t\t\t\t\t6統計學生成績\n");
printf("\t7排序學生成績\t\t\t\t\t8保存學生資料\n");
printf("\t9獲取幫助信息\t\t\t\t\t0退出系統\n");
printf("********************************************************************************\n");
}

㈣ 如何用C語言編寫一個程序實現學員成績

這是我寫的,或許對你有幫助~
#include<time.h>
#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#define MAX 50
void input();
void sort();
void display();
void insert();
void del();
void average();
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()//主函數
{
char as;
start: printf("\t\t\t歡迎使用學生成績管理系統\n\n");
//一下為功能選擇模塊
do{
printf("\n\t\t\t\t1.錄入學員信息\n\t\t\t\t2.顯示學員信息\n\t\t\t\t3.成績排序信息\n\t\t\t\t4.添加學員信息\n\t\t\t\t5.刪除學員信息\n\t\t\t\t6.退出\n");
printf("\t\t\t\t選擇功能選項:");
as=getch();
switch(as)
{
case '1':
system("cls");
input();
break;
case '2':
system("cls");
display();
break;
case '3':
system("cls");
sort();
break;
case '4':
system("cls");
insert();
break;
case '5':
system("cls");
del();
break;
case '6':
system("exit");
exit(0);
default:
system("cls");
goto start;
}
}while(1);
//至此功能選擇結束
}
void input()//原始數據錄入模塊
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.錄入學員信息\n輸入第%d個學員的信息\n",i+1);
printf("\n輸入學生編號:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n輸入學員姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n輸入學員性別:");
fflush(stdin);
gets(stu[i].sex);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("%d",now_no);
printf("是否繼續輸入?(Y/N)");
ch=getch();
system("cls");
}
while(ch!='n');
system("cls");
}
void sort()//排序數據函數
{
struct student temp;
int i,j;
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}}}
}
void display()//顯示數據函數
{
int i;
char as;
float ave;
do
{
printf("\t\t班級學員信息列表\n");
printf("\t編號\t姓名\t性別\t成績\t成績\t成績\t平均值\n");
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意鍵返回主菜單.");
as=getch();
goto exit;
}
while(as!='n');
exit: system("cls");
}
void insert()//插入數據函數
{
char ch;
do
{
printf("\n\t\t輸入新插入學員隊信息\n");
printf("\n輸入學生編號:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n輸入學員姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n輸入學員性別:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否繼續輸入?(Y/N)");
ch=getch();
system("cls");
}
while(ch!='n');
}
void del()//刪除數據函數
{
int inum,i,j;
printf("輸入要刪除學員的編號:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i<now_no;i++)
{
if(stu[i].no==inum)
{
for(j=i;j<now_no;j++)
{
stu[i]=stu[i+1];
}
now_no=now_no-1;
}
break;
}
system("cls");
}

㈤ 編寫一個c語言程序,實現錄入學生學號和姓名信息的功能

#include<stdio.h>

#include<stdlib.h>

intmain(void)

{

chars[10];//姓名

intnum;//學號

printf("請輸入姓名: ");

gets(s);

printf("請輸學號: ");

scanf("%d",&num);

printf("姓名是:%s 學號是:%d ",s,num);

system("pause");

return0;

}

(5)c語言怎麼錄入一個學生的成績擴展閱讀

c語言建立學生檔案

#include<stdio.h>

#include<string.h>

結構學生

{

整數

字元名稱[10];

intEng;

墊子;

};

//s_number-檢索的學號

//numebr-文檔已經存儲的學號

//按學號查找

布爾搜索(chars_New[],charNew[])

{

如果(strcmp(s_New,New))

{

返回true;//查找成功

}

其他

{

returnfalse;//查找失敗

}

}

無效menu()

{

printf(「----------------------------------------------------------- 「);

printf(「菜單: 」);

printf(「 1。建立學生檔案 」);

printf(「 2。讀取所有學生記錄 」);

printf(「 3。在文件尾添加學生記錄 」);

printf(「 4。查詢學生姓名 」);

printf(「 5。結束程序 」);

printf(「----------------------------------------------------------- 「);

}

無效menu_2()

{

printf(「----------------------------------------------------------- 「);

printf(「查找選擇菜單: 」);

printf(「 1。按名字查找 」);

printf(「 2。按學號查找 」);

printf(「請選擇: 」);

printf(「----------------------------------------------------------- 「);

}

intmain()

{

而(1)

{

菜單();

法官

printf(「請輸入你的選項:」);

判斷=scanf(「%d」,&n);

如果(判斷==0)

{

printf(「輸入格式錯誤! 」);

}

開關(n)

{

情況1:

{

FILE*pf=fopen(「Student.txt」,「w+」);

字元標志='Y';

while(flag=='Y'|flag=='y')

{

學生stu;//創建學生結構體

printf(「請輸入學生的學號: 」);

scanf(「%d」,&stu.number);

getchar();//吃掉以上一個輸入的回車符

printf(「請輸入學生的姓名: 」);

scanf(「%s」,stu.name);

printf(「請輸入學生的語文成績: 」);

scanf(「%d」,&stu.Chi);

printf(「請輸入學生的英語成績: 」);

scanf(「%d」,&stu.Eng);

printf(「請輸入學生的數學成績: 」);

scanf(「%d」,&stu.Mat);

//把學生檔案導入Student.txt文檔

fprintf(pf,「#姓名:%s 學號:%d 語言成績:%d 英語成績:%d 數學成績:%d 」,stu.name,stu.number,stu.Chi,stu.Eng,stu.Mat);

getchar();//吃掉以上一個輸入的回車符

printf(「是否繼續輸入學生檔案?(是或否) 」);

判斷=scanf(「%c」,&flag);

如果(判斷==0)

{

printf(「輸入格式錯誤! 」);

}

}

fclose(pf);

打破;

}

㈥ 【C語言】輸入學生姓名和成績排序

這種一般都是要用到結構體的,不用結構體很難講名字和成績這種數據一一對應起來。內

結構體容都是設置一種結構,這個結構中可以放置各個類型的數據,比如說一個人是一個結構體,那麼名字,身高,體重,性別,等等都可以作為結構體里的數據。然後用這個結構體來初始化一些人,比如說小明,你將小明的身高,體重,性別等等初始化賦值給這個結構體,就可以使用 . 這個運算符號來調用結構體里成員數據。比如說 小明.姓名 的值就是小明。

根據你的提問,具體代碼如下:

首先定義一個結構體的定義:

typedef struct Student
{
char name[20]; //名字

int grade; //成績

}

初始化各個實例:
struct Student Jack, Tom, Tim;

將各個成員賦值:
Jack.name[20] = Jack;
Jack.grade = 63;

以此類推。

排序的具體方法也不難,自己看看書吧。

使用結構體的好處就是將一組與一個事物相關的數值放在一起,統一的管理和調用。

㈦ c語言 寫程序(1)輸入十個學生的學號和成績(2)輸入一個學號,查找

#include<stdio.h>
typedefstruct
{
charno[20];
intscore;
}STU;
intmain()
{
STUs[10],t;
charno[20];
inti,j;
for(i=0;i<10;i++)
{
scanf("%s%d",t.no,&t.score);
for(j=i;j>=0;j--)
if(s[j].score<t.score)s[j+1]=s[j];
elsebreak;
s[j+1]=t;
}
for(i=0;i<10;i++)
printf("%s%d ",s[i].no,s[i].score);

printf("輸入要查詢的學號:");
scanf("%s",no);

for(i=0;i<10;i++)
if(strcmp(s[i].no,no)==0)break;
if(i==10)printf("不在十個學生中 ");
elseprintf("該學生分數為%d ",s[i].score);

return0;
}

㈧ 求怎麼用C語言做一個學生成績管理系統

去年寫的,你稍微改下加個成績就行

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
FILE *fp;
struct student{
char name[10];
char number[12];
char age[3];
struct student *next;
};
struct student *creat(); //手動創建鏈表
struct student *build_list(); //從文件讀取信息創建鏈表
void read_list(struct student *head); //列印鏈表
void search(struct student *head); //查找相應信息
struct student *delete_(struct student *head); //刪除相應信息
void ad_list(struct student *head); //增加信息
int control(struct student *head); //控制函數
void head_print(); //列印界面函數
void change_list(struct student *head); //更改鏈表信息函數
void save(struct student *head); //保存文件
void remove(struct student *head); //遞歸釋放鏈表空間
char name[10],number[12],age[3]; //學生姓名、學號、年齡全局變數
int main(){
struct student *head;
head=(struct student*)malloc(sizeof(struct student));
control(head);
free(head);
fclose(fp);
return 0;
}
struct student *creat(){
struct student *head;
char name[10],number[12],age[3];
struct student *p,*r,*p1;
head=(struct student *)malloc(sizeof(struct student));
p=head->next;
r=head;
printf("依次輸入姓名學號年齡(按q退出):\n");
scanf("%s",name);
while(name[0]!='q'){
p1=(struct student*)malloc(sizeof(struct student));
scanf("%s",number);
scanf("%s",age);
strcpy(p1->name,name);
strcpy(p1->number,number);
strcpy(p1->age,age);
p1->next=NULL;
r->next=p1;
r=p1;
scanf("%s",name);
}
printf("建立成功\n");

return head;
}
/*若無文件或文件為空,用鏈表創建函數,為防止佔用多餘內存在循環入口處進行判斷,函數返回頭指針地址*/
struct student *build_list(){
char ch;
struct student *head;
struct student *p1,*r;
rewind(fp);
head=(struct student*)malloc(sizeof(struct student));
r=head;
while(!feof(fp)){
p1=(struct student*)malloc(sizeof(struct student));
fscanf(fp,"%s%s%s",p1->name,p1->number,p1->age);
p1->next=NULL;
r->next=p1;
r=p1;
fseek(fp,2L,SEEK_CUR);
if((ch=getc(fp))==EOF)
break;
else
fseek(fp,-3L,SEEK_CUR);
}
return head;
}
/*文件內有信息時按行讀取文件信息並創建鏈表,為防止誤讀結尾換行符,用fseek函數在每次循環後移兩單位判斷是否為空
,若為空結束循環,若不為空則用fseek函數前移三個單位*/
void read_list(struct student *head){
struct student *p;
p=head->next;
if(p==NULL){
head=creat();
}
printf("*******************************************\n");
while(p!=NULL){
printf("%-20s%-12s%-3s\n",p->name,p->number,p->age);
p=p->next;
}
printf("*******************************************\n");
}
/*輸出鏈表信息,如果進行刪除操作後鏈表為空則轉到鏈表創建函數;按行讀取文件信息並輸出。*/
void search(struct student *head){
char s[20];
struct student *p;
int k=0;
printf("請輸入要查詢的字元串:\n");
p=head->next;
scanf("%s",s);
printf("查詢結果:\n");
while(p!=NULL){
if((strcmp(s,p->age)&&strcmp(s,p->name)&&strcmp(s,p->number))==0){
printf("%-20s%-12s%-3s\n",p->name,p->number,p->age);
k=1;
}
p=p->next;
}
if(k==0)
printf("無記錄\n");
}
/*查找函數,*/
struct student *delete_(struct student *head){
char s[20];
char ch;
int v=0;
struct student *p,*q;
printf("請輸入要刪除的學生的學號:\n");
scanf("%s",s);
p=head->next;
q=head;
while(p!=NULL){
if(strcmp(s,p->number)==0){
q->next=p->next;
v=1;
free(p);
break;
}
q=p;
p=p->next;
}
if(v==1)
printf("刪除成功\n");
else{
printf("未刪除成功\n");
return q->next;
}
if(head->next==NULL){
printf("已無信息,是否輸入新的(Y/N):\n");
scanf("%c",&ch);
ch=getchar();
if(ch=='y')
head=creat();
return head;
}
return q->next;
}
void ad_list(struct student *head){
char s[20];
int v=0;
struct student *p,*q;
q=(struct student *)malloc(sizeof(struct student));
p=head->next;
printf("插在學號為多少的學生後?\n");
scanf("%s",s);
while(p!=NULL){
if(strcmp(s,p->number)==0){
printf("請輸入學生信息(姓名 學號 年齡):\n");
scanf("%s%s%s",q->name,q->number,q->age);
q->next=p->next;
p->next=q;
v=1;
break;
}
p=p->next;
}
if(v==0)
printf("插入失敗\n");
}
void change_list(struct student *head){
char s1[12];
char ch;
struct student *p;
printf("請輸入要更改的學生的學號:\n");
scanf("%s",s1);
p=head->next;
while(p!=NULL){
if(strcmp(s1,p->number)==0)
break;
p=p->next;
}
printf("請輸入要更改的內容:\na.姓名\nb.學號\nc.年齡\n");
scanf("%c",&ch);
ch=getchar();
printf("請輸入更改後結果:\n");
scanf("%s",s1);
switch(ch){
case'a':strcpy(p->name,s1);break;
case'b':strcpy(p->number,s1);break;
case'c':strcpy(p->age,s1);break;
}
}
void save(struct student *head){
struct student *p;
p=head->next;
fp=fopen("stu.out","w+");
rewind(fp);
while(p!=NULL){
fprintf(fp,"%-20s%-12s%3s\n",p->name,p->number,p->age);
p=p->next;
}
printf("保存成功\n");
}
void remove(struct student *head){
if(head==NULL)
return;
remove(head->next);
free(head);
}
int control(struct student *head){
int i=0;
char ch;
head_print();
if((fp=fopen("stu.out","r"))==NULL){
printf("無文件,請先建立:\n");
head=creat();
}
else if((ch=getc(fp))==EOF){
printf("無信息,請先建立:\n");
head=creat();
}
else
head=build_list();
while((ch=getchar())!='q'){
switch(ch){
case'a':search(head);break;
case'b':delete_(head);break;
case'c':ad_list(head);break;
case'd':change_list(head);break;
case'e':read_list(head);break;
case'f':save(head);break;
case'h':head_print();
}
}
if(ch=='q')
remove(head);
return 0;
}
void head_print(){
printf("%13.0s********************************************%13.0s\n");
printf("%13.0s**%40.0s**\n");
printf("%13.0s**%9.0sa.查找%9.0sb.刪除%10.0s**\n");
printf("%13.0s**%40.0s**\n");
printf("%13.0s**%9.0sc.增加%9.0sd.更改%10.0s**\n");
printf("%13.0s**%40.0s**\n");
printf("%13.0s**%9.0se.查看%9.0sf.存檔%10.0s**\n");
printf("%13.0s**%40.0s**\n");
printf("%13.0s**%9.0s按h顯示提示信息,q退出%10.0s**\n");
printf("%13.0s********************************************%13.0s\n");
}

㈨ c語言如何編寫一個輸出學生成績等級的程序

一、首先打開VC++

㈩ 用c語言設計一個學生成績管理系統 該系統要實現的功能為:成績錄入:輸入學生的學號、姓名及三門課成績

我只有差不多的你可以自己改一改

/* ************************************************************************

* Filename: student_system.c

* Description:

* Version: 1.0

* Created: 2016年03月30日 17時27分11秒

* Revision: none

* Compiler: gcc

* Author: YOUR NAME (),

* Company:

* ************************************************************************/


#include <stdio.h>

#include <stdlib.h>

typedef struct stu

{

int num;

char name[20];

int score;

struct stu *next;

}STU;

void link_add_end(STU **head,STU *p_new)

{

p_new->next = *head;

*head = p_new;

}

void link_print(STU **head)

{

if(*head == NULL)

{

return;

}

STU *p_mov = *head;

while(p_mov != NULL)

{

printf("num==%d score==%d name==%s ",p_mov->num,p_mov->score,p_mov->name);

p_mov=p_mov->next;

}

}

void link_find_num(STU **head,int num)

{

STU *p_mov = *head;

while(p_mov != NULL)

{

if(p_mov->num == num)

{

printf("num==%d score==%d name==%s ",p_mov->num,p_mov->score,p_mov->name);

}

p_mov=p_mov->next;

}


}

void link_find_name(STU **head,char name[])

{

STU *p_mov = *head;

while(p_mov != NULL)

{

if(strcmp(p_mov->name,name)==0)

{

printf("num==%d score==%d name==%s ",p_mov->num,p_mov->score,p_mov->name);

}

p_mov=p_mov->next;

}


}

void link_delete_num(STU **head,int num)

{

STU *p_mov = *head;

STU *p_sav = p_mov;

while(p_mov != NULL)

{

if(p_mov->num == num)

{

if(p_mov == *head)

{

*head = p_mov->next;

free(p_mov);

}else if(p_mov->next == NULL)

{

p_sav->next=NULL;

free(p_mov);

}else

{

p_sav->next=p_mov->next;

free(p_mov);

}

}

p_sav=p_mov;

p_mov=p_mov->next;

}

}

void add(STU **head)

{

STU *p_new;

p_new = (STU *)malloc(sizeof(STU));

printf("請輸入 學號 分數 姓名 ");

printf("例如 1 99 張三 ");

scanf("%d %d %s",&p_new->num,&p_new->score,p_new->name);

getchar();

link_add_end(head,p_new);

}

void prin(STU **head)

{

link_print(head);

}

void find(STU **head)

{

int num;

char name[20];

char cmd[20];

printf("1 find for num ");

printf("2 find for name ");

gets(cmd);

if(strcmp("1",cmd) == 0)

{

printf("please input find for num");

scanf("%d",&num);

getchar();

link_find_num(head,num);

}else if(strcmp("2",cmd)==0)

{

printf("please input find for name ");

gets(name);

link_find_name(head,name);

}else

{

printf("error!!");

return;

}

}

void delete(STU **head)

{

int num;

printf("please input delete for num ");

scanf("%d",&num);

getchar();

link_delete_num(head,num);

}

void help()

{

printf("************************ ");

printf("*add add link * ");

printf("*prt print link * ");

printf("*fid find link * ");

printf("*del delete link * ");

printf("*help print help * ");

printf("************************ ");

}


int main(int argc, char *argv[])

{

char cmd_key[20];

STU *head=NULL;

int i;

typedef void (*FUN)(STU **);

typedef struct cmd_fun

{

char key_cmd[20];

FUN fun;

}CMD;

CMD cmd[]={{"add",add},

{"prt",prin},

{"fid",find},

{"del",delete}};

help();

while(1)

{

gets(cmd_key);

if(strcmp(cmd_key,"help")==0)

{

help();

}

for(i=0; i<4; i++)

{

if(strcmp(cmd[i].key_cmd,cmd_key)==0)

{

cmd[i].fun(&head);

}

}

}

return 0;

}

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919