面向对象课程设计指导书

上传人:xzh****18 文档编号:35596766 上传时间:2018-03-17 格式:DOC 页数:5 大小:139KB
返回 下载 相关 举报
面向对象课程设计指导书_第1页
第1页 / 共5页
面向对象课程设计指导书_第2页
第2页 / 共5页
面向对象课程设计指导书_第3页
第3页 / 共5页
面向对象课程设计指导书_第4页
第4页 / 共5页
面向对象课程设计指导书_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《面向对象课程设计指导书》由会员分享,可在线阅读,更多相关《面向对象课程设计指导书(5页珍藏版)》请在金锄头文库上搜索。

1、面向对象设计与实现面向对象设计与实现指导书指导书一、设计步骤、设计要点、设计进度安排指导设计步骤、设计要点、设计进度安排指导1 1设计步骤及每个步骤的设计要点设计步骤及每个步骤的设计要点 (一)选题 通过平时积累,找到适合自己的题目,题目来源可以从教师提供的题中选,也可以自 己选择,但该选题应能用到面向对象的基本理论。题目大小适中。交指导老师审阅,指导 老师审阅完后才能正式进行设计。 (二)分析 选好题目后,在理解题目基本功能的基础上,进行个性化的功能设计,扩充程序的功 能。对于本组同学,可以设计场景,互问互答,理解题目。 通过分析,得到系统中涉及到的类及其属性,类间关系,每个类所完成的功能。

2、 (三)设计 对分析过程中得到的类进行细化,设计出类的属性和方法,并写出各成员函数的功能、 传递参数的格式和返回值的类型,画出主要成员函数的算法流程图。 设计数据的存放方式,包括磁盘文件的格式和数据在内存中的存放方式,是采用静态 存储,还是动态存储? 设计界面,是采用图形界面还是字符界面,菜单如何设计,如何调用? (四)上机(编码、调试与测试) 根据设计部分实现各个类,同时写出调用的主函数。实现数据的存储,说明如何使用 该软件?对输入数据的格式有什么要求?给出测试程序正确性的测试例。 (五)总结 注意保存在各个阶段遇到的问题和解决的方法,并写在总结中。2 2设计进度安排设计进度安排 本次课程设

3、计的时间是 2 周,工作计划如下: 理解选题,明确软件功能,完成需求分析,写出需求分析报告:第 12 天; 设计,写出设计报告:第 23 天; 编码和实现:第 48 天; 整理课程设计报告:89 天; 成果提交和答辩验收:第 910 天。3 3注意事项注意事项 (一)测试数据的设计:每组测试数据包括输入数据、预期的输出结果、实际的输出结果 和预期的是否相吻合(如果不吻合,实际输出什么?可能错误的原因?检查源代码进行查 错,记录结果。 ) (二)注意设计过程中素材的积累,包括调试过程中出现的问题及解决方式等,以免写课 程设计报告时无从下手。二、课程设计成果提交、课程设计说明书(实验报告)规范及指

4、导二、课程设计成果提交、课程设计说明书(实验报告)规范及指导提交的课程设计成果包括: 1. 程序源代码和报告电子版打包上传,文件名由姓名、班级和学号组成,如计 121-03 张三,即计 12 级 1 班 3 号名叫张三的同学;源代码上传时注意删除 Debug 文件; 2.装订好的课程设计报告。课程设计报告正文书写规范:课程设计报告正文书写规范: 1实验报告一般采用打印方式,选用 A4 纸、5 号宋体,页边距均为 20mm,行间距采用 18 磅。文中小节标题采用宋体加粗,小 4 号,大标题小三号宋体加粗居中。 2实验报告结构及要求 (1)封面 采用统一封面 (2)目录 要求结构层次清晰,排版后自

5、动生成。要求结构层次清晰,排版后自动生成。 (3)正文 正文包括分析报告、设计报告、实现、经验总结、参考文献。代码以附录形式给出课程设计报告正文书写规范:课程设计报告正文书写规范:标题标题一、一、 “*”“*”分析报告分析报告 1 课题描述 用自己的话描述课题准备做什么。 2 系统功能 分析系统的参与者(系统的使用者)及能使用的系统功能。 3. 涉及的类及类间关系,给出简单的类及类间关系图(对象模型) 4分析课题的应用范围及需要用到的面向对象理论。 二、二、 “*”“*”设计报告设计报告 1本部分在分析得到的对象模型基础上,对分析部分得到的各个类进行详细设计,给 出各个类的属性以及方法的定义,

6、重要方法的算法进行设计(可画流程图或类 C 说明) , 2. 画出详细的对象模型图。 画出设计后得到的对象模型图,并简要说明。 三、三、 “*”“*”实现实现本部分给出程序运行的界面,各个类的 C+定义,以及关键算法的实现,可以画图或 C+代码描述,但每个算法得有简单的文字说明。代码注意加上必要的注释,同时注意代码 的书写格式,该缩进的缩进。 四、四、 “*”“*”设计经验总结设计经验总结 设计经验总结给出实验过程中出现的典型错误、原因及解决的方法及软件待改进之处。参考文献参考文献 参考文献书写规范为: 1.书名 编者 出版社 出版日期 2.http:/ 采用文章名称 作者三、设计内容指导三、

7、设计内容指导本次课程设计的选题涉及到的信息比较多,题目较灵活,系统可大可小,复杂性也可 调控。为了达到知识综合运用的目的,应在前期分析时根据自身情况定下程序功能,并且尽可能将相关知识点都用上: 1 每个系统涉及的人员及其种类数都比较多,所以应使用文件存放信息。为了区分文件 中人员的种类,应给文件中每条记录定义一个人员种类的数据项。其他有关人员的信 息在作完分析后确定。 2 功能比较多,应做系统菜单让用户进行操作选择。有能力的同学开始实现时即可在 MFC 下做,能力稍有欠缺的同学先满足主要功能,直接在控制台下,用字符方式实现 简单的菜单。 3 为了达到很好的封装性要求,一般数据应定义为私有类型,

8、通过公共接口实现对数据 的调用。应该主动使用构造函数和析构函数。 类图的简介类图的简介 类图可以用来展示一切面向对象系统的构造块。类图是静态视图,描述了模型或模型 的一部分以及这些模型具有的属性和行为而不是实现这些操作的详细方法。类图常常用来 表达类和接口之间的关系。关系包括:实现、泛化、关联和依赖。 类是这样一种元素,它定义了一个对象能够产生的属性和行为。行为用类能够理解的 可能的消息以及每个消息对应的操作的描述。类也可以使用标签值和原型定义约束。 类符号是用一个带有类名和可选操作和属性名的矩形表示。分隔线用来分离类名、属 性和方法。一般情况下,类名在矩形的最上方,其次是属性,然后是方法。其

9、中属性和方 法是具有可见性的,通常”-“表示 private, ”+”表示 pubic, ”#”表示 protected, ”表示 package 的可见性。见图 1 所示。Rectangle- # * +length width color center: int : int : int : Point + # *area () getLength () getWidth (): int : int : int图 1 类示例 接口是一个约定,它定义了实现它的行为规范。要实现一个接口,类要求提供一个必 须的行为,这个行为允许系统用同一个方法对待不相关的元素,这些是通过接口实现的。 接口的符号和

10、类的符号相似,但接口还可以用一个圆表示。见图 2. 实现被用来表达模型中的实现事务处理或者需求被一个或者多个用例实现,这些 模型再被一个或者多个类实现。在系统的设计中,在模型的抽象层次上保证系统元素的大 的蓝图并同时反映出小图的约束和定义细节。实现用虚线加实心箭头表示。shape+ +area () getColor (): int : intrectAngle+ + area () getColor (): int : intTriangle+ + area () getColor (): int : intshaperectAngle+ + area () getColor (): int

11、 : intTriangle+ + area () getColor (): int : int图 2 接口及实现关联意味着两个元素之间有关系,通常是在一个类中实现了另一个的一个实例。关联 可以包括每个的角色名、数目、方向和约束。还有两种特殊的关联,聚合和组合。聚合用 来描述一个元素是另一个元素的组成部分,用空心菱形表示。组合是用来描述一种更强的 包含关系,主体消失客体也跟着消失,客体消失主体还可以继续存在。1.*1.1 playFor1.1 0.*TeamPlayerHand图 3 关联 关联类是这样一种构造,它允许关联具有方法和属性。见图 4.0.* 1.*Employee-job: St

12、ringProject-name: StringRole- -title partTime: String : boolean图 4 关联类 泛化通常用来指出层次结构。绘制时从父类到子类。实现是子类继承父类。Shape- -xPosition yPosition: int : int +display (): intCircle-center: int图 5 泛化示例 依赖用来在模型元素之间更广泛的依赖关系的建模。它通常被用在设计处理的早期来 表达两个元素之间有某种关系,但这时还不知道它们之间的具体的关系。到设计后期,依 赖会被原型化或者被更具体的关系来代替。用虚线箭头表示。 下面是一个学校中

13、的类图。语义如下:学校有多个系,每个系有多个老师,一个老师 可以讲多门课,一门课也可以有多个老师来讲,一个学生只能在一个学校上课,一个学校 至少有一名学生,每个学生可以选多门课。类图示例见图 6:1.1 has1.*1.* AssignedTo1.*0.10.1 chariPerson*1.* teach* attend*1.11.*School- - -name address telephone: String : String : String + + + + + + + +addStudent () removeStudent () getStudent () getAllStuden

14、ts () addDepartment () removeDepartment () getDepartment () getAllDepartments (): boolean : boolean : String : int : boolean : boolean : String : intCource- -name courseId: String : intDepartment-name: int + + + +addInstructor () removeInstructor () getInstructor () getAllInstructor (): boolean : bo

15、olean : String : intStudent- -name studentId: int : int + +addCourse () removeCource (): boolean : booleanInstructor-name: int + +addCourse () removeCourse (): boolean : boolean图 6 学校的类图程序实现简单示例程序实现简单示例 例 1:文件使用例子,用于向文件中输入姓名、年龄、工资并且输出。 #include void main() char name=“Qian“; int age=20; float salary=5000;char *name1=new char10; int age1; float salary1; ofstream ostrm; ostrm.open(“ff.txt“); ostrmname1age1salary1; coutTextOut(10,10,pDoc- ))

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号