C++课程设计--学生成绩管理系统357.pdf

上传人:深夜****等你... 文档编号:75099390 上传时间:2023-03-01 格式:PDF 页数:38 大小:1.05MB
返回 下载 相关 举报
C++课程设计--学生成绩管理系统357.pdf_第1页
第1页 / 共38页
C++课程设计--学生成绩管理系统357.pdf_第2页
第2页 / 共38页
点击查看更多>>
资源描述

《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+

20、程序设计实例与操作【2】 八、源代码/main.cpp#include iostream.h#include windows.h#include string.h#include Student.h#include StudentMessage.h#include conio.h void login();/登陆界面 void main()login();system(color 3e);/设置系统背景色和前景色 int x,i=0;bool quit=false;coutttendl;for(i=0;i3;i+)couttttttttt endl;couttt【欢迎进入学生成绩管理系统 】e

21、ndl;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.Sort();break;case 4:Grade.Find();break;case 5:Grade.RemoveItem();break;case 6:Grade.ModifyItem();break;case 7:Grade.Save()

22、;break;/Student.h class Student public:char name20;char Id20;float Cnum;/C 课程得分 float Mnum;/数学课程得分 float Enum;/英语课程得分 float sum;/总分 float average;/计算平均成绩 Student*Next;void Input();/输入数据 void ReadFile(istream&in);/提取输入的数据 void Show();/输出信息 ;/Student.cpp#include Student.h#include iostream.h void Stude

23、nt:Input()/输入数据 28 coutname;coutId;coutCnum;coutMnum;coutEnum;sum=Cnum+Mnum+Enum;average=sum/3;void Student:ReadFile(istream&in)/提取输入的数据 innameIdCnumMnumEnumsumaverage;void Student:Show()/输出信息 couttnametIdtCnumtMnumtEnumtsumtaverageendl;/StudentMessage.h class StudentMessage private:Student*Head,*En

24、d;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();/统计当前链表的记录总数

25、,返回一个整数 void Display();/输出信息 29 void AddItem();/增加学生信息 Student*FindID(char*Id);Student*FindItem(char*name);/StudentMessage.cpp class StudentMessage private:Student*Head,*End;ifstream in;ofstream out;public:StudentMessage();virtual StudentMessage();void ShowMenu();/菜单 void Find();/查找函数 void Save();/保

26、存函数 void ModifyItem();/修改信息 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);/login.cpp#include iostr

27、eam.h#include windows.h#include string.h#include stdio.h#include conio.h void login()system(color 8e);char username10;/保存用户名 char password8;/保存密码 int j,x;/循环变量 int count=0;/统计登录失败的次数 30 do coutnnnttt学 生 成 绩 管 理 系 统 平 台endl;coutnt项 目 成 员:陈虹霓 姚群 林春节 吴英霏 邓园媛 杨孝虎 唐印endl;coutnt开 发 周 期:2012年6月1日-2012年 7 月

28、 1 日endl;coutnnttttttt重庆工商职业学院endl;coutn endl;coutn 用户登录endl;coutnntt用 户 名:username;/记录用户输入的内容 coutnntt密 码:endl;fflush(stdin);/清空输入缓冲区 for(x=0;x8;x+)/记录用户输入的密码 passwordx=getch();putchar(*);password7=0;/验证用户名和密码是否正确 if(strcmp(username,chen)=0&strcmp(password,1102847)=0|strcmp(username,yao)=0&strcmp(p

29、assword,1102849)=0|strcmp(username,lin)=0&strcmp(password,1102843)=0|strcmp(username,wu)=0&strcmp(password,1102878)=0|strcmp(username,deng)=0&strcmp(password,1102873)=0|strcmp(username,yang)=0&strcmp(password,1102863)=0|strcmp(username,tang)=0&strcmp(password,1102880)=0)/如果用户名与密码都等于admin则进入系统的主界面 sy

30、stem(cls);coutnnnnntttt正在登录学生成绩管理系统,请稍后!endl;for(j=0;j);system(cls);31 Sleep(2000);break;else system(cls);coutnnnnntttt_=3)/当错误的次数超过三次,系统自动退出 coutnnttt提示:您输入错误的次数太多,请稍后再试!endl;exit(0);while(1);/Find.cpp#include#include StudentMessage.h#include Student.h#include string.h#include windows.h/查找函数 void S

31、tudentMessage:Find()char name20,Id10;int x;int z;Student*p=NULL;coutntt*n;couttt 1.按学生的姓名查找ntt 2.按学生学号查找ntt 3.查找学生课程成绩;coutx;switch(x)case 1:32 coutname;if(p=FindItem(name)coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Next-Show();cout输入任意字符!继续endl;getch();else couttt 没有找到该姓名的学生!nendl;cout输入任意字符!继续endl;getch();break;c

32、ase 2:coutId;if(p=FindID(Id)coutt姓名t学号tC+t数学t外语t总成绩t平均成绩Next-Show();cout输入任意字符!继续endl;getch();else couttt 没有找到该学号的学生!nendl;cout输入任意字符!继续Next;couttt 请选择你要查找的课程名称:;coutntt*n;couttt 1.C+ntt 2.数学ntt 3.英语;coutz;33 switch(z)case 1:coutC+成绩为:endl;while(p!=End)coutCnumNext;cout输入任意字符!继续endl;getch();break;ca

33、se 2:cout数学成绩为:endl;while(p!=End)coutMnumNext;cout输入任意字符!继续endl;getch();break;case 3:cout英语成绩为:endl;while(p!=End)coutEnumNext;cout输入任意字符!继续endl;getch();break;/ModifyItem.cpp#include#include StudentMessage.h#include Student.h#include string.h#include windows.h/修改信息 34 void StudentMessage:ModifyItem()

34、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;getch();else couttt 没有找到!endl;cout输入任意字符!继续endl;g

35、etch();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.h#include Student.h#include string.h#include

36、 windows.h/删除信息 void StudentMessage:RemoveItem()char name20,Id10;int a;Student*p=NULL,*temp=NULL;coutntt*endl;couttt 1.按学生的姓名删除ntt 2.按学生的学号删除ttendl;couta;switch(a)case 1:couttt 请输入要删除的学生的姓名:name;if(p=FindItem(name)temp=p-Next;p-Next=p-Next-Next;delete temp;couttt 删除成功!endl;36 cout输入任意字符!继续endl;getch

37、();else couttt 没有找到!endl;cout输入任意字符!继续endl;getch();break;case 2:couttt 请输入要删除的学生的学号:Id;if(p=FindID(Id)temp=p-Next;p-Next=p-Next-Next;delete temp;couttt 删除成功!endl;cout输入任意字符!继续endl;getch();else couttt 没有找到!endl;cout输入任意字符!继续endl;getch();break;/ShowMenu.cpp#include#include StudentMessage.h#include Stu

38、dent.h#include string.h#include windows.h/菜单 void StudentMessage:ShowMenu()cout 学 生 成 绩 管 理 系 统 endl;cout endl;37 cout 1.增加学生信息 endl;cout 2.显示学生信息 endl;cout 3.排序统计信息 endl;cout 4.查找学生信息 endl;cout 5.删除学生信息 endl;cout 6.修改学生信息 endl;cout 7.保存学生信息 endl;cout 0.安全退出系统 endl;coutnttntt 请选择:;/tuichu.cpp#include#include StudentMessage.h#include Student.h#include string.h#include windows.h/退出函数 void StudentMessage:tuichu()int i;system(cls);coutnntt正在退出学生成绩管理系统,请稍候!0;i-)coutnnnntt 系统将在i秒后退出!endl;Sleep(1500);system(cls);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com