资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
本文格式为Word版,下载可任意编辑程序与算法综合设计课程设计指导书 数据布局与算法综合设计 课程设计指导书 合肥工业大学 计算机与信息学院 2022年6月 一、概述 课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的、必不成少的一个教学环节。通常,课程设计中的问题比平日的习题繁杂的多,也更接近实际。课程设计着眼于原理与应用的结合点,使学生学会如何把书上学到的学识用于解决实际问题,培养软件工作所需要的动手才能;另一方面,能使书上的学识变“活”,起到深化理解和生动掌管教学内容的目的。平日的习题较偏重于如何编写功能单一的“小”算法,局限于一个或两个学识点,而课程设计题是软件设计的综合训练,包括问题分析,总体布局设计,用户界面设计、程序设计根本技能和技巧,多人合作,以至一整套软件工作模范的训练和科学作风的培养。此外,还有很重要的一点是:计算机是比任何教师更严肃的检查者。 为达成上述目的,使学生更好地掌管程序设计的根本方法和C+语言的应用,本课程安置了课程设计环节,供给了各类题目供学生选择。每个设计题采取了统一的格式,由问题描述、根本要求、测试数据、实现提示和选做内容等五个片面组成。问题描述旨在为学生建立问题提出的背景,指明问题“是什么”。根本要求那么对问题进一步求精,划出问题的边界,指出概括的参量或前提条件,并规定该题的最低限度要求。测试数据片面旨在为检查学生上机作业供给便当。在实现提示片面,对实现中的难点及其解法思路等问题作了简要提示,提示的实现方法未必是最好的,学生不应拘泥与此,而应努力设计和开发更好的方法和布局。选做片面向那些尚有余力的读者提出了更高的要求,同时也能开拓其它读者的思路,在完成根本要求时就力求制止就事论事的不良思想方法,尽可能寻求具有普遍意义的解法,使得程序布局合理,轻易修改、扩展和重用。 二、总体要求 1系统分析与系统设计 “分析就是在采取行动之前,对问题的研究”(Demarco,1978)。系统分析在软件开发过程中是分外重要的,其任务就是通过对问题本身的研究,产生一个系统需要做什么的模范的、一致的和可行的需求说明。在此根基上,确定系统中所需考虑的类(对象)、类之间的关系、本系统中各个类所涉及的属性及针对这些属性的操作。类及类之间的关系可用类图来表示,对象之间的消息传递可用箭头表示,另外一些重要的操作应给出规格说明。 2细致设计与编码 对类中的属性和操作从实现的角度(如可扩展、在派生类中能否直接使用或只需少量修改、访问的效率和便当性等)进一步考察;对类中的操作(即方法) 进一步求精:用if、while、for和赋值语句加上自然语言写出算法框架;同时考虑能否使用已有类库(包括直接使用或通过派生)以裁减编程的工作量和提高程序的稳当性。 编码,即程序设计,是对细致设计的结果的进一步求精,用面向对象语言(如C+)表达出来。在充分理解和把握语言运行机制的根基上,编写出正确的、明显的、易读易改和高效率的程序。另外,在标识符的命名、代码的长度(一个方法长度一般不超过40行,否那么应划分为两个或多个方法)、程序书写的风格(如缩进格式、空格(空行)的应用、解释等)方面也应留神,遵循统一的模范。 3上机调试和测试 上机时要带一本面向对象语言的教材,若有开发环境的用户指南(手册)及类库(库函数)手册那么更好。应留心阅读程序编译和连接时的错误信息(通常是英文的),弄清其切当含义,提高调试效率。要学习并掌管开发环境所供给的调试工具。 经过调试,能够运行的的程序并非就是一个正确的程序。实际上,在上机之前,就应根据系统的需求设计相应的测试数据集,更加是一些奇怪处境的处理(如用户输入数据未按指定格式、数据极大或微小时程序如何处理等一些极端的处境)。 4课程设计报告 课程设计报告的内容及要求: (1)需求和规格说明 描述问题,简述题目要解决的问题是什么?规定软件做什么。原题条件缺乏时补全 (2)设计 1)设计思想:程序布局(如类图),重要的数据布局。主要算法思想(文字描述,不要画框图) 2)设计表示:类名及其作用,类中数据成员名称及作用,类中成员函数原型及其功能,可以用表格形式表达。 3)实现解释:各项要求的实现程度、在完成根本要求的根基上还实现了什么功能? 4)细致设计表示:主要算法的框架及实现此算法的成员函数接口。 (3)用户手册 即使用说明(包括数据输入时的格式要求)。 (4)调试及测试 调试过程中遇到的主要问题是如何解决的;对设计和编码的回想议论和分析;程序运行的时空效率分析;测试数据集;运行实例;提升设想;阅历和体会 等。 (5)附录 1)源程序清单:打印文本和磁盘文件,磁盘文件是务必的。源程序要加解释,除原有解释外再用钢笔加一些必要的解释和断言。 2)测试数据:即列出测试数据集 3)运行结果:上面测试数据输入后程序运行的结果 留神事项: 以上要求为一般的要求,针对概括问题和概括的开发过程,某些方面可以做适当的增减。 各种文档资料要在程序开发过程中逐步形成,而不是结果补写(但不排斥结果誉清)。 各种文档要以统一格式的稿纸用钢笔书写,也可录入计算机用Word及其它文字编辑软件排版后打印输出。 三、课程设计例如 封面: 课程设计报告 设计题目: 学生姓名: 专 业: 班 级: 学 号: 指导教师: 完成日期: 小型公司人员信息管理 合肥工业大学计算机与信息学院 (1) 需求和规格说明 某小型公司,主要有四类人员:经理、技术人员、销售经理和推销员。要求存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。 人员编号基数为1000,每输入一个人员的信息,编号依次加1。 程序要对全体人员有提升级别的功能。为简朴起见,全体人员的初始级别均为1级,然后举行升级,经理升为4级,技术人员和销售经理升为3级,推销员仍为1级。 月薪计算手段是:经理拿固定月薪8000元;技术人员按每小时100元领取月薪;推销员的月薪按该推销员当月销售额的4%提成;销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的5?。 (2) 设计 根据上述需求,设计一个基类employee,然后派生出technician(技术人员)类、manager(经理)类和salesman(推销员)类。由于销售经理(salesmanager)既是经理又是销售人员,兼具两类人员的特点,因此同时继承manager和salesman两个类。 在基类中,除了定义构造函数和析构函数以外,还应统确定义对各类人员信息都应有的操作,这样可以模范各派生类的根本行为。但是各类人员的月薪计算方法不同,不能在基类employee中统确定义计算方法。各类人员信息的显示内容也不同,同样不能在基类中统确定义显示方法。因此,在employee类中用纯虚函数的方式定义了计算月薪函数pay()和显示信息函数displayStatus(),然后在派生类中再根据各自的同名函数实现概括的功能。 由于salesmanager的两个基类又有公共基类employee,为制止二义性,这里将employee类设计为虚基类。、 7
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号