程序设计报告
(2009/2010学年 第 二 学期)
题 目:简单学生信息管理
专 业 软件工程(NIIT)
学 生 姓 名 ******
班 级 学 号 ******
指 导 教 师 ******
指 导 单 位 软件学院
日 期 2010-4-23
评 分 细 则评分项成绩遵守机房规章制度(5分)上机时的表现(5分)学习态度(5分)程序准备情况(5分)程序设计能力(10分)团队合作精神(5分)课题功能实现情况(10分)算法设计合理性(10分)用户界面设计(10分)报告书写认真程度(5分)内容详实程度(10分)文字表达熟练程度(10分)回答问题准确度(10分)简 短 评 语
教师签名:
年 月 日评分等级备注评分等级有五种:优秀、良好、中等、及格、不及格学生管理系统
一、课题内容和要求
1、系统的基本功能
实现学生信息的录入、查询和更新。
2、要求
(1)从键盘上录入学生资料,并保存到文件中。学生资料文件中的数据记录不得少于30条。
相关数据要求格式如下:
学生资料文件存放了学号、姓名、性别、出生日期、A课程成绩、B课程成绩、C课程成绩格式如下:
B051001 张三 女 80 82 77
B051002 李四 女 80 80 80
B051003 王二 男 85 80 80
。。。。。。(2)可以随时补录学生资料。
(3)能够按照不同的条件查询学生信息,并显示在屏幕上。
按学号排序
按姓名排序
按单科总分排序
按学号查找学生各门课成绩和平均分数
按姓名查找学生各门课成绩和平均分数
按学生总分排序
查询各门课程的平均分数
二、需求分析
需要设计并实现一个综合的学生信息管理系统,要求系统能实现以下功能:录入、查询和更新学生信息,并保存到文件中;学生资料文件中的数据记录不得少于30条;可以随时补录学生资料;可以按学号排序、按姓名排序、按单科总分排序、按学号查找学生各门课成绩和平均分数、按姓名查找各门课成绩和平均分数、按学生总分排序、实现各门课程的平均分数。
根据题目要求的功能,用结构化程序设计的思想,将系统分成5大功能模块:显示基本信息、基本信息管理、学生成绩管理、根据条件排序、根据条件查询。“显示基本信息”模块实现了学生基本信息的显示;“基本信息管理”模块实现了“插入学生记录”、“删除学生记录”以及“修改学生记录”功能;“学生成绩管理”模块实现了“计算学生总分”、“计算学生名次”、“计算三门课程平均分”以及“计算各门课程的平均分数”功能;“根据条件排序”模块实现了“按学号排序”、“按姓名排序”、“按A课程成绩排序”、“按B课程成绩排序”、“按C课程成绩排序”以及“按学生总分排序”功能;“根据条件查询”模块实现了“按学号查找学生各门课成绩和平均分数”和“按姓名查找学生各门课成绩和平均分数”功能。
为此需要设计一个比较综合的系统来体现“自顶向下、逐步细化、模块化”的思想。而为了在学生管理系统中体现结构化的程序设计思想,需要在系统采用多个文件多个函数来实现功能,通过对功能的逐步细化使得最终的每一个函数都完成一个非常具体又简单的功能。而且每一个函数在设计时要充分考虑好入口(形参)与出口的设置(函数返回值),这是保证每个模块相对独立又能为其他模块合理使用的前提。系统应通过流程控制组织,分层调用各个函数,完成整个系统预期的任务。
三、概要设计
设计流程图如下:
根据题目要求,一个学生信息包含:学号、姓名、性别、3门课的成绩、总分、各科成绩平均分、所有学生单科平均分以及名次。显然,将不同类型的成员作为同一个变量的不同成分来存储,必须用结构类型来定义。
而管理系统显然要处理一批学生的信息,鉴于书本定义了以Type类型为数据域成分的结点类型,学生信息在内存中以单链表形式存放。完整定义如下:
struct Student
{
char num[10];
char name[20];
char sex[10];
char birthday[10