ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:87.36KB ,
资源ID:20515035      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20515035.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《C++》课程设计学生成绩管理系统Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《C++》课程设计学生成绩管理系统Word下载.docx

1、C+语言面向对象的编程思想来完成系统的设计,突出函数特征,以多个函数实现每一个子功能,并且画出功能模块图,进行简单界面设计,能够实现友好的交互;另一方面要具有清晰的程序流程图和数据结构的详细定义, 熟练掌握C+语言对文件的各种操作。据学生成绩表特点,决定选用链表这种数据结构来作为组成成绩数据库的基本框架。链表是最简单也是最常用的一种动态数据结构。它是对动态获得的内存进行组织的一种结构。选用链表有即用即申请,不会造成内存空间的浪费;数据之间既有独立性,又便于数据的相互连系;便于数据的添加及删除等优点。而用模块化程序设计理念,对各个功能定义不同函数分块处理,这样有利于后期 调试及今后对功能的完善。

2、功能图如下:每条链表有自己独立的函数和特定的功能,“学生信息管理”里面包含了学生成绩的排序等特有函数,而且主函数简单易懂明了。其中三条链表中都有上面所画功能图的功能,让人能一目了然。3 系统设计经过我们的讨论决定将“学生成绩管理系统”分为三块,包括学生基本信息管理系统、学生课程管理系统和班级管理系统。每个人各自负责自己的一部分,然后共同讨论,编写出主函数。主要编写部分学生基本信息管理系统:学生信息管理系统内共包含了7个不同的函数,而每一个函数是一个模块,并对它们具体编写,使之具有不同的功能,能实行相应的操作。3.1各模块功能分析 1. 增添学生信息:增添学生信息包括增添学生的姓名、学号、基本科

3、目的成绩等,用void sadd()函数去实现。2、删除学生信息:具体定义void sremove();函数,使之实现其功能。3、查找学生信息:定义void ssearch()函数去具体实现其操作,可以输入学号或姓名找到相应学生的信息,若不存在,则显示“未找到”。4、排序:根据学生情况,先定义void staxis()函数可选择按学号排序和以总分排序,然后,分别用void pxh()函数和void pAA()函数去实现它们的具体功能。5、保存学生信息:定义void ssave()函数6、读取学生信息: 定义void sread()函数,具体解法可从源程序中得出。7、处理学生信息模块菜单:具体功

4、能由void Menu()函数实现。此模块可如下编写: int studentlist:MenuSelect()/处理学生信息模块菜单 char s10; int cn; coutt*n;t-学生信息管理-nt1增加学生 nt2删除学生 n cout7) coutnt输入错误,重选0-7: else break; return cn;3.2类、函数及说明本链表里定义的类如下:一#define max 100000#includeusing namespace std;class student /定义student类 public: student *next; string name;/学生

5、姓名 long num;/学生学号 int x,y,z;/学生成绩 int AA; /学生总成绩 void play(); /显示函数 student(string sname,long snum,int sx,int sy,int sz) ;/构造函数;二#includestudent.hclass studentlistprivate: student *stu; int MenuSelect();/显示和处理学生信息模块菜单 studentlist()/构造函数初始化 stu=0; sread(); studentlist()/定义析构函数 student *p; p=stu; whil

6、e(p) p=p-next; delete stu; stu=p; void sadd(); /增添学生信息 void sremove(); /删除学生信息 void samend(); /修改学生信息 void ssearch(); /查找学生信息void staxis(); /排序 void ssave(); /保存学生信息 void sread(); /读取学生信息 void pxh(); /以学号排序 void pAA(); 以总分排序 void Menu();/处理学生信息模块菜单3.3重要模块算法运用“冒泡法”,以学生的学号或总成绩排序:下面例举出运用指针按学号从小到大排序 voi

7、d studentlist:pxh() /按学号从小到大排序 student *p1,*p2; int n; p1=stu; n=1; while(p1-next) n+; p1=p1-共有n条信息.endl; int i; for(i=1;inump1-next-num) p2=p1- p1-next=p1- p2-next=p1; stu=p2; while(p1- p2=p1; p1=p1- if(p1- p2- p1- p1=p2- do p1-play(); p1=p1- while(p1); 显示结果下图所示:按总分从小到大排序4 系统测试1.界面管理:进入1,学生资料管理系统2.

8、主菜单管理:进入6,排序 可以分为按学号从小到大和按成绩从低到高两种排序方式:3,功能选择:4.删除和修改学生信息:5.保存和读取学生信息: 输入相应的数字,即可以得到相应的结果,进行对应的操作,若操作错误,则会给出相应的提醒。5 心得体会整整两周的程序设计弄我把本以为开学的轻松抛得一干二净,只是在心中默默地说到“要想把一个程序设计完全弄好还真不是一件简单的是。”虽然,上学期我们也搞了C语言程序设计,可跟这次比起来真的是有一定的差距。因为上学期老师不是抓的太严,所以我们大部分的人的任务是只要把程序看懂就足够了,而源程序一般都是从网上找的,实践报告也马马虎虎就能过了,可这学期完全不同。因为三个人

9、一组每人都必须要有自己的链表,所以网上的程序一般都不符合老师要求,我们只能认认真真地也了。在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多

10、年的编写程序的经验,要解决我们的问题,对他们来说只是small case。在设计这个程序时,我们刚开始是根据老师给我们提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了,计算是个关键和难点,我们也查了相应的资料,但是它上面用得是坐标来做的,所以为了方便设计程序,我们也改为坐标来做的,这样计算问题解决了。接下去就是按键问题,我们的资料是用鼠标做的,所以关于按键这个函数就只能我们自己设计,还好手头有类似的资料,经过自己的反复尝试以及与与同学的讨论,这也不难,最好还是被我们搞定了。最后就是闪烁,这个设计的方法很死板,都一个类型,就是算坐标比较烦琐,要确定好它的位置,但是这些只要你自己愿

11、意去尝试,问题都可以迎刃而解的。在学程序的过程中,还确实遇到了不少麻烦。首先,因为我们都已经习惯了把所有程序都写在一起,而老师要求必须分模块写,确实这样做对我们真的是有很大的帮助,特别有利于错误的查找;接着是链表的应用,由于以前很少接触链表,在C语言中我们也只学了一些简单的数组和指针等,而链表是属于数据结构部分,我们这学期才开始学习,特别对于排序,要用到链表就更有一定的难度。于是,只好看书、查找资料,认真地去学习,去理解,终究还是有所收获。在编写“stuent”链表的时候,我给它设计了不同的独立模块,分别去实现不同的功能。如:增添学生信息、删除学生信息、修改学生信息、查找学生信息、排序、保存学

12、生信息读取学生信息、以学号排序、以总分排序和处理学生信息模块菜单等。不停地思索,然后不停地学习,看着程序一点点地被自己亲手编写出来正是有一种说不出的高兴,即使有些部分是仿照老师的编写的。呵呵,原来,只要肯学就一定会有所所获!参考文献1 严蔚敏 吴伟民.数据结构(C语言版) 北京:清华大学出版社2 王竹林.校园网组建与管理M.北京:清华大学出版社,20023陈维兴,林小茶 C+面向对象程序设计教程 清华大学出版4 网站:附录 源程序#include iostreamstudent:student(string sname,long snum,int sx,int sy,int sz) /初始化构

13、造函数 name=sname; num=snum; x=sx; y=sy; z=sz; void student:play() coutname学生的学号是num,数学:x,语文: y,英语:z,总分:AAvoid studentlist:sadd()/增添学生信息 student *q; string name1; long num1; int x1,y1,z1; system(cls);n *增加的学生* n请输入学生的(中间用空格间隔) 姓名 学号 数学成绩 语文成绩 英语成绩: cinname1num1x1y1z1; q=new student(name1,num1,x1,y1,z1)

14、; q-next=0;AA=x1+y1+z1; if(stu) student *t; t=stu; if(t-num=num1) 学号已存在,请重新输入 return; while(t- if(t- cout t-next=q; else stu=q;输入完毕sremove() /删除学生信息 int num1;n* 删除学生信息 *n请输入想要删除学生的学号:num1; while(p1) if(p1- else if(p1!=NULL)确定删除吗?Y/N char c; cinc; if(toupper(c)!=Y) return; if(p1=stu) stu=p1- delete p

15、1;找到学号为num1xyz;AA=p1-x+p1-y+p1-修改成功未找到!ssearch()/查找学生信息n* 查询学生信息 *n请输入查询方式:1.按学号查询2.按姓名查询3.返回 char c; switch (c) case 1 long num1;要查询的学号 cin student *p1,*p2; p1=stu; while(p1) if(p1- break; else p2=p1; p1=p1- if(p1!姓名: 数学: 语文: 英语:查询完毕. else 2 string name1;要查询的学生姓名name1;name=name1) name1学号:3 return; p1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1