C++课程设计--学生成绩管理系统357.pdf
《C++课程设计--学生成绩管理系统357.pdf》由会员分享,可在线阅读,更多相关《C++课程设计--学生成绩管理系统357.pdf(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 C+课程设计-学生成绩管理系统 课程实训报告 课程名称:控制台小型应用实训 实训题目:学生成绩管理系统 专 业:软件技术 班 级:2 班 学生姓名:陈虹霓 学 号:1102847 指导教师:蔡茜 职 称:讲师 部 门:计算机与电子工程系 起止日期:2012年6月 1日 至2012年7月1 日 教务处制 3 目 录 一、课程设计简介.4 二、设计方案.5 三、具体设计及截屏图.8(一)类的设计.8 1、学生类.8 2、学生信息类.9(二)界面设计.10 1、登陆界面的设计.10 2、主界面的设计.11 3、分界面:增加学生信息的设计.12 4、分界面:显示学生信息的设计.13 5、分界面:排序
2、统计信息的设计.13 6、分界面:查找学生信息的设计.14 7、分界面:删除学生信息的设计.16 8、分界面:修改学生信息的设计.17 9、分界面:修改学生信息的设计.17 10、分界面:安全退出系统的设计.18 四、代码分析.19 五、测 试.20 六、课题总结与体会.25 七、参考文献.26 4 八、源代码.26 一、课程设计简介 学生成绩管理系统是根据某学校对学生成绩管理的实际情况进行编写的,主要目的是为了方便学校对学生成绩的实际情况进行集中的查询与管理工作,以提高对整个学校的学生成绩管理工作。操作人员对学生的信息需要进行选择,系统必须实现相应的增加、删除、修改、查询、排序和输出功能,使
3、操作人员更加方便的进行操作。主要实现的功能包括:增加学生信息、显示学生信息、排序统计信息、查找学生信息、删除学生信息、修改学生信息、保存学生信息、安全退出系统。组员的分工情况:姚群:安全退出函数和显示学生信息函数;吴英霏:查找学生信息函数;林春节:删除学生信息函数;5 邓园媛:保存学生信息函数;杨孝虎:增加学生信息函数;唐印:排序统计成绩函数;我主要负责的部分是:修改学生信息函数。二、设计方案 按照需求分析所得,学生成绩管理系统有以下几个功能模块:1增加学生信息函数;输入姓名、学号、C 课程成绩、数学成绩、英语成绩来增加学生信息。2显示学生信息函数;显示出增加的学生信息。3排序统计信息函数;按
4、照学生的总成绩来进行从大到小的排序。4查找学生信息函数;按学生的姓名、学号和课程成绩来进行查找。5删除学生信息函数;按照学生的姓名和学号来进行删除操作。6修改学生信息函数;可以对学生的姓名和学号进行修改。7保存学生信息函数;保存所有学生的信息到“sort.txt”文件中。8安全退出函数;安全退出学生成绩管理系统。由上述需求分析可得,系统的功能模块图如图 2-1 所示。6 学生成绩管理系统增加学生信息显示学生信息排序统计信息查找学生信息删除学生信息修改学生信息保存学生信息安全退出登陆界面 图 2-1 功能模块结构图 软件功能流程图如下图 2-2 所示:7 结束开始登陆Y失败3次以下失败3次以上增
5、加学生信息按姓名查找按学号查找查找课程成绩按姓名删除按学号删除按姓名修改按学号修改显示学生信息排序统计信息查找学生信息删除学生信息修改学生信息保存学生信息安全退出系统 图 2-2 软件功能流程图 8 三、具体设计及截屏图(一)类的设计 根据上述需求分析,有学生类和学生信息类。1、学生类 Student 类中成员:Public:char name20;/姓名 char Id20;/学号 float Cnum;/C 课程得分 float Mnum;/数学课程得分 float Enum;/英语课程得分 float sum;/总分 float average;/计算平均成绩 Student*Next;
6、void Input();/输入数据 void ReadFile(istream&in);/提取输入的数据 void Show();/输出信息 学生类的 UML 图如(图 2-3)所示:9 图 2-3 学生类 Student 2、学生信息类 Student 类中成员:private:Student*Head,*End;ifstream in;ofstream out;public:StudentMessage();virtual StudentMessage();void ShowMenu();/菜单 void Find();/查找函数 void Save();/保存函数 void Modif
7、yItem();/修改信息 void RemoveItem();/删除信息 void Swap(Student*,Student*);/交换两个 combox 变量的数据域 void Sort();/对当前链表进行排序 void tuichu();/退出函数 int ListCount();/统计当前链表的记录总数,返回一个整数 void Display();/输出信息 void AddItem();/增加学生信息 Student*FindID(char*Id);Student*FindItem(char*name);学生信息类的 UML 图如(图 2-4)所示:Class Student c
8、har name20;char Id20;float Cnum;/C 课程得分 float Mnum;/数学课程得分 10 图 2-4 学生信息类StudentMessage(二)界面设计 1、登陆界面的设计 登陆界面中显示提出输入用户名和密码。学生成绩管理系统登陆界面如图2-5 所示。Class StudentMessage private:Student*Head,*End;ifstream in;ofstream out;public:StudentMessage();virtual StudentMessage();void ShowMenu();/菜单 void Find();/查找
9、函数 void Save();/保存函数 11 图 2-5 登陆界面 2、主界面的设计 主界面中显示学生成绩管理系统的全部信息,增加学生信息,显示学生信息,排序统计信息,查找学生信息,删除学生信息,修改学生信息,保存学生信息,安全退出系统。学生成绩管理系统主界面如图 2-6 所示。12 图 2-6 主界面 3、分界面:增加学生信息的设计 提示输入学生姓名,学生学号,C 课程的成绩,数学成绩,英语成绩。增加学生信息如图 2-7 所示。13 图 2-7 增加学生信息 4、分界面:显示学生信息的设计 图 2-8 显示学生信息 5、分界面:排序统计信息的设计 按从大到小的顺序排序。如图 2-9 所示。
10、14 图 2-9 排序统计信息 6、分界面:查找学生信息的设计 提示需要按什么信息去查找。如图 2-10 所示。图 2-10 15 按学生姓名查找,如图 2-11 所示。图 2-11 按学生姓名查找 按学生学号查找,如图 2-12 所示。图 2-12 按学生学号查找 查找学生课程成绩,如图 2-13 所示。16 图 2-13 查找学生课程成绩 7、分界面:删除学生信息的设计 提示按什么信息去删除学生的信息,如图 2-14 所示。图 2-14 17 8、分界面:修改学生信息的设计 提示按什么信息去修改学生的信息,如图 2-15 所示。图 2-15 9、分界面:修改学生信息的设计 如图 2-16
11、所示。18 图 2-16 10、分界面:安全退出系统的设计 如图 2-17 所示。图 2-17 19 四、代码分析 修改学生的信息 修改学生的信息,按要求提示输入要删除学生的姓名或学号,定义一个指向链表第一个节点的指针 p。如果指针创建成功,开始用 if 语句实现 p 指向的节点的学生的姓名或学号与存在的姓名或学号的比较。如果相同,输出该学生的信息并进行修改;如果没有相同的,提示没有找到该学生的信息。#include#include StudentMessage.h#include Student.h#include string.h#include windows.h/修改信息 void S
12、tudentMessage:ModifyItem()char name20;char Id10;int y;Student*p=NULL;coutntt*endl;couttt 1.按学生的姓名修改ntt 2.按学生的学号修改ttendl;couty;switch(y)case 1:coutname;if(p=FindItem(name)couttt 已找到学生的信息,请输入新的信息!Next;coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Show();coutp-name;cout修改成功!endl;cout输入任意字符!继续endl;20 getch();else couttt
13、没有找到!endl;cout输入任意字符!继续endl;getch();break;case 2:coutId;if(p=FindID(Id)couttt 已找到学生的信息,请输入新的信息!Next;coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Show();coutp-Id;cout修改成功!endl;cout输入任意字符!继续endl;getch();else couttt 没有找到!endl;cout输入任意字符!继续endl;getch();break;五、测 试 程序测试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。原程序:/修
14、改信息 21#include#include StudentMessage.h#include Student.h#include string.h#include windows.h void StudentMessage:ModifyItem()char name20;char Id10;int y;Student*p=NULL;coutntt*endl;couttt 1.按学生的姓名修改ntt 2.按学生的学号修改ttendl;couty;switch(y)case 1:coutname;if(p=FindItem(name)22 couttt 已找到学生的信息,请输入新的信息!endl
15、;coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Show();coutp-name;cout修改成功!endl;cout输入任意字符!继续endl;getch();else couttt 没有找到!endl;cout输入任意字符!继续endl;getch();break;case 2:coutId;if(p=FindID(Id)23 couttt 已找到学生的信息,请输入新的信息!endl;coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Show();coutp-Id;cout修改成功!endl;cout输入任意字符!继续endl;getch();else couttt 没有
16、找到!endl;cout输入任意字符!继续endl;getch();break;编译成功后开始运行,选择修改,输入要修改的学生的姓名或学号后,找到的不是要找的这个学生的姓名或学号而是上一个学生的姓名或学号,进行修改过后,就能准确的找到要找的学生信息。修改后的代码:/修改信息 24#include#include StudentMessage.h#include Student.h#include string.h#include windows.h void StudentMessage:ModifyItem()char name20;char Id10;int y;Student*p=NUL
17、L;coutntt*endl;couttt 1.按学生的姓名修改ntt 2.按学生的学号修改ttendl;couty;switch(y)case 1:coutname;if(p=FindItem(name)couttt 已找到学生的信息,请输入新的信息!Next;coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Show();coutp-name;cout修改成功!endl;cout输入任意字符!继续endl;getch();else couttt 没有找到!endl;cout输入任意字符!继续endl;getch();break;case 2:coutId;if(p=FindID(Id
18、)25 couttt 已找到学生的信息,请输入新的信息!Next;coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Show();coutp-Id;cout修改成功!endl;cout输入任意字符!继续endl;getch();else couttt 没有找到!endl;cout输入任意字符!继续endl;getch();break;六、课题总结与体会 忙碌了几个星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,
19、这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的编写程序的经验,要解决我们的问题,对他们来说只是小问题。很感谢这次的课程设计,它使我更加深刻地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,做任何事都要有耐心,不要一遇到困难就退缩。总之,这次设计程序让我受益良多,我会好好珍惜像这种难得的机会。26 七、参考文献【1】C+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 学生 成绩管理系统 357
限制150内