海南大学信息科学技术学院
数据结构课程设计报告
设计题目: 学生成绩管理系统
专业班级: 12级 通信工程 3 班
姓名: 范超
学号: 20120206310061
指导教师: 吴泽晖
目 录
摘要 1 一、 概述 1 二、 需求分析 1 三、 设计要求 1 四、 概要设计 1 五、 详细设计 2
1、定义结构体 2 2、模块设计 3 六、 源程序 9 七、 运行结果 26 八、 心得体会 30 九、 参考文献 31
【摘要】随着科学的发展和社会的进步,许多过去由人工处理的繁杂事务开始交付计
算机来完成。学生成绩管理系统可以说是每个教育单位的得力助手,他利用计算机对学生成绩进行统一管理,实现学生成绩星系管理工作流程的系统化、自动化和规范化,提高广大教师的工作效率。因此,学生成绩管理系统对教育不嫩或单位越来越重要。此次成绩管理系统用C语言作为程序开发工具,设计一个简单的学生成绩管理系统,完成对学生成绩添加、修改、删除成绩统计功能。
【关键字】成绩管理系统 C语言 添加修改 删除插入 统计管理
一、概述
学生成绩管理系统主要是提供成绩查询,方便管理的一种网上的信息查阅平台,学生可以通过该系统查询自己的成绩,系统管理员可以通过该系统进行学生成绩添加、修改、删除成绩统计功能。
二、需求分析
传统的教务信息统计处理是用手工方式登记,填写,更改和查询,早已不能满足当今庞大的数据管理需求。随着时代的进步和科技的飞速发展,计算机和网络应用已经越来越普及,以计算机网络为平台,设计一个有效的学生成绩管理系统,不仅能节省大量的人力物力,减少费用,而且极大的提高了查询效率,节省了大量的时间,并且成绩管理也变得系统化和自动化。
三、设计要求
对学生信息的输入完成后,实现如下功能:1、对学生信息的查找、删除、修改。2、显示每们课程的平均成绩。3、任意抽取一门课程后,可以按该课程学生成绩对学生信息进行排序。
四、概要设计
此成绩管理系统主要由六大功能模块组成。
(1)输入模块。输入模块主要完成将数据存入的工作。在此成绩管理系统中,记录是从键盘逐个输入学生记录。学生记录由学生基本信息和成绩信息组成。
1
(2)查询模块。查询模块主要完成在输入的数据中查找满足要求的学生记录。在此管理系统中提供了两种查询方法,一种是按学号查询,一种是按姓名查询。
(3)修改模块。修改模块主要是将已输入的数据修改或者重新输入
(4)删除模块。删除模块主要完成输入数据的删除,将不需要的数据删除。 (5)统计模块。统计模块主要完成对各科平均成绩统计和各科成绩排名统计功能。
(6)输出模块。输出记录模块主要是将存储的学生记录信息在屏幕上打印出来。
学生成绩管理系统 输入模块 查询模块 修改模块 删除模块 统计模块 输出模块 从键盘输入 按学号查询 按姓名查询 各科平均成绩 各科成绩排名 输出至屏幕 五、详细设计
1、定义结构体
为了对学生信息进行统一操作,使用了结构体这一数据结构,学生的各项数据信息都能用结构体来表示,具体如下: struct student/*定义结构体*/ {int num;
2
char name[50];/*姓名,长度为50的字符串数组*/ char classes[50];/*班级名称,长度为50的字符串数组*/ double matchps;/*高等数学平时成绩,双精度实型变量*/ double matchks;/*高等数学考试成绩,双精度实型变量*/ double matchzh;/*高等数学综合成绩,双精度实型变量*/ double englishps;/*英语平时成绩,双精度实型变量*/ double englishks;/*英语考试成绩,双精度实型变量*/ double englishzh;/*英语综合成绩,双精度实型变量*/ double clangugeps;/*C语言平时成绩,双精度实型变量*/ double clangugeks;/*C语言考试成绩,双精度实型变量*/ double clangugezh;/*C语言综合成绩,双精度实型变量*/ double politicsps;/*政治平时成绩,双精度实型变量*/ double politicsks;/*政治考试成绩,双精度实型变量*/ double politicszh;/*政治综合成绩,双精度实型变量*/ double ave;/*平均成绩,双精度实型变量*/ }student[1000];/*最多存储1000个学生数据*/
2、模块设计
结构化的程序设计主要靠设计和调用各模块的函数来实现。此程序设计了多个函数,每个函数都能完成一个任务,有的函数和别的函数结合能完成更大的任务。每一个模块功能的实现其实就是对函数的调用。
接下来首先介绍本程序所涉及的子函数,再介绍主函数,最后介绍程序整体的实现过程。
(1)输入模块
输入模块主要是由void Inputfun()和void Getinformation() 两个函数组合得到的模块。
void Inputfun()/*输入学生信息模块*/
此函数只进行输入操作,由于此函数较长并且经常需要被其他子函数调用,所以先进行说明。此函数主要用来输入学生的基本数据,并判断输入是否正确。比如在分数的输入中就限定了只能输入0至100之间的数值,如果输入其他则显
3