课程设计报告课程名称面向对象程序设计课题名称学生成绩管理系统专业计算机科学与技术班级计算机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、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告以及系统使用说明书目录1.系统需求分析..............................................................................................................12.总体设计......................................................................................................................23.详细设计......................................................................................................................34.系统调试......................................................................................................................65.结果分析......................................................................................................................86.总结..............................................................................................................................97.程序代码....................................................................................................................10湖南工程学院课程设计报告11.系统需求分析1.1系统设计的目的与意义:现在的学校学生数量较多,各样的考试也比较频繁,因此需要一个学生成绩管理系统来对学生的成绩进行管理。1.2系统功能需求:本系统有四个类,Score类、Subject类、Student类、Class类,存储学生的个人信息、考试科目及成绩信息。有学生成绩信息录入、学生成绩信息修改、学生成绩信息显示、学生成绩信息删除、学生成绩信息查询以及数据保存文件等功能。湖南工程学院课程设计报告22.总体设计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系统功能模块图:学生成绩管理系统查询成功录入成功无此记录删除成功无此记录修改成功保存成功显示成功退出成功显示全部记录记录存入文件学生成绩修改退出系统学生成绩查询学生成绩录入学生成绩删除无此记录湖南工程学院课程设计报告33.详细设计3.1分数类的设计:该类定义了一个整型变量用来存放分数,定义了设置份总数和显示分数的函数。图3.13.2科目类的设计:该类定义了一个Score类类型的变量,定义了一个字符数组用来存放科目名称,定义了设置和显示私有成员的函数。图3.23.3学生类的设计:该类定义了一个Subject类类型的数组,一个字符型数组和一个字符变量,两个整型变量以及设置和显示私有成员的函数。图3.3Score-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*湖南工程学院课程设计报告43.4班级类的设计:该类定义了一个Student类类型的变量、字符型数组、整型及设置和显示私有成员的函数等。图3.43.5各个类的关系描述:1..*-sc1图3.5.1Class-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()湖南工程学院课程设计报告51..*-p1[8]1图3.5.21..*-stu1图3.5.3Student-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*湖南工程学院课程设计报告64.系统调试4.1在调试过程中,出现了下面一些错误:1、输入数据时,输错了数据的类型会造成死循环,因此输入时需要注意。2、一开始主界面输入非正确字母时,没有提示错误。容易造成用户误解,在主函数的switch语句结束处加上default:cout选择错误,请从新选择!;就可以了。4.2具体调试过程:主界面学生成绩录入学生成绩查询湖南工程学院课程设计报告7学生成绩显示学生成绩修改记录存入文件学生成绩删除湖南工程学院课程设计报告85.结果分析程序总共设计了四个类,满足了课题对类的要求,在设计的过程中,建立了较为清晰的类层次,也利用了面向对象的方法以及C++的编程思想来完成系统的设计,做到了用文件存储学生成绩信息、从文件中读取学生成绩信息、修改信