学生成绩管理系统c语言作业,用c++编写学生成绩管理系统

http://www.itjxue.com  2023-01-15 00:17  来源:未知  点击次数: 

c语言大作业 学生成绩管理系统

给个参考你:

/*编制一个学生成绩管理系统,每个学生信息包括:学号、姓名、C语言、高数和英语成绩。具体功能:

(1)创建信息链表并以磁盘文件保存;

(2)读取磁盘文件并显示输出所有学生的成绩;

(3)按学号或姓名查询成绩;

(4)添加成绩记录;

(5)修改指定姓名或学号的学生的成绩并可存盘;

(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。以C语言成绩为例*/

#include stdio.h

#include stdlib.h

#include conio.h

#include string.h

#define N 20

typedef struct

{

char name[10];

int num;

float c;

float math;

float english;

float aver;

}stu;

//菜单

void menu() /*便于操作员使用*/

{ /*清屏*/

system("cls");

printf(" 学生平时成绩管理\n");

printf("=======================\n");

printf(" 1.成绩录入\n");

printf(" 2.计算\n");

printf(" 3.查询\n");

printf(" 4.修改\n");

printf(" 5.插入\n");

printf(" 6.显示\n");

printf(" 7.统计\n");

printf(" 8.删除\n");

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

printf("=======================\n");

printf("请选择相应的功能:");

}

//成绩录入

void input()

{

FILE *fp;

stu xs; /*定义一个结构体变量来装从文件中读出来的数据*/

if((fp=fopen("student.dat","ab"))==NULL) {printf("can't open file!\n");exit(0);}

printf("\n录入格式: 姓名 学号 C语言 高数 英语 当输入姓名为ps结束录入\n");

while(1) /*中间加油break,可使循环中断*/

{

scanf("%s",xs.name);

if(strcmp(xs.name,"ps")==0) break;/*判断姓名是否为ps,用字符串判断*/

scanf("%d%f%f%f",xs.num,xs.c,xs.math,xs.english);

xs.aver=0;/*给平均分变量赋初值*/

fwrite(xs,sizeof(stu),1,fp); //将成绩信息写入文件

}

fclose(fp);

}

//计算平均分

void sum()

{

int i=0,n;

stu xs[N];

FILE *fp;

if((fp=fopen("student.dat","rb+"))==NULL) {printf("can't open file!\n");exit(0);}

while(!feof(fp))/*文件读入内存,读取指针未到文件尾时返回值为0,读到尾时返回值为1,加!取反后,结束即为0*/

{

fread(xs[i],sizeof(stu),1,fp);/*读入结构体变量*/

if(feof(fp)) break;/*上面while循环那个会多读一次因为读到尾时那个0还没返回,这里判断如果以读到文件尾,则直接停止,避免重复输入*/

xs[i].aver=(xs[i].c+xs[i].math+xs[i].english)/3;

i++;

}

n=i;/*把i的末尾值给n,用于下面循环写入*/

i=0;

fclose(fp);

if((fp=fopen("student.dat","wb"))==NULL) {printf("can't open file!\n");exit(0);}

while(in)

{

fwrite(xs[i],sizeof(stu),1,fp);

i++;

}

fclose(fp);

}

void xingming()

{

FILE *fp;

stu xs;

char name[10];

printf("\n输入要查学生的姓名: ");scanf("%s",name);

if((fp=fopen("student.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}

while(!feof(fp))

{

fread(xs,sizeof(stu),1,fp);

if(strcmp(xs.name,name)==0)/*按姓名查询时判断输入的姓名是否存在,会循环从数据中找取*/

{

printf(" 学生的信息如下:\n");

printf("\n%10s %6s %6s %6s %6s %6s\n","姓名","学号","C语言","高数"," 英语","平均成绩");

printf("%10s %6d %6.2f %6.2f %6.2f %6.2f\n",xs.name,xs.num,xs.c,xs.math,xs.english,xs.aver);

break;

}

}

if(feof(fp)) printf("查找失败!!!"); /*学生不存在*/

fclose(fp);

}

void xuehao()

{

FILE *fp;

stu xs;

int num;

printf("\n输入要查学生的学号: ");scanf("%d",num);

if((fp=fopen("student.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}

while(!feof(fp))

{

fread(xs,sizeof(stu),1,fp);

if(xs.num==num)/*按学号查询时判断输入的学号是否存在,会循环从数据中找取*/

{

printf(" 学生的信息如下:\n");

printf("\n%10s %6s %6s %6s %6s %6s\n","姓名","学号","C语言","高数"," 英语","平均成绩");

printf("%10s %6d %6.2f %6.2f %6.2f %6.2f\n",xs.name,xs.num,xs.c,xs.math,xs.english,xs.aver);

break;

}

}

if(feof(fp)) printf("查找失败!!!");

fclose(fp);

}

//查询

void search()

{

char ch1;

system("cls");

printf("请输入按何种方式查询:\n");

printf("1-姓名,2-学号:");

ch1=getchar();/*用字符接收*/

switch(ch1)/*判断*/

{

case '1':xingming();break;

case '2':xuehao();break;

}

getch();/*让屏幕停留同时按任意键返回*/

}

//修改:输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;

void modi()

{

stu xs;

FILE *fp;

char name[10];

system("cls");

printf("\n输入要查学生的姓名: ");scanf("%s",name);

if((fp=fopen("student.dat","rb+"))==NULL) {printf("can't open file!\n");exit(0);}

while(!feof(fp))

{

fread(xs,sizeof(stu),1,fp);

if(strcmp(xs.name,name)==0)/*判断输入要修改的姓名是否存在*/

{

printf(" 修改前学生的信息如下:\n");

printf("\n%10s %6s %6s %6s %6s %6s\n","姓名","学号","C语言","高数"," 英语","平均成绩");

printf("%10s %6d %6.2f %6.2f %6.2f %6.2f\n",xs.name,xs.num,xs.c,xs.math,xs.english,xs.aver);

printf("\n请输入该生的C语言成绩:");scanf("%f",xs.c);

printf("\n高数成绩:");scanf("%f",xs.math);

printf("\n英语成绩:");scanf("%f",xs.english);

xs.aver=(xs.c+xs.math+xs.english)/3;

break;

}

}

if(!feof(fp))

{

printf(" \n 修改后的学生的信息如下:\n");

printf("\n%10s %6s %6s %6s %6s %6s\n","姓名","学号","C语言","高数"," 英语","平均成绩");

printf("%10s %6d %6.2f %6.2f %6.2f %6.2f\n",xs.name,xs.num,xs.c,xs.math,xs.english,xs.aver);

fseek(fp,sizeof(-stu),1);/*负号表示后退,1表示文件当前位置*/

fwrite(xs,sizeof(stu),1,fp);/*再写入,同时把要修改的那个覆盖掉*/

}

else

printf("\n学生不存在,修改失败!!");

fclose(fp);

getch();

}

//插入:输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果。

void insert()

{

int i=0,j,k,lenth;

FILE *fp;

stu s,xs[N];

system("cls");

printf("\n请输入插入的学生的姓名:");scanf("%s",s.name);

printf("\n学生的学号:");scanf("%d",s.num);

printf("\n学生的C成绩:");scanf("%f",s.c);

printf("\n高数成绩:");scanf("%f",s.math);

printf("\n英语成绩:");scanf("%f",s.english);

s.aver=(s.c+s.math+s.english)/3;

printf("\n插入位置:");scanf("%d",k);

// i=0;

if((fp=fopen("student.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}

while(!feof(fp))

{

fread(xs[i],sizeof(stu),1,fp);/*把数据读入到结构体数组中*/

if(feof(fp)) break;

i++;

}

fclose(fp);

lenth=i;

if(klenth k=0)/*k的位置要位于数组范围之内*/

{//插入

for(j=lenth-1;j=k;j--)

xs[j+1]=xs[j];/*一开始j是最大的,往后移一个这样移动避免数据被覆盖*/

/*循环是只循环这一句的*/

xs[k]=s;/*将输入的学生信息加入这个k位置*/

lenth++;/*长度+1*/

//写回

if((fp=fopen("student.dat","wb"))==NULL) {printf("不能建立文件!!\n");exit(0);}

for(i=0;ilenth;i++)

fwrite(xs[i],sizeof(stu),1,fp);

}

else/*不再数组范围之内*/

{

if((fp=fopen("student.dat","ab"))==NULL) {printf("不能建立文件!!\n");exit(0);}

fwrite(s,sizeof(stu),1,fp);

}

fclose(fp);

}

//显示

void print()

{

FILE *fp;

stu s;

system("cls");

if((fp=fopen("student.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}

printf("\n%10s %s %6s %6s %6s %6s\n","姓名","学号","C语言","高数"," 英语","平均成绩");

while(!feof(fp))

{

fread(s,sizeof(stu),1,fp);//从文件中读取成绩信息

if(feof(fp)) break;//判断是否文件尾

printf("%10s %6d %6.2f %6.2f %6.2f %6.2f\n",s.name,s.num,s.c,s.math,s.english,s.aver);

}

fclose(fp);

getch();

}

//统计

void tongji()

{

int i=0,j=0,k=0,l=0,m=0,n,p,q,r,t,u;

FILE *fp;

stu s[N], *p1[N],*p2[N],*p3[N],*p4[N];/*用指针数组*/

system("cls");

if((fp=fopen("student.dat","rb"))==NULL) {printf("cant't open file!\n");exit(0);}

while(!feof(fp))

{

fread(s[i++],sizeof(stu),1,fp);/*读入数据*/

if(feof(fp)) break;

}

t=i;i=0;

for(u=0;ut;u++)/*以下每个指针数组用于指向各分数段的学生信息*/

{

if(s[i].c60) {p1[j++]=s[i++];continue;}/*每个学生信息只能位于一个分数段*/

if(s[i].c=60s[i].c80) {p2[k++]=s[i++];continue;}

if(s[i].c=80s[i].c90) {p3[l++]=s[i++];continue;}

if(s[i].c=90) {p4[m++]=s[i++];continue;}

}

printf("不及格:姓名 学号 C语言\n");

for(n=0;nj-1;n++)

{

printf("%10s %6d %6.2f\n",p1[n]-name,p1[n]-num,p1[n]-c);

}

printf("60-79:姓名 学号 C语言\n");

for(p=0;pk;p++)

{

printf("%10s %6d %6.2f\n",p2[p]-name,p2[p]-num,p2[p]-c);

}

printf("80-89:姓名 学号 C语言\n");

for(q=0;ql;q++)

{

printf("%10s %6d %6.2f\n",p3[q]-name,p3[q]-num,p3[q]-c);

}

printf("90以上:姓名 学号 C语言\n");

for(r=0;rm;r++)

{

printf("%10s %6d %6.2f\n",p4[r]-name,p4[r]-num,p4[r]-c);

}

fclose(fp);

getch();

}

//删除:输入学生姓名,若该学生存在,则删除,并显示删除后余下的学生成绩信息

void dele()

{

stu xs[N];

FILE *fp;

char name[10];

int i=0,len,k=-1/*k0是为后面if判断用的*/;

system("cls");

printf("\n输入要删除的学生姓名: ");scanf("%s",name);

if((fp=fopen("student.dat","rb+"))==NULL) {printf("can't open file!\n");exit(0);}

while(!feof(fp))

{

fread(xs[i],sizeof(stu),1,fp);

if(feof(fp)) break;

if(strcmp(xs[i].name,name)==0) k=i;

i++;

}

fclose(fp);

//以下是删除后重新写文件

len=i;/*结构体数组上限*/

if(k=0)/*k0说明找到删除学生位置*/

{

if((fp=fopen("student.dat","wb+"))==NULL) {printf("can't open file!\n");exit(0);}

for(i=0;ilen;i++)

{

if(i==k) continue;/*从这个位置开始写入*/

fwrite(xs[i],sizeof(stu),1,fp);

}

fclose(fp);

}

else {printf("删除失败!!!\n");getch();} /*失败后重新返回菜单*/

print();

}

//菜单选择

void main()

{

char ch;

while(1)

{

menu();// 显示菜单

ch=getch();//选择菜单

if(ch=='0') break;

switch(ch)//判断功能项

{

case '1':input();break;

case '2':sum();break;

case '3':search();break;

case '4':modi();break;

case '5':insert();break;

case '6':print( );break;

case '7':tongji();break;

case '8':dele();break;

}

}

printf("\n欢迎使用!!!\n");

}

2.学生成绩管理系统 (c语言做)

给你找一份类似的。不完全一致。做课程设计还是可行的。自己稍加修改即可!

总体设计

一、 仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)

1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。

2、查询模块:可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。

3、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。

4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。

5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。

二、系统主模块结构图:

详细设计

一、 界面设计

此系统界面采用图形和数字化菜单设计。

主界面设计如下:

学生成绩管理系统

请选择相应的数字执行相应的功能:

1:是否输入其他数据

2:查看数据

3:插入数据

4:查找数据

5:更新数据

6:保留数据

7:显示或打印数据

8:语文成绩状况

9:数学成绩状况

10:英语成绩状况

11:计算机成绩状况

12:?

13:退出系统

二、 数据结构设计:

程序设计中用到的结构体类型:

学生信息结构体类型:

typedef struct student{

char name[MAX];

int num[MAX];

char sex[MAX];

int chinese;

int mathematic;

int english;

int computer;

struct student *next;

}

程序代码:

//原始密码是123456

#include"stdio.h"

#include"stddef.h"

#include"stddef.h"

#include"string.h"

#define MAX 10

typedef struct student{ /*定义结构体*/

char name[MAX]; /*姓名*/

int num[MAX]; /* 学号*/

char sex[MAX]; /*性别*/

int chinese; /*语文*/

int mathematic; /* 数学*/

int english; /*英语*/

int computer; /*计算机*/

struct student *next; /*结构体指针*/

}stu;

stu *head; /*头指针*/

void print() /*显示或打印函数*/

{

system("cls");

printf("\t\t\tScore Manage System\n"); /*成绩管理系统*/

printf("1Enter Record\t"); /*输入数据*/

printf("2Display\t"); /*显示*/

printf("3Insert\t"); /*插入数据*/

printf("4Quest\t"); /*访问数据*/

printf("5Update\t"); /*以前数据*/

printf("6Save\t"); /*保留数据*/

printf("7Fresh\t"); /*更新数据*/

printf("8Chinese Average\t"); /*语文平均成绩*/

printf("9Math Average\t"); /*数学平均成绩*/

printf("10English Average\t"); /*英语平均成绩*/

printf("11Computer Average\t"); /*计算机平均成绩*/

printf("12Quit\t\n"); /*退出*/

}

void cin(stu *p1) /*输入相关数据的函数*/

{ printf("Enter name:\n");

scanf("%s",p1-name);

printf("Enter num:\n");

scanf("%d",p1-num);

printf("Enter sex:\n");

scanf("%s",p1-sex);

printf("Enter score:\n");

printf("Enter chinese:\n");

scanf("%d",p1-chinese);

printf("Enter math:\n");

scanf("%d",p1-mathematic);

printf("Enter English:\n");

scanf("%d",p1-english);

printf("Enter Computer:\n");

scanf("%d",p1-computer);

}

stu *cindata() /*其他数据是否继续输入的函数*/

{ stu *p1,*p2;

int i=1;

char ch;

p1=(stu *)malloc(sizeof(stu));

head=p1;

while(i)

{

cin(p1);

printf("Do you Want to Continue?yes or no"); /*是否继续输入数据*/

ch=getchar();

ch=getchar();

if(ch=='n'||ch=='N')

{ i=0;

p1-next=NULL;

}

else

{ p2=p1;

p1=(stu *)malloc(sizeof(stu));

p2-next=p1;

}

}

return(p1-next);

}

stu *lookdata(stu *p1) /*查看数据的函数*/

{

while(p1!=NULL)

{ printf("Num:%d\t",p1-num);

printf("Name:%s\t",p1-name);

printf("Sex:%s\t",p1-sex);

printf("\n");

printf("Chinese:%d\t",p1-chinese);

printf("Math:%d\t",p1-mathematic);

printf("English:%d\t",p1-english);

printf("Computer:%d\t",p1-computer);

printf("\n");

p1=p1-next;

}

return p1;

}

void insert() /*通过比较学号来插入数据的函数*/

{ stu *p1,*p3,*p2;

char ch;

p1=head;

p3=(stu *)malloc(sizeof(stu));

p3-next=NULL;

if(head==NULL){ head=p3; return;}

cin(p3);

while(p1!=NULL(p1-nump3-num)) /*通过学号的比较来插入*/

{ p2=p1;p1=p1-next;}

if(p2==head) {p3-next=head; head=p3; return;}

p3-next=p1;

p2-next=p3;

}

find(stu *p2) /*通过姓名查找查看数据的函数*/

{ char name[20];

int b=0;

printf("Enter the name of the student you want to find:"); /*通过姓名查看*/

scanf("%s",name);

while(p2!=NULL)

{if(strcmp(name,p2-name)==0)

{

printf("The data you want has be found\n");

printf(" Name:%s\t",p2-name);

printf("Num:%d\t",p2-num);

printf("sex%s\t",p2-sex);

printf("\n");

printf("Chinese:%d\t",p2-chinese);

printf("Math:%d\t",p2-mathematic);

printf("English:%d\t",p2-english);

printf("Computer:%d\t",p2-computer);

printf("\n");

b=1;

}

else if(b==0)

printf("sorry not find data!");

p2=p2-next;

}

if(b==1)

{

print();

printf("Find one\n");}

else

{print();

printf("Not find\n");

}

}

void caverage() /*求各学生语文平均分、最高和最低分成绩的函数*/

{ stu *p1;

int i;

float max=0.0,min=200.0;

float sum=0.0,aver=0;

p1=head;

if(p1==NULL)

printf("not data!");

else

{for(i=0;p1!=NULL;i++,p1=p1-next)

sum+=p1-chinese;

aver=sum/i;

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

{if(maxp1-chinese)

max=p1-chinese;

}

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

if(minp1-chinese)

min=p1-chinese;

}

printf("Chinese Average:%f",aver);

printf("Chinese Max:%f",max);

printf("Chinese Min:%f",min);

}

void maverage() /*求各学生数学平均分、最高和最低分成绩的函数*/

{ stu *p1;

int i;

float max=0.0,min=200.0;

float sum=0.0,aver=0;

p1=head;

if(p1==NULL)

printf("not data!");

else

{for(i=0;p1!=NULL;i++,p1=p1-next)

sum+=p1-mathematic;

aver=sum/i;

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

{if(maxp1-mathematic)

max=p1-mathematic;

}

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

if(minp1-mathematic)

min=p1-mathematic;

}

printf("Mathe Average:%f",aver);

printf("Mathe Max:%f",max);

printf("Mathe Min:%f",min);

}

void eaverage() /*求各学生英语平均分、最高和最低分成绩的函数*/

{ stu *p1;

int i;

float max=0.0,min=200.0;

float sum=0.0,aver=0;

p1=head;

if(p1==NULL)

printf("not data!");

else

{for(i=0;p1!=NULL;i++,p1=p1-next)

sum+=p1-english;

aver=sum/i;

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

{if(maxp1-english)

max=p1-english;

}

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

if(minp1-english)

min=p1-english;

}

printf("English Average:%f",aver);

printf("English Max:%f",max);

printf("English Min:%f",min);

}

void comaverage() /*求各学生计算机平均分、最高和最低分成绩的函数*/

{ stu *p1;

int i;

float max=0.0,min=200.0;

float sum=0.0,aver=0;

p1=head;

if(p1==NULL)

printf("not data!");

else

{for(i=0;p1!=NULL;i++,p1=p1-next)

sum+=p1-computer;

aver=sum/i;

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

{if(maxp1-computer)

max=p1-computer;

}

p1=head;

for(i=0;p1!=NULL;i++,p1=p1-next)

if(minp1-computer)

min=p1-computer;

}

printf("Computer Average:%f",aver);

printf("Computer Max:%f",max);

printf("Computer Min:%f",min);

}

update(stu *p2) /*通过姓名查找来更新数据*/

{

char name[10]; /*p2为指向结构体struct student的指针*/

int b=0;

printf("Enter The Name"); /*输入姓名*/

scanf("%s",name);

while(p2!=NULL)

{if(strcmp(name,p2-name)==0)

{

printf("Find you data\n");

scanf("Name:%s",p2-name);

scanf("Num:%s",p2-num);

scanf("Sex:%s",p2-sex);

scanf("Chinese:%d",p2-chinese);

scanf("Math:%d",p2-mathematic);

scanf("english:%d",p2-english);

scanf("Computer:%d",p2-computer);

printf("Success!");

b=1;}

else if(b==0)

printf("Sorry not Find data!");

p2=p2-next;}

if(b==0)

{print();

printf("Sorry not Find data!");

}

else

{

print();

printf("Finish!");

}

}

save(stu *p2) /*保留数据函数*/

{

FILE *fp;

char file[10];

printf("Enter file name"); /*输入文件名*/

scanf("%s",file);

fp=fopen(file,"w");

while(p2!=NULL)

{

fprintf(fp,"%s",p2-name);

fprintf(fp,"%s",p2-num);

fprintf(fp,"%s",p2-sex);

fprintf(fp,"%d",p2-chinese);

fprintf(fp,"%d",p2-mathematic);

fprintf(fp,"%d",p2-english);

fprintf(fp,"%d",p2-computer);

p2=p2-next;

}

fclose(fp);

}

char password[7]="123456"; /*定义初始密码*/

void main() /*主函数*/

{ int choice;

stu *p2;

char s[8];

int flag=0,i; /*标志项*/

int n=3;

do{ printf("Enter password:\n");

scanf("%s",s);

if(!strcmp(s,password)) /*进行密码匹配验证*/

{ printf("PASS\n\n\n");

flag=1;

break;

}

else{

printf("Error Enter again:\n");

n--;

}

}

while(n0);

if(!flag)

{printf("you have Enter 3 times!"); /*输入密码超过了3次!!*/

exit(0); /*自动退出*/

}

/*密码验证成功后进入的界面*/

printf("~~~~~~~~~~\t\t\t~~~~~~~~~~~~\n"); /*操作界面*/

printf("\t\tWelcom to the Mis\n");

printf("Author:-----\tClass:------\tNum:------\n"); /*作者,班级和号码*/

printf("Adress:HG\n"); /*地址*/

printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");

printf("\t\tEnter OP:\n");

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

printf("==============\t\t==============\n");

printf("==============\t\t==============\n");

printf("\t\tEnter the MIS yes or no\n"); /*问进入系统与否*/

scanf("%d",choice);

if(choice=='n'||choice=='N')

exit(1);

print();

while(1)

{

printf("Enter choice:");

scanf("%d",i);

if(i1||i13)

{

printf("Enter num from 1 to 13:\n"); /*再从1-13中进行选择*/

exit(1);

}

switch(i)

{ case 1:

p2=cindata(); /*其他数据是否继续输入的函数*/

break;

case 2:

p2=lookdata(head); /*查看数据的函数*/

break;

case 3:

insert(); /*通过比较学号来插入数据的函数*/

break;

case 4:

find(head); /*通过姓名查找查看数据的函数*/

break;

case 5:

update(head); /*通过姓名查找来更新数据*/

break;

case 6:

save(head); /*保留数据函数*/

break;

case 7:

print(); /*显示或打印函数*/

break;

case 8:

caverage(); /*求各学生语文平均分、最高和最低分成绩的函数*/

break;

case 9:

maverage(); /*求各学生数学平均分、最高和最低分成绩的函数*/

break;

case 10:

eaverage(); /*求各学生英语平均分、最高和最低分成绩的函数*/

break;

case 11:

comaverage(); /*求各学生计算机平均分、最高和最低分成绩的函数*/

break;

case 12:

; /*空操作*/

case 13:

exit(1); /*退出*/

break;

}

scanf("%d",i);

}

}

用C语言编写一个学生成绩管理系统

// testzhidao4.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include stdio.h

#include stdlib.h

#include string.h

#include malloc.h

struct Student //学生结构体

{

char name[20]; //名字

char sex[10]; //性别

char zuanye[20]; //专业

char code[13]; //学号

char department[20]; //学院

char degree[20]; //学历

};

struct node

{

struct Student data;

struct node *next;

};

//---------------------------------------------------------------------------------

void print_menu(void) // 打印总菜单

{

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

printf(" | 总 菜 单 : |\n");

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

printf(" | 1--增加一个学生信息 | 5--删除一个学生信息 |\n");

printf(" | 2--显示一个学生信息 | 6--统计功能 |\n");

printf(" | 3--显示一个班级信息 | 7--结束 |\n");

printf(" | 4--修改一个学生信息 | \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 |\n");

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

}

void print_menu4(void ) //打印修改功能

{

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

printf(" | 修 改 功 能 : |\n");

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

printf(" | 1--修改名字 | 5--修改学院 |\n");

printf(" | 2--修改性别 | 6--修改专业 |\n");

printf(" | 3--修改学号 | 7--不作修改 |\n");

printf(" | 4--修改学历 | \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 |\n");

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

printf("再次选择选项 :");

}

void print_static_function_menu(void) //打印统计功能

{

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

printf(" | 统 计 功 能 : |\n");

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

printf(" | 1.男/女人数 | 3.一个专业人数 |\n");

printf(" | 2.一个班级人数 | 4.结束 |\n");

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

printf("请选择选项:\n");

}

int compareCode(char a[],char b[]) //比较 判断是否是同一个班级

{

for(int i=0;i9;i++)

if(a[i]!=b[i]) break;

if(i==9) return 1;

else return 0;

}

//-------------------------------------------------------------------------------------

void main() //主函数从这里开始

{

system("color 3");

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

printf(" \3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf(" \3\3\3\3\3\3\3\3\3\3 学 生 证 管 理 程 序 \3\3\3\3\3\3\3\3\n");

printf(" \3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf(" \3\3\3\3\3\3 作者: \3\3\3\3\3\3\3\n");

printf(" \3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

int choice;

struct node *studentlist=(struct node*)malloc(sizeof(struct node)); //学生链表头 //////////////////////////////////////////////////////////

studentlist-next=NULL;

struct node *temp=NULL;

struct node *p=(struct node*)malloc(sizeof(struct node));

char tempcode[13]; //临时学号

char tempclass[11]; //临时班级

char tempzuanye[20];//临时专业

int count=0;

int choice6,count_male,count_female;

const int sizeStu=sizeof(struct Student);

struct Student data;

FILE *fp;

if((fp=fopen("d:\\学生证管理程序.dat","rb"))==NULL)

{

fp=fopen("d:\\学生证管理程序.dat","wb");

}

fclose(fp);

fp=fopen("d:\\学生证管理程序.dat","rb");

while(fread(data,sizeStu,1,fp)==1)

{

p-data=data;

p-next=NULL;

if(studentlist==NULL)

studentlist=p;

else

{ temp=studentlist;

while(temp-next!=NULL){temp=temp-next;}

temp-next=p;

}

p=(struct node*)malloc(sizeof(struct node));

}

fclose(fp);

print_menu(); //打印菜单

scanf("%d",choice); //读进选项

while(choice!=7) //未遇到结束键

{

switch(choice)

{

//----------------------------------------------------------------

//选项1,增加学生学生证信息

case 1: //输入一个学生信息

p=(node*) malloc(sizeof(node));

printf("\n请输入姓名:");

scanf("%s",p-data.name);

printf("\n请输入性别(男/女):");

scanf("%s",p-data.sex);

printf("\n请输入学号(12位):");

scanf("%s",p-data.code);

printf("\n请输入学制(本科生/研究生):");

scanf("%s",p-data.degree);

printf("\n请输入学院:");

scanf("%s",p-data.department);

printf("\n请输入专业:");

scanf("%s",p-data.zuanye);

p-next=NULL;

//----------------------------------------------------------链表连接

if(studentlist==NULL) { studentlist=p; studentlist-next=NULL;}

else {

temp=studentlist;

while(temp-next!=NULL) ////////////////////

{

temp=temp-next;

}

temp-next=p;

p-next=NULL;

}

break;

//---------------------------------------------------------------------

//选项2,显示给定学生学生证信息

case 2: printf("\n请输入学生学号(12位数):");

scanf("%s",tempcode);

temp=studentlist;

while(temp!=NULL) //寻找响应的学生

{

if(strcmp(tempcode,temp-data.code)==0) break;

temp=temp-next;

}

if(temp==NULL) printf("\n不能找到该学生信息.\n");

else {

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

printf("姓名: %s\n",temp-data.name);

printf("性别: %s\n",temp-data.sex);

printf("学号: %s\n",temp-data.code);

printf("学历: %s\n",temp-data.degree);

printf("学院: %s\n",temp-data.department);

printf("专业: %s\n",temp-data.zuanye);

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

}

break;

//-----------------------------------------------------------------

//选项3,显示给定班级的学生信息

case 3:printf("\n请输入班级号 :"); //输入班级号

scanf("%s",tempclass);

while(strlen(tempclass)10) //班级号位数小于10时,重新输入

{

printf("错误的班级号,请重新输入:");

scanf("%s",tempclass);

}

count=0; //班级学生数

temp=studentlist;

while(temp!=NULL) //检索链表,并打印相应学生的学生证信息

{

if(compareCode(tempclass,temp-data.code)) {//打印属于这个班级的学生

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

printf("姓名: %s\n",temp-data.name);

printf("性别: %s\n",temp-data.sex);

printf("学号: %s\n",temp-data.code);

printf("学历: %s\n",temp-data.degree);

printf("学院: %s\n",temp-data.department);

printf("专业: %s\n",temp-data.zuanye);

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

count++;

}

temp=temp-next;

}

if(count==0) printf("该班级还未有成员.\n");

break;

//-------------------------------------------------------------------

//选项4,修改给定学生的信息

case 4: printf("请输入要作修改的学生证号:");

scanf("%s",tempcode);

temp=studentlist;

while(temp!=NULL) //寻找响应的学生

{

if(strcmp(tempcode,temp-data.code)==0) break;

temp=temp-next;

}

if(temp==NULL) printf("\n找不到相应学生的信息.\n");//找不到相应的学生

else {

int choice2;

print_menu4();

scanf("%d",choice2);

while(choice2!=7)

{

switch(choice2)

{

case 1:printf("修改名字:"); //修改名字

scanf("%s",temp-data.name);

break;

case 2:printf("修改性别:");//修改性别

scanf("%s",temp-data.sex);

break;

case 3:printf("修改学号:");//修改学号

scanf("%s",temp-data.code);

break;

case 4:printf("修改学历 :"); //修改学历

scanf("%s",temp-data.degree);

break;

case 5:printf("修改学院:"); //修改学院

scanf("%s",temp-data.department);

case 6:printf("修改专业:");//修改专业

scanf("%s",temp-data.zuanye);

break;

default: break;

}

printf("请选择选项:");

scanf("%d",choice2); //再次选择菜单选项

}

}

break;

//----------------------------------------------------------------

//选项5,删除给定学号的学生

case 5: printf("\n输入学号 :"); //输入学号

scanf("%s", tempcode);

temp=studentlist;

p=temp;

while(temp!=NULL) //寻找相应的学生

{

if(strcmp(tempcode,temp-data.code)==0) break;

p=temp;

temp=temp-next;

}

if(temp==NULL) printf("\n找不到该学生信息.\n"); //找不到

else if(temp==studentlist) {studentlist=temp-next; free(temp);}

else {

p-next=temp-next;//找到时删除

free(temp);

}

break;

//------------------------------------------------------------------

//选项6,统计功能

case 6: print_static_function_menu();

scanf("%d",choice6);//选择菜单选项

while(choice6!=4)

{

switch(choice6)

{

//选项1,统计男女个数

case 1:temp=studentlist;

count_male=0; //男生数

count_female=0; //女生数

while(temp!=NULL) //检索链表查找

{

if(strcmp(temp-data.sex,"男")==0) count_male++;

if(strcmp(temp-data.sex,"女")==0) count_female++;

temp=temp-next;

}

printf("男: %d\n",count_male);

printf("女: %d\n",count_female);

break;

//选项2,统计给定班级的人数

case 2:printf("请输入班级号:");

scanf("%s",tempclass); //给定班级

temp=studentlist;

count=0;

while(temp!=NULL) //检索链表查找

{

if(compareCode(temp-data.code,tempclass)==1) count++;

temp=temp-next;

}

printf("%s班级总人数为: %d\n",tempclass,count);

break;

case 3:printf("请输入专业:");

scanf("%s",tempzuanye); //给定专业

temp=studentlist;

count=0;

while(temp!=NULL) //检索链表查找

{

if(strcmp(temp-data.zuanye,tempzuanye)==0) count++;

temp=temp-next;

}

printf("%s专业总人数为: %d\n",tempzuanye,count);

break;

//缺省项

default: break;

}

printf("请选择选项:");

scanf("%d",choice6);

}

break;

//-----------------------------------------------------------------

default:free(p); break;

}

if((fp=fopen("d:\\学生证管理程序.dat","wb"))==NULL)

{

printf("文件无法打开!");

return;

}

p=studentlist;

while(p)

{

fwrite(p-data,sizeStu,1,fp);

p=p-next;

}

fclose(fp);

print_menu( );//打印菜单 进入循环

scanf("%d",choice);

}

}

c语言作业学生成绩管理系统

#includestdio.h

#includewindows.h

#includestring.h

#includestdlib.h

void caidan();

void denglu()

{

//定义用户名数组为char类型

char mz[20];

//定义密码数组为char类型

char mima[20];

//定义学员初始值为0

int count=0;

do

{

//清空屏幕

system("cls");

printf("\t\t\t\t学员管理系统平台\n");

printf("=============================================================================\n");

printf("\t\t【用户登陆】\n");

printf("\t\t\t\t用户名:");

fflush(stdin);

//存储用户名

scanf("%s",mz);

printf("\t\t\t\t密码:");

fflush(stdin);

//存储密码

scanf("%s",mima);

//如果输入正确,执行菜单功能

if(strcmp(mz,"kkk")==0strcmp(mima,"ok")==0)

{

caidan();

break;

}

//如果输不正确,提示登录失败

else

{

printf("登陆失败\n");

count++;

system("pause");

system("cls");

}

//超过三次退出程序

if(count=3)

{

printf("登陆失败,请稍后再试\n");

exit(5);

}

}while(1);

}

struct student

{

int num;

char name[20];

int fs[3];

int zf;

}stu[50];

//定义登录函数

void danlu(student *p)

{

printf("输入学号:");

scanf("%d",p-num);

printf("输入姓名:");

fflush(stdin);

scanf("%s",p-name);

fflush(stdin);

p-zf=0;

//循环输入三门成绩

for(int i=0;i3;i++)

{

printf("输入第%d门成绩",i+1);

scanf("%d",p-fs[i]);

p-zf=p-zf+p-fs[i];

}

}

//定义录入函数

int luru(student *p,int n)

{

//int j=0;

do

{

printf("输入第%d个学员的学号:",n+1);

scanf("%d",(p+n)-num);

fflush(stdin);

printf("输入第%d个学员的姓名:",n+1);

scanf("%s",(p+n)-name);

fflush(stdin);

(p+n)-zf=0;

for(int i=0;i3;i++)

{

printf("输入第%d个学员第%d门成绩",n+1,i+1);

scanf("%d",(p+n)-fs[i]);

(p+n)-zf=(p+n)-zf+(p+n)-fs[i];

}

n++;

printf("继续请按y键");

fflush(stdin);

//如果输入的不是‘y’,就退出

if(getchar()!='y')

break;

else

continue;

}while(1);

return n;

}

//定义排序函数

void paixu(student stu[],int h)

{

//定义一个student类型的结构tt

student tt;

for(int i=0;ih;i++)

{

for(int j=0;jh-i;j++)

{

if(stu[j].zfstu[j+1].zf)

{

tt=stu[j];

stu[j]=stu[j+1];

stu[j+1]=tt;

}

}

}

}

//定义插入函数

void charu(student stu[],int t,student s)

{

int i=0;

for( i=0;it;i++)

{

if(stu[i].zfs.zf)

break;

}

for(int j=t-1;j=i;j--)

{

stu[j+1] = stu[j];

}

stu[i]=s;

}

int cha(student stu[],int n)

{

//定义变量保存要插入学员的信息

student s;

do{

//录入单个学员信息

danlu(s);

//把学员信息插入到数组中

charu(stu,n,s);

//学员的总数要加1

n++;

printf("是否继续插入(y/n):");

fflush(stdin);

if(getchar()!='y')

break;

}while(1);

return n;

}

void shucu(student stu[],int k)

{

printf("-----------学员信息如下---------\n");

printf("学号\t姓名\t语文\t数学\t英语\t总分\n");

for(int i=0;ik;i++)

{

printf("%d\t%s\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].fs[0],stu[i].fs[1],stu[i].fs[2],stu[i].zf);

}

}

int shancu(student stu[],int n)

{

int i,xuehao;

printf("输入要删除的学号:");

scanf("%d",xuehao);

for(i=0;in;i++)

{

if(xuehao==stu[i].num)

break;

}

for(int j = i;j=n-2;j++)

stu[j] = stu[j+1];

return n-1;

}

void chazao(student stu[],int d)

{

int xuehao,i;

printf("输入要查找的学号");

scanf("%d",xuehao);

for(i=0;id;i++)

{

if(xuehao==stu[i].num)

break;

}

printf("-----------该学员信息如下---------\n");

printf("学号\t姓名\t语文\t数学\t英语\t总分\n");

printf("%d\t%s\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].fs[0],stu[i].fs[1],stu[i].fs[2],stu[i].zf);

}

void baocun(student stu[],int n)

{

FILE *fp;

fp=fopen("E:\\studentbin.txt","wb");

fwrite(stu,sizeof(struct student),n,fp);

fclose(fp);

printf("保存成功!\n");

}

void read(student stu[])

{

FILE *fp;

int a=0;

fp=fopen("E:\\studentbin.txt","rb");

a=fread(stu,sizeof(struct student),100,fp);

printf("学号\t姓名\t语文\t数学\t英语\t总分\n");

for(int i=0;ia;i++)

{

printf("%d\t%s\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].fs[0],stu[i].fs[1],stu[i].fs[2],stu[i].zf);

}

fclose(fp);

}

void caidan()

{

int i;

student stu[50];

int count=0,s=0;

do{

system("cls");

printf("\t\t\t\t请选择要进行功能菜单:\n");

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

printf("\t\t\t\t1.录入单个学员信息。\n");

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

Sleep(100);

printf("\t\t\t\t2.显示所有学员信息。\n");

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

Sleep(100);

printf("\t\t\t\t3.排序显示所有学员信息。\n");

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

Sleep(100);

printf("\t\t\t\t4.插入单个学员信息。\n");

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

Sleep(100);

printf("\t\t\t\t5.删除单个学员信息。\n");

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

Sleep(100);

printf("\t\t\t\t6.查找单个学员信息。\n");

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

Sleep(100);

printf("\t\t\t\t7.读取所有学员信息。\n");

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

Sleep(100);

printf("\t\t\t\t8.保存所有学员信息。\n");

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

Sleep(100);

printf("\t\t\t\t9.退出系统。\n");

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

scanf("%d",i);

switch(i)

{

case 1:

//录入学员

system("cls");

count = luru(stu,count);

system("pause");

break;

case 2:

//输出学员信息

system("cls");

shucu(stu,count);

system("pause");

break;

case 3:

//排序

system("cls");

paixu(stu,count);

shucu(stu,count);

system("pause");

break;

case 4:

//插入学员信息

system("cls");

count = cha(stu,count);

paixu(stu,count);

shucu(stu,count);

system("pause");

break;

case 5:

//删除学员信息

system("cls");

count = shancu(stu,count);

shucu(stu,count);

system("pause");

break;

case 6:

system("cls");

chazao(stu,count);

system("pause");

break;

case 7:

system("cls");

read(stu);

system("pause");

break;

case 8:

system("cls");

baocun(stu,count);

system("pause");

break;

case 9:

exit(8);

}

}while('0');

}

void main()

{

int m,w,n;

struct student stu[50];

denglu();

caidan();

}

急求C语言期末大作业:学生成绩管理系统!!!(并附有详解)

1、题目:

学生成绩管理程序

2、要求:

1)编制一个统计学生考试分数的管理程序。

2)设学生成绩已以一个学生一个记录的形式存储在文件中,

3)每位学生记录包含的信息有:姓名,学号和各门功课的成绩。

4)程序具有以下几项功能:求出各门课程的总分,平均分,按姓名,

5)按学号寻找其记录并显示,浏览全部学生成绩和按总分由高到低显示学生信息等。

#includeiostream

#includestring

using namespace std;

struct record

{

char name[20]; /* 姓名 */

char code[20]; /* 学号 */

int mathmark; /* 数学课程成绩 */

int englishmark; /* 英语课程成绩 */

int compmark; /* 计算机课程成绩 */

}stu[20];

int total[20][3],avg[20][3];

int student_total[20],flag[20];

void input()//从键盘输入20个学生的各项信息

{

int i;

for(i=0;i20;i++)

{

cout"输入第"i+1"个学生信息"endl;

cout"输入学生姓名:";

cinstu[i].name;

cout"输入学生学号:";

cinstu[i].code;

cout"输入数学成绩: ";

cinstu[i].mathmark;

cout"输入英语成绩: ";

cinstu[i].englishmark;

cout"输入计算机成绩: ";

cinstu[i].compmark;

coutendl;

}

}

void find_by_name(char *p)//按姓名寻找其记录并显示,如输入“张三”,即可输出该同学的学号和三门功课的成绩

{

int i;

for(i=0;i20;i++)

if(strcmp(stu[i].name,p)==0)

{

cout"学号\t""数学\t""英语\t""计算机"endl;

coutstu[i].code"\t"stu[i].mathmark"\t"stu[i].englishmark"\t"stu[i].compmarkendl;

break;

}

}

void find_by_code(char *p)//按学号寻找其记录并显示,如输入“09001”,即可输出该同学的姓名和三门功课的成绩

{

int i;

for(i=0;i20;i++)

if(strcmp(stu[i].code,p)==0)

{

cout"姓名\t""数学\t""英语\t""计算机"endl;

coutstu[i].name"\t"stu[i].mathmark"\t"stu[i].englishmark"\t"stu[i].compmarkendl;

break;

}

}

void disp()//浏览全部学生的各项信息

{

int i;

cout"姓名\t""学号\t""数学\t""英语\t""计算机"endl;

for(i=0;i20;i++)

{

coutstu[i].name"\t"stu[i].code"\t"stu[i].mathmark"\t"stu[i].englishmark"\t"stu[i].compmarkendl;

}

}

void dis_by_total()//按总分由高到低显示学生信息等

{

int i,j,n;

int temp1,temp2;

for(i=0;i20;i++)flag[i]=i;

n=19;

while(n0)

{

j=0;

for(i=0;in;i++)

if(student_total[i]student_total[i+1])

{

temp1=student_total[i];

student_total[i]=student_total[i+1];

student_total[i+1]=temp1;

temp2=flag[i];

flag[i]=flag[i+1];

flag[i+1]=temp2;

j=i;

}

n=j;

}

cout"姓名\t""学号\t""数学\t""英语\t""计算机"endl;

for(i=0;i20;i++)

{

coutstu[flag[i]].name"\t"stu[flag[i]].code"\t"stu[flag[i]].mathmark"\t"stu[flag[i]].englishmark"\t"stu[flag[i]].compmarkendl;

}

}

int main()

{

char name[20];

char code[20];

cout"请输入学生信息!!"endl;

input();

cout"\n请输入您要查找的名字:";

cinname;

find_by_name(name);

cout"\n请输入您要查找的学号:";

cincode;

find_by_code(code);

cout"\n显示所有学生信息:"endl;

disp();

cout"\n按总分由高到低显示学生信息!!"endl;

dis_by_total();

return 0;

}

自己再根据需要改改,应该可以的

C语言编写一个简单的学生成绩管理系统

C语言程序:

#include?stdio.h

#include?string.h

typedef?struct?student

{

char?name[20]; /*?姓名?*/

int?code; /*?学号?*/

int?kor,?eng,?math; /*?3门课程的成绩?*/

}STUDENT;

/*?返回输入数据?*/

STUDENT?Input();

/*?输出所有输入的数据?*/

void?Output(STUDENT?info[],?int?cnt);

/*?将输入分数转换为A-F?*/

char?grade(int?score);

int?main()

{

STUDENT?S[10];

int?cnt?=?0,?select;

int?i,?j;

int?code;

while(1)

{

printf("\t学生信息管理系统\n\n");

printf("\t\t1\t添加\n");

printf("\t\t2\t删除\n");

printf("\t\t3\t查询\n");

printf("\t\t0\t结束\n");

printf("\t\t您的选择[0-3]:");

scanf("%d",?select);

if(select??0?||?select??3)

continue;

if(select?==?0)

{

printf("退出系统!\n");

break;

}

if(select?==?1) /*?添加?*/

{

S[cnt++]?=?Input();

}

else?if(select?==?2) /*?删除?*/

{

printf("\t\t待删除学生的学号:");

scanf("%d",?code);

for(i=0;?icnt;?i++)

if(S[i].code?==?code)

break;

if(i?=?cnt)

{

printf("学号不存在,删除失败!\n");

}

else?{

for(j=i+1;?jcnt;?j++)

{

strcpy(S[j-1].name,?S[j].name);

S[j-1].code?=?S[j].code;

S[j-1].kor?=?S[j].kor;

S[j-1].eng?=?S[j].eng;

S[j-1].math?=?S[j].math;

}

cnt--;

printf("删除成功!\n");

}

}

else /*?查询?*/

{

printf("\t\t待查找学生的学号:");

scanf("%d",?code);

for(i=0;?icnt;?i++)

if(S[i].code?==?code)

break;

if(i?=?cnt)

{

printf("学号不存在,查找失败!\n");

}

else

{

printf("\t查询结果:\n");

Output(S,?i);

}

}

}

return?0;

}

/*?返回输入数据?*/

STUDENT?Input()

{

STUDENT?stu;

printf("\t\t新学生信息\n");

printf("\t\t学号:");

scanf("%d",?stu.code);

printf("\t\t姓名:");

getchar();

gets(stu.name);

printf("\t\t3门课程成绩(以空格分隔):");

scanf("%d%d%d",?stu.kor,?stu.eng,?stu.math);

return?stu;

}

/*?输出所有输入的数据?*/

void?Output(STUDENT?info[],?int?cnt)

{

printf("学号:%d\n",info[cnt].code);

printf("姓名:");

puts(info[cnt].name);

printf("成绩:%c?%c?%c\n",?grade(info[cnt].kor),?grade(info[cnt].eng),?grade(info[cnt].math));

}

/*?将输入分数转换为A-F?*/

char?grade(int?score)

{

if(score??0?||?score??100)

return?'F';

if(score?=?90)

return?'A';

if(score?=?80)

return?'B';

if(score?=?70)

return?'C';

if(score?=60)

return?'D';

else

return?'E';

}

运行测试:

(责任编辑:IT教学网)

更多

推荐网页制作视频教程文章