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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C++学生成绩管理系统课程设计报告.docx

1、C+学生成绩管理系统课程设计报告C+课程设计报告书题目:学生成绩管理系统 专 业:信息与计算科学 班 级:0208403 学 号:* * * 任课老师:文 军学生成绩管理系统课程设计报告摘要:本系统主要用于对学生的成绩进行管理。通过本系统,可以将各个学生的成绩记录输入到系统中,保存到文件,便于查阅和相关管理。此外,该系统还能实现对学生成绩记录的显示,查询以及插入或删除学生的成绩记录等功能。一、问题描述编写一个简单的学生成绩管理系统。学生成绩管理系统有若干学生成绩记录组成,每个记录由学号、姓名、性别和成绩四部分组成,学号不超过11个字符,姓名不超过21个字符,性别为m(male)或f(femal

2、e),成绩为double型数据。该系统具有以下功能:(1)程序开始执行时显示如下版权信息和主菜单: *学生成绩管理系统*1.添加学生成绩记录 *2.显示学生成绩记录 *3.查找学生成绩记录* 4.删除学生成绩记录 * 5.保存学生成绩记录* 6.加载学生成绩记录* 7.退出学生成绩管理系统 *请输入(17): (2)通过键盘输入数字17后,程序能够执行相应的功能,执行完后回到上述主菜单继续等待用户输入,输入数字7后退出程序。(3)选择“添加学生成绩记录”后,输入要插入记录的位置。按程序提示依次输入学号,姓名,性别,成绩,插入记录成功。(4)选择“显示学生成绩记录”,显示学生成绩表中已有的学生记

3、录的个数,并显示出各个学生记录的相关信息。(5)选择“查找学生成绩记录”,按提示输入要查找的学生的学号,输入学号,若该学号存在,则输出相应的学生记录,如该学号不存在,则按任意键返回主菜单。(6)选择“删除学生成绩记录”,按提示输入要删除的学生的学号,输入学号,若改学号存在,则删除相应的学生记录,如果该学号不存在,则按任意键返回主菜单。(7)选择“保存学生成绩记录”,系统会将已有的学生记录保存在默认的文件名为fname.txt的文件中。(8)选择“加载学生成绩记录”,系统会提示输入文件名,输入默认的文件名为fname.txt,则可将文件中的相关信息导出。(9)选择“退出学生成绩管理系统”,按任意

4、键退出系统。二、解决方案这是一个很实际的编程实例。编程要求很详细,内容也比较多,有一定难度。首先,学生成绩记录是一个复杂的数据结构,至少应包括学号,姓名,性别和成绩。所以,必须建立一个类student,用来记录学号,姓名,性别和成绩。此外还得建立一个类stuscore,用来记录多个学生的成绩记录。1、建立类学生类student,它至少包括学号number,姓名name,性别sex,成绩chengji。具体如下: class student public: char name21; /姓名 char number11; /学号 char sex; /性别 double chengji; /成绩

5、student *next; /类指针,用来指向下一个记录 student(); void init(string &Name,string &Number,char Sex,double Chengji); /输入学生成绩记录 virtual student();函数init(string &Name,string &Number,char Sex,double Chengji)用于输入学生记录,相当于一个注册。其具体实现如下:void student:init(string &Name,string &Number,char Sex,double Chengji) int len; len

6、=Name.length(); if(len20)len=20; Name.copy(name,len,0); namelen=0; len=Number.length(); if(len10)len=10; Number.copy(number,len,0); numberlen=0; sex=(sex=m)?m:f); chengji=Chengji;2、建立学生成绩记录类stuscore,该类是学生成绩记录的集合。其成员函数则是问题中要求的添加、显示、查找、删除、保存、导出等各种操作。改类具体如下: class stuscore student* head;public: bool ad

7、d_record();/添加学生成绩记录 void display_record();/显示学生成绩记录 int length();/学生成绩记录个数 bool delete_record();/删除学生成绩记录 void save_record();/保存学生成绩记录 void load_record();/加载学生成绩记录 bool find_record();/查找学生成绩记录 stuscore(); virtual stuscore();现在就要编写各个功能的函数实体了:1添加学生成绩记录add_record(),建立一个链表:bool stuscore:add_record() in

8、t i; int j=1; string Name; string Number; char Sex; double Chengji; student *newnode,*current,*previous; current=previous=head; couti; if(ilength()+1) cout输入的位置不正确!; return false; coutNumber; coutName; coutSex; coutChengji; newnode=new student(); newnode-init(Name,Number,Sex,Chengji); newnode-next=n

9、ull; if(!newnode) coutnext=head; head=newnode; return true; else while(current&jnext; j+; newnode-next=current; previous-next=newnode; return true; 2显示学生成绩记录display_record(),具体实现如下:void stuscore:display_record() student*current; current=head; cout表中有length()条记录!n; if(length() coutsetiosflags(ios:lef

10、t)setw(15)学号setw(15)姓名setw(12)性别setw(5)成绩endl; while(current) coutnext; 另外,对运算符进行了重载,这样就可以直接用cout输出学生成绩记录,函数重载如下:ostream&operator(ostream&output,const student *addr) outputsetiosflags(ios:left)setw(15)numbersetw(15)namesetw(12)sexsetw(5)chengjiendl; return output;3查找学生成绩记录find_record(),具体实现如下:bool s

11、tuscore:find_record() student *current,*previous; string Number; coutNumber; current=previous=head; while(current) if(current-number=Number) coutsetiosflags(ios:left)setw(15)学号setw(15)姓名setw(12)性别setw(5)成绩endl; coutnext; if(!current) cout没有找到该学生!; return false; return true;4删除学生记录delete_record(),具体实

12、现如下:bool stuscore:delete_record() string s; student*current,*previous; current=previous=head; cout成绩表中有length()个学生成绩记录endl; if(!length() cout学生成绩表已空!n; return false; else couts; while(current) if(current-number=s) if(current=head) head=head-next; delete current; coutnext=current-next; delete current

13、; coutnext; if(!current) cout没有找到该学号所对应的学生记录!; return false; return true; 5保存学生成绩记录save_record(),具体实现如下:void stuscore:save_record() ofstream file;student*current=head;file.open(./fname.txt,ios:out);if(!file) coutnext; cout保存完成!; file.close();6加载学生成绩记录load_record(),具体实现如下:void stuscore:load_record()

14、ifstream file; char fname20; student *n; n=new student(); coutfname; file.open(fname,ios:in); if(!file) cout文件打开失败!; cin.get(); else coutsetiosflags(ios:left)setw(21)姓名setw(11)学号setw(5)性别setw(5)成绩endl; while(file&file.peek()!=EOF) file.read(char*)n,sizeof(*n); coutnnext; j+; return j;三、程序运行结果: 主菜单界面

15、 : 1添加学生成绩记录:2显示学生成绩记录:3按照所示再添加几个学生成绩记录,显示结果为:4查找学生成绩记录:5删除学生成绩记录:删除记录后再显示学生成绩记录:6保存学生成绩记录:7加载学生成绩记录:8退出学生成绩系统:四、课程设计总结这是一个综合性较强,很实际的一个编程实例。刚学C+时候,感觉类和对象还挺有意思的,刚接触到这个题目时,觉得应该没什么大问题吧,因为,我自认为一些基本知识点都已经掌握了。可是,真的当我动手编程的时候,才发现并没有想象中的那么简单。单个知识点是弄清了,但是,将所有的知识点综合起来运用时,就碰到了各种各样的问题了。有时候,一个错误得找好久,才能发现。本系统的重点就是

16、要会建立两个类。一个是学生类student,用来存放一个学生的成绩记录,相当于一个结构体的功能吧。另一个类是学生成绩记录系统类stuscore,该类用来存放多个学生的成绩记录。难点就是stuscore类里的各个功能的实现。总的来说,添加,显示,查找,这三个功能比较容易,但是,删除,保存,加载这三个功能就需要花点心思了,可能是平时用的比较少吧,生疏了。可见只有通过平时多加练习,才能有助于自己巩固知识点。最后想说的是,调试程序真的很关键。调试程序需要较大的耐心。可能调试程序的时间比自己编写整个程序的时间还要长,下的工夫还要深,但这是一个程序员必须了解,也必须接受的事实。有好几次,几个错误让我很是头疼啊,很想删了,重新来过,可是最后发现,还是得有耐心去调试程序。通过这个实验的练习,我也学到了很多东西,特别是加深了对类和对象理解和应用方面,也很谢谢老师给我的帮助。参考文献:C+程序设计教程(第二版),罗建军等编著,高等教育出版社

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

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