《面向对象程序设计》课程设计要求和任务书.doc_第1页
《面向对象程序设计》课程设计要求和任务书.doc_第2页
《面向对象程序设计》课程设计要求和任务书.doc_第3页
《面向对象程序设计》课程设计要求和任务书.doc_第4页
《面向对象程序设计》课程设计要求和任务书.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计课程设计任务书课程设计名称:面向对象程序设计 指导老师:王淮亭 课程设计周(时)数:2周课程设计授课单位:计算机基础教学部 指导方式:集体辅导与个别辅导相结合课程设计适用专业:计算机科学与技术 课程设计教材及主要参考资料:C程序设计谭浩强编著,清华大学出版社C程序设计教程学习辅导谭浩强编著,清华大学出版社服务课程名称:面向对象程序设计一、课程设计的目的要求面向对象程序设计课程设计是计算机专业及相关专业学生的一门实践课程。本课程对于检验学生学习面向对象程序设计课程后的学习成果,对于软件开发主流方法和思想面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。本课程设计要求学生综合应用已学的计算机相关知识,例如程序设计基本思想和方法、C+语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。课程要求学生针对一个比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。二、课程设计内容及安排1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么? 2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使程序中逻辑概念清楚;5. 程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;6. 结果分析:程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。算法的时间、空间复杂性分析。7. 编写课程设计报告三、 设计报告的内容1、 实习报告题头给出题目、班级、姓名、学号和完成日期2、 目的和要求 本实验的主要目的是锻炼我们的实战经验,运用自己所学的编程语言编写一些小型的项目。同时熟悉自己学过的知识3、 问题描述说明程序设计的任务。在这里应明确:(1) 输入的形式和输入值的范围;(2) 输出的形式;(3) 程序所能达到的功能;(4) 测试数据:具有典型和代表性的数据,包括正确的输入及其输出结果和含有错误的输入和输出结果。4开发环境和工具(1) 程序设计环境,主要描述硬件配置,包括计算机的外存、内存、CPU、显示器的分辨率以及完成该实习必备的外部设备(2) 软件工具,包括操作系统平台,程序设计工具5设计过程描述根据实习的目的、要求与问题描述,构思程序的构架与设计方案。具体地应说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系,画出流程图。 6、 小结(1) 说明调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;(2) 算法的时空分析和改进设想(3) 经验和体会等7、附录(源程序代码) 源程序代码书写要求规范化,开始要有规范化的说明,如程序名、功能、环境与工具、函数(方法)间的调用(引用)关系、设计者、设计时间与修改时间等;代码书写要采用缩格、函数(方法)和关键语句与变量要加注释等,且书写时应采用c(c+)的现代风格,如函数原型、enum、typedef、void、main等 8、测试结果 以问题描述中所列出的测试数据进行测试,列出测试结果,包括输入和输出。9参考文献 列出参考的相关资料和书籍。四、课程设计考核方法及成绩评定课程设计结束时,要求学生写出课程设计报告,可运行的源程序。课程设计成绩分两部分,设计报告占30,设计作品占70。按照优秀、良好、中、及格,不及格五级给予成绩。五、进度安排整体设计和详细设计 3天编代码 3天调试和测试 2天设计论文书写 1天演示软件和答辩 1天附课程设计题目:1学 校 人 员 管 理 系 统本程序用于管理一所学校的人员,所有人员类(Record)有共性的数据成员是:姓名、性别、身份证号码、生日、地址和年龄。学生类(Student)的数据人员包括共性的数据成员以及学号、宿舍号、专业和年级。员工类(Staff)的数据成员包括共性的数据成员以及工号、公寓、每天的工作时间和薪水(每月)。教授类(Professor)的数据成员包括员工的数据成员以及教授授课专业、教授所从事的科研名称和教授所带研究生的数目。普通员工类(Worker)的数据成员包括员工的数据成员以及工作类别。各类之间的关系如下图:类Record类Student 类Staff 类Professor 类Worker程序要求:1、 先创建一个菜单,让用户选择是对哪一类对象进行操作。2、 确定好对哪一类对象进行操作后,程序又创建一个菜单让用户选择对此类对象进行如何操作。操作包括:输入记录、显示记录、修改记录和删除记录。3、 输入记录时提示用户输入每一条记录的各个字段,输入的每一条记录都要保存到文件如a:example.dat下。注意一条记录相当于一个对象。输入的学号不能重复,输入的工号不能重复。输入的数据作有效性检测。4、 显示记录时,先提示用户输入要显示哪一个记录号的记录,如记录号在不超出范围则显示要访问的记,否则告诉用户记录号超出范围。5、 修改记录时,先要求用户输入要修改的记录关键字内容,如学生的关键字段学号、员工的关键字段是工号。输入好关键字后进行查找所要修改的记录,找到了重新输入该记录的数据成员内容,否则告诉用户找不到此记录。6、 删除记录时,先要求用户输入要修改的记录关键字内容,)输入好关键字后进行查找所要删除的记录,找到了把它删除掉,否则告诉用户找不到此记录。提示:删除的方法先创造一个临时的文件(a:example.tmp),一条一条记录查找过去,把非要删除的记录一条一条写到临时文件下,然后把临时文件复制到a:example.dat下。7、 程序执行结果部分演示如下图:第一屏:1、 学生2、 教授3、 普通员工4、 退出 请选择功能号(1-4):1 第二屏:1、 输入记录2、 显示记录3、 修改记录4、 删除记录5、 退出请选择功能号(1-5):1 请输入姓名:王名 性别:男 身份证号码:1312980273888 生日:1979/1/1 地址:BGD 100 BEIJING 年龄:20 学号:12345 宿舍号:8-3-225 专业:COMPUTER SCIENCE 年级:5按任意键继续6、 输入记录7、 显示记录8、 修改记录9、 删除记录10、 退出请选择功能号(1-5):2请输入记录号(1-4):1注意第二屏的退出退到第一屏,第一屏退出退出整个程序。编写此程序至少要用三个以上的下列面向对象工具:1、 继承与派生2、 友元函数3、 运算符重载4、 构造函数5、 虚函数6、 模板7、 文件输入输出注意:工具用的越多越好,但要用的恰当。 不同的类对象存放在不同的文件中。2.公 司 人 员 工 资 管 理 系 统本程序用于管理一个公司的人员工资,所有雇员类(Employee)有共性的数据成员是:编号、姓名和工资。技术员类(Technician)的数据成员包括共性的数据成员以及工作时间(每月的)、每小时的工资。销售员类(Salesman)的数据成员包括共性的数据成员以及销售额(本月)、提成。经理类(Manager)的数据成员包括共性的数据成员以及月工资。销售员兼经理类(Salesmanager)的数据成员包括销售员类和经理类的数据成员。各类之间的关系如下图:类Employee 类Technician 类Manager 类Salesman 类Salesmanager 程序要求:1. 先创建一个菜单,让用户选择是对哪一类对象进行操作。2. 确定好对哪一类对象进行操作后,程序又创建一个菜单让用户选择对此类对象进行如何操作。操作包括:输入记录、显示记录、修改记录和删除记录。3. 输入记录时提示用户输入每一条记录的各个字段,输入的每一条记录都要保存到文件如(C:example.dat)下。注意一条记录相当于一个对象。输入的工号不能重复,输入的数据字段作有效性检测。4. 显示记录时,先提示用户输入要显示哪一个记录号的记录,如记录号在不超出范围则显示要访问的记,否则告诉用户记录号超出范围。5. 修改记录时,先要求用户输入要修改的记录关键字内容,如学生的关键字段学号、员工的关键字段是工号。输入好关键字后进行查找所要修改的记录,找到了重新输入该记录的数据成员内容,否则告诉用户找不到此记录。6. 删除记录时,先要求用户输入要修改的记录关键字内容,)输入好关键字后进行查找所要删除的记录,找到了把它删除掉,否则告诉用户找不到此记录。提示:删除的方法先创造一个临时的文件C:example.tmp),一条一条记录查找过去,把非要删除的记录一条一条写到临时文件下,然后把临时文件复制到C:example.dat下。7. 程序执行结果部分演示如下图:第一屏:5、 技术员6、 销售员7、 经理8、 销售员兼经理9、 退出 请选择功能号(1-5):1 第二屏:11、 输入记录12、 显示记录13、 修改记录14、 删除记录15、 退出请选择功能号(1-5):1 请输入编号:0001 姓名:王名 工作时数:160 每小时工资:20 按任意键继续1、 输入记录2、 显示记录3、 修改记录4、 删除记录5、 退出请选择功能号(1-5):2请输入记录号(1-4):1编号 姓名 工资(元)0001 王名 3200.00注意第二屏的退出退到第一屏,第一屏退出退出整个程序。编写此程序至少要用三个以上的下列面向对象工具:1. 继承与派生2. 友元函数3. 运算符重载4. 构造函数5. 虚函数6. 模板7. 文件输入输出注意:工具用的越多越好,但要用的恰当。 不同类对象存放在不同的文件内。3.栈操作一定义一个栈类(采用类模板),实现下列操作(1) 编写进栈、出栈、显示栈中全部元素的程序; (2) 编写一个二进制、八进制、十进制、十六进制相互转换的应用程序;二要求:(1)采用类模板定义一个栈类实现上述关于栈的操作(2)设计一个选择式菜单,实现进位制之间转换。三编写此程序至少要用二个以上的下列面向对象工具:1. 类2. 继承与派生3. 友元函数4. 虚函数5. 构造函数6. 模板7. 文件输入输出4.二叉操作一定义一个二叉树类(采用类模板),实现下列操作(3) 生成二叉树。(4) 对二叉前序、中序、后序遍历。(5) 求每个结点层次(高度)。(6) 求每个结点的子孙个数。设计一个选择式菜单,以菜单方式选择上述操作。二要求:定义二叉树元素类和二叉树类,实现对二叉树进行创建、三种遍历、求高度、求结点总数等操作。三编写此程序至少要用二个以上的下列面向对象工具:1. 类2. 继承与派生3. 友元函数4. 虚函数5. 构造函数6. 模板7. 文件输入输出5.教务信息管理系统一 基本表:教师基本信息:如教师工号、姓名、性别、职称、课程编号、课程名称等。学生基本信息:如学号、姓名、性别、年龄、宿舍号码、电话号码等。学生选修课程的基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。如果重修,需要考虑重修学期、重修成绩。并且要考虑多次重修的情况。二 功能与要求(1) 各种基本数据的录入。如:学生基本情况录入(2) 各种基本数据的修改。即:允许对以及录入的数据重新进行编辑、修改。(3) 各种基本数据的插入。如:在学生选修课程基本信息中插入一条新信息。(4) 各种基本数据的删除。如:假设某同学转学或出国深造,删除该生的相关信息。(5) 基于各种数据的查询。如:姓张的所有同学、年龄小于20岁的同学。(6) 显示教师课程名称、课程编号,学生名单。(7) 基于各种基本数据的统计计算。如:(7-1)统计每个学生各门功课的平均成绩,并按平均成绩从高到低的次序排名输出每个学生各门功课的综合成绩和平均成绩(名次、学号、姓名、平均成绩、各门功课的考试成绩、平时成绩、综合成绩)。(7-2)统计并输出各班各门功课的平均成绩和总平均成绩。(7-3)统计并输出每个同学已修学分。(7-4)列出不及格学生清单(学号、姓名、不及格的课程和成绩)。(7-5)教务信息其它方面的统计(自行确定)。三编写此程序至少要用二个以上的下列面向对象工具:1. 类2. 继承与派生3. 友元函数4. 虚函数5. 构造函数6. 模板7. 文件输入输出6图书资料信息管理系统一 图书基本信息基本表结构:图书资料基本信息:中图法分类号、图书编号、书名、作者(要考虑多个作者情况)、出版社、出版日期、ISBN、版次、定价、馆藏数、借阅数等。图书采购信息:书名、作者、采购日期、采购数量、采购单价、采购金额、发票号码、图书编号等。图书借阅信息:借阅人、借阅人所在单位、借书证号、所借书名、借阅日期、归还日期、逾期罚款等。借阅期限为一个月,逾期1天,罚款1角。中图法分类号:T 工业科学TB 一般工业技术,TD 矿业工程,TE石油、天然气工业,TF 金工业,TG 金属学,TH 机械TJ 武器工业,TK 动力工业,TL 原子能技术,TM 电工技术, TN 无线电电子学、通信技术,TP 自动化技术、计算技术,。二系统功能:(1) 各种基本数据的录入。如:图书资料基本信息录入等。(2) 各种基本数据的修改。即:允许对以及录入的数据重新进行编辑、修改。(3) 各种基本数据的插入。如:在图书采购信息中插入一条新信息;。(4) 各种基本数据的删除。如:或假设某本书遗失且馆藏数为0,删除该书的相关信息。(5) 基于各种数据的查询。如:书名中含有“计算机”的所有书籍、全部借出的所有图书等。(6) 基于各种基本数据的统计计算。如:(6-1)统计馆藏书籍总数、已借出数据总数、在馆书籍数等。(6-2)统计馆藏书籍总金额、馆藏书籍的平均价格。(6-3)找出借阅次数最多的10本书,并对它们进行排序。(6-4)统计每月逾期罚款总金额。被罚款金额最多的前5名借阅者并对其排序。(6-5)统计借阅书籍最多的前5名读者。(6-6)图书资料信息其它方面的统计。三编写此程序至少要用二个以上的下列面向对象工具:1. 类2. 继承与派生3. 友元函数4. 构造函数5. 虚函数6. 模板7. 文件输入输出7.字符串编辑一设计一个简单串类String,它包含设置字符串、返回字符串长度和显示内容等功能。能对字符串进行插入、替换、删除、查找和连接等操作。程序要求:1对字符串的操作采用下列菜单形式:1 生成字符串2 显示3 求字符串长度4 字符串插入5 字符串替换6 字符串删除7 字符串查找8 字符串的连接0 返回2调试(1)生成字符串s=”ABCDBCEFGHTH” (2) 求长度 len(s)=12 (3) 字符串的插入t=”XYZ”insstr(s,3,t)= ”AB XYZ CDBCEFGHTH”(4) 字符的替换将字符串s中的所有p=” BC”替换为t=”LMN”: repl(s,p,t)= ”A LMN D LMN EFGHTH”(5) 字符串的查找p=”BC”:index(s,p)=2(6) 字符串的连接将字符串p“12345678”的字符串s连接:strcat(s,p)=” ABCDBCEFGHTH12345678” 二定义一个一般计数器类Counter通过公有继承产生受限计数器类LCounter 和循环计数器类C Counter。三种计数器关系为Counter 公有继承 Lcounter CCounter 程序要求: 1对计数器要能进行加1,减1和显示值操作。2定义对象 Counter X 当计数器值为X.value=655635,执行加1操作时,计数器值仍为X.value=655635,计数器值为X.value0,执行减1操作时。.3定义对象 Lcounter Y 当计数器值为Y.value=655635,执行加1操作时,报告错误信息计数器值超出上限,计数器值为Y.value0,执行减1操作时。4定义对象 CCounter Z 当计数器值为Z.value=655635,执行加1操作时,计数器值仍为Z.value=0,计数器值为Z.value0,执行减1操作时。三编写程序至少要用二个以上的下列面向对象工具:1. 继承与派生2. 友元函数3. 运算符重载4. 构造函数5. 虚函数6. 模板7. 文件输入输出注意:工具用的越多越好,但要用的恰当。8.同学录管理系统 一 设计通讯录,设计要求实现如下功能:(1) 建立文件:存储文件可以使用默认文件名或指定文件名.可以不保存输入记录,需要确认是否保存输入记录如果已经有文件,只能在其后追加(2) 文件存取和显示:可以单独存取文件,可以随时显示内存中记录的全部内容可以直接存取默认文件或指定文件(3) 删除记录:可以按“姓名”或“”电话”方式删除记录并更新内容(4) 查询记录:可以按“姓名”或“电话”方式查询记录(5) 显示记录(6) 修改记录(7) 使用菜单实现功能的正确选择(8) 测试程序二编写程序至少要用二个以上的下列面向对象工具:继承与派生友元函数运算符重载构造函数虚函数模板文件输入输出9.职工工资信息管理系统一职工工资信息管理系统基本表格职工基本信息:如工资卡号、身份证号、姓名、性别、年龄、工龄、部门、技术职称、技术职称编号、家庭电话号码、手机号码等。工资基础信息:技术职称编号、技术职称、基本工资、职务工资、各种补助等。费用扣除信息:工资卡号、水费、电费、清洁费(5元/月)、闭路电视费(10元/月)等。工资单数据:工资卡号、姓名、应发工资、水费、电费、清洁费、闭路电视费、税金、实发工资、特别奖励。其中:税金计算方法为:应发工资800元,税金=0;8001400元, 税金=(应发工资-1400)10%二系统功能:(1) 各种基本数据的录入。如:职工基本信息录入等。(2) 各种基本数据的修

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论