学生成绩管理系统C语言程序论文.doc

上传人:飞****9 文档编号:133715781 上传时间:2020-05-30 格式:DOC 页数:25 大小:91.50KB
返回 下载 相关 举报
学生成绩管理系统C语言程序论文.doc_第1页
第1页 / 共25页
学生成绩管理系统C语言程序论文.doc_第2页
第2页 / 共25页
学生成绩管理系统C语言程序论文.doc_第3页
第3页 / 共25页
学生成绩管理系统C语言程序论文.doc_第4页
第4页 / 共25页
学生成绩管理系统C语言程序论文.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《学生成绩管理系统C语言程序论文.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言程序论文.doc(25页珍藏版)》请在金锄头文库上搜索。

1、 C语言大作业目 录目录一.目的2二.题目描述和要求2三.报告内容33.1需求分析33.2 概要设计43.3 详细设计53.4主要源程序代码83.5 测试分析223.6 设计结果22四.结论与心得23一.目的(报告正文部分):(要求:正文部分一律用小四号字,宋体,1.5倍行距。)随着大学生人数的增加,各种专业学科的增加,各班级各科成绩存储量提高同时也会导致教务系统的数据量也不断上涨。面对资料的繁多复杂,工作的辛苦,以及纸质保存方式的不便与容易丢失。针对此实际问题的存在,学生成绩管理系统,便应运而生。运用所学的C语言知识,构建简单的学生成绩管理系统,不仅强化上级动手能力,在理和实践的基础上进一步

2、巩固C语言程序设计课程所内容,掌握工程化软件设计的方法。而且学会将知识用于实际的方法,进一步提高个人的问题分析解决能力,有利于个人综合能力的提高。还能够为之后的专业实践或者学习打下务实坚定的基础。同时明确学生对成绩管理系统的功能需求和性能需求,并将这些需要用规范的C语言和规范的结构完整准确的表达清楚,由此达到对学生管理系统软件的理解和对C语言的知识规范使用。二.题目描述和要求从分析问题入手,设计可行的算法,进而编出相应的C程序。强调上机实践过程,从实际应用出发,运用Viusal C+ 6.0编写学生成绩管理系统。应用链表及外部文件,独立设计上述应用系统,并编程实现以下功能: 信息录入录入学生信

3、息(包括姓名、学号、各科成绩)。 信息查询输入学号,查询与学号相对应的信息(包括成绩),并按可选的自定义规则进行排序。按班级统计学科总分、平均分等。 信息删除与修改输入学号,删除该学号对应的成绩信息。输入学号,查询并显示出该学号信息,并在此基础上进行修改。 计算学生成绩计算每位学生的总分。计算每位学生的平均分。成绩排序。信息保存将学生信息保存在文件中。根据以上功能需求,定义通讯录信息结构,并采用链表结构对数据进行存储。提供友好的用户界面,方便用户操作。三.报告内容3.1需求分析设计题目:学生成绩管理系统设计要求:应用链表及外部文件,独立设计上述应用系统,并编程实现以下功能: 信息录入录入学生信

4、息(包括姓名、学号、各科成绩)。 信息查询输入学号,查询与学号相对应的信息(包括成绩),并按可选的自定义规则进行排序。按班级统计学科总分、平均分等。 信息删除与修改输入学号,删除该学号对应的成绩信息。输入学号,查询并显示出该学号信息,并在此基础上进行修改。 计算学生成绩计算每位学生的总分。计算每位学生的平均分。成绩排序。信息保存将学生信息保存在文件中。根据以上功能需求,定义通讯录信息结构,并采用链表结构对数据进行存储。提供友好的用户界面,方便用户操作。系统功能分析:1 输入功能:可以一次完成无数条信息的输入。 2 输出功能:能按输出排序功能多个学生的成绩单或者按查找功能输出学生的成绩单。 3

5、修改功能:完成对单个学生成绩的修改。 4 查找功能:按学号完成对单个学生信息查找,并显示。 5 排序功能:按学生成绩进行排序,并显示。6 保存功能:能够将输入的信息保存,并能读取 7 有一个清晰美观界面来调用各个功能3.2 概要设计系统总体设计框架:主菜单:提供平台选择界面,供用户选择功能,链接其他模块的工作,以及包含退出系统。1. Student_Insert :输入模块,录入学生学号,姓名以及三科成绩,并运算平均分和总分2. Student_Search:匹配已知学号与输入学号是否正确,并返回结果 2.1 Student_Select:查找学生信息,并输出 2.2 Student_Dele

6、te:删除存在的学生成绩 2.3 Student_Modify:修改学生信息,并输出3. Student_Sort_Average & Student_Sort_Mark1 :按学生的平均分或者学生的英语成绩排序 3.1 Student_Display:输出多名学生的按平均分或者英语成绩排名的名单4. Read:运用fread将文件从已保存文件里读出5. Write:运用fprintf和fwrite函数分别保存输入的学生信息系统功能模块图:main函数菜单选择函数输入记录函数显示记录函数查找显示函数修改记录函数删除记录函数排序记录函数匹配学号函数保存记录函数读取记录函数退出函数3.3 详细设计

7、主要功能模块的算法设计思路:学生成绩管理系统的设计一开始由主程序界面设计出发,运用case函数链接8个子模块:1:输入学生的资料;2:查询学生成绩;3:修改学生资料;4:删除学生成绩 ;5:排序学生成绩;6:保存输入的学生资料;7:从文件调入学生信息;8:退出程序;操作者可以根据不同需求选择不同的操作。 首先设计的主模块程序设计中,运用main,功能:通过调用Student_Insert,Student_Search,Student_Select,Student_Delete,Student_Modify,Student_Sort_Average,Student_Sort_Mark1,Stud

8、ent_Display,Read,Write等函数,实现学生成绩查询与管理功能 首先用while(1)控制,保障在每次菜单操作后返回主页面。之后用swtich对用户输入值进行判断,决定进行何种操作。对于具体的返回值,又调用其他函数,实现对学生成绩管理系统的各个功能的操作。子模块程序当中,首先编写的是输入程序主要运用scanf函数接受用户输入的学号,姓名,英语,数学,物理的学生信息。然后依次编写的学生信息查询,学生信息修改,学生信息删除都建立在学号匹配的Student_Search函数上,运用for和if函数对输入的学号依次对以保存的学号进行一一的对比,若寻找到正确的学号就返回学号,若寻找不到着

9、返回-1值。若返回-1值,紧接的Student_Search,Student_Select,Student_Delete,三个函数则输出学号不存在。若返回得到学号值则:1. Student_Search:运用printf输入相应的学号结构体的信息。2. Student_Select:首先输出相应的学号结构体的信息,然后运用scanf重新获取用户输入的学生信息。3. Student_Delete:首先输出相应的学号结构体的信息,然后运用for函数,依次将后面一个的学号结构体的信息赋予给前一个学号结构体的信息,从而达到删除的目的。然后就编写排序Student_Sort_Average,Studen

10、t_Sort_Mark1排序模块,同样运用for和if函数对每一个学生结构体信息相应的平均分和英语成绩进行一一对比,然后赋值进行排序的目的。在这两个函数的基础上Student_Display函数就运用printf依次输出上述的排序结果。接下来则编写Read和Write函数,后者主要运用fprintf和fwrite将用户输入的数据写进去txt文档,fprintf实践当中产生的txt文档更加方便用户直接的观看信息,fwrite产生的txt文档则更加方便系统下一次读入文件使用。Read主要运用fread函数,主要用于读取fwrite写出txt文档。最后写得是退出函数由于比较简单直接嵌入在主函数当中,

11、直接用exit来退出系统。工作流程图:选择选择选择选择选择开始结束选择操作输入数据排序显示数据查询删除输出界面修改数据退出系统按学号匹配按学号匹配保存数据吧按平均成绩或英语选择按学号匹配读取数据吧三门成绩学号姓名选择选择3.4主要源程序代码存储结构设计说明:系统的运行过程中,运用学生信息输入的子模块程序首先输入学生信息,存储过程中主要运用fwrite和fprintf将输入的学生信息存放在txt文件当中。在运行当中fwrite存储的学生数据文件一般为二进制文件仅能通过系统中编写的得读取程序子模块来读取存储的文件信息。因此,特意加入fprintf函数,对学生的信息进行直观的存储,用户可以直接通过t

12、xt文件打开查看学生信息。完整源程序清单:#include /*延时程序所在的头文件*/#include #include #include struct Student char ID20; char Name20; float Mark1; float Mark2; float Mark3; double Mark_ave; double Mark_tot;student1000;/*声明学生数组及学生数量*/int num=0;struct Student *p;/*输入记录函数*/ void Student_Insert() while(1) printf(请输入学号:); scanf

13、(%s,&studentnum.ID); getchar();/清除回车符 printf(请输入姓名:); scanf(%s,studentnum.Name); getchar();/清除回车符 printf(请输入英语:); scanf(%f,&studentnum.Mark1); getchar();/清除回车符 printf(请输入数学:); scanf(%f,&studentnum.Mark2); getchar();/清除回车符 printf(请输入物理:); scanf(%f,&studentnum.Mark3); getchar(); /清除回车符 studentnum.Mark_ave=(studentnum.Mark1+studentnum.Mark2+studentnum.Mark3)/3; /*求平均值*/ studentnum.Mark_tot = studentnum.Mark1+studentnum.Mark2+studentnum.Mark3; /*求总分*/ num+; printf(是否继续?(y/n); if (getchar()=n) break;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号