程序与算法综合设计课程设计指导书毕业论文

上传人:Bod****ee 文档编号:47193490 上传时间:2018-06-30 格式:DOC 页数:31 大小:710.04KB
返回 下载 相关 举报
程序与算法综合设计课程设计指导书毕业论文_第1页
第1页 / 共31页
程序与算法综合设计课程设计指导书毕业论文_第2页
第2页 / 共31页
程序与算法综合设计课程设计指导书毕业论文_第3页
第3页 / 共31页
程序与算法综合设计课程设计指导书毕业论文_第4页
第4页 / 共31页
程序与算法综合设计课程设计指导书毕业论文_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《程序与算法综合设计课程设计指导书毕业论文》由会员分享,可在线阅读,更多相关《程序与算法综合设计课程设计指导书毕业论文(31页珍藏版)》请在金锄头文库上搜索。

1、程序与算法程序与算法综综合合设计设计课课程程设计设计指指导书导书合肥工业大学合肥工业大学计算机与信息学院计算机与信息学院20122012 年年 6 6 月月一、概述课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的、必 不可少的一个教学环节。通常,课程设计中的问题比平时的习题复杂的多,也更接近实际。 课程设计着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问 题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活” ,起到深化理解 和灵活掌握教学内容的目的。平时的习题较偏重于如何编写功能单一的“小”算法,局限 于一个或两个知识点,而课程设计题是

2、软件设计的综合训练,包括问题分析,总体结构设 计,用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训 练和科学作风的培养。此外,还有很重要的一点是:计算机是比任何教师更严厉的检查者。为达到上述目的,使学生更好地掌握程序设计的基本方法和 C+语言的应用,本课程 安排了课程设计环节,提供了各类题目供学生选择。每个设计题采取了统一的格式,由问 题描述、基本要求、测试数据、实现提示和选做内容等五个部分组成。问题描述旨在为学 生建立问题提出的背景,指明问题“是什么” 。基本要求则对问题进一步求精,划出问题的 边界,指出具体的参量或前提条件,并规定该题的最低限度要求。测试数据部分旨

3、在为检 查学生上机作业提供方便。在实现提示部分,对实现中的难点及其解法思路等问题作了简 要提示,提示的实现方法未必是最好的,学生不应拘泥与此,而应努力设计和开发更好的 方法和结构。选做部分向那些尚有余力的读者提出了更高的要求,同时也能开拓其它读者 的思路,在完成基本要求时就力求避免就事论事的不良思想方法,尽可能寻求具有普遍意 义的解法,使得程序结构合理,容易修改、扩充和重用。二、总体要求1. 系统分析与系统设计“分析就是在采取行动之前,对问题的研究” (Demarco,1978) 。系统分析在软件开发 过程中是非常重要的,其任务就是通过对问题本身的研究,产生一个系统需要做什么的规 范的、一致的

4、和可行的需求说明。在此基础上,确定系统中所需考虑的类(对象) 、类之间 的关系、本系统中各个类所涉及的属性及针对这些属性的操作。类及类之间的关系可用类 图来表示,对象之间的消息传递可用箭头表示,另外一些重要的操作应给出规格说明。2详细设计与编码对类中的属性和操作从实现的角度(如可扩充、在派生类中能否直接使用或只需少量 修改、访问的效率和方便性等)进一步考察;对类中的操作(即方法)进一步求精:用 if、while、for 和赋值语句加上自然语言写出算法框架;同时考虑能否使用已有类库(包括 直接使用或通过派生)以减少编程的工作量和提高程序的可靠性。 编码,即程序设计,是对详细设计的结果的进一步求精

5、,用面向对象语言(如 C+) 表达出来。在充分理解和把握语言运行机制的基础上,编写出正确的、清晰的、易读易改 和高效率的程序。另外,在标识符的命名、代码的长度(一个方法长度一般不超过 40 行,否则应划分为两个或多个方法) 、程序书写的风格(如缩进格式、空格(空行)的应用、注 释等)方面也应注意,遵循统一的规范。3上机调试和测试上机时要带一本面向对象语言的教材,若有开发环境的用户指南(手册)及类库(库 函数)手册则更好。应仔细阅读程序编译和连接时的错误信息(通常是英文的) ,弄清其确 切含义,提高调试效率。要学习并掌握开发环境所提供的调试工具。 经过调试,能够运行的的程序并非就是一个正确的程序

6、。实际上,在上机之前,就应 根据系统的需求设计相应的测试数据集,特别是一些异常情况的处理(如用户输入数据未 按指定格式、数据极大或极小时程序如何处理等一些极端的情况) 。4课程设计报告课程设计报告的内容及要求:一一. . 需求和规格说明需求和规格说明描述问题,简述题目要解决的问题是什么?规定软件做什么。原题条件不足时补全二二. . 设计设计1设计思想:程序结构(如类图) ,重要的数据结构。主要算法思想(文字描述,不要画框图)2设计表示:类名及其作用,类中数据成员名称及作用,类中成员函数原型及其功能,可以用表格形式表达。3实现注释:各项要求的实现程度、在完成基本要求的基础上还实现了什么功能?4详

7、细设计表示:主要算法的框架及实现此算法的成员函数接口。三三. . 用户手册用户手册即使用说明(包括数据输入时的格式要求) 。四四. . 调试及测试调试及测试调试过程中遇到的主要问题是如何解决的;对设计和编码的回顾讨论和分析;程序运行的时空效率分析;测试数据集;运行实例;改进设想;经验和体会等。附录附录源程序清单:打印文本和磁盘文件,磁盘文件是必须的。源程序要加注释,除原有注释外再用钢笔加一些必要的注释和断言。测试数据:即列出测试数据集运行结果:上面测试数据输入后程序运行的结果注意事项:注意事项: 1. 以上要求为一般的要求,针对具体问题和具体的开发过程,某些方面可以 做适当的增减。 2. 各种

8、文档资料要在程序开发过程中逐渐形成,而不是最后补写(但不排斥最 后誉清) 。 3.各种文档要以统一格式的稿纸用钢笔书写,也可录入计算机用 Word 及其 它文字编辑软件排版后打印输出。三、课程设计示例封面: 课程设计报告设计题目:小型公司人员信息管理 学生姓名: 专 业: 班 级: 学 号: 指导教师: 完成日期:合肥工合肥工业业大学大学计计算机与信息学院算机与信息学院(一)(一) 需求和规格说明需求和规格说明 某小型公司,主要有四类人员:经理、技术人员、销售经理和推销员。要求存 储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。 人员编号基数为 1000,每输入一个人员的信

9、息,编号顺序加 1。 程序要对所有人员有提升级别的功能。为简单起见,所有人员的初始级别均为 1 级,然后进行升级,经理升为 4 级,技术人员和销售经理升为 3 级,推销员仍为 1 级。 月薪计算办法是:经理拿固定月薪 8000 元;技术人员按每小时 100 元领取月 薪;推销员的月薪按该推销员当月销售额的 4%提成;销售经理既拿固定月薪也领取 销售提成,固定月薪为 5000 元,销售提成为所管辖部门当月销售总额的 5。(二)(二) 设计设计 根据上述需求,设计一个基类 employee,然后派生出 technician(技术人员) 类、manager(经理)类和 salesman(推销员)类。

10、由于销售经理 (salesmanager)既是经理又是销售人员,兼具两类人员的特点,因此同时继承 manager 和 salesman 两个类。 在基类中,除了定义构造函数和析构函数以外,还应统一定义对各类人员信息 都应有的操作,这样可以规范各派生类的基本行为。但是各类人员的月薪计算方法不同,不能在基类 employee 中统一定义计算方法。各类人员信息的显示内容也不 同,同样不能在基类中统一定义显示方法。因此,在 employee 类中用纯虚函数的 方式定义了计算月薪函数 pay()和显示信息函数 displayStatus(),然后在派生类 中再根据各自的同名函数实现具体的功能。 由于 s

11、alesmanager 的两个基类又有公共基类 employee,为避免二义性,这里 将 employee 类设计为虚基类。 系统类图系统类图employeechar *nameint individualEmpNo;int grade;float accumPay;static int employeeNo;virtual void pay();void promote(int);vitual void displayStatus();technicianfloat hourlyRateint workHoursvirtual void pay();vitual void displaySt

12、atus();managerfloat monthlyPayvirtual void pay();vitual void displayStatus();salesmanfloat CommRate;float sales;virtual void pay();vitual void displayStatus();salesmanagervirtual void pay(); vitual void displayStatus();属性和方法定义属性和方法定义类名类名成员类成员类 别别类型类型成员名成员名描述描述char *name雇员姓名intindividualEmpNo个人编号intg

13、rade级别floataccumPay月薪总额属性intemployeeNo本公司雇员编号目前最大 值voidpay()计算月薪函数(为纯虚函 数)voidpromote(int)升级函数employee方法voidDisplayStatus()显示人员信息(为纯虚函 数)类名类名成员类成员类 别别类型类型成员名成员名描述描述floa thourlyRate每小时酬金属性intworkHours当月工作时数voidpay()accumPay=hourlyRate*workHourstechnician方法voidDisplayStatus ()显示技术人员信息属性floa tmonthlyPa

14、y固定月薪数voidpay()AccumPay=monthlyPaymanager方法voidDisplayStatus ()显示经理信息floa tCommRate按销售额提取酬金百分比属性floa tsales当月销售额voidpay()accumPay=sales*CommRatesalesman方法voidDisplayStatus ()显示推销员信息属性voidpay()accumPay=monthlyPay+CommRate* salessalesmanag er方法voidDisplayStatus ()显示销售经理信息(三)(三) 用户手册用户手册 程序运行时,首先提示输入雇员

15、姓名。 对于经理直接输出其工资及其它信息; 对于技术人员,程序提示输入其本月工作时数,然后输出其工资及其它信息; 对于推销员,程序提示输入其本月销售额,然后输出其工资及其它信息; 对于销售经理,程序提示输入其管辖部门本月销售总额,然后输出其工资及其 它信息。 (四)(四) 调试及测试调试及测试 由于公司每增加一个雇员,无论他(她)是哪一类人员,其编号均是顺序加 1, 也就是 employee 类的所有派生类对象创建时,都要访问同一个 employeeNo,因此 将 employeeNo 定义为静态数据成员。 运行实例:运行实例:please input employees name: zhan

16、g please input employees name: wang please input employees name: Li please input employees name: zhao input zhang the workHours of this month: 56 Technician: zhang No: 1001 month salary: 5600 Technician: zhang No: 1001 grade: 3 this month salary: 5600 Manager: wang No: 1002 month salary: 8000 Manager: wang No: 1002 grade: 4 this month salary: 8000 input Li the sales of this month: 47900 Salesman: Li No: 1003 month salary: 1916 Salesman: Li No: 1003

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

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