资源描述:
《教务信息管理系统.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、包括:学生基本信息,如学号,姓名,性别,年龄,等;2.学生选修课程基本信息,包括课程编号,课程名称,考试成绩,平时成绩,综合成绩,学分,重修否,若重修,需考虑重修学期,重修成绩,并考虑多次重修情况。只能用C语言,要有用户界面,必须用结构体和链表等数据结构。/*-------------1-------------*/#include#include/*头文件*/#include#include#include#include#include#inclu
2、de#defineNULL0#defineESC0x001b/*退出*/#defineF10x3b00/*查看帮助信息,调用HelpMassage()函数*/#defineF20x3c00/*输入学生成绩*/#defineF30x3d00/*按学号查找*/#defineF40x3e00/*按姓名查找*/#defineF50x3f00/*列出所有学生成绩*/#defineF60x4000/*统计*/structstuType/*定义结构体变量*/{charNO[11];/*学号长度为10*/charXM[10];charAGE[2];/*年龄长度为2*/fl
3、oatCJ[4];/*包含4门成绩*/};/*-------------2-------------*/intJY_NO(char*stu_num,FILE*fp)/*检验学号的正确性*/{structstuTypestud;intNO;char*p=stu_num;if(strcmp(stu_num,"#")==0)return1;/*若输入"#"返回真值,不再循环输入*/while(*p!=' ')/*学号必须是数字,否则返回重新输入*/{NO=(int)*p;if(NO<48
4、
5、NO>57){puts("ttUndefinedSN!Pleaseinputagain
6、!");/*非法学号!请重新输入!*/return0;}elsep++;/*指针加1*/}if(strlen(stu_num)!=10)/*若学号长度不为10,则返回重新输入*/{puts("ttLengthofSNError!");/*学号长度不对*/return0;}if(getchar()!='')/*若学号后面的字符不是回车符,则学号长度大于10*/{printf("ttThelengthofSNshouldmorethan10!Pleaseinputagain!");/*学号长度大于10个,请重新输入*/do{}while(getchar()
7、!='');/*用getchar接收多余的字符*/return0;}else{rewind(fp);/*使文件指针指向头*/while(!feof(fp))/*若文件指针未到结尾,就继续执行下面的循环,feof遇到文件结束符返回非零值,否则返回0*/{fread(&stud,sizeof(structstuType),1,fp);/*读取一定长度的数据*/if(strcmp(stu_num,stud.NO)==0)/*学号的唯一性*/{printf("ttRepeatSN,Pleaseinputagain!");/*学号重复!请重新输入*/printf("tt
8、TheRecordofthisstudent:");/*该学生成绩如下*/printf("ttChinese:%.1f",stud.CJ[0]);/*语文*/printf("ttMath:%.1f",stud.CJ[1]);/*数学*/printf("ttEnglish:%.1f",stud.CJ[2]);/*英语*/printf("ttTotal:%.1f",stud.CJ[3]);/*总评*/return0;}}}return1;}/*-------------3-------------*/intJY_NO2(char*stu_num
9、)/*检验学号*/{intNO;char*p=stu_num;if(strcmp(stu_num,"#")==0)return1;/*若输入“#”,则返回真值结束*/if(strlen(stu_num)!=10)/*学号长度不为10*/{puts("ttLengthofSNError!");/*学号长度不对*/return0;}while(*p!=' ')/*学号必须用数字,若包含有字母,或其它字符则返回假值重新输入*/{NO=(int)*p;if(NO<48
10、
11、NO>57){puts("t