ImageVerifierCode 换一换
格式:DOC , 页数:25 ,大小:197.51KB ,
资源ID:10508556      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(c++学生成绩管理系统+课设报告书(带源代码).doc)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

c++学生成绩管理系统+课设报告书(带源代码).doc

1、 第一章 需求分析 1. 课程设计性质和目的………………………………………………………… 2. 输入输出的形式……………………………………………………………… 3. 程序的实现功能……………………………………………………………… 第二章 程序设计 1. 概要设计……………………………………………………………………… 2. 详细设计……………………………………………………………………… 3. 调试分析……………………………………………………………………… 4. 使用说明……………………………………………………………………… 5

2、 测试数据……………………………………………………………………… 第三章 使用说明和程序流程图 1. 程序流程图…………………………………………………………………… 2. 课程设计经验和体会………………………………………………………… 第一章 需求分析 1、课程设计性质和目的 该课程设计的主要任务是运用在《面向对象程序设计》课程中学到的理论知识来指导实践,使学生了解面向对象与面向过程之间的区别,学会用类的方法解决实际问题。掌握一般类的定义、测试、封装、数据隐藏、继承及多态等概念,掌握面向对象程序设计的基本概念和基本方法,掌握 C++语言的基本语法和基本内容,

3、并能运用C++语言进行基本的面向对象程序设计,并且通过综合课程设计,提高学生的实践动手技能,培养学生独立分析分析问题和解决问题的能力。 2、输入输出的形式 本系统是一个学生成绩管理系统,采用VC++6.0 编译器作为开发环境,这个环境是我们在学习C++的平台。输入数据类型主要是char、int、float等数据类型,输入内容包括:班级、学号、姓名、电子技术、C++ 程序设计、多媒体技术、大学英语、高等数学、大学体育、马克思主义政治经济学等数据。用户在输入学生数据时要保证输入数据格式的正确性,系统不会自动检测输入的数据是否正确,可用。输出形式与输入形式类似,根据需要可以选择显示输入的各项内容

4、还可以选择显示计算好平均分后并排序后的记录,显示内容包括:班级、学号、姓名、平均分等数据。 3、程序的实现功能 用户运行程序后进入系统主界面,在主界面用户可以输入所有学生的数据并保存到文件中,也可以读取文件中已有的学生数据。用户在保存数据的时候,如果保存位置没有文件则自动新建一个文件进行保存。本系统同时只能对一个数据文件进行相关操作,不能同时打开多个数据文件,其类似于单用户操作系统。 当用户读取学生数据后可对其进行显示,插入,删除,修改,排序,计算平均分等相关操作。用户在操作过程中可随时对当前文件进行保存到文件操作,以防止修改的数据丢失。

5、 第二章 程序设计 1、概要设计 主界面:在此界面用户可以选择要操作的选项,回车之后即可进入相关页面进行操作(例如 选择1 回车,即可进入输入学生数据页面 在本界面里用户可以输入学生的相关数据 按照提示操作即可.例如: 2、详细设计 在main()函数中主要是通过”switch(menu())”选择判断来调用相关功能模块。系统的运行是在一个永真的循环里进行的,只有在主界面并选择“退出本系统”时,才会跳出永真循环,并退出程序。主函数代码为:void main() /*主函数*/ { for(;;) { switch(menu()) /*选择判断*/

6、 { case 1: Input(stud);/*输入学生成绩*/ break; case 2: Statistic(stud); /*输出学生统计数据*/ break; case 3: Lookup(stud); /*查找学生成绩*/ cout<<"\t\t\t"; system("pause"); break; case 4: Modify(stud); /*

7、修改学生成绩*/ cout<<"\t\t\t"; system("pause"); break; case 5: Delete(stud); /*按学号查找,删除学生信息*/ cout<<"\t\t\t"; system("pause"); break; case 6: Insert(stud);/*增加学生成绩*/ cout<<"\t\t\t"; system("pause");

8、 break; case 7: Sort(stud); /*按平均分对学生成绩记录项进行降序排序*/ cout<<"\t\t\t"; system("pause"); break; case 8: Output(stud); /*显示全部学生成绩*/ cout<<"\t\t\t"; system("pause"); break; case 0: cout<

9、" ================================<<感谢您使用学生成绩管理系统>>===============================\n"<

10、一是因为能使用户对程序操作的流程更加清楚简明,二是保证了用户同时只能对一个文件进行操作的系统要求,保证了系统不会发生打开文件紊乱或者出现致命错误。每个函数的具体功能: 1)主函数main():定义学生结构体数组,调用录入、统计等函数对成绩表进行处理; 2)录入函数Input():输入班级到政治课成绩; 3)统计函数Statistic():计算平均成绩; 4)查询函数Lookup():查询指定学号学生成绩记录; 5)修改函数Modify():修改指定学号学生成绩记录; 6)删除函数Delete():删除指定学号学生记录; 7)输出函数Output():输出班级所有学生成绩记录;

11、8) 排序函数Sort():按平均分对学生成绩记录项进行降序排序; 9)插入函数Insert():按平均分顺序插入新记录。 3、调试分析 调试是整个程序编写过程中十分重要也是很困难的一部分,在这个过程中用了不少的时间进行程序的调试,在调试过程中遇到的相关问题如下: 一、语法错误 1、语句的最后忘记了加上“;”,使程序发生错误。 2、把“<<”与“>>”写反,以及字符与字符串的操作问题,这些是比较简单的错误,很容易分辨出来,并改正之。 3、函数的返回值问题,也是比较容易找出并解决的问题。 二、逻辑错误 1、文件的写入与读出,刚开始对文件的操作不太明白,一致不能很好的操作文件,其

12、中最大的问题是对已存在的文件读取问题,通过“显示全部学生成绩” 将数据从文件中读取,可是在使用过程中总是出现读出错误,出现乱码。 2、内存的分配问题,这也是困惑了我好久的问题。对于我们初学者来说对内存的分配和释放问题是比较抽象和模糊的难题,本来使用链表的方式存储数据,然而待到排序时出现了交换数据困难的问题,以及分配空间繁琐释放空间不及时的问题,造成空间浪费使得程序运行效率低的问题。因此最后采用了顺序存储记录的方式,这样就能改变前述问题。 整个调试过程中主要是这么几个问题,其余的是一些小问题,很容易的就调试出来了。 4、使用说明 用户运行程序后进入系统主界面,在主界面用户可以打开或者新建

13、数据文件。用户新建或者打开文件要符合操作系统的要求,如果用户打开不存在的文件,那么系统将按照用户打开的文件名作为新的数据文件名,并对其进行相关操作。本系统同时只能对一个数据文件进行相关操作,不能同时打开多个数据文件,其类似于单用户操作系统。 当用户指定当前文件后可对其进行显示,插入,删除,修改,计算平均分等相关功能。用户在操作过程中可随时对当前文件进行保存到文件操作,以防止修改的数据丢失。操作完当前文件后,用户可以关闭该文件,在不退出本系统的前提下另行打开或者新建数据文件对其进行相关操作。 5、测试数据 经过多次测试程序运行稳定,无致命错误。根据本次课程设计的要求对数据进行输入并分析数据

14、输出结果。通过测试发现当用户正确输入时系统能够正确显示用户的输入,当用户输入错误时,系统并不会出现致命错误但其将显示非用户期望的数据。 例如当用户输入要插入的学生记录信息时,系统将提示: ====>> 请输入学生成绩 <<==== 班级:jsj07-1 学号:1001 姓名:阿斯顿 电子技术成绩:90 C++程序设计成绩:97 多媒体技术成绩:95 大学英语成绩:97 高等数学成绩:90 大学体育成绩:85 马克思主义政治经济学成绩:90 则系统将能正确输入并显示数据: 班级 学号 姓名 电子 c++ 多媒体 英语 数学 体育 政治 平均分 Jsj07-1

15、 1001 阿斯顿 90 97 95 97 90 95 90 93.4285 但如果在输入学生成绩的时候输入小于0或大于100时,程序会提示:对不起,请输入1-100之间的数字!! 因此用户在输入时保证输入数据的正确性是很重要的! 第三章 程序流程图 1、程序流程图 因为本系统是一个比较小的学生成绩管理系统,因此将程序的所有功能放在了一个文件中,使得方便对程序的管理。 2、课程设计经验和体会 一个星期的课程设计,虽然有些疲劳和困倦,但带给我很多的收获。C++已经学了一个学期了,有许多知识都存在似懂非懂的现象,这种现象通过实际的上

16、机操作,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。也有很多理论上说得过去的代码,但到了实际操作,却是行不通的。这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。只能避过这些方法,换方法实现。在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。于是在课程设计的时候,我花了两天的时间来规划与写代码,将要实现的内容分析清楚,才把代码输入电脑。我觉得写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能避免等

17、到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。此次任务的完成,也体现出同学之间的团结精神。实践是检验真理的唯一标准。没有实践,就不会发现和深刻体会它的真实所在。只有通过检验的真理,在自己的心里,才会认可它的真实性。面向对象程序设计的完成,使我们懂得了真理的重要性,理论和实际的相结合,才能真正把握所学和所掌握的知识。 附录(源程序) #include #include #include #include #include cla

18、ss Stu //构建学生类 { public: friend void Input(Stu stud[]) ; friend void Statistic(Stu stud[]); friend void Lookup(Stu stud[]) ; friend void Modify(Stu stud[]) ; friend void Delete(Stu stud[]) ; friend void Output(Stu stud[]) ; friend void Sort(Stu stud[]) ; friend void Insert(S

19、tu stud[]) ; friend void Write(Stu stud[],int n); friend int Read(Stu stud[]); private: char class_0[20]; int num; char name[8]; float elec; float c_program; float media; float english; float math; float sport; float polity; float average; int order; }stud[100]; voi

20、d Write(Stu stud[],int n) //向文件中写入数据 { fstream myFile; myFile.open("student.dat",ios::out|ios::binary); if(!myFile) { cout<<"student.dat can't open!"<

21、i].num<<" "<

22、File.open("student.dat",ios::in|ios::binary); if(!myFile) { cout<<"student.dat can't open!"<>count; for(int i=0;i<=count;i++) { myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].elec>>stud[i].c_pr

23、ogram>>stud[i].media>>stud[i].english>>stud[i].math>>stud[i].sport>>stud[i].polity>>stud[i].average; } myFile.close(); return count ; } void Input(Stu stud[]) //---------------输入学生成绩 { system("cls"); /*运行前清屏*/ int i=0; int flag; char sign; cout<> 请输入学生成绩 <<====

24、"<>stud[i].class_0; loop: cout<<" 学号:"; cin>>stud[i].num; int c=0; while(c

25、 cout<<" 姓名:"; cin>>stud[i].name; do{ flag=0; cout<<" 电子技术成绩:"; cin>>stud[i].elec; if(stud[i].elec>100 ||stud[i].elec<1) cout<<"对不起,请输入1-100之间的数字!!\n"; else flag=1; }while(flag==0); do

26、{ flag=0; cout<<" C++程序设计成绩:"; cin>>stud[i].c_program; if(stud[i].c_program>100 ||stud[i].c_program<1) cout<<"对不起,请输入1-100之间的数字!!\n"; else flag=1; }while(flag==0); do{ flag=0; cout<<" 多媒体技术

27、成绩:"; cin>>stud[i].media; if(stud[i].media>100 ||stud[i].media<1) cout<<"对不起,请输入1-100之间的数字!!\n"; else flag=1; }while(flag==0); do{ flag=0; cout<<" 大学英语成绩:"; cin>>stud[i].english; i

28、f(stud[i].english>100 ||stud[i].english<1) cout<<"对不起,请输入1-100之间的数字!!\n"; else flag=1; }while(flag==0); do{ flag=0; cout<<" 高等数学成绩:"; cin>>stud[i].math; if(stud[i].math>100 ||stud[i].math<1) c

29、out<<"对不起,请输入1-100之间的数字!!\n"; else flag=1; }while(flag==0); do{ flag=0; cout<<" 大学体育成绩:"; cin>>stud[i].sport; if(stud[i].sport>100 ||stud[i].sport<1) cout<<"对不起,请输入1-100之间的数字!!\n"; else

30、 flag=1; }while(flag==0); do{ flag=0; cout<<" 马克思主义政治经济学成绩:"; cin>>stud[i].polity; if(stud[i].polity>100 ||stud[i].polity<1) cout<<"对不起,请输入1-100之间的数字!!\n"; else flag=1; }while(flag==0); s

31、tud[i].average=(stud[i].elec+stud[i].c_program+stud[i].media+stud[i].english+stud[i].math+stud[i].sport+stud[i].polity)/7; cout<<" 平均分为:"<提示:是否继续写入学生成绩?(Y/N)"; cin>>sign; /*输入判断*/ i++; } Write(stud,i); } void Statistic(Stu stud[]) //--

32、统计学生数据 { system("cls"); /*运行前清屏*/ int n=Read(stud); cout<> 输出学生统计数据 <<===="<

33、 system("pause"); } void Lookup(Stu stud[]) //---------------查找学生成绩 { system("cls"); /*运行前清屏*/ int n=Read(stud); int s; int i=0; cout<> 查找学生成绩 <<===="<>s; while((stud[i].num-s)!=0&&i

34、 cout<<"=====>提示:对不起,无法找到该学生的信息!"<

35、"<

36、tu stud[]) //---------------修改学生成绩 { system("cls"); /*运行前清屏*/ int n=Read(stud); int s; int i=0; cout<> 修改学生成绩 <<===="<>s; while((stud[i].num-s)!=0&&i提示:对不起,无该学生的成绩……"<

37、

38、].class_0<<"\t"<

39、>stud[i].class_0; cout<<"学号:"<>stud[i].num; cout<<"姓名:"<>stud[i].name; cout<<"电子技术成绩:"<>stud[i].elec; cout<<"C++程序设计成绩:"<>stud[i].c_program; cout<<"多媒体技术成绩:"<>stud[i].media; cout<<"大学英语成绩:"<

40、cin>>stud[i].english; cout<<"高等数学成绩:"<>stud[i].math; cout<<"大学体育成绩:"<>stud[i].sport; cout<<"马克思主义政治经济学成绩:"<>stud[i].polity; stud[i].average=(stud[i].elec+stud[i].c_program+stud[i].media+stud[i].english+stud[i].math+stud[i].sport+stud[i].pol

41、ity)/7; cout<<"平均分为:"<>c; if(c!='n'&&c!='N') Write(stud,n); } } void Delete(Stu stud[]) //---------------按学号查找,删除学生信息 { system("cls"); /*运行前清屏*/ int n=Read(stud); int s; int i=0,j; cou

42、t<> 删除学生成绩 <<===="<>s; while((stud[i].num-s)!=0&&i提示:对不起,无法找到该学生……"<

43、class_0); stud[j].num=stud[j+1].num; strcpy(stud[j].name,stud[j+1].name); stud[j].elec=stud[j+1].elec; stud[j].c_program=stud[j+1].c_program; stud[j].media=stud[j+1].media; stud[j].english=stud[j+1].english; stud[j].math=stud[j+1].math; stud[j].sport=stud[j+1]

44、sport; stud[j].polity=stud[j+1].polity; stud[j].average=stud[j+1].average; } cout<<"====>提示:已成功删除!"<> 增加学生

45、成绩<<===="<>stud[n].class_0; cout<<"学号:"; cin>>stud[n].num; cout<<"姓名:"; cin>>stud[n].name; cout<<"电子技术成绩:"; cin>>stud[n].elec; cout<<"C++程序设计成绩:"; cin>>

46、stud[n].c_program; cout<<"多媒体技术成绩:"; cin>>stud[n].media; cout<<"大学英语成绩:"; cin>>stud[n].english; cout<<"高等数学成绩:"; cin>>stud[n].math; cout<<"大学体育成绩:"; cin>>stud[n].sport; cout<<"马克思主义政治经济学成绩:"; cin>>stud[n].polity; stud[n].averag

47、e=(stud[n].elec+stud[n].c_program+stud[n].media+stud[n].english+ stud[n].math+stud[n].sport+stud[n].polity)/7; cout<<"平均分"<提示:插入成功!"<>s; } Write(stud,n); } void Sort(Stu stud[]) //---------------按

48、平均分对学生成绩记录项进行降序排序 { system("cls"); /*运行前清屏*/ int i,j,k; float s; char t[20]; cout<> 降序排序成绩 <<===="<

49、 strcpy(stud[j+1].class_0,stud[j].class_0); strcpy(stud[j].class_0,t); k=stud[j+1].num; stud[j+1].num=stud[j].num; stud[j].num=k; strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); s=stud[j+1].elec; stud[j+1].e

50、lec=stud[j].elec; stud[j].elec=s; s=stud[j+1].c_program; stud[j+1].c_program=stud[j].c_program; stud[j].c_program=s; s=stud[j+1].media; stud[j+1].media=stud[j].media; stud[j].media=s; s=stud[j+1].english; stud[j+1].english=stud[j].english;

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服