《项目九学生成绩管理系统》由会员分享,可在线阅读,更多相关《项目九学生成绩管理系统(44页珍藏版)》请在金锄头文库上搜索。
1、项目九 学生成绩管理系统,通过本章的学习,能掌握使用C语言的基本知识和技能以及面向过程的编程思想,完成系统需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试等系统的设计 过程,并编写课程设计总结。,教学目的,第一页,共44页。,教学内容,项目九 学生成绩管理系统,第二页,共44页。,项目九 学生成绩管理系统,重点和难点,重点:,总体设计,详细设计,难点 : 详细写出编程步骤,第三页,共44页。,1.课程设计名称 (1)学生成绩管理系统 2. 设计目的: (1) 基本掌握面向过程程序设计的基本思路和方法。 (2) 熟练掌握C语言的基本知识和技能。 (3) 能够利用所学的基本知识和技能,
2、解决简单的程序设计问题。,9.1 课程设计任务书,第四页,共44页。,3. 设计要求 1) 基本要求 (1) 要求利用C语言面向过程的编程思想来完成系统的设计。 (2) 突出C语言的函数特征,以多个函数实现每一个子功能。 (3) 画出功能模块图。 (4) 进行简单界面设计,能够实现友好的交互。 (5) 具有清晰的程序流程图和数据结构的详细定义。 (6) 熟练掌握C语言对文件的各种操作。 2) 信息描述 有关该系统基本信息的描述。,9.1 课程设计任务书,第五页,共44页。,9.1 课程设计任务书,3) 功能描述 基本信息数据的录入。 基本信息的查询与修改。 数据排序。 数据的统计、分类、检索和
3、基本信息分析。 4) 设计过程 分析项目任务的功能要求,划分项目功能模块。 画出系统流程图。 代码的编写。定义数据结构和各个功能子函数。 程序的功能调试。,第六页,共44页。,完成系统总结报告以及使用说明书。 撰写课程设计说明书 5) 课程设计说明书的内容 需求分析 总体设计 详细设计、 编码(详细写出编程步骤) 测试的步骤和内容 课程设计总结 参考资料等。,9.1 课程设计任务书,第七页,共44页。,6) 进度安排 课程设计时间为一周或两周,分五个阶段完成: 分析设计:明确设计要求,找出实现方法,完成需求 分析和总体设计。 详细设计:编写各模块对应函数和主函数,编写C代码。 编码调试阶段:测
4、试运行程序、调试代码,找出不足 和错误,修改并改善。 总结报告阶段。总结设计工作,写出课程设计说明书。 考核阶段。,9.1 课程设计任务书,第八页,共44页。,1.设计目的 通过设计一个数据管理工具对学生成绩进行管理,从而达到节省人力、物力资源的目的。通过这个系统进行学生成绩管理,以提高对学生成绩进行登记、删除、查询、修改、排序的效率。,.2 学生成绩管理系统,第九页,共44页。,2.功能描述 该系统由5大功能模块组成。 ()输入记录模块 ()查询记录模块 ()更新记录模块 ()统计记录模块 ()输出记录模块,9.2 学生成绩管理系统,第十页,共44页。,9.2 学生成绩管理系统,3.数据结构
5、设计 学生信息结构体: struct student int no; char name20; char sex4; float score1; float score2; float score3; float sort; float ave; float sum; ; 结构体student将用于存储学生基本信息。,第十一页,共44页。,9.2 学生成绩管理系统,4.详细设计 ()input() 函数原型:void input() input()函数用于录入学生信息。 ()sort() 函数原型:void sort() sort()用于对学生数据按平均分从高到低排序。 ()display()
6、 函数原型:void display() display()函数用于显示学生信息。 ()insert() 函数原型void insert() insert()函数用于插入新的学生信息。,第十二页,共44页。,9.2 学生成绩管理系统,()del() 函数原型void del() del()函数用于删除一条学生记录。 ()average() 函数原型void average() average()函数用于求解每一个学生的平均分。 ()find() 函数原型:void find() find()函数用于查找学生记录。 ()modify() 函数原型:void modify() modify()函数
7、用于修改学生数据信息。 ()主函数main() 整个成绩管理系统控制部分。,第十三页,共44页。,9.2 学生成绩管理系统,5.程序源代码:,#include #include #include #include #include #define MAX 80 void input(); void sort(); void display(); void insert(); void del(); void average(); void find();,第十四页,共44页。,9.2 学生成绩管理系统,void modify(); int now_no=0; struct student in
8、t no; char name20; char sex4; float score1; float score2; float score3; float sort; float ave; float sum; ;,第十五页,共44页。,9.2 学生成绩管理系统,struct student stuMAX,*p; void average()/*求平均数*/ int i; for(i=0;inow_no;i+) stui.sum=stui.score1+stui.score2+stui.score3; stui.ave=stui.sum/3; main()/*主函数*/ int as; sta
9、rt: printf(nttt欢迎使用学生成绩管理系统n); /*一下为功能选择模块*/ do,第十六页,共44页。,9.2 学生成绩管理系统,rintf(ntttt1.录入学员信息ntttt2.显示学员信息ntttt3.成绩排序ntttt4.添加学员信息ntttt5.删除学员信息ntttt6.修改学员信息ntttt7.查询学员信息ntttt8.退出n); printf(tttt选择功能选项:); fflush(stdin); scanf(%d,第十七页,共44页。,9.2 学生成绩管理系统,case 8:system(exit);exit(0); default:system(cls);go
10、to start; while(1); /*至此功能选择结束*/ void input()/*原始数据录入模块*/ int i=0; char ch; do printf(tttt1.录入学员信息n输入第%d个学员的信息n,i+1); printf(n输入学生编号:); scanf(%d,第十八页,共44页。,9.2 学生成绩管理系统,fflush(stdin); printf(n输入学员姓名:); fflush(stdin); gets(stui.name); printf(n输入学员性别:); fflush(stdin); gets(stui.sex); printf(n输入学员成绩1:)
11、; fflush(stdin); scanf(%f,第十九页,共44页。,9.2 学生成绩管理系统,rintf(nn); i+; now_no=i; printf(是否继续输入?(Y/N); fflush(stdin); ch=getch(); system(cls); while(ch!=ni+),第二十页,共44页。,9.2 学生成绩管理系统, for(j=1;j=now_no-i;j+) if(stuj-1.avestuj.ave) temp=stuj; stuj=stuj-1; stuj-1=temp; void display()/*显示数据函数*/ int i; char as;
12、average();,第二十一页,共44页。,9.2 学生成绩管理系统,do printf(ttt班级学员信息列表n); printf(t编号t姓名t性别t成绩1t成绩2t成绩3t平均值n); for(i=0;inow_no ,第二十二页,共44页。,9.2 学生成绩管理系统,void insert()/*插入数据函数*/ char ch; do printf(ntt输入新插入学员队信息n); printf(n输入学生编号:); scanf(%d,第二十三页,共44页。,9.2 学生成绩管理系统,scanf(%f,第二十四页,共44页。,9.2 学生成绩管理系统, void del()/*删除
13、数据函数*/ int inum,i,j; printf(输入要删除学员的编号:); fflush(stdin); scanf(%d,第二十五页,共44页。,9.2 学生成绩管理系统,now_no-=1; sort(); break; system(cls); void find()/*查询函数*/ int i; char str20,as; do printf(输入要查询的学生姓名:); fflush(stdin);,第二十六页,共44页。,9.2 学生成绩管理系统,gets(str); for(i=0;inow_no;i+) if(!strcmp(stui.name,str) printf(
14、“t编号t姓名t性别t成绩1t成绩2t成绩3t平均值n”); printf(t%dt%st%st%.2ft%.2ft%.2ft%.2fn, stui.no,stui.name,stui.sex,stui.score1, stui.score2,stui.score3,stui.ave); printf(tt按任意键返回主菜单.); fflush(stdin); as=getch(); while(!as); system(cls); ,第二十七页,共44页。,9.2 学生成绩管理系统,void modify()/*修改数据函数*/ int i; char str20,as; printf(输入
15、要修改的学生姓名:); fflush(stdin); gets(str); for(i=0;inow_no;i+) if(!strcmp(stui.name,str) system(cls); printf(ntt输入修改学员信息n); printf(n输入学生编号:); fflush(stdin); scanf(%d,第二十八页,共44页。,9.2 学生成绩管理系统,fflush(stdin); gets(stui.sex); printf(n输入学员成绩1:); fflush(stdin); scanf(%f, ,第二十九页,共44页。,9.2 学生成绩管理系统,6.测试结果 (1)主界面
16、 进入成绩管理系统,选择“08”之间的数值,调用相应的功能进行操作。当输入为8时,退出此管理系统。如下图。,第三十页,共44页。,9.2 学生成绩管理系统,()登记学生资料 输入1并按回车后,即可进入数据输入界面,如下图。其输入记录过程如下图所示,这里输入了3条学生记录。当用户输入为y的时候,继续输入,为n的时候,结束输入过程,返回到主菜单。,第三十一页,共44页。,9.2 学生成绩管理系统,第三十二页,共44页。,9.2 学生成绩管理系统,第三十三页,共44页。,9.2 学生成绩管理系统,第三十四页,共44页。,9.2 学生成绩管理系统,()显示学生资料 输入2并按回车时,即可进入记录显示界面,如图所示。,第三十五页,共44页。,9.2 学生成绩管理系统,()增加学生资料 输入4并按回车的时候,即可进入学员记录增加界面,如图所示。,第三十六页,共44页。,9.2 学生成绩管理系统,()排序学生资料 输入3并按回车后,回到主界面再按2可查看学生排序信息,如图所示。,第三十七页,共44页。,9.2 学生成绩管理系统,(6)删除学生资料 输入5并按回车后,即可进入记录删除界面,如图所示。,