- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言 门生成绩管理系统
第一章 设计内容、任务及具体要求
1.1内容和要求
强化学习C语言中有关链表及外部文件的内容,独立设计学生成绩管理系统,并编程实现以下功能:
1、整个系统均用C语言实现;
2、利用指针、链表来实现学生成绩的数据结构设计;
3、系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;
4、系统的各个功能模块都用函数的形式来实现;
5、可以将学生成绩信息保存在文件中。
6、可以将学生信息从文件中读取出来。
1.2实现功能
1、每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩。
2、输入功能:可以一次完成无数条记录的输入。
3、显示功能:完成全部学生记录的显示。
4、查找功能:完成按姓名查找学生记录,并显示。
5、排序功能:按学生平均成绩进行排序。
6、插入功能:按平均成绩高低插入一条学生记录。
7、保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。
8、读取功能:将保存在文件中的学生记录读取出来。
9、有一个清晰美观界面来调用各个功能
第二章 设计的总体思路
2.1系统功能
系统将可以实现以下功能:
1、每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩。
2、输入功能:可以一次完成无数条记录的输入。
3、显示功能:完成全部学生记录的显示。
4、查找功能:完成按姓名查找学生记录,并显示。
5、排序功能:按学生平均成绩进行排序。
6、插入功能:按平均成绩高低插入一条学生记录。
7、保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。
8、读取功能:将保存在文件中的学生记录读取出来。
9、有一个清晰美观界面来调用各个功能
2.2系统的总体框架
图2-2 系统总体框架图
2.3系统的总体流程图
图2-3 系统总体流程图
注:此图为概图、程序较多无法一一展示
第三章 功能模块的具体设计
3.1 定义结构体
本程序需要定义多个结构体,用于存放学生的相关信息。
struct student//定义结构体
{
int number;
char name[10];
float score;
float yuwen;
float yingyu;
float shuxue;
float sum;
float ave;
struct student *next;
};
typedef struct student score;
int n,k;
3.2 main( )主函数
主函数功能比较简单,用while循环语句和switch多重选择语句来显示主界面和调用函数。在主函数的前面要写必须的头文件,预定义语句以及全局变量的结构体。
3.3 add()函数
利用while循环结构和else/if语句来实现增加信息的功能。先定义5个指针*p0,*p1,*p2,*p3,*max,开始运行,当学生学号小于0时返回add函数,重新开始,而当输入0时返回菜单函数。当输入学号符合要求时,函数向下运行,令p3=head,用else/if语句判断输入的学号是否重复,如果是则重新输入,如果不是,函数继续向下运行。接下来利用指针来储存依次输入的语文、英语、数学成绩。而用while 结构来保证输入的成绩在0~100之间,如果不是则重新输入。
3.4 del()删除函数
在C语言中无法做到删除和移动数据,所以删除记录要先将所有记录从文件中读出,删除后再将记录写回文件中。每读出一条记录,按其在文件中的顺序做好指针链接关系,然后查处要删除的学生信息,将其在链表中删除,最后再将变动的记录重新写回文件中。用指针,while循环和else/if结构来实现查找出要删除的学生。
3.5 insert()插入函数
在插入函数中利用指针,和else/if语句来实现输入的数据按照插入相
应的位置,流程图如下所示:
图3-5 插入函数流程图
3.6 load() 读取函数
利用指针、链表打开已经储存的信息,主要的流程图如下所示:
图3-6 load()函数流程图
3.7 save()保存函数
函数比较简单,主要利用指针来把信息保存在文件中,流程图如下所示:
图3-7 save()函数流程图
3.8 taxis()排序函数
先用if判断是否存在信息,如果没有则返回,如果已经存在则继续运行函数。利用while循环语句和switch多重选择语句来实现是按照哪一种方式排名,
在用for,if语句来实现排名。
3.9 mesu() 菜单函数
用do/while循环语句和switch多重选择语句调用各个功能函数,流程图如下所示:
图3-9
文档评论(0)