C语言程序设计-学生成绩记录簿设计.doc
《C语言程序设计-学生成绩记录簿设计.doc》由会员分享,可在线阅读,更多相关《C语言程序设计-学生成绩记录簿设计.doc(22页珍藏版)》请在三一文库上搜索。
1、课程设计报告书学生成绩记录簿设计班 级: 0953-1学 号: 20097268姓 名: 赵文龙指导老师: 杨 子 光石家庄铁道大学四方学院2010年7月11日课程设计报告内容1. 选择题目题目:学生成绩记录薄设计2. 内容摘要摘要:本系统实现学生成绩信息的管理与查询,程序具有包括学生信息查询,如姓名,C语言成绩,成绩分段查看等;同时可以C语言成绩信息以及学生情况进行修改,删除和添加。另外还要做到可以对学生成绩信息以及成绩信息查询和维护。程序应具有以下编程思想:1.各模块间通过菜单切换和调用2.主函数通过调用菜单函数实现对各功能模块的调用,各功能模块间根据需要可相互调用。3.程序能够保证各模块
2、功能的独立和数据共享。/*不使用全局变量则能保证函数之间的独立性,利用形参与实参之间的数值传递来实现数据共享*/4.相近功能以级联菜单的形式集成。5.本模块由创建文件以磁盘文件的形式保存。3. 索引关键词关键词:管理与查询,信息链表,信息维护。目 录1.题目要求 042.设计思想 043.系统完成功能及框图 044.界面设计 055.核心算法及说明 176.结论 197.参考资料 198.后记 209.附录 205.正文第一部分:题目要求编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;
3、(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、6079、8089、90分以上各分数段的学生信息(可选)第二部分:设计思想1分析程序的功能要求,划分程序功能模块。 2. 画出系统流程图。 3. 代码的编写。定义数据结构和各个功能子函数。 4. 程序的功能调试。 5. 完成系统总结报告以及使用说明书 第三部分:系统完成功能及框图1.学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息2.信息查询时可实现按姓名查询、按学号查询3.输入任意的一个学生名字(如花花)
4、或一个学号(如20097268),统计出在此学生的成绩情况。框图:学生成绩记录簿*1. 成绩录入2. 查询3. 修改4. 增加5. 显示6. 统计7. 删除0. 退出*主模块学生成绩录入学生成绩添加添加学生信息删除学生信息学生信息查询学生成绩显示学生成绩删除学生信息统计修改学生信息按学号删除按成绩删除学生优秀人数退出程序不及格的人数及格的人数按姓名查询按学号查询第四部分:界面设计#include #include #include #include #define N 20typedef struct char name10; int num; float c;stu;/菜单void menu
5、() /*便于操作员使用*/ /*清屏*/ system(cls); printf(nnnnttt 学生平时成绩管理n); printf(ttt=n); printf(ttt 1.成绩录入n); printf(ttt 2.查询n); printf(ttt 3.修改n); printf(ttt 4.插入n); printf(ttt 5.显示n); printf(ttt 6.统计n); printf(ttt 7.删除n); printf(ttt 0.退出n); printf(ttt=n); printf(ttt请选择相应的功能:);/成绩录入void input() FILE *fp; stu x
6、s; /*定义一个结构体变量来装从文件中读出来的数据*/ if(fp=fopen(student.dat,ab)=NULL) printf(cant 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,&xs.num,&xs.c); fwrite(&xs,sizeof(stu),1,fp); /将成绩信
7、息写入文件 fclose(fp);/姓名定义void xingming() FILE *fp; stu xs; char name10; printf(n输入要查学生的姓名: );scanf(%s,name); if(fp=fopen(student.dat,rb)=NULL) printf(cant open file!n);exit(0); while(!feof(fp) fread(&xs,sizeof(stu),1,fp); if(strcmp(xs.name,name)=0)/*按姓名查询时判断输入的姓名是否存在,会循环从数据中找取*/ printf( 学生的信息如下:n); pri
8、ntf(n%10s %6s %6s n,姓名,学号,C语言); printf(%10s %6d %6.2f n,xs.name,xs.num,xs.c); 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(cant open file!n);exit(0); while(!feof(fp)
9、fread(&xs,sizeof(stu),1,fp); if(xs.num=num)/*按学号查询时判断输入的学号是否存在,会循环从数据中找取*/ printf( 学生的信息如下:n); printf(n%10s %6s %6s n,姓名,学号,C语言); printf(%10s %6d %6.2f n,xs.name,xs.num,xs.c); break; if(feof(fp) printf(查找失败!); fclose(fp);/查询void search() char ch1; system(cls); printf(请输入按何种方式查询:n); printf(1-姓名,2-学号:
10、); ch1=getchar();/*用字符接收*/ switch(ch1)/*判断*/ case 1:xingming();break; case 2:xuehao();break; getch();/*让屏幕停留同时按任意键返回*/修改:输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;void modi1() stu xs; FILE *fp; char name10; system(cls); printf(n输入要查学生的姓名: );scanf(%s,name); if(fp=fopen(student.dat,rb+)=NULL) printf(cant
11、 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 n,姓名,学号,C语言); printf(%10s %6d %6.2f n,xs.name,xs.num,xs.c); printf(n请输入该生的C语言成绩:);scanf(%f,&xs.c); break; if(!feof(fp) printf( n 修改后的学生的信息如下:n)
12、; printf(n%10s %6s %6s n,姓名,学号,C语言); printf(%10s %6d %6.2f n,xs.name,xs.num,xs.c); fseek(fp,-sizeof(stu),1);/*负号表示后退,1表示文件当前位置*/ fwrite(&xs,sizeof(stu),1,fp);/*再写入,同时把要修改的那个覆盖掉*/ else printf(n学生不存在,修改失败!); fclose(fp); getch();/修改:输入学生的学号,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;void modi2() stu xs; FILE *fp;
13、int num; system(cls); printf(n输入要查学生的学号: );scanf(%d,&num); if(fp=fopen(student.dat,rb+)=NULL) printf(cant 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 n,姓名,学号,C语言); printf(%10s %6d %6.2f n,xs.name,xs.n
14、um,xs.c); printf(n请输入该生的C语言成绩:);scanf(%f,&xs.c); break; if(!feof(fp) printf( n 修改后的学生的信息如下:n); printf(n%10s %6s %6s n,姓名,学号,C语言); printf(%10s %6d %6.2f n,xs.name,xs.num,xs.c); fseek(fp,-sizeof(stu),1);/*负号表示后退,1表示文件当前位置*/ fwrite(&xs,sizeof(stu),1,fp);/*再写入,同时把要修改的那个覆盖掉*/ else printf(n学生不存在,修改失败!); f
15、close(fp); getch();/修改void search1() char ch1; system(cls); printf(请输入按何种方式修改:n); printf(1-姓名,2-学号:); ch1=getchar();/*用字符接收*/ switch(ch1)/*判断*/ case 1:modi1();break; case 2:modi2();break; getch();/*让屏幕停留同时按任意键返回*/插入:输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果。void insert() int i=0,j,k,le
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 学生 成绩 记录簿 设计
链接地址:https://www.31doc.com/p-3257874.html