




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程实训报告课程名称:控制台小型应用实训 实训题目:学生成绩管理系统专 业:软件技术班 级:2班学生姓名: 陈虹霓学 号: 1102847指导教师: 蔡茜职 称:讲师部 门: 计算机与电子工程系 起止日期:2012年6月1日 至2012年7月1日教务处制目录一、课程设计简介3二、设计方案4三、具体设计及截屏图7(一)类的设计71、学生类72、学生信息类8(二)界面设计91、登陆界面的设计92、主界面的设计103、分界面:增加学生信息的设计114、分界面:显示学生信息的设计125、分界面:排序统计信息的设计126、分界面:查找学生信息的设计137、分界面:删除学生信息的设计158、分界面:修改学
2、生信息的设计169、分界面:修改学生信息的设计1610、分界面:安全退出系统的设计17四、代码分析18五、测试19六、课题总结与体会25七、参考文献25八、源代码25一、课程设计简介学生成绩管理系统是根据某学校对学生成绩管理的实际情况进行编写的,主要目的是为了方便学校对学生成绩的实际情况进行集中的查询与管理工作,以提高对整个学校的学生成绩管理工作。操作人员对学生的信息需要进行选择,系统必须实现相应的增加、删除、修改、查询、排序和输出功能,使操作人员更加方便的进行操作。主要实现的功能包括:增加学生信息、显示学生信息、排序统计信息、查找学生信息、删除学生信息、修改学生信息、保存学生信息、安全退出系
3、统。组员的分工情况:姚群:安全退出函数和显示学生信息函数;吴英霏:查找学生信息函数;林春节:删除学生信息函数;邓园媛:保存学生信息函数;杨孝虎:增加学生信息函数;唐印:排序统计成绩函数;我主要负责的部分是:修改学生信息函数。二、设计方案按照需求分析所得,学生成绩管理系统有以下几个功能模块:1增加学生信息函数;输入姓名、学号、C课程成绩、数学成绩、英语成绩来增加学生信息。2显示学生信息函数;显示出增加的学生信息。3排序统计信息函数;按照学生的总成绩来进行从大到小的排序。4查找学生信息函数;按学生的姓名、学号和课程成绩来进行查找。5删除学生信息函数;按照学生的姓名和学号来进行删除操作。6修改学生信
4、息函数;可以对学生的姓名和学号进行修改。7保存学生信息函数;保存所有学生的信息到“sort.txt”文件中。8安全退出函数;安全退出学生成绩管理系统。由上述需求分析可得,系统的功能模块图如图2-1所示。图2-1 功能模块结构图软件功能流程图如下图2-2所示:图2-2 软件功能流程图三、具体设计及截屏图(一)类的设计根据上述需求分析,有学生类和学生信息类。1、学生类Student类中成员:Public:char name20;/姓名 char Id20;/学号 float Cnum;/C课程得分 float Mnum;/数学课程得分 float Enum;/英语课程得分 float sum;/总
5、分 float average;/计算平均成绩 Student * Next; void Input();/输入数据 void ReadFile(istream & in);/提取输入的数据 void Show();/输出信息学生类的UML图如(图2-3)所示:Class Studentchar name20;char Id20;float Cnum; /C课程得分float Mnum; /数学课程得分float Enum; /英语课程得分float sum; /总分float average;/计算平均成绩Student * Next;void Input();/输入数据void ReadF
6、ile(istream & in);/提取输入的数据void Show();/输出信息图2-3学生类Student2、学生信息类Student类中成员:private:Student *Head,*End;ifstream in;ofstream out;public:StudentMessage();virtual StudentMessage();void ShowMenu();/菜单void Find();/查找函数void Save();/保存函数void ModifyItem();/修改信息void RemoveItem();/删除信息void Swap(Student *,Stud
7、ent *);/交换两个combox变量的数据域void Sort();/对当前链表进行排序void tuichu();/退出函数int ListCount();/统计当前链表的记录总数,返回一个整数void Display();/输出信息void AddItem();/增加学生信息Student *FindID(char * Id);Student *FindItem(char * name);学生信息类的UML图如(图2-4)所示:Class StudentMessageprivate:Student *Head,*End;ifstream in;ofstream out;public:S
8、tudentMessage();virtual StudentMessage();void ShowMenu();/菜单void Find();/查找函数void Save();/保存函数void ModifyItem();/修改信息void RemoveItem();/删除信息void Swap(Student *,Student *);/交换两个combox变量的数据域void Sort();/对当前链表进行排序void tuichu();/退出函数int ListCount();/统计当前链表的记录总数,返回一个整数void Display();/输出信息void AddItem();/
9、增加学生信息Student *FindID(char * Id);Student *FindItem(char * name);图2-4学生信息类StudentMessage(二)界面设计1、登陆界面的设计登陆界面中显示提出输入用户名和密码。学生成绩管理系统登陆界面如图2-5所示。图2-5登陆界面2、主界面的设计主界面中显示学生成绩管理系统的全部信息,增加学生信息,显示学生信息,排序统计信息,查找学生信息,删除学生信息,修改学生信息,保存学生信息,安全退出系统。学生成绩管理系统主界面如图2-6所示。图2-6主界面3、分界面:增加学生信息的设计提示输入学生姓名,学生学号,C课程的成绩,数学成绩,
10、英语成绩。增加学生信息如图2-7所示。图2-7 增加学生信息4、分界面:显示学生信息的设计图2-8 显示学生信息5、分界面:排序统计信息的设计按从大到小的顺序排序。如图2-9所示。图2-9 排序统计信息6、分界面:查找学生信息的设计提示需要按什么信息去查找。如图2-10所示。图2-10按学生姓名查找,如图2-11所示。图2-11 按学生姓名查找按学生学号查找,如图2-12所示。图2-12 按学生学号查找查找学生课程成绩,如图2-13所示。图2-13 查找学生课程成绩7、分界面:删除学生信息的设计提示按什么信息去删除学生的信息,如图2-14所示。图 2-148、分界面:修改学生信息的设计提示按什
11、么信息去修改学生的信息,如图2-15所示。图 2-159、分界面:修改学生信息的设计如图2-16所示。图 2-1610、分界面:安全退出系统的设计如图2-17所示。图 2-17四、代码分析修改学生的信息修改学生的信息,按要求提示输入要删除学生的姓名或学号,定义一个指向链表第一个节点的指针p。如果指针创建成功,开始用if语句实现p指向的节点的学生的姓名或学号与存在的姓名或学号的比较。如果相同,输出该学生的信息并进行修改;如果没有相同的,提示没有找到该学生的信息。#include #include StudentMessage.h#include Student.h#include string.
12、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) couttt已找到学生的信息,请输入新的信息!Next; coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Show(); coutp-name; cout修改成功!
13、endl; cout输入任意字符!继续endl; getch(); else couttt没有找到!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、测试程序测试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。原程序:/修改信息#include #include StudentMessage.h#include Student.h#include string.h#include windows.hvoid StudentMessage:ModifyItem() char name20; char Id10; int y; Student * p=NULL; coutntt*endl; couttt 1.按学生的姓名修改ntt 2.按学生的学号修改ttendl; couty; switch(y)
15、case 1: coutname; if(p=FindItem(name) couttt已找到学生的信息,请输入新的信息!endl; 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) couttt已找到学生的信息,请输入新的信息!endl; coutt姓名t学号tC+t数学t外语t总成绩t
16、平均成绩Show(); coutp-Id; cout修改成功!endl; cout输入任意字符!继续endl; getch(); else couttt没有找到!endl; cout输入任意字符!继续endl; getch(); break; 编译成功后开始运行,选择修改,输入要修改的学生的姓名或学号后,找到的不是要找的这个学生的姓名或学号而是上一个学生的姓名或学号,进行修改过后,就能准确的找到要找的学生信息。修改后的代码:/修改信息#include #include StudentMessage.h#include Student.h#include string.h#include win
17、dows.hvoid 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) couttt已找到学生的信息,请输入新的信息!Next; coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Show(); coutp-name; cout修改成功!endl; cout输入任意字符!继
18、续endl; getch(); else couttt没有找到!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; 六、课题总结与体会忙碌了几个星期,在大家
19、的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的编写程序的经验,要解决我们的问题,对他们来说只是小问题。很感谢这次的课程设计,它使我更加深刻地体
20、会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,做任何事都要有耐心,不要一遇到困难就退缩。总之,这次设计程序让我受益良多,我会好好珍惜像这种难得的机会。七、参考文献【1】C+程序设计实例与操作【2】八、源代码/main.cpp#include iostream.h#include windows.h#include string.h#include Student.h#include StudentMessage.h#include conio.hvoid login();/登陆界面void main() login(); system(color 3e);
21、 /设置系统背景色和前景色 int x,i=0; bool quit=false; coutttendl; for(i=0;i3;i+) couttttttttt endl; couttt【 欢迎进入学生成绩管理系统 】endl; for(i=0;i3;i+) couttttttttt endl; coutttnendl; cout按任意键开始x; switch(x) case 0:Grade.tuichu(); quit=true;break; case 1:Grade.AddItem();break; case 2:Grade.Display();break; case 3:Grade.S
22、ort();break; case 4:Grade.Find();break; case 5:Grade.RemoveItem();break; case 6:Grade.ModifyItem();break; case 7:Grade.Save();break; /Student.hclass Student public: char name20; char Id20; float Cnum; /C课程得分 float Mnum; /数学课程得分 float Enum; /英语课程得分 float sum; /总分 float average;/计算平均成绩 Student * Next;
23、 void Input();/输入数据 void ReadFile(istream & in);/提取输入的数据 void Show();/输出信息;/Student.cpp#include Student.h#include iostream.hvoid Student:Input()/输入数据 coutname; coutId; coutCnum; coutMnum; coutEnum; sum=Cnum+Mnum+Enum; average=sum/3;void Student:ReadFile(istream & in)/提取输入的数据innameIdCnumMnumEnumsumav
24、erage;void Student:Show()/输出信息couttnametIdtCnumtMnumtEnumtsumtaverageendl;/StudentMessage.hclass StudentMessage private:Student *Head,*End;ifstream in;ofstream out;public:StudentMessage();virtual StudentMessage();void ShowMenu();/菜单void Find();/查找函数void Save();/保存函数void ModifyItem();/修改信息void Remove
25、Item();/删除信息void Swap(Student *,Student *);/交换两个combox变量的数据域void Sort();/对当前链表进行排序void tuichu();/退出函数int ListCount();/统计当前链表的记录总数,返回一个整数void Display();/输出信息void AddItem();/增加学生信息Student *FindID(char * Id);Student *FindItem(char * name);/StudentMessage.cppclass StudentMessage private:Student *Head,*E
26、nd;ifstream in;ofstream out;public:StudentMessage();virtual StudentMessage();void ShowMenu();/菜单void Find();/查找函数void Save();/保存函数void ModifyItem();/修改信息void RemoveItem();/删除信息void Swap(Student *,Student *);/交换两个combox变量的数据域void Sort();/对当前链表进行排序void tuichu();/退出函数int ListCount();/统计当前链表的记录总数,返回一个整数
27、void Display();/输出信息void AddItem();/增加学生信息Student *FindID(char * Id);Student *FindItem(char * name);/login.cpp#include iostream.h#include windows.h#include string.h#include stdio.h#include conio.hvoid login()system(color 8e); char username10; /保存用户名char password8; /保存密码int j,x;/循环变量int count = 0; /统
28、计登录失败的次数docoutnnnttt学 生 成 绩 管 理 系 统 平 台endl;coutnt项 目 成 员:陈虹霓 姚群 林春节 吴英霏 邓园媛 杨孝虎 唐印endl;coutnt开 发 周 期:2012年6月1日-2012年7月1日endl;coutnnttttttt重庆工商职业学院endl;coutn endl;coutn 用户登录endl;coutnntt用 户 名:username;/记录用户输入的内容coutnntt密 码:endl;fflush(stdin); /清空输入缓冲区for(x=0;x8;x+)/记录用户输入的密码passwordx=getch();putchar
29、(*);password7=0;/验证用户名和密码是否正确if(strcmp(username, chen) =0 & strcmp(password, 1102847) = 0|strcmp(username, yao) =0 & strcmp(password, 1102849) = 0|strcmp(username, lin) =0 & strcmp(password, 1102843) = 0|strcmp(username, wu) =0 & strcmp(password, 1102878) = 0|strcmp(username, deng) =0 & strcmp(passw
30、ord, 1102873) = 0|strcmp(username, yang) =0 & strcmp(password, 1102863) = 0|strcmp(username, tang) =0 & strcmp(password, 1102880) = 0) /如果用户名与密码都等于admin则进入系统的主界面system(cls);coutnnnnntttt正在登录学生成绩管理系统,请稍后!endl;for(j=0; j);system(cls);Sleep(2000);break;else system(cls);coutnnnnntttt_= 3)/当错误的次数超过三次,系统自
31、动退出coutnnttt提示:您输入错误的次数太多,请稍后再试!endl;exit(0);while(1);/Find.cpp#include #include StudentMessage.h#include Student.h#include string.h#include windows.h/查找函数void StudentMessage:Find() char name20 ,Id10; int x; int z; Student * p=NULL; coutntt*n; couttt 1.按学生的姓名查找ntt 2.按学生学号查找ntt 3.查找学生课程成绩; coutx; swi
32、tch(x) case 1: coutname; if(p=FindItem(name) coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Next-Show(); cout输入任意字符!继续endl; getch(); else couttt没有找到该姓名的学生!nendl; cout输入任意字符!继续endl; getch(); break; case 2: coutId; if(p=FindID(Id) coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Next-Show(); cout输入任意字符!继续endl; getch(); else couttt没有找到该学号的学生
33、!nendl; cout输入任意字符!继续Next; couttt请选择你要查找的课程名称:; coutntt*n; couttt 1.C+ntt 2.数学ntt 3.英语; coutz; switch(z) case 1: coutC+成绩为:endl; while(p!=End) coutCnumNext; cout输入任意字符!继续endl; getch(); break; case 2: cout数学成绩为:endl; while(p!=End) coutMnumNext; cout输入任意字符!继续endl; getch(); break; case 3: cout英语成绩为:end
34、l; while(p!=End) coutEnumNext; cout输入任意字符!继续endl; getch(); break; /ModifyItem.cpp#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.按学生的学号修改
35、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) couttt已找到学生的信息,请输入新的信息!Next; coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Show(); coutp-Id; cout修改成功!endl; cout输入任意字符!继续endl; getch(); else couttt没有找到!endl; cout输入任意字符!继续endl; getch(); break; /RemoveItem.cpp#include #include StudentMessage
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/TS 20428:2024 EN Genomics Informatics - Data elements and their metadata for describing structured clinical genomic sequence information in electronic health records
- 【正版授权】 ISO 6900:2025 EN Dried red jujubes - Specification and test methods
- 2025年度大型企事业单位公务车辆租赁服务协议合同范本
- 2025年变配电保护自动化项目合作计划书
- 离职管理与退出面谈流程计划
- 秋季信息化教学推进计划
- 2025年酸碱平衡调节药合作协议书
- 智研咨询发布-2025年中国智慧环保行业产业链全景分析及发展趋势预测报告
- 2025年特异性植物源农药项目合作计划书
- 2025年医用氧化亚氮系统合作协议书
- TSG11-2020锅炉安全技术规程(现行)
- 一年级20以内加减及混合口算练习题
- 中南大学《药理学》2023-2024学年第一学期期末试卷
- 机电队技术员安全生产责任制(3篇)
- 血透机常见报警原因及处理课件
- 2024快手非遗生态报告
- 第三章企业的生产和成本
- 统编版 高中语文 必修下册 《祝福》《林教头风雪山神庙》
- 2024年职教高考《机械制图》考试题库
- 房地产行业房地产销售业绩考核方案
- 2025届高校毕业生公开招聘工作人员报名登记表
评论
0/150
提交评论