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

上传人:pu****.1 文档编号:487157297 上传时间:2022-08-31 格式:DOCX 页数:24 大小:113.07KB
返回 下载 相关 举报
学生成绩管理系统C语言程序论文_第1页
第1页 / 共24页
学生成绩管理系统C语言程序论文_第2页
第2页 / 共24页
学生成绩管理系统C语言程序论文_第3页
第3页 / 共24页
学生成绩管理系统C语言程序论文_第4页
第4页 / 共24页
学生成绩管理系统C语言程序论文_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

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

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

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

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

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

6、 nt_Delete:删除存在的学生成绩2.3 Stude nt_Modify:修改学生信息,并输出3. Stude nt_So rt_Average & Stude nt_Sort_Mark1:按学生的平均分或者学生的英语成绩排序3.1 Stude nt_Display:输出多名学生的按平均分或者英语成绩排名的名单4. Read :运用fread将文件从已保存文件里读出5. Write :运用fprintf 和fwrite 函数分别保存输入的学生信息系统功能模块图:3.3详细设计主要功能模块的算法设计思路:学生成绩管理系统的设计一开始由主程序界面设计出发,运用case函数链接8个子模块:1:

7、输入学生的资料;2:查询学生成绩;3:修改学生资料;4:删除 学生成绩;5:排序学生成绩;6:保存输入的学生资料;7:从文件调入学生信 息;&退出程序;操作者可以根据不同需求选择不同的操作。首先设计的主模块程序设计中,运用 mai n,功能:通过调用Stude nt_ln sert,Stude nt_Search,Stude nt_Select,Stude nt_Delete,Stude nt_Mo dify,Stude nt_Sort_Average,Stude nt_So rt_Mark1,Stude nt_Display,Read,Write等函数,实现学生成绩查询与管理功能首先用whi

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

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

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

11、择选择选择选择选择排序按平均成绩或显示数据按学号匹配按学号匹配按学号匹配*保存数据*读取数据退出系统删除查询*修改数据结束3.4主要源程序代码存储结构设计说明:系统的运行过程中,运用学生信息输入的子模块程序首先输入学生信息,存储过 程中主要运用fwrite 和fprintf将输入的学生信息存放在txt文件当中。在运行当中fwrite存储的学生数据文件一般为二进制文件仅能通过系统中编写的得读取 程序子模块来读取存储的文件信息。因此,特意加入fprintf函数,对学生的信息进行直观的存储,用户可以直接通过txt文件打开查看学生信息。完整源程序清单:#include /*延时程序所在的头文件*/#i

12、 nclude #i nclude #include struct Stude ntchar ID20;char Name20;float Mark1;float Mark2;float Mark3;double Mark_ave;double Mark_tot;student1000;/*声明学生数组及学生数量*/int num=0;struct Stude nt *p;/*输入记录函数*/void Stude nt_ln sert()while(1)printf(请输入学号:);sea nf(%s,&stude ntn um.ID);getchar();清除回车符printf(请输入姓名:

13、);sca nf(%s,stude nt nu m.Name);getchar();清除回车符printf(请输入英语:);sca nf(%f,&stude ntn um.Mark1);getchar();清除回车符printf(请输入数学:);sca nf(%f,&stude ntn um.Mark2);getchar();清除回车符printf(请输入物理:);sca nf(%f,&stude ntn um.Mark3);getchar();/清除回车符stude nt nu m.Mark_ave=(stude nt nu m.Mark1+stude ntnu m.Mark2+stude

14、nt n um.Mark3)/3; /*求平均值 */stude nt nu m.Mark_tot=stude ntnu m.Mark1+stude ntn um.Mark2+stude ntn um.Mark3; /*求总分 */nu m+;printf(是否继续?(y/n);if (getchar()= n)break;/*寻找匹配学号*/int Stude nt_Search(char n ame)int i;for (i=0;i nu m;i+)if (strcmp(stude ntiD,n ame)=0)return i;return -1;/*查找显示函数*/void Stude nt_Select()while(1)char n ame20;int in dex;printf(请输入要查询的学生的学号:);sca nf(%s

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

当前位置:首页 > 学术论文 > 其它学术论文

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