c语言学生成文件统计,C语言--学生成管理系统.doc

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(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值