背景:
目录
第一章 需求分析 2
1.1 问题描述 2
6.1 功能需求 2
6.2 开发环境 2
6.3 开发过程 2
第二章 概要设计 3
2.1 总体设计 3
2.2 类的定义 3
2.3 接口设计 5
2.4 运行界面设计 6
第三章 详细设计 7
3.1 输入模块设计 7
3.2 查找、编辑模块设计 8
3.3 删除模块设计 8
3.4 文件读写模块设计 9
3.5 显示(含排序)模块设计 10
第四章 测试分析 12
4.1 测试程序执行情况 12
第六章 课程设计总结 13
附录:程序代码 13
第一章 需求分析
1.1问题描述
2学生信息包括:学号、姓名、性别、年龄、班级等信息。
3小学生除了包括学生所有信息外,还包括英语、数学和语文成绩。
4中学生除了包括小学生所有信息外,还包括地理、历史成绩。
5大学生除了包括学生所有信息外,还包括专业、英语、程序设计和高等数学等课程。
6设计一程序能够对学生成绩进行管理。
6.1功能需求
(1)添加功能:程序能够添加不同学生的记录,提供选择界面供用户选择所要添加的类别,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能:可显示当前系统中所有学生的记录,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。
(5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。
(6)统计功能:能根据多种参数进行统计。能统计学生人数、总分、单科的平均分等。
(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。
(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。
(9)排序功能:可按总分和单科成绩排名次。
6.2开发环境
Code::Blocks是一个免费、开源、跨平台的集成开发环境,使用C++开发,并且使用wxWidgets做为GUI函式库。Code::Blocks使用了外挂程式架构,其功能可以使用外挂程式自由地扩充。目前,Code::Blocks主要针对开发C/C++程式而设计。Code::Blocks目前支援Windows、Linux及Mac OS X数种平台,能够在FreeBSD环境中架设Code::Blocks。
6.3开发过程
第一天 选择课程设计题目,分析课题的要求
第二天 编程
第三天 编程及调试
第四天 写课程设计报告
第五天 提交课程设计报告
第二章概要设计
2.1总体设计
根据需求分析,由于学生种类包括小学生、中学生、大学生,所以设计了三个类(Ele_Student_System /Senior_Student_System /Uni_Student_System),用于封装不同种类的学生信息与成员函数。
其主要功能模块有:
(1)键盘输入
(2)屏幕输出
(3)文件读取
(4)文件写入
(5)统计
(6)排序
(7)编辑
(8)删除
各功能模块的调用应通过菜单进行选取。
为了让程序看起来更简洁明了,一级菜单。
2.2类的定义
由于小学生、中学生、大学生三种不同分类的信息组需要用到的函数大同小异,所以中学生类和大学生类是在小学生类的基础上进行添加与修改的。
类定义以小学生类为例展示:
11 class Ele_Student_System 12 { 13 private: 14 15 int number; 16 string name; 17 int age; 18 string sex; 19 string class_info; 20 21 float English; 22 float Math; 23 float Chinese; 24 float Total; 25 26 public: 27 28 //Ele_Student_System(); 29 void Recording(); 30 float Counting_English( int Amount ); 31 float Counting_Math( int Amount ); 32 float Counting_Chinese( int Amount ); 33 void Writting(); 34 void Reading(); 35 36 void Sorting_English( int Amount ); 37 void Sorting_Total( int Amount ); 38 void Sorting_Math( int Amount ); 39 void Sorting_Chinese( int Amount ); 40 41 void Showing_All(); 42 void Removing(); 43 void Searching( string name, int Amount ); 44 void Searching( int number, int Amount ); 45 void Modifing ( int i ); 46 47 }; 48 49 Ele_Student_System Student[101]; |
2.3接口设计
2.4运行界面设计
第三章 详细设计
3.1输入模块设计
55 void Ele_Student_System :: Recording() 56 { 57 int n = Ele_Amount; 58 char Choice = 'Y'; 59 while ( Choice == 'Y' ) 60 { 61 cout << " 输入å¦å·: "; 62 cin >> Student[n].number; 63 int i = 0; 64 for ( i=0; i<Ele_Amount; i++ ) 65 { 66 if ( Student[i].number == Student[n].number ) 67 { 68 cout << " æ¤å¦å·å·²å˜åœ¨!" << endl; 69 goto End; 70 } 71 else continue; 72 } 73 cout << " 输入姓å: " ; 74 cin >> Student[n].name; 75 cout << " 输入年龄: " ; 76 cin >> Student[n].age; 77 cout << " 输入性别: " ; 78 cin >> Student[n].sex; 79 cout << " 输入ç级: " ; 80 cin >> Student[n].class_info; 81 cout << " 英è¯æˆç»©: " ; 82 cin >> Student[n].English; 83 cout << " æ•°å¦æˆç»©: " ; 84 cin >> Student[n].Math; 85 cout << " è¯æ–‡æˆç»©: " ; 86 cin >> Student[n].Chinese; 87 Student[n].Total = Student[n].English + Student[n].Math + Student[n].Chinese; 88 cout << " 总æˆç»©: " << Student[n].Total << endl; 89 n++; 90 Ele_Amount++; 91 Ele_Surplus--; 92 End: cout << '\n' << " 继ç»è¾“å…¥æ–°çºªå½•å— ? (Y/N) : " ; 93 cin >> Choice ; 94 } 95 cout << " [ Finished ] " << endl; 96 } |
3.2查找、编辑模块设计
284 void Ele_Student_System :: Searching ( string name, int Amount ) 285 { 286 int i = 0; 287 int Result = 0; 288 for ( i=0; i<Amount; i++ ) 289 { 290 if ( name == Student[i].name ) 291 { 292 cout << " 查找到记录: " << Student[i].number << " " << Student[i].name << " " << Student[i].age << " " << Student[i].sex << " " << Student[i].class_info << " " << Student[i].English << " " << Student[i].Math << " " << Student[i].Chinese << endl; 293 Result = 1; 294 cout << " 进行修改� Y/N : "; 295 char Modification='N'; 296 cin >> Modification; 297 if ( Modification=='Y' ){ Modifing( i );} 298 break; 299 } 300 else continue; 301 } 302 if ( Result == 1 ) {cout << " [ Finished ] " << endl;} 303 else {cout << " [ The record not exist! ]" << endl;} 304 } 305 |
……..
添加其它模块
第四章 测试分析
4.1测试程序执行情况
再添加各种测试截图
第六章课程设计总结
这学期通过学习C++,对C语言和C++语言都有了更深刻的认识,也学习到了面向对象程序设计的思想与方法。
C++主要在类、对象以及一些stream上有了扩充,这使得它更加能够适应各种编程需要,但是也是难度提升的一些知识点,我在编写类这块内容时,有时自己思路结构不清晰的话写出来的东西报错就很严重。。。。。。。。。。。。。。。。。
附录:程序代码
过程:
Dev-C++使用C++语言开发
系统包含小/中/大学生成绩管理三个子系统,此处以小学生成绩管理系统举例
小学生成绩管理系统主界面
插入学生信息
显示所有学生信息
根据姓名查询学生信息
通过学号查询学生信息
通过数学成绩排序
通过英语成绩排序
通过语文成绩排序
统计学生成绩
通过学号修改学生记录
删除学生记录
源码、报告获取
欢迎大家点赞、收藏、关注、评论、批评啦 、查看👇🏻👇🏻获取联系方式👇🏻👇🏻