2022年2022年教务信息管理系统 .pdf
《2022年2022年教务信息管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年教务信息管理系统 .pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、包括:学生基本信息,如学号,姓名,性别,年龄,等;2.学生选修课程基本信息,包括课程编号, 课程名称,考试成绩,平时成绩,综合成绩,学分,重修否,若重修,需考虑重修学期,重修成绩,并考虑多次重修情况。只能用C 语言,要有用户界面,必须用结构体和链表等数据结构。/*-1-*/ #include #include /*头文件 */ #include #include #include #include #include #include #define NULL 0 #define ESC 0 x001b /* 退出 */ #define F1 0 x3b00 /* 查看帮助信息,调用HelpMa
2、ssage() 函数 */ #define F2 0 x3c00 /*输入学生成绩 */ #define F3 0 x3d00 /* 按学号查找 */ #define F4 0 x3e00 /*按姓名查找 */ #define F5 0 x3f00 /*列出所有学生成绩 */ #define F6 0 x4000 /* 统计*/ struct stuType /*定义结构体变量 */ char NO11; /*学号长度为 10*/ char XM10; char AGE2; /*年龄长度为 2*/ float CJ4; /*包含 4 门成绩 */ 名师资料总结 - - -精品资料欢迎下载 -
3、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - ; /*-2-*/ int JY_NO(char *stu_num,FILE *fp) /*检验学号的正确性 */ struct stuType stud; int NO; char *p=stu_num; if(strcmp(stu_num,#)=0) return 1; /*若输入 #返回真值 ,不再循环输入*/ while(*p!=0) /*学号必须是数字,否则返回重新输入*/ NO=(int)*p; if(NO57)
4、 puts(ttUndefined SN!Please input again!n);/*非法学号 !请重新输入 !*/ return 0; else p+; /*指针加 1*/ if(strlen(stu_num)!=10) /*若学号长度不为 10,则返回重新输入 */ puts(ttLength of SN Error!n);/*学号长度不对 */ return 0; if(getchar()!=n) /*若学号后面的字符不是回车符,则学号长度大于10*/ printf(ttThe length of SN should more than 10!Please input again!n
5、);/* 学号长度大于 10 个,请重新输入 */ dowhile(getchar()!=n); /*用 getchar 接收多余的字符 */ return 0; else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - rewind(fp); /*使文件指针指向头 */ while(!feof(fp) /*若文件指针未到结尾 ,就继续执行下面的循环 ,feof 遇到文件结束符返回非零值,否则返回 0*/ fread(&stu
6、d,sizeof(struct stuType),1,fp); /*读取一定长度的数据 */ if(strcmp(stu_num,stud.NO)=0) /*学号的唯一性 */ printf(tt Repeat SN,Please input again!n);/*学号重复 !请重新输入 */ printf(ttThe Record of this student:n);/*该学生成绩如下 */ printf(ttChinese:%.1fn,stud.CJ0);/*语文*/ printf(ttMath:%.1fn,stud.CJ1);/*数学*/ printf(ttEnglish:%.1fn,
7、stud.CJ2);/*英语*/ printf(ttTotal:%.1fn,stud.CJ3);/*总评*/ return 0; return 1; /*-3-*/ int JY_NO2(char *stu_num) /*检验学号 */ int NO; char *p=stu_num; if(strcmp(stu_num,#)=0)return 1; /*若输入 “#”,则返回真值结束 */ if(strlen(stu_num)!=10) /*学号长度不为 10*/ puts(ttLength of SN Error!n);/*学号长度不对 */ return 0; while(*p!=0)
8、/*学号必须用数字 ,若包含有字母,或其它字符则返回假值重新输入 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - NO=(int)*p; if(NO57) puts(ttUndefined SN!Please input again!n);/*非法学号 !请重新输入 */ return 0; else p+; /*指针加 1*/ if(getchar()!=n) /*检验学号长度是否大于10,并把多余的字符去掉 */ p
9、rintf(ttThe length of SN should more than 10!Please input again!n);/* 学号长度大于 10 个,请重新输入 */ dowhile(getchar()!=n); return 0; return 1; /*-4-*/ int JY_XM(char *stu_XM) /*检验姓名 */ int PD; char *p; p=stu_XM; while(*p!=0) /*姓名只能用英文 */ PD=(int)*p; if(PD0) puts(ttName should use English, Please input again!
10、n);/*姓名只能用英文请重新输入 */ return 0; else p+; /*使指针加 1,指向下一汉字 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 17 页 - - - - - - - - - if(getchar()!=n) /*姓名长度不得大于5 个*/ printf(ttThe length of Name is more than 5, Please input again!n);/*姓名长度大于 5 个请重新输入 */ dowhile(getc
11、har()!=n); return 0; return 1; /*字符串全为汉字返回真 */ /*-5-*/ int JY_AGE(float stu_AGE) /*年龄只能在 0100 之间*/ if(stu_AGE100) printf(ttInput Error! Record should between 0100!n);/*输入错误 ,成绩只能在 0100 之间*/ return 0; return 1; /*-6-*/ int JY_CJ(float stu_CJ) /*学生成绩只能在 0100 之间*/ if(stu_CJ100) printf(ttInput Error! Re
12、cord should between 0100!n);/*输入错误 ,成绩只能在 0100 之间*/ return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - return 1; /*-7-*/ void CreatFile() /*输入文件 */ FILE *fp; struct stuType stu,stu0=,; /*对 stu0 xianfuzhi*/ fp=fopen(stu.dat,wb+); /*打
13、开或创建一个二进制文件,打开时将原来的内容删除 */ if(fp=NULL) printf(ttFile opens Error!ntttPress Anykey back.);/*文件打开失败 ,按任意键返回 */ getch(); return; else while(1) stu=stu0; do printf(nttPlease input SN:); /*输入学号并检验其正确性*/ scanf(%10s,stu.NO); while(!JY_NO(stu.NO,fp); if(strcmp(stu.NO,#)=0)break; do printf(nttPlease input Na
14、me:); /*输入姓名并检验其正确性*/ scanf(%10s,stu.XM); while(!JY_XM(stu.XM); do printf(nttPlease input age:); /*输入年龄绩并检验其正确性*/ scanf(%f,&stu.AGE); while(!JY_AGE(stu.AGE0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 17 页 - - - - - - - - - do printf(nttPlease input record
15、 of Chinese:); /*输入成绩并检验其正确性*/ scanf(%f,&stu.CJ0); while(!JY_CJ(stu.CJ0); do printf(nttPlease input record of Math:); /*同上*/ scanf(%f,&stu.CJ1); while(!JY_CJ(stu.CJ1); do printf(nttPlease input record of English:); scanf(%f,&stu.CJ2); while(!JY_CJ(stu.CJ2); do printf(nttPlease input record of Total:
16、); scanf(%f,&stu.CJ3); while(!JY_CJ(stu.CJ3); fwrite(&stu,sizeof(struct stuType),1,fp); /*写文件 */ fclose(fp); /*关闭文件 */ /*-8-*/ void Search_Xuehao() /*按学号查询 */ FILE *fp; int flag; struct stuType stu,stud; fp=fopen(stu.dat,rb); if(fp=NULL) /*若文件打不开则输出下面的信息*/ printf(ttFile opens Error!ntttPress Anykey
17、back.); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - getch(); return; else do puts(nttPress# or search); do printf(ttPlease input the SN what you want:); scanf(%10s,stu.NO); while(!JY_NO2(stu.NO); if(strcmp(stu.NO,#)=0)break; /*若输入 “#”则
18、结束循环 */ flag=0; rewind(fp); while(fread(&stud,sizeof(struct stuType),1,fp) /*检查文件指针结束*/ if(strcmp(stu.NO,stud.NO)=0) /*比较学号 */ puts(ttThe Record of this student:); printf(ttSN:%sn,stud.NO); printf(ttName:%sn,stud.XM); printf(ttAGE:%.1fn,stud.AGE0); printf(ttChinese:%.1fn,stud.CJ0); printf(ttMath:%.1
19、fn,stud.CJ1); printf(ttEnglish:%.1fn,stud.CJ2); printf(ttTotal:%.1fn,stud.CJ3); flag=1; /*记录学号是否查到 */ if(flag=0)puts(ttUndefined SN); while(strcmp(stu.NO,#)!=0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 17 页 - - - - - - - - - fclose(fp); /*关闭文件 */ /*-9-*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年教务信息管理系统 2022 教务 信息管理 系统
限制150内