《《面向对象程序设计》实验设计实验报告版》由会员分享,可在线阅读,更多相关《《面向对象程序设计》实验设计实验报告版(27页珍藏版)》请在金锄头文库上搜索。
1、1嘉兴学院南湖学院嘉兴学院南湖学院面向对象程序设计课程设计报告面向对象程序设计课程设计报告题目:题目:学生选修课程管理系统学生选修课程管理系统班级:班级:网络网络 N141学号:学号:201445509433姓名:姓名:尹佳慧尹佳慧同组人员:同组人员:庄静仪庄静仪指导老师:指导老师:武瑛武瑛2016 年七月年七月2目录目录一、问题描述一、问题描述 3二、程序功能模块二、程序功能模块 32.1、设计要求 32.2、系统功能分析 32.3、程序模块说明 4三、算法分析三、算法分析 43.1、小组分析 43.2、流程图 5四、程序清单四、程序清单 54.1、数据结构 54.2、类的 UML 图 64
2、.3、程序结构 7五、程序运行结果五、程序运行结果 15六、课程设计体会与心得六、课程设计体会与心得 18七、附录七、附录 193一、一、问题描述问题描述高校的学生信息包括:学号、姓名、性别、年龄、系别、班级、联系方式等信息。课程信息包括:课程代码、课程名称、课程性质、总学时、学分、开课学期、选修人数等信息。学生可对课程信息进行查询,选修符合要求的课程。根据课程信息和学生信息完成对课程的选修, 需要专门的一个管理类来完成选修工作。二、二、程序功能模块程序功能模块2.12.1、设计要求、设计要求(1)添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所要添加的类别,要求编号要唯一
3、,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的学生和课程记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生和课程的记录,每条记录占据一行。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。2.22.2、系统功能分析、系统功能分析根据设计要求,我们认为该系统应该包括:(1)课程信息输入功能;(2)课程信息浏览功能;(3)按课程编号查询功能;(4)按课程名称查询功能;(5)数据保存功能
4、;(6)正确退出系统功能。其中对于课程信息输入功能可以有两个实现途径: 直接在系统中根据提示输入;根据系统的功能在相应文件下建立 text 文件直接输入课程信息。对于4其余四个功能则主要是供学生选课使用。 数据保存功能是为了保证在系统中直接输入的课程信息顺利保存到 text 文件。2.32.3、程序模块说明、程序模块说明(1)课程信息录入。课程信息录入应包括:课程编号、课程名称、课程性质、 总学时、授课学时、实验学时、学分、开课信息八个成员,为录入以上信息,首 先使用 setClassNum、setClassName、setClassProperties、setTotalClassNumber
5、、 setCurrentClassNumber、setExpClassNumber、setCredit、setRightTerm 输出提示信 息,其次使用 addClass 函数添加课程信息。 (2)课程信息浏览。该功能主要是读取所有的课程信息,在程序中首先通过 getClassNum 、 getClassName 、 getClassProperties 、 getTotalClassNumber 、 getCurrentClassNumber、getExpClassNumber、getCredit、getRightTerm 八个函数 读取课程信息的相关信息,设置为静态成员函数,防止已录入的
6、数据被篡改;其 次使用 showclass、showeachclassinfo 函数显示全部课程信息。 (3)按课程编号查询。首先使用 getNum 函数得到课程的学分信息,其次使 用 searchByNum 函数输出 “按学分查询”的提示信息;接着使用 showAddNum 函数输出“请输入学分”的提示信息;最后使用 showSearchByNum 函数将查询 结果输出。 (4)按课程名称查询。程序主要通过、showAddName、setName、getName、 searchByName、showSearchByName 来实现对课程的查询,同样全部设置为静态 成员函数, 已经录入的数据部
7、能被篡改, 根据提示输入就能得到想要查询的内容。 (5)存储信息。选择存储信息选项之后用 showLoadingSaving函 数 进 行 数据的存储,显示正在存储数据。数据存储完毕后用 showSuccessedSaving 函数 显示输出数据存储完毕。 (6)退出系统。一个完整的系统应该包括退出系统,在程序中使用 quit 函数, 在按数字键 6 后给出提示信息:“press any key to continue”提示使用者按任意键 退出系统。三、三、算法分析算法分析3.1、小组分工、小组分工姓名工作尹佳慧程序庄静仪实验报告53.2、流程图流程图开始进入系统界面进入主菜单课程信息浏览按课
8、程编号查询退 出课程信息录入信息存储结 束按课程名称查询四、程序清单四、程序清单4.1、数据结构、数据结构表 1 数据结构表 数据名称数据类型解释 classNumstring课程编号 classNamestring课程名称 classPropertiesstring课程性质 totalClassNumberInt总课时 currentClassNumberInt授课学时 expClassNumberInt上级或实验学时 creditDouble学分 rightTermstring开课学期64.2、类的类的 UML 图图表 2 Class 类的 UML 图Class-ClassNum: str
9、ing -ClassName: string -ClassProperties: string -TotalClassNumber: int -currentClassNumber: int -ExpClassNumber: int -credit: double -rightTerm: string +setClassNum(classNumTemp: string) +setClassName(classNameTemp: string) +setClassProperties(classPropertiesTemp: string) +setTotalClassNumber(totalC
10、lassNumberTemp: int) +setCurrentClassNumber(currentClassNumber: int) +setExpClassNumber(expClassNumberTemp: int) +setCredit(credit: double) +setRightTerm(rightTermTemp: string) +getClassNum():string +getClassName():string +getClassProperties():string +getTotalClassNumber():int +getCurrentClassNumber
11、():int +getExpClassNumber():int +getCredit() :double +getRightTerm() :string表 3 Menue 类的 UML 图 Menue+getInput():char +showMenu():void +clearScreen():void +pauseScreen():void +showAddClass():void +showBrowseClass():void +showSearchByNum():void +showSearchByName():void +showAddClassNum():void +showAddClassName():void7+showAddClassProperties():void +showAddCurrentClassNumber():void +showAddExpClassNumber():void +showLoadingSaving():void +showSuccessedSaving():void +showEachClassInfo(Class classTemp) :