学生成绩管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通过课程设计培养了我的动手能力以及综合运用所学的C++语言基础 理论,基础知识,基本技能,进行程序分析和程序开发,提高在实际开 发中解决问题的能力,达到了能够利用C++语言进行应用程序的规划, 分析,设计和实施,更能进一步使我对这门语言有深刻的理解和更好的 得到巩固,更能对我所学的知识得到检验。 2、对《学生成绩管理系统》的介绍 具体的功能: (1)帮助 (2)输入数据并存入文件 (3)根据学号查询成绩 (4)根据姓名查询成绩 (5)输出文件内容 (6)统计及格和优秀人数 (7)退出 (1)帮助 运行程序,屏幕出现该程序界面,第一项就是帮助,在按下“F1”后 出现帮助信息,“此系统是应老师所布置的作业编制而成,该系统具有 存贮学生数据,按学号、姓名查询,列出学生成绩和统计功能。使用方 法:系统输入数据后,将在当前目录中建立一个名为stu.dat文件,用 于保存输入的数据。学号输入只能用数字输入,并且学号只能是10位。 姓名输入符合中国人的姓名,只能用中文,且最长为5个汉字。” (2)输入数据并存入文件 在界面状态下,按下“F2”后出现“请输入学号:”,若输 入“#”,则返回真值结束输入。在其后面可以输入学生的学号,长度 要求10位而且必须是数字,这里用到了结构体变量和函数,对输入的字 符进行判断,如果输入字母和汉字会出现“非法学号!请重新输 入。”,如果学号长度不为10,则返回重新输入提示“学号长度不 对。”, 如果学号后面的字符不是回车符,则学号长度大于10提 示“学号长度大于10个!请重新输入!” 输入完学号后会出现提示“请 输入姓名:”,在其后面可以输入学生的姓名,姓名必须是汉字而且长 度必须是5, 这里也用到了结构体变量和函数,对输入的字符进行判 断,如果输入为字母和数字会提示“姓名只能用中文,请重新输 入!”,如果输入的汉字长度大于5会提示“姓名长度大于5个!请重新 输入!”,输入姓名后会出现“请输入数学成绩:”、“ 请输入英语成 绩:”和“请输入总评成绩:”输入规则也和前面输入学号、姓名的类 似,判断输入的是否为数字,如果不是就会出现提示,重新输入,直到
#define ESC 0x001b /* 退出 */ #define F1 0x3b00 /* 查看帮助信息,调用HelpMassage()函数 */ #define F2 0x3c00 /*输入学生成绩*/ #define F3 0x3d00 /*按学号查找*/ #define F4 0x3e00 /*按姓名查找*/ #define F5 0x3f00 /*列出所有学生成绩*/ #define F6 0x4000 /*统计*/ struct stuType /*定义结构体变量*/ { char NO[11]; /*学号长度为10*/ char XM[10]; float CJ[4]; /*包含4门成绩*/ }; /*-------------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(NO<48||NO>57) { puts("\t\t\t非法学号!请重新输入!\n"); return 0; } else p++; /*指针加1*/ } if(strlen(stu_num)!=10) /*若学号长度不为10,则返回重新输 入*/ { puts("\t\t\t学号长度不对!\n"); return 0; } if(getchar()!='\n') /*若学号后面的字符不是回车符,则学 号长度大于10*/
} return 1; } /*-------------5-------------*/ int JY_CJ(float stu_CJ) /*学生成绩只能在0~100之间*/ { if(stu_CJ<0||stu_CJ>100) { printf("\t\t\t输入错误,成绩只能在0~100之间!\n"); return 0; } return 1; } /*-------------6-------------*/ void CreatFile() /*输入文件*/ { FILE *fp; struct stuType stu,stu0={"","",}; /*对stu0先赋值*/ fp=fopen("stu.dat","wb+"); /*打开或创建一个二进制文件,打 开时将原来的内容删除*/ if(fp==NULL) { printf("\t\t\t文件打开失败!\n\t\t\t按任意键返回..."); getch(); return; } else { while(1) { stu=stu0; do{ printf("\n\t\t\t请输入学号:"); /*输入学号并检验其正 确性*/ scanf("%10s",stu.NO); }while(!JY_NO(stu.NO,fp)); if(strcmp(stu.NO,"#")==0)break; do{ printf("\n\t\t\t请输入姓名:"); /*输入姓名并检验其正 确性*/ scanf("%10s",stu.XM); /*字符串全为汉字返回真*/
{ */
Fra Baidu bibliotek
printf("\t\t\t学号长度大于10个!请重新输入!\n"); do{}while(getchar()!='\n'); /*用getchar接收多余的字符 return 0; }
else { rewind(fp); /*使文件指针指向头*/ while(!feof(fp)) /*若文件指针未到结尾,就继续执行下面的 循环,feof遇到文件结束符返回非零值,否则返回0*/ { fread(&stud,sizeof(struct stuType),1,fp); /*读取一定长度 的数据*/ if(strcmp(stu_num,stud.NO)==0) /*学号的唯一性*/ { printf("\t\t\t学号重复,请重新输入!\n"); printf("\t\t\t该学生成绩如下:\n"); printf("\t\t\t语文:%.1f\n",stud.CJ[0]); printf("\t\t\t数学:%.1f\n",stud.CJ[1]); printf("\t\t\t英语:%.1f\n",stud.CJ[2]); printf("\t\t\t总评:%.1f\n",stud.CJ[3]); 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("\t\t\t学号长度不对!\n"); return 0;
学生成绩管理系统论文--课程设计powered by 25175.net 1、 对C++设计的《学生成绩管理系统》总体说明 系统上采用BC31编译器作为开发环境,这个环境是我们在学习C++的 平台,这个编译器功能完善,使用方便。我作的这次课程设计是《学生 成绩管理系统》,它的主要功能是对学生的成绩进行修改和管理,而且 方便快速,这个程序虽然简单,但是可以作为老师的辅助软件,对学生 的各种成绩进行管理。 系统功能要求: (1)界面 **************************** 学生成绩管理系统 **************************** ************************************ ** F1 --帮助 ** ** F2 --输入数据并存入文件 ** ** F3 --根据学号查询成绩 ** ** F4 --根据姓名查询成绩 ** ** F5 --输出文件内容 ** ** F6 --统计及格和优秀人数 ** ** ESC--退出系统 ** ************************************ (2)功能 这个程序的主要功能是输入学生的学号、姓名对其进行存储,在存 储后可以对学生的成绩按学号和姓名进行查寻。该系统具有存贮学生数 据,按学号、姓名查询,列出学生成绩和统计功能。使用方法:系统输 入数据后,将在当前目录中建立一个名为stu.dat文件,用于保存输入 的数据。学号输入只能用数字输入,并且学号只能是10位。姓名输入符 合中国人的姓名,只能用中文,且最长为5个汉字。此程序在BC2.0下运 行通过由于是第一次用C++编写,所以水平有限此系统还有许多不够完 整和严密性,敬请老师指正! (3)实用性 《学生成绩管理系统》是对学生的成绩进行修改和管理,而且方便快 速,这个程序虽然简单,但是可以作为老师的辅助软件,对学生的各种 成绩进行管理。 目的:
} while(*p!='\0') /*学号必须用数字,若包含有字母,或其它 字符则返回假值重新输入*/ { NO=(int)*p; if(NO<48||NO>57) { puts("\t\t\t非法学号!请重新输入!\n"); return 0; } else p++; /*指针加1*/ } if(getchar()!='\n') /*检验学号长度是否大于10,并把多余 的字符去掉*/ { printf("\t\t\t学号长度大于10个!请重新输入!\n"); do{}while(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(PD>0) { puts("\t\t\t姓名只能用中文,请重新输入!\n"); return 0; } else p++; /*使指针加1,指向下一汉字*/ } if(getchar()!='\n') /*姓名长度不得大于5个*/ { printf("\t\t\t姓名长度大于5个!请重新输入!\n"); do{}while(getchar()!='\n'); return 0;
输入正确为止。都输入完成后,改系统会调用写文件函数对指定的文件 进行写操作,把输入的学生信息写入到文件中。 (3)根据学号查询成绩 在界面状态下,在按下“F3”后会出现“请输入要查询的学号:” 输入“#”结束查询,若文件打不开则输出下面的信息,“文件打开失 败!按任意键返回...”,如果文件打开会按照用户的要求从文件头开始 查询满足要求的学号,找到即显示该学生的基本信息和成绩。如果未找 到就会显示“无此学号”。 (4)根据姓名查询成绩 在界面状态下,在按下“F4”后会出现“请输入要查询的学生姓 名:” 输入“#”结束查询,若文件打不开则输出下面的信息,“文件 打开失败!按任意键返回...”,如果文件打开会按照用户的要求从文件 头开始查询满足要求的姓名,找到即显示该学生的基本信息和成绩。如 果未找到就会显示“无此学生!”。 (5)输出文件内容 输出文件,列出所有学生成绩。如果文件未打开会出现“文件打开失 败!按任意键返回...”打开成功会每输出20个学生成绩,停一下提 示,“请按任意键继续...”,关闭文件。 (6)统计及格和优秀人数 这里用到结构体函数和变量,判断成绩大于等于60分的为及格,并 统计人数,判断成绩大于等于80分的为优秀,并统计人数,最后统计出 来,显示在屏幕上。 (7)退出 在界面状态下,按下“ESC”会退出该学生成绩管理系统。返回源程 序。 程序清单 /*-------------1-------------*/ #include<bios.h> #include<dos.h> /*头文件*/ #include<conio.h> #include<ctype.h> #include<process.h> #include<stdlib.h> #include<stdio.h> #include<string.h> #define NULL 0
相关文档
最新文档