首页 c 面向对象课程设计报告 (学生成绩管理系统)

c 面向对象课程设计报告 (学生成绩管理系统)

举报
开通vip

c 面向对象课程设计报告 (学生成绩管理系统)课程设计报告课程名称面向对象程序设计课题名称学生成绩管理系统专业计算机科学与技术班级计算机1001学号2010030101姓名指导教师李珍辉陈淑红李杰军2011年12月28日湖南工程学院课程设计任务书课程名称面向对象程序设计课题学生成绩管理系统专业班级计算机1001学生姓名学号2010030101指导老师李珍辉陈淑红李杰军审批任务书下达日期2011年11月15日任务完成日期2011年12月28日一、设计内容与设计要求1.课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进...

c  面向对象课程设计报告 (学生成绩管理系统)
课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 报告课程名称面向对象程序设计课 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 名称学生成绩管理系统专业计算机科学与技术班级计算机1001学号2010030101姓名指导教师李珍辉陈淑红李杰军2011年12月28日湖南工程学院课程设计任务书课程名称面向对象程序设计课题学生成绩管理系统专业班级计算机1001学生姓名学号2010030101指导老师李珍辉陈淑红李杰军审批任务书下达日期2011年11月15日任务完成日期2011年12月28日一、设计内容与设计要求1.课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。2.课题题目1)公司库存管理系统2)高校学籍管理系统3)高校工资管理系统4)高校人事管理系统5)通讯录程序设计6)学生成绩管理系统7)图书管理系统8)文本编辑器的设计与实现9)学生考勤管理系统10)公司人员管理系统3.设计要求:⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相应题号的课题。随意换题者不记成绩。⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。②完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E-R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。④系统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。⑥关键源程序(带注释)⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。二、进度安排第17周星期一8:00——12:00星期二8:00——12:00星期四8:00——12:00第18周星期一8:00——12:00星期二14:30——18:30星期三8:00——12:00三、参考书籍1.《C++程序设计课程设计》刘振安编著TP312C5632.《C++Builder和Delphi课程设计与系统开发案例》伍俊良清华大学出版社7-302-06072-X3.VisualC++课程设计案例精编严华峰中国水利水电出版社7-5084-2007-120044.VisualC++课程设计与系统开发案例伍俊良清华大学出版社7-302-05968-320025.VisualC++语言课程设计:案例精选与编程指导陈清华朱红东南大学出版社7-81089-275-420036.VisualC++课程设计案例精编中国水利水电出版社7-5084-1004-120027.数据结构课程设计案例精编:用C/C++描述李建学李光元吴春芳清华大学出版社7-302-14536-92007(编程平台不限,vc++,c++Builder等等。)课题6:学生成绩管理系统(一)、课程设计题目:学生成绩管理系统(二)、目的与要求:1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。4、写出设计说明书(三)、设计方法和基本原理:1、问题描述(功能要求):设计一个实用的小型学生成绩管理程序,具有查询,检索和删除功能,并且能够打开或修改指定文件及将多个文件组成一个文件。它完全使用类来实现,充分体现面向对象的程序设计特点。要求:实现主要功能:建立文件,文件的存取和显示,删除 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 ,查询记录。可以随时检索,删除,或增加记录,也可以保存或取消新的记录。2、问题的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 :根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告以及系统使用说明书目录11.系统需求分析22.总体设计33.详细设计64.系统调试85.结果分析96.总结107.程序代码系统需求分析1.1系统设计的目的与意义:现在的学校学生数量较多,各样的考试也比较频繁,因此需要一个学生成绩管理系统来对学生的成绩进行管理。1.2系统功能需求:本系统有四个类,Score类、Subject类、Student类、Class类,存储学生的个人信息、考试科目及成绩信息。有学生成绩信息录入、学生成绩信息修改、学生成绩信息显示、学生成绩信息删除、学生成绩信息查询以及数据保存文件等功能。总体设计2.1系统功能分析:系统通过调用函数来实现学生成绩信息录入、学生成绩信息修改、学生成绩信息删除、学生成绩信息查询以及数据保存文件等功能。Insert()函数用于录入学生成绩及信息;Update1()函数用来修改学生成绩及信息;Show()函数用于显示所有已有的记录;Delete()函数用来删除学生成绩及信息;Search1()及Search2()函数用来查询及信息;Save()函数用于将输入的信息存入文件内;主函数main()用于调用这些函数。2.2系统功能模块划分与设计:本系统定义了Score类、Subject类、Student类以及Class类这四个类,定义了Insert()、Update1()、Show()、Save()、Delete()、Search1()及Search2()等函数来实现系统所需功能。2.3系统功能模块图:SHAPE\*MERGEFORMATSHAPE\*MERGEFORMATSHAPE\*MERGEFORMAT详细设计3.1分数类的设计:该类定义了一个整型变量用来存放分数,定义了设置份总数和显示分数的函数。图3.13.2科目类的设计:该类定义了一个Score类类型的变量,定义了一个字符数组用来存放科目名称,定义了设置和显示私有成员的函数。图3.23.3学生类的设计:该类定义了一个Subject类类型的数组,一个字符型数组和一个字符变量,两个整型变量以及设置和显示私有成员的函数。图3.33.4班级类的设计:该类定义了一个Student类类型的变量、字符型数组、整型及设置和显示私有成员的函数等。图3.43.5各个类的关系描述:1..*-sc1图3.5.11..*-p1[8]1图3.5.21..*-stu1图3.5.3系统调试4.1在调试过程中,出现了下面一些错误:1、输入数据时,输错了数据的类型会造成死循环,因此输入时需要注意。2、一开始主界面输入非正确字母时,没有提示错误。容易造成用户误解,在主函数的switch语句结束处加上default:cout<<"选择错误,请从新选择!";就可以了。4.2具体调试过程:主界面学生成绩录入学生成绩查询学生成绩显示学生成绩修改记录存入文件学生成绩删除结果分析程序总共设计了四个类,满足了课题对类的要求,在设计的过程中,建立了较为清晰的类层次,也利用了面向对象的方法以及C++的编程思想来完成系统的设计,做到了用文件存储学生成绩信息、从文件中读取学生成绩信息、修改信息、查询信息、删除信息显示文件中存储的信息等要求。而且界面简洁,容易操作。但是程序太长,不够简练,导致出现错误很难发现和修改。总结首先,接到设计题目之后,在对本题目进行分析的时候,我懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目要求有一个正确全面的分析。其次,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂,也决定了一个程序的质量。两个星期的课设虽然有些疲劳和困倦,但带给我很多的收获。C++已经学了一个学期了,有许多知识都存在似懂非懂的现象,这种现象通过实际的上机操作,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。也有很多理论上说得过去的代码,但到了实际操作,却是行不通的。这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。只能避过这些方法,换方法实现。在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。于是在课程设计的时候,我花了四天的时间来规划与写代码,将要实现的内容分析清楚,才把代码输入电脑。我觉得写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。这次的课程设计,真是让我充分的感觉到了要自己设计一个程序是多么的难,以及学习好c++是多么的重要。在这个程序的设计过程中,我清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。看网上的例子好像觉得也没那么难,自己一上机实际操作就出现了很多问题,调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候应为少了一个大括号或是分号,导致要找很久很久。虽然系统可以运行,也具有了一些基本的功能,但我意识到了自己有太多的不足。以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才能真正的发挥所长。程序代码#include<iostream>#include<fstream>#include<string>usingnamespacestd;intM=100;staticintM2=0;classScore{//分数类private:intscore;public:Score(ints=0){score=s;}voidset1(){cout<<"请输入分数:"<<endl;cin>>score;}voidshow1(){cout<<":"<<score<<endl;}};classSubject{//科目类private:Scoresc;charsubject[20];public:Subject(){for(inti=0;i<20;i++)subject[i]=0;}voidset2(){cout<<"请输入科目名称:"<<endl;cin>>subject;sc.set1();}voidshow2(){cout<<subject;sc.show1();}};classStudent{//学生类private:Subjectp1[8];charname[20];intnum;charS;intn;public:Student(){for(inti=0;i<20;i++)name[i]=0;num=0;S=0;}voidset3();voidshow3();intgetNU1(){returnnum;}char*getNA1(){returnname;}};voidStudent::show3(){//学生类显示函数inti;cout<<"姓名:"<<name<<"\t性别:"<<S<<"\t学号:"<<num<<endl;for(i=0;i<8;i++)p1[i].show2();}voidStudent::set3(){//学生类修改函数inti;cout<<"请输入学生姓名:";cin>>name;cout<<"请输入该生学号:";cin>>num;cout<<"请输入该生性别:";cin>>S;cout<<"请输入每门课程的名字及分数."<<endl;for(i=0;i<8;i++)p1[i].set2();}classClass{//班级类private:Studentstu;charname2[20];intnum2;public:Class(){for(inti=0;i<20;i++)name2[i]=0;num2=0;}intgetNU(){returnstu.getNU1();}stringgetNA(){returnstu.getNA1();}voidset4(){cout<<"请输入该生所在班级名称:";cin>>name2;cout<<"请输入该班班号:";cin>>num2;stu.set3();}voidshow4(){cout<<"班级:"<<name2<<"\t班号:\t"<<num2;stu.show3();}friendvoidSearch1(Classc1[],intcount1);friendvoidSearch2(Classc2[],intcount2);friendvoidUpdate1(Classc3[],intcount_d);friendvoidDelete(Classc4[],int*count_c);friendvoidInsert(Classc5[],int&count_a);}b[100];voidSave(Classc6[],intcount)//记录存入文件函数{fstreamfile("class.dat",ios::out|ios::binary);if(!file){cout<<"filecoun'topen."<<endl;abort();}for(inti=0;i<count;i++)file.write(reinterpret_cast<char*>(&c6[i]),sizeof(c6[i]));file.close();}voidShow(Classc7[])//显示记录函数{inti=0;for(i=0;c7[i].getNU()!=0;i++)c7[i].show4();}voidInsert(Classc5[],int&count_a)//信息录入函数{inti,in_number,n=0;if(count_a==M){cout<<"空间已满!";return;}cout<<"请输入学生的学号:"<<endl;do{do{cin>>in_number;for(i=0;i<count_a;i++){if(c5[i].getNU()==in_number)cout<<"已有相同的学号,请重新输入!"<<endl;break;}}while(c5[i].getNU()==in_number);if(in_number<1)cout<<"输入错误,请重新输入大于零的整数!"<<endl;}while(in_number<=0);i=count_a;c5[i].set4();count_a++;cout<<endl<<endl;n=n+1;if(n!=0)cout<<"学生成绩录入成功!"<<endl;}voidSearch1(Classc1[],intcount1)//按学号查询信息函数{inti,number,flag=1,n=0;cout<<"请输入所要查询的学生的学号:"<<endl;do{cin>>number;if(number<=0)cout<<"输入错误,请重新输入大于零的整数!"<<endl;}while(number<=0);for(i=0;i<count1&&flag;i++)if(c1[i].getNU()==number){c1[i].show4();flag=0;n=n+1;}if(n==0)cout<<"没有查询到该学生的资料!"<<endl;}voidSearch2(Classc2[],intcount2)//按姓名查询信息函数{inti,n=0;charnam[20];cout<<"请输入所要查询的学生的姓名:"<<endl;cin>>nam;for(i=0;i<count2;i++)if(c2[i].getNA()==nam){c2[i].show4();n=n+1;}if(n==0)cout<<"没有查询到该学生的资料!"<<endl;}voidUpdate1(Classc3[],intcount_d)//信息修改函数{inti,n=0,flag=1,m;charnam[20];cout<<"请输入所要修改的学生的姓名:"<<endl;cin>>nam;for(i=0;i<count_d&&flag;i++){if(c3[i].getNA()==nam){cout<<"请输入所要修改的学生的学号:"<<endl;cin>>m;for(i=0;i<count_d&&flag;i++){if(c3[i].getNU()==m){c3[i].set4();flag=0;n=n+1;}}}break;}if(n!=0)cout<<"修改成功!"<<endl;if(n==0)cout<<"没有查询到该学生的资料!"<<endl;}voidDelete(Classc4[])//信息删除函数{fstreamfile("class.dat",ios_base::in|ios_base::out|ios_base::binary);inti=0;for(i=0;i<100;i++){file.read(reinterpret_cast<char*>(&b[i]),sizeof(b[i]));}for(i=0;b[i].getNU()!=0;i++);M2=i;Classc9;intn=0,number,flag=1;cout<<"请输入要要进行操作的学生的学号:"<<endl;cin>>number;for(i=0;i<M2&&flag;i++){if(c4[i].getNU()==number){for(i;i<M2&&flag;i++)c4[i]=c4[i+1];flag=0;(M2)--;n=1;Save(b,M2);break;}}if(n==0)cout<<"没有查询到可以删除的资料!"<<endl;if(n!=0)cout<<"资料删除成功!"<<endl;}intmain(){chara1;fstreamfile("class.dat",ios_base::in|ios_base::out|ios_base::binary);cout<<"\t\t**************欢迎进入学生成绩管理系统**************"<<endl<<endl;do{cout<<"请选择功能:"<<endl;cout<<"\t\t\ta.学生成绩查询"<<endl;cout<<"\t\t\tb.学生成绩录入"<<endl;cout<<"\t\t\tc.学生成绩删除"<<endl;cout<<"\t\t\td.学生成绩修改"<<endl;cout<<"\t\t\te.显示全部记录"<<endl;cout<<"\t\t\tf.记录存入文件"<<endl;cout<<"\t\t\tg.退出系统"<<endl;inti=0;for(i=0;i<100;i++){file.read(reinterpret_cast<char*>(&b[i]),sizeof(b[i]));}for(i=0;b[i].getNU()!=0;i++);M2=i;cin>>a1;switch(a1){case‘a':{cout<<"\t\t\t请继续选择:"<<endl;cout<<"\t\t\t\t1.按学号查询信息"<<endl;cout<<"\t\t\t\t2.按姓名查询信息"<<endl;intx;cin>>x;switch(x){case1:Search1(b,M2);break;case2:Search2(b,M2);break;default:cout<<"选择错误,请重新选择!"<<endl;}}break;case‘b':Insert(b,M2);break;case‘c':{file.close();Delete(b);}break;case‘d':Update1(b,M2);break;case‘e':Show(b);break;case‘f':{file.close();Save(b,M2);cout<<"保存文件成功!"<<endl;fstreamfile("class.dat",ios_base::in|ios_base::out|ios_base::binary);};break;case‘g':{file.close();break;}default:cout<<"选择错误,请重新选择!"<<endl;}}while(a1!='g');return0;}计算机与通信学院课程设计评分表课程名称:面向对象程序设计 项目 评价 LEC评价法下载LEC评价法下载评价量规免费下载学院评价表文档下载学院评价表文档下载 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩 教师签名:日期:学生成绩查询学生成绩录入学生成绩删除学生成绩管理系统无此记录查询成功录入成功无此记录删除成功无此记录修改成功保存成功显示成功退出成功显示全部记录记录存入文件学生成绩修改退出系统Score-score:int+Score(s:int=0)+set1():void+show1()Subject-subject[20]:char-sc:Score+Subject()+set2():void+show2():voidStudent-name[20]:char-num:int-S:char-n:int-p1[8]:Subject+Student()+set3():void+show3():void+getNU1():int+getNA1():char*Class-name[20]:char-num2:int+Class()+getNU():int+set4():void+show4():voidSubject-subject[20]:char+Subject()+set2():void+show2():voidScore-score:int+Score(s:int=0)+set1():void+show1()Student-name[20]:char-num:int-S:char-n:int+Student()+set3():void+show3():void+getNU1():int+getNA1():char*Subject-subject[20]:char+Subject()+set2():void+show2():voidClass-name[20]:char-num2:int+Class()+getNU():int+set4():void+show4():voidStudent-name[20]:char-num:int-S:char-n:int+Student()+set3():void+show3():void+getNU1():int+getNA1():char*
本文档为【c 面向对象课程设计报告 (学生成绩管理系统)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥17.6 已有0 人下载
最新资料
资料动态
专题动态
is_270070
暂无简介~
格式:doc
大小:642KB
软件:Word
页数:0
分类:建筑/施工
上传时间:2019-07-18
浏览量:6