C语言程序设计学生成绩记录簿设计
课程设计报告书 学生成绩记录簿设计 班级:0953-1 学号:20097268 姓名:赵文龙 指导老师:杨子光 石家庄铁道大学四方学院 2010年7月]]日 课程设计报告内容 1. 选择题目 题目:学生成绩记录薄设计 2. 内容摘要 才商要:本系统实现学生成绩信息的管理与查询,程序具有包括学生信息查询, 如姓名,c语言成绩,成绩分段查看等;同时可以c语言成绩信息以及学生情 况进行修改,删除和添加。另外还要做到可以对学生成绩信息以及成绩信息查 询和维护。 程序应具有以下编程思想: 1 .各模块间通过菜单切换和调用 2. 主函数通过调用菜单函数实现对各功能模块的调用,各功能模块间根据需要 可相互调用。 3. 程序能够保证各模块功能的独立和数据共享。/*不使用全局变量则能保证函数 之间的独立性,利用形参与实参之间的数值传递来实现数据共享*/ 4. 相近功能以级联菜单的形式集成。 5 .本模块由创建文件以磁盘文件的形式保存。 3. 索引关键词 关键i司:管理与查询,信息链表,信息维护。 目录 1 .题目要求04 2. 设计思想04 3. 系统完成功能及框图04 4. 界面设计05 5. 核心算法及说明17 6. 结论19 7. 参考资料19 8. 后记 2 0 9. 附录 2 0 5.正文 第一部分:题目要求 编制一个c语言成绩记录簿,每个学生信息包括:学号、姓名、c语言成绩。具体功能: (1)创建信息链表并以磁盘文件保存; (2)读取磁盘文件并显示输出所有学生的成绩; (3)按学号或姓名查询成绩; (4)添加成绩记录; (5)修改指定姓名或学号的学生的成绩并可存盘; (6)显示输出60分以下、60~79、8 0-89, 90分以上各分数段的学生信息(可选) 第二部分:设计思想 1分析程序的功能要求,划分程序功能模块。 2. 画出系统流程图。 3. 代码的编写。定义数据结构和各个功能子函数。 4. 程序的功能调试。 5. 完成系统总结报告以及使用说明书 第三部分:系统完成功能及框图 1. 学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有: 增加学生信息、删除学生信息、修改学生信息 2. 信息查询时可实现按姓名查询、按学号查询 3. 输入任意的一个学生名字(如花花)或一个学号(如20097268 ),统计出在此学生的成 绩情况。 框图:学生成绩记录簿 1, 成绩录入 2, 查询 3, 修改 4, 增加 5, 显示 6, 统计 7, 删除 1,退出 主模块学生成绩录入学生成绩添加添加学生信息删除学生信息学生信息查询学生成绩显示 学生成绩删除学生信息统计修改学生信息按学号删除按成绩删除学生优秀人数退出程序不 及格的人数及格的人数按姓名查询按学号查询 第四部分:界面设计 #include #include #include #include #defineN20 typedef struct ( charname [10]; int num; float c; }stu; 〃菜单 voidmenu()/*便于操作员使用*/ {/*清屏*/ system(“cls“); printf(“\n\n\n\n\t\t\t 学生平时成绩管理 \n“); printf(“\t\t\t=======================\n“); printf(“\t\t\t 1.成绩录入\n“); printf(“\t\t\t 2.查询\n“); printf(“\t\t\t3.修改\n“); printf(“\t\t\t 4.插入\n“); printf(“\t\t\t 5.显示\n“); printf(“\t\t\t6.统计 \n“); printf(“\t\t\t 7.删除\n“); printf(“\t\t\tO.退出 \n“); printf(“\t\t\t=======================\n“); printf(“\t\t\t请选择相应的功能:“); ) 〃成绩录入 void() ( FILE *fp; Stu XS;/*定义一个结构体变量来装从文件中读出来的数据*/ if((fp=(“student.dat“,“ab“))=NULL) (printf(“can t open file!\n“);exit(0);} printf(“\n录入格式:姓名学号C语言当输入姓名为ps结束录入\n“); while( 1 )/*中间加油break,可使循环中断*/ ( scanf(“%s“,xs.name); if(strcmp(xs.name,“ps“)==O) break;/*判断姓名是否为ps,用字符串判断*/ scanf(“%d%f“, fwrite(〃将成绩信息写入文件 ) fclose(fp); } 〃姓名定义 voidxingmingO { J J FILE *fp; Stu xs; charname [10]; printf(n\n输入要查学生的姓名:”);scanf(“%s”,name); if((fp=(, student.datn,nrbn))=NULL)(printf(ncan,t openfile!\n“);exit(0);} while(!feof(fp)) ( fread( if(strcmp(xs.name,name)==O)/*按姓名查询时判断输入的姓名是否存在,会循环 从数据中找取*/ ( printf(“学生的信息如下:\n“); printf(“\n%10s %6s%6s \n“,“姓名“,“学号”,“C语言, 6.2^printf(u%10s %6d %\n“,xs.name,xs.num,xs.c); break; } } if(feof(fp))printf(“查找失败!!!”);/* 学生不存在 */ fclose(fp); } 〃学号定义 voidxuehao() ( FILE *fp; Stu xs; int num; printf(u\n 输入要查学生的学号:”);scanf(”%d”, if((fp=( ,student.datn,nrbn))==NULL){printf( ,can,t open file!\n“);exit(0);} while(!feof(fp)) fread(xs,sizeof(stu), 1 ,fp); if(xs.num==num)/*按学号查询时判断输入的学号是否存在,会循环从数据中找 取*/ printf(n学生的信息如