c++面向对象课程设计报告(学生成绩管理系统)_第1页
c++面向对象课程设计报告(学生成绩管理系统)_第2页
c++面向对象课程设计报告(学生成绩管理系统)_第3页
c++面向对象课程设计报告(学生成绩管理系统)_第4页
c++面向对象课程设计报告(学生成绩管理系统)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告课程名称 面向对象程序设计课题名称 学生成绩管理系统专 业 计算机科学与技术班 级 计算机1001 学号01 姓名 指导教师李珍辉陈淑红李杰军2011年12月28日湖南工程学院课程设计任务书课程名称面向对象程序设计课题学生成绩管理系统专业班级 计算机1001学生姓名 学 号_01 指导老师 李珍辉陈淑红李杰军审 批 任务书下达日期2011年11月15日任务完成日期2011年12月28日一、设计内容与设计要求课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C+胡言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。课题题目1)公司库存管理系统2)高校学籍管理系统3)高校工资管理系统4)高校人事管理系统5)通讯录程序设计6)学生成绩管理系统图书管理系统8)文本编辑器的设计与实现9)学生考勤管理系统10)公司人员管理系统3.设计要求:⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相应题号的课题。随意 换题者不记成绩。⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求(系统流程图) ;输入输出的要求。②完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E-R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。④系统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。⑥关键源程序(带注释)⑶按规定格式完成课程设计报告,将其打印稿 (A4纸)上交给老师存档。⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。课题课题6:学生成绩管理系统二、进度安排TOC\o"1-5"\h\z第 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三、参考书籍.《C++程序设计课程设计》 刘振安编著TP312C563.《C++Builder和Delphi课程设计与系统开发案例》伍俊良清华大学出版社7-302-06072-XC++课程设计案例精编严华峰中国水利水电出版社7-5084-2007-12004C++课程设计与系统开发案例伍俊良清华大学出版社 7-302-05968-32002C++语言课程设计 :案例精选与编程指导陈清华朱红东南大学出版社7-81089-275-42003++课程设计案例精编 中国水利水电出版社 7-5084-1004-120027.数据结构课程设计案例精编:用C/C++W述李建学李光元吴春芳清华大学出版社7-302-14536-92007vc++,c++Builder等等。)、课程设计题目:学生成绩管理系统、目的与要求:1、目的:1)要求学生达到熟练掌握 C+胡言的基本知识和技能;2)基本掌握面向对象程序设计的基本思路和方法;3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:1)要求利用面向对象的方法以及 C++勺编程思想来完成系统的设计;2)要求在设计的过程中,建立清晰的类层次;3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;4)在系统的设计中,至少要用到面向对象的一种机制。3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。4、写出设计说明书、设计方法和基本原理:、问题描述(功能要求):设计一个实用的小型学生成绩管理程序,具有查询,检索和删除功能,并且能够打开或修改指定文件及将多个文件组成一个文件。它完全使用类来实现,充分体现面向对象的程序设计特点。要求:实现主要功能:建立文件,文件的存取和显示,删除记录,查询记录。可以随时检索,删除,或增加记录,也可以保存或取消新的记录。2、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统中的各个实体及它们之间的关系包括属性和行为;3)根据问题描述,设计系统的类层次;4)完成类层次中各个类的描述(包括属性和方法);5)完成类中各个成员函数的定义;6)完成系统的应用模块;7)功能调试;8)完成系统总结报告以及系统使用说明书

系统需求分析 总体设计 详细设计 系统调试 结果分析 总结 错误!错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。.系统需求分析系统设计的目的与意义:现在的学校学生数量较多,各样的考试也比较频繁,因此需要一个学生成绩管理系统来对学生的成绩进行管理。系统功能需求:本系统有四个类,Score类、Subject类、Student类、Class类,存储学生的个人信息、考试科目及成绩信息。有学生成绩信息录入、学生成绩信息修改、学生成绩信息显示、学生成绩信息删除、学生成绩信息查询以及数据保存文件等功能。.总体设计系统功能分析:系统通过调用函数来实现学生成绩信息录入、学生成绩信息修改、学生成绩信息删除、学生成绩信息查询以及数据保存文件等功能。Insert()函数用于录入学生成绩及信息;Updatel()函数用来修改学生成绩及信息; Show()函数用于显示所有已有的记录;Delete()函数用来删除学生成绩及信息;Searchi()及Search2()函数用来查询及信息;Save()函数用于将输入的信息存入文件内;主函数main()用于调用这些函数。系统功能模块划分与设计:本系统定义了Score类、Subject类、Student类以及Class类这四个类,定义了Insert()、Updatel()、Show()、Save()、Delete()、Searchi()及Search2()等函数来实现系统所需功能。系统功能模块图:学生成绩管理系统.详细设计分数类的设计:该类定义了一个整型变量用来存放分数,定义了设置份总数和显示分数的函数。Score-score:int+Score(s:int=0)图科目类的设计:该类定义了一个Score类类型的变量,定义了一个字符数组用来存放科目名称,定义了设置和显示私有成员的函数。 Subject subject[20]:charsc:Score+Subject()图学生类的设计:该类定义了一个Subject类类型的数组,一个字符型数组和一个字符变量,两个整型变量以及设置和显示私有成员的函数。 Student name[20]:charnum:intS:charn:intp1[8]:Subject班级类的设计:该类定义了一个Student类类型的变量、字符型数组、整型及设置和显示私有成员的函数等。Class-name[20]:char-num2:int一+Class()各个类的关系描述

-name[20]-num:int-S.char图AStudentY-p1[8]char1..* 6-subject[20+Subjectubject1图:1]:charo..*-n:int•▼ClassaStudent+Student-name[20]():char-name[20]:(-num:int1:har1 -num2:ill -stu-S:char-n:int+Student()1+Class()4. 图系统调试在调试过程中,出现了下面一些错误:1、输入数据时,输错了数据的类型会造成死循环,因此输入时需要注意。2、一开始主界面输入非正确字母时,没有提示错误。容易造成用户误解,在主函数的switch语句结束处加上default:cout<<"选择错误,请从新选择!";就可以了具体调试过程:£上£工三上巴二上:*犹Mm""欢迎进入学注或茸管理系统青选择功能3闰入裒录件宜录删修记文顼馈绩绩部人统耿成成成全拿王生生生示畲HH盂子显记退£fff主界面学生成绩录入学生成绩查询£上£工三上巴二上:*犹Mm""欢迎进入学注或茸管理系统青选择功能3闰入裒录件宜录删修记文顼馈绩绩部人统耿成成成全拿王生生生示畲HH盂子显记退£fff主界面学生成绩录入学生成绩查询学生成绩显示砥级;计算机 班号,1回呢姓名二张三性别;H学号1C++:90学生成绩修改请输入所要修改的学生的姓名:

i辐入所要修改的学生的学号;IIj-tll-二数

方--在口方名号所班姓学性课名差生生生门目该该寺该每科入入A-入入入入记录存入文件询人除改录件查录删借正文绩绩绩入统成成成成全4^^生生生生示记退请选择功能:保存文件成珈学生成绩删除询人除改录件杳一>删修记文绩绩绩绩部入统成成成成全4^生生生生示卡于显记1询人除改录件杳一>删修记文绩绩绩绩部入统成成成成全4^生生生生示卡于显记1㈱人要要进行操作的学生的相贯料删除成期结果分析程序总共设计了四个类,满足了课题对类的要求,在设计的过程中,建立了较为清晰的类层次,也利用了面向对象的方法以及C++勺编程思想来完成系统的设计,做到了用文件存储学生成绩信息、从文件中读取学生成绩信息、修改信息、查询信息、删除信息显示文件中存储的信息等要求。而且界面简洁,容易操作。但是程序太长,不够简练,导致出现错误很难发现和修改。总结首先,接到设计题目之后,在对本题目进行分析的时候,我懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目要求有一个正确全面的分析。其次,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂,也决定了一个程序的质量。两个星期的课设虽然有些疲劳和困倦,但带给我很多的收获。 C++已经学了一个学期了,有许多知识都存在似懂非懂的现象,这种现象通过实际的上机操作,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。也有很多理论上说得过去的代码,但到了实际操作,却是行不通的。这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。只能避过这些方法,换方法实现。在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。于是在课程设计的时候,我花了四天的时间来规划与写代码,将要实现的内容分析清楚,才把代码输入电脑。我觉得写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。这次的课程设计,真是让我充分的感觉到了要自己设计一个程序是多么的难,以及学习好C++是多么的重要。在这个程序的设计过程中,我清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。看网上的例子好像觉得也没那么难,自己一上机实际操作就出现了很多问题,调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候应为少了一个大括号或是分号,导致要找很久很久。虽然系统可以运行,也具有了一些基本的功能,但我意识到了自己有太多的不足。以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才能真正的发挥所长。程序代码#include<iostream>#include<fstream>#include<string>usingnamespacestd;intM=100;staticintM2=0;classScore{ how2();}voidStudent::set3(){<<endl;for(i=0;i<8;i++)p1[i].set2();classClass{<<endl;abort();}for(inti=0;i<count;i++)(reinterpret_cast<char*>(&c6[i]),sizeof(c6[i]));();}voidShow(Classc7[]) etNU()!=0;i++)c7[i].show4();}voidInsert(Classc5[],int&count_a)etNU()==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!=O)cout«"学生成绩录入成功!"vvendl;voidSearchi(Classc1[],intcountl)etNU()==number)c1[i].show4();flag=0;n=n+1;if(n==O)cout«"没有查询到该学生的资料!"«endl;voidSearch2(Classc2[],intcourt⑵etNA()==nam)c2[i].show4();n=n+1;if(n==O)cout«"没有查询到该学生的资料!"«endl;voidUpdate1(Classc3[],intcount_d)etNA()==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[])etNU()!=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("",ios_base::in|ios_base::out|ios_base::binary);

*************欢迎进入学生成绩管理系统do<<endl<<endl;cout<<"请选择功能:"<<endl;cout<<"\t\t\ta. 学生成绩查询"<<endl;*************欢迎进入学生成绩管理系统do<<endl<<endl;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++)((reinterpret_cast<char*>(&b[i])

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论