1、1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、 数据结构设计: 程序设计中用到的结构体类型: 学生信息结构体类型:typedef struct student char nameMAX; int numMAX; char sexMAX; int chinese; int mathematic; int english; int computer; struct student *next; 程序代码:/原始密码是123456#includestdi
2、o.hstddef.hstring.h#define MAX 10typedef struct student /*定义结构体*/ /*姓名*/ /* 学号*/ /*性别*/ /*语文*/ /* 数学*/ /*英语*/ /*计算机*/ /*结构体指针*/ stu;stu *head; /*头指针*/void print() /*显示或打印函数*/ system(cls); printf(tttScore Manage Systemn /*成绩管理系统*/ Enter Recordt /*输入数据*/2Displayt /*显示*/3Insertt /*插入数据*/4Questt /*访问数据*
3、/5Updatet /*以前数据*/6Savet /*保留数据*/7Fresht /*更新数据*/8Chinese Averaget /*语文平均成绩*/9Math Averaget /*数学平均成绩*/10English Averaget /*英语平均成绩*/11Computer Averaget /*计算机平均成绩*/12Quittn /*退出*/void cin(stu *p1) /*输入相关数据的函数*/ printf(Enter name:n scanf(%s,&p1-name);Enter num:%dnum);Enter sex:sex);Enter score:Enter ch
4、inese:chinese);Enter math:mathematic);Enter English:english);Enter Computer:computer); stu *cindata() /*其他数据是否继续输入的函数*/ stu *p1,*p2; int i=1; char ch; p1=(stu *)malloc(sizeof(stu); head=p1; while(i) cin(p1);Do you Want to Continue?yes or no /*是否继续输入数据*/ ch=getchar(); if(ch=n|ch=N) i=0; p1-next=NULL;
5、 else p2=p1; p2-next=p1; return(p1-next);stu *lookdata(stu *p1) /*查看数据的函数*/ while(p1!=NULL)Num:%dt,p1-Name:%stSex:Chinese:Math:English:Computer: p1=p1-next; return p1;void insert() /*通过比较学号来插入数据的函数*/ stu *p1,*p3,*p2; p1=head; p3=(stu *)malloc(sizeof(stu); p3- if(head=NULL) head=p3; return; cin(p3);=
6、NULL&(p1-numnum) /*通过学号的比较来插入*/p1=p1- if(p2=head) p3-next=head; head=p3;next=p3;find(stu *p2) /*通过姓名查找查看数据的函数*/ char name20; int b=0;Enter the name of the student you want to find: /*通过姓名查看*/,name); while(p2! if(strcmp(name,p2-name)=0)The data you want has be foundn Name:,p2-sex%st b=1; else if(b=0)
7、sorry not find data! p2=p2- if(b=1) print();Find onen print();Not findnvoid caverage() /*求各学生语文平均分、最高和最低分成绩的函数*/ stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; if(p1=NULL)not data! for(i=0;p1!=NULL;i+,p1=p1-next) sum+=p1-chinese; aver=sum/i; for(i=0; if(max if(min min=p1-Chinese Aver
8、age:%f,aver);Chinese Max:,max);Chinese Min:,min); void maverage() /*求各学生数学平均分、最高和最低分成绩的函数*/mathematic;mathematic)Mathe Average:Mathe Max:Mathe Min: void eaverage() /*求各学生英语平均分、最高和最低分成绩的函数*/english;english)English Average:English Max:English Min:void comaverage() /*求各学生计算机平均分、最高和最低分成绩的函数*/computer;co
9、mputer)Computer Average:Computer Max:Computer Min: update(stu *p2) /*通过姓名查找来更新数据*/ char name10; /*p2为指向结构体struct student的指针*/Enter The Name /*输入姓名*/Find you datanenglish:Success!Sorry not Find data! if(b=0)Finish! save(stu *p2) /*保留数据函数*/ FILE *fp; char file10;Enter file name /*输入文件名*/,file); fp=fop
10、en(file,w fprintf(fp, fclose(fp);char password7=123456; /*定义初始密码*/void main() /*主函数*/ int choice; stu *p2; char s8; int flag=0,i; /*标志项*/ int n=3; do printf(Enter password:,s); if(!strcmp(s,password) /*进行密码匹配验证*/PASSnnn flag=1; break; elseError Enter again: n-; while(n0);flag) printf(you have Enter
11、3 times! /*输入密码超过了3次!*/ exit(0); /*自动退出*/ /*密码验证成功后进入的界面*/tttn /*操作界面*/ttWelcom to the MisnAuthor:-tClass:-tNum:-n /*作者,班级和号码*/Adress:HGn /*地址*/%nttEnter OP:nnnn=tt=nttEnter the MIS yes or non /*问进入系统与否*/choice); if(choice=|choice= exit(1); while(1)Enter choice:i); if(i13)Enter num from 1 to 13: /*再
12、从1-13中进行选择*/ switch(i) case 1: p2=cindata(); /*其他数据是否继续输入的函数*/ case 2: p2=lookdata(head); /*查看数据的函数*/ case 3: insert(); /*通过比较学号来插入数据的函数*/ case 4: find(head); /*通过姓名查找查看数据的函数*/ case 5: update(head); /*通过姓名查找来更新数据*/ case 6: save(head); /*保留数据函数*/ case 7: /*显示或打印函数*/ case 8: caverage(); /*求各学生语文平均分、最高
13、和最低分成绩的函数*/ case 9: maverage(); /*求各学生数学平均分、最高和最低分成绩的函数*/ case 10: eaverage(); /*求各学生英语平均分、最高和最低分成绩的函数*/ case 11: comaverage(); /*求各学生计算机平均分、最高和最低分成绩的函数*/ case 12: ; /*空操作*/ case 13: 程序中出现的问题及解决方法问题一、学生初始信息模块:当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。解决办法及步骤:1、一个个输出所有的学生的学号,检查文件中是否有此学生,发现有。 2、既然有此学生,那么检查循环判断是否有此学生的语句发现没有错 3、输出用于循环检查语句中的学生信息,发现乱码 4、仔细分析乱码的原因,最后发现是变量的类型错误,错将学生类型的结构体指针变量定义为了其他类型的指针变量。问题二、查询模块:当正确输入查找信息时,系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2