C语言课程设计报告学生成绩管理系统设计.doc
《C语言课程设计报告学生成绩管理系统设计.doc》由会员分享,可在线阅读,更多相关《C语言课程设计报告学生成绩管理系统设计.doc(18页珍藏版)》请在三一办公上搜索。
1、第一章 本课程设计的题目及要求1.1课程设计题目要求1. 要求利用C语言面向过程的编程思想来完成系统的设计; 2. 突出C语言的函数特征,以多个函数实现每一个子功能; 3. 画出功能模块图; 4. 进行简单界面设计,能够实现友好的交互; 5. 具有清晰的程序流程图和数据结构的详细定义; 6. 熟练掌握C语言对文件的各种操作。1.2设计思想程序运用结构体数组和循环进行程序的编写.第二章 系统完成功能及功能框图2.1系统功能1每条记录包括一个学生学号、姓名、四科成绩。2输入功能:可以一次完成无数条记录的输入。3显示功能:完成全部学生记录的显示。4查找功能:完成按学号查找学生记录,并显示。5修改功能
2、:通过查找学生学号,修改学生记录。6保存功能:将学生记录保存到任何自定义的文件中。7读取功能:将保存到文件中的学生记录读取出来。8应提供一个界面来调用各个功能,调用界面和功能的操作界面应尽可能清晰美观。2.2系统框图主要功能 输出编辑删除查询录入第三章 系统使用介绍 3.1主菜单输入字符后以获得相应的功能,按照菜单提示即可。3.2输入信息和浏览信息3.3查询、修改和删除第四章 工作分工我的主要任务是完成对该程序的设计工作,运用所学的知识来对该程序进行整体的设计,在这几天的编程时间里我会去图书馆查阅资料,以便对整个小组的工作提供最大的便利,最后我还将对检测过程进行帮助,用最快的速度帮助调试工作尽
3、快的完成。我首先设计了整个系统的主函数,这个函数可以最有效的将所有函数运用起来,并且减小程序的大小void main()/主函数int fun; read_data(); menu(); while(1) system(color f0);/编辑菜单及字体颜色 printf(请输入功能号0-6:,&fun); scanf(%d,&fun); switch(fun) case 0:/ 退 出 break; case 1: /按班级输出学生成绩 view_data(); break; case 2: /输入学生记录 add(); break; case 3: /删除学生记录 delete_data
4、(); break; case 4: /编辑学生记录 edit_data(); break; case 5: /查询学生记录 query_data_no(); break; case 6: /统计系统 query_data_tongji(); break; if(fun=0) break; to_menu(); 然后我将系统设计完整后运用了起泡法将浏览函数中加入了排序的函数,这样做可以使得输出的函数的结果更加的清晰,让使用者方便查找到要查找的对象strcpy(tmp.xueqi,dd.stui.xueqi); strcpy(tmp.no,dd.stui.no); strcpy(tmp.name
5、,dd.stui.name); tmp.clas=dd.stui.clas; tmp.chi=dd.stui.chi; tmp.math=dd.stui.math; tmp.eng=dd.stui.eng; =; tmp.sum=dd.stui.sum; tmp.aver=dd.stui.aver; strcpy(dd.stui.xueqi,dd.stuj.xueqi); strcpy(dd.stui.no,dd.stuj.no);strcpy(dd.stui.name,dd.stuj.name); dd.stui.clas=dd.stuj.clas; dd.stui.chi=dd.stuj.
6、chi; dd.stui.math=dd.stuj.math; dd.stui.eng=dd.stuj.eng; =; dd.stui.sum=dd.stuj.sum; dd.stui.aver=dd.stuj.aver; strcpy(dd.stuj.xueqi,tmp.xueqi); strcpy(dd.stuj.no,tmp.no); strcpy(dd.stuj.name,tmp.name); dd.stuj.clas=tmp.clas; dd.stuj.chi=tmp.chi; dd.stuj.math=tmp.math; dd.stuj.eng=tmp.eng; =; dd.stu
7、j.sum=tmp.sum; dd.stuj.aver=tmp.aver;在系统中我将添加的函数设计为下次使用可以记录内容的,里面主要运用到了结构体中的count变量,并且加入了保存项目中,这样做使得下次使用时添加数据更加便利,仅仅运用添加就可以满足使用者的需求。最后经过了接受建议后,我将我设计的系统的结构优化为两个,函数的名字也将次级菜单中的更改为tongji1、tongji2,这样使得在修改时更为简便快捷。第五章 总结经过了这几天对程序的设计,使我更加了解程序的设计过程,以及设计的思路,我将会在以后的日子里,运用上本次设计的经验,为以后的学习工作打下基础,唯一够的工作创造更好的条件。参考文
8、献C语言设计第三版 清华大学出版社出版附录程序源代码#include #include #include #include #include #define MAX 200/宏定义,修改数值可以改变程序所包含的最大文件个数struct student char xueqi20;/学期 char no20; /学号 int clas;/班级 char name50; /姓名 int chi;/语文成绩int math;/数学成绩int eng;/英语成绩int com;/计算机成绩int sum;int aver;struct data int count; /* 当前学生数组中学生的个数 */
9、 struct student stuMAX; /* 学生数组 */ dd;void menu() /输出主菜单函数 system(cls); /清空屏幕函数 printf(n); printf(ttt*n); printf(ttt* *n); printf(ttt* 学生成绩管理系统 *n); printf(ttt* *n); printf(ttt* 0 退出 *n); printf(ttt* 1 按学号输出学生成绩 *n); printf(ttt* 2 输入学生记录 *n); printf(ttt* 3 删除学生记录 *n); printf(ttt* 4 编辑学生记录 *n); print
10、f(ttt* 5 查询学生记录 *n); printf(ttt* 6 统计学生记录 *n); printf(ttt* *n); printf(ttt*n);void menu2()/输出统计系统菜单system(cls);/清空屏幕函数printf(n); printf(ttt*n); printf(ttt* *n); printf(ttt* 统计系统 *n); printf(ttt* *n); printf(ttt* 0 退出 *n); printf(ttt* 1 输出班级学生成绩 *n); printf(ttt* 2 班级各科成绩平均数 *n); printf(ttt* 3 班级各科成绩总
11、分 *n); printf(ttt* 4 不及格名单 *n); printf(ttt* *n); printf(ttt*n);void to_menu()/to_menu函数 char c1,c2; printf(nnn按回车键返回主菜单.); scanf(%c%c,&c1,&c2); menu();/调用menu函数void to_menu2()/to_menu函数 char c1,c2; printf(nnn按回车键返回上一菜单.); scanf(%c%c,&c1,&c2); menu2();/调用menu函数void save_data() /保存数据函数 FILE *fp; int i
12、,k; k=dd.count; fp=fopen(c:/dada.txt,w);/打开函数,打开记录文件 fwrite(&k,sizeof(int),1,fp);/写入函数,写入文件数据 for(i=0;ik;i+) fwrite(&dd.stui,sizeof(struct student),1,fp); fclose(fp);/关闭函数,关闭记录文件void read_data()/读取数据信息 FILE *fp; int i,k; struct student st; struct data gf; k=0; if(access(c:/dada.txt,0)=-1) /如果文件不存在 f
13、p=fopen(c:/dada.txt,w);/打开函数,打开记录文件 fwrite(&k,sizeof(int),1,fp);/写入函数,写入文件数据 fclose(fp); fp=fopen(c:/dada.txt,r); fread(&k,sizeof(int),1,fp); dd.count=k; for(i=0;ik;i+) fread(&st,sizeof(struct student),1,fp); strcpy(dd.stui.xueqi,st.xueqi); strcpy(dd.stui.no,st.no); strcpy(dd.stui.name,st.name); dd.
14、stui.clas=st.clas; dd.stui.chi=st.chi; dd.stui.math=st.math; dd.stui.eng=st.eng; =; dd.stui.sum=st.sum; dd.stui.aver=st.aver; fclose(fp);/关闭函数,关闭记录的文件void view_data()/查看所有学生信息 int i,j,k; struct student tmp;k=dd.count; for(i=0;ik;i+)/该部分实现为所有数据以学号进行排序,“起泡法” for(j=(i+1);j0) strcpy(tmp.xueqi,dd.stui.xu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 学生 成绩管理系统 设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2384901.html