实用文档
文案大全辽 宁 科 技 大 学
课程设计报告
设计题目: 学生成绩管理 学院、系: 电子与信息工程学院 专业班级: 计算机 11-2 班 学生姓名: 赵月 指导教师: 龙艳彬 成 绩:
2013年 1 月 8 日
目 录
一、需求分析------------------------------------------------3 二、概要设计------------------------------------------------3 三、详细设计------------------------------------------------5
3.1系统流程图-----------------------------------------------------5 3.2界面设计-------------------------------------------------------6 3.3各功能模块的设计----------------------------------------------7
四、测试与分析---------------------------------------------9 五、总结-----------------------------------------------------15 六、附录(源代码)--------------------------------------16
2
1. 需求分析 1.1问题描述
本系统实现了学生成绩管理的功能,具有学生成绩的输入、读取、查询、修改、插入、删除、排序,统计等功能。 1.2基本要求
(1) 输入的形式和输入值的范围;
首先输入学生个数,按回车键。按照提示选择,将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文本文档中的学生信息提取出来,保存在自己定义的数据结构中,然后再对该数据结构进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本文档中。输入数据类型主要是char、int、float等数据类型,输入内容包括:学期、学号、姓名、高等数学成绩,数据机构成绩,大学英语成绩总分,平均分等数据。
(2) 输出的形式;
学期、学号、姓名、高等数学成绩,数据结构成绩,大学英语成绩,总分,平均分
等数据。
(3) 程序所能达到的功能;
1. 数据输入功能,输入的数据能最终保存在文件中; 2.数据删除功能,能最终从文件中删除;
3. 排序功能,根据自己设计的数据结构,设计排序算法
4.多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能; 6. 学生信息的修改(比如修改学生姓名,修改学生某门课程的成绩)
7. 其它功能(如各种统计,统计每个学生所有课程的平均分,统计某门课程所有学生的平均分等等)
2、 概要设计
1. 数据结构:数组(顺序存储结构) 2. 程序模块:
(1)先编入系统所需的库函数,使程序可运行
#include
#include
(2)主界面的设计
在主界面中包括“①输入学生信息并保存到文件 ②读取文件并输出学生信息 ③按学号及学期查询 ④按姓名及学期查询 ⑤按学号及学期修改信息 ⑥插入信息 ⑦按学号及学期删除信息 ⑧按数据结构降序(冒泡)排序 ⑨按总分降序(选择)排序 ⑩统计各科成绩的总分和平均分 11退出”等全部的功能。每个函数体如下:
void input(Student *r); //输入 void output(Student *r); //输出
void searchnum(Student *r); //按 学号及学期 查找 void searchname(Student *r); //按 姓名及学期 查找
void change(Student *r); //按 学号及学期 修改信息
3
Student *insert(Student *r); //插入信息
void shanchu(Student *r); //按 学号及学期 删除信息
void maopao(Student *r); //按数据结构降序(冒泡)排序 void xuanze(Student *r); //按总分降序(选择)排序
void tongji(Student *r); //统计各科总分和平均分信息
(3)Main()函数的设计
在main()函数中主要运用do-while循环语句和switch()-case选择判断语句来调用相关 功能模块。系统的运行是在一个循环里进行的,只有在主界面并选择“退出”时,才会跳出循环,并退出程序。 void main() { cout<<\输入学生的个数:\ cin>>num; //全局变量 Student *p=(Student *)new Student[num]; //定义指针数组,存放学生个数 int m; do{ cout<
4
break; case 3: searchnum(p); break; case 4: searchname(p); break; case 5: change(p); break; case 6: p=insert(p); break; case 7: shanchu(p); break; case 8: maopao(p); break; case 9: xuanze(p); break; case 10: tongji(p); break; case 11: break; }
}while(m!=11);
}
3、详细设计 1、系统流程图
//退出 5