《面向对象程序设计》课程设计要求和任务书.doc_第1页
《面向对象程序设计》课程设计要求和任务书.doc_第2页
《面向对象程序设计》课程设计要求和任务书.doc_第3页
《面向对象程序设计》课程设计要求和任务书.doc_第4页
全文预览已结束

下载本文档

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

文档简介

面向对象程序设计课程设计任务书课程设计名称:面向对象程序设计 指导老师:王淮亭 课程设计周(时)数:2周课程设计授课单位:计算机基础教学部 指导方式:集体辅导与个别辅导相结合课程设计适用专业:计算机科学与技术 课程设计教材及主要参考资料:C程序设计语言Bjarne Stroustruo 高等教育出版社C程序设计谭浩强编著,清华大学出版社C程序设计教程学习辅导谭浩强编著,清华大学出版社服务课程名称:面向对象程序设计一、课程设计的目的要求面向对象程序设计课程设计是计算机专业及相关专业学生的一门实践课程。本课程对于检验学生学习面向对象程序设计课程后的学习成果,对于软件开发主流方法和思想面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。本课程设计要求学生综合应用已学的计算机相关知识,例如程序设计基本思想和方法、C+语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。课程要求学生针对一个比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。二、课程设计内容及安排1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么? 2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使程序中逻辑概念清楚;5. 程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;6. 结果分析:程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。算法的时间、空间复杂性分析。7. 编写课程设计报告三、 设计报告的内容1、 实习报告题头给出题目、班级、姓名、学号和完成日期2、 目的和要求 通过实习进一步掌握所学的基本知识,学会解决实际问题的方法3、 问题描述说明程序设计的任务。在这里应明确:(1) 输入的形式和输入值的范围;(2) 输出的形式;(3) 程序所能达到的功能;(4) 测试数据:具有典型和代表性的数据,包括正确的输入及其输出结果和含有错误的输入和输出结果。4开发环境和工具(1) 程序设计环境,主要描述硬件配置,包括计算机的外存、内存、CPU、显示器的分辨率以及完成该实习必备的外部设备(2) 软件工具,包括操作系统平台,程序设计工具5设计过程描述根据实习的目的、要求与问题描述,构思程序的构架与设计方案。具体地应说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系,画出流程图。6 . 编程调试与解决7、 小结(1) 说明调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;(2) 算法的时空分析和改进设想(3) 经验和体会等8、附录(源程序代码) 源程序代码书写要求规范化,开始要有规范化的说明,如程序名、功能、环境与工具、函数(方法)间的调用(引用)关系、设计者、设计时间与修改时间等;代码书写要采用缩格、函数(方法)和关键语句与变量要加注释等,且书写时应采用c(c+)的现代风格,如函数原型、enum、typedef、void、main等 9、测试结果 以问题描述中所列出的测试数据进行测试,列出测试结果,包括输入和输出。10参考文献 列出参考的相关资料和书籍。四、课程设计考核方法及成绩评定课程设计结束时,要求学生写出课程设计报告,可运行的源程序。课程设计成绩分两部分,设计报告占30,设计作品占70。按照优秀、良好、中、及格,不及格五级给予成绩。五、进度安排整体设计和详细设计 3天编代码 3天调试和测试 2天设计论文书写 1天演示软件和答辩 1天附课程设计题目:1. 职工信息管理系统设计(限1人完成)2. 图书信息管理系统设计(限1人完成)3. 学生信息管理系统设计(限1人完成)4. 学生选修课程系统设计(限1人完成)5. 销售管理系统 (限1人完成)6. 编写一万年历系统(限最多1人完成)7. 学生成绩管理(限最多2人完成)8. 通讯录管理(限最多1人完成)9. 一元多项式简单的计算器(限最多1人完成)10. 图书管理系统(限最多2人完成)11. 校园导游咨询(限最多1人完成)12. 电煤气管理系统(限最多2人完成)13. 商品销售统计(限最多2人完成)14. 校际运动会管理系统(限最多2人完成)15. 某公司的库存管理系统(限最多2人完成)16. 车票管理系统(限1人完成)17. 职工工作量统计系统(限最多1人完成)18. 保安值班安排系统(限最多1人完成)19. 单项选择题标准化考试系统(限最多2人完成)20. 酒店管理系统源码(限最多2人完成)21. 学生考勤管理系统(限最多2人完成)22. 飞机订票系统(限最多2人完成)23. ATM取款机程序24. 上海公交助手嵌入式系统(限最多2人完成)25. 酒店点菜系统(限最多2人完成)26. 课程设计选题管理系统(限最多2人完成)27. 杂志订阅管理系统(限最多2人完成)28. 成绩记录簿(限最多2人完成)29. 简单计算器程序1. 职工信息管理系统设计(限1人完成)职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:职工信息录入功能(职工信息用文件保存)输入职工信息浏览功能 输出查询和排序功能:(至少一种查询方式) 算法按工资查询按学历查询等职工信息删除、修改功能(任选项)2、图书信息管理系统设计(限1人完成)图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:图书信息录入功能(图书信息用文件保存)输入图书信息浏览功能输出查询和排序功能:(至少一种查询方式)算法按书名查询按作者名查询图书信息的删除与修改(可选项)3、学生信息管理系统设计(限1人完成)学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:学生信息录入功能(学生信息用文件保存)-输入学生信息浏览功能-输出查询、排序功能-算法按学号查询按姓名查询学生信息的删除与修改(可选项)4、学生选修课程系统设计(限1人完成)假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供以下功能:课程信息录入功能(课程信息用文件保存)输入课程信息浏览功能输出查询功能:(至少一种查询方式)算法按学分查询按课程性质查询学生选修课程(可选项)5、销售管理系统 (限1人完成)某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容: 1)销售员的代号 2)产品的代号 3)这种产品的当天的销售额 每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。1)计算上个月每个人每种产品的销售额。 2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额) 4)输出统计报表6、编写一万年历系统(限最多1人完成)要求: 模仿现实生活中的挂历. 当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).当系统日期变到下一月时,系统自动翻页到下一月.7、学生成绩管理(限最多2人完成)班级类,学生类,课程类,选课主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单8、通讯录管理(限最多1人完成)主要功能:(1)能建立、修改和增删学生通讯录(2)能够按多种方式进行查询要求:界面友好,易于操作9、一元多项式简单的计算器(限最多1人完成)主要功能:(1)输入并建立多项式;(2)输出多项式;(3)两个多项式相加,建立并输出和多项式;(4)两个多项式相减,建立并输出差多项式。(5)算法的时间复杂度、另外可以提出算法的改进方法实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。要求:一元多项式简单计算器的基本功能10、图书管理系统(限最多2人完成)功能描述:1). 新进图书基本信息的输入。2). 图书基本信息的查询。3). 对撤消图书信息的删除。4). 为借书人办理注册。5)办理借书手续(非注册会员不能借书)。6)办理还书手续信息描述:有关该系统基本信息的描述,如:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等11、校园导游咨询(限最多1人完成)1)、功能描述:设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径长度等相关信息。2)、为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。3)、为来访客人提供图中任意景点相关信息的查询。测试数据:由读者根据实际情况指定。实现提示:一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网,顶点和边均含有相关信息。12、电煤气管理系统问题描述;涉及一个水电管理信息系统,能够对高校的水电费用进行管理,包括了登记费用,查询费用,以及住户信息管理系统等。在设计时要考虑到学生和教工在用水电时地不同,学生可以免费使用一定额度地水电,超过这个额度以后必须自费使用,且自费部分水电费地价格要高于教工地收费标准。基本要求:实现对用户信息地录入实现水电煤气数据地录入计算并查询用户应缴纳费用查询未缴纳费用名单13、商品销售统计问题描述:编写商品销售统计程序,商品的信息有商品的名称。计算单位(重量或件)、单价。所有商品的信息事先存入计算机,屏幕上显示所有的名称,选择商品名,输入商品计量单位(如重量、件数等),根据单价算出总价。客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。基本要求:程序分为两部分;第一部分用于输入商品的住处并允许个性和删除;第二部分实现销售统计。程序运用时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换,第二部分运行时,首先先显示所有的商品名称及代码,用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码表示本次购买结束。测试数据:程序应输入不少于10种商品信息,并进行模拟运行。 实现提示:本程序的商品信息管理可采用与课程设计题目2类似的数据结构,即定义一个商品类,每种商品作为商品类的实例存储在链表结点中。 选作内容:程序在营业结束时统计每种商品的销售量,销售金额及总营业额,因此第二部分应有营业结束的选择,当用户选择此贡时屏幕上显示当天营业的每种商品的销售量,销售金额及总营业额。注意、商品类的数据成员应曾加有商品粮的销售量和销售金额。总营额是所有营业额之和,可用静太数据实现,或可用原商品类派生出一个特殊的类,增加上面的数据成员及相应的成员函数。14、校际运动会管理系统问题描述:1).初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数;2).各项目名次取法有如下几种:取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1;取前3名:第1名得分 5,第2名得分 3,第3名得分2;用户自定义:各名次权值由用户指定。3).由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。4).所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。15、某公司的库存管理系统1、问题描述(功能要求):某公司现有以下设备:普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。2、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告以及系统使用说明书。16、车票管理系统(限1人完成)一车站每天有n个发车班次,每个班次都有一班次号(1、2、3n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数1 8:00 郫县 广汉 2 45 302 6:30 郫县 成都 0.5 40 403 7:00 郫县 成都 0.5 40 204 10:00 郫县 成都 0.5 40 2(一)功能要求:用c/c+设计一系统,能提供下列服务:(1)录入班次信息(信息用文件保存),可不定时地增加班次数据(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。(3)查询路线:可按班次号查询 ,可按终点站查询(4)售票和退票功能 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 (二)其它要求:(1) 只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档17、职工工作量统计系统(限最多1人完成)编写有一个程序,该程序输入职工工号和完成的产品数量,程序允许同一职工有多次输入,由程序对其完成的产品数量实现累计。程序按完成数量对他们排序,并确定他们的名次。按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)。要求程序用有序链表存储数据信息。18、保安值班安排系统(限最多1人完成)某公司有7名保安人员:赵、钱、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制一程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下: 赵:星期二、星期四 钱:星期一、星期六 孙:星期三、星期日 李:星期五 周:星期一、星期四、星期六 吴:星期二、星期五 陈:星期三、星期六、星期日19、单项选择题标准化考试系统(限最多2人完成)(一) 功能要求:(1) 用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)(2) 试题录入:可随时增加试题到试题库中(3) 试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4) 答题:用户可实现输入自己的答案(5) 自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。(二)其它要求:(1) 只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档20、酒店管理系统源码功能:1)、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,如不同级别房间价格的查询 修改 刷除等 。 2)、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。 3)、月底进行结算,实收多少, 应收多少21、学生考勤管理系统考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课(连续多节课用 begin-end 的形式表示)、课程名称(课程名称中不会出现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计一考勤管理系统,使之能提供以下功能:1)录入学生的缺课记录:从键盘输入数据(提示:为避免重复从键盘输入数据,测试时可将数据存储在文件中,利用输入重定向功能读入),输入格式为:缺课日期第几节课 课程名称学生姓名 缺课类型每行一条纪录。例如:2008-04-29 3-4 C+程序设计实验 张三 迟到2008-04-28 3-4 C+程序设计 李四 旷课2)修改某个学生的缺课记录:可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。3)查询某个学生的缺课情况:查询结果按照日期升序排序,同一天内按照所缺课程的时间升序排序。4)统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序,旷课节数相同的学生按姓名升序排序; 5)统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序,旷课人次相同的课程按课程名称升序排序; 6)系统以菜单方式工作。(所谓菜单指用户可以自由选择所要执行的功能)22、飞机订票系统假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。试设计一民航订票系统,使之能提供下列服务: 航班信息录入功能(航班信息用文件保存)输入 航班信息浏览功能输出 查询航线:(至少一种查询方式)算法按航班号查询 按终点站查询承办订票和退票业务(可选项)23、ATM取款机程序(1)软件用途:ATM取款(2)功能概述:模拟ATM取款机 登陆、取款、查询24、上海公交助手嵌入式系统1).查询某一个公交的整个路线图.2).查询某一个公交的发车时间,车次,抵达时间,使用费用3).查询从一个出发点到目的地的所有路线,并找到最佳路线(包括最短,最廉价,最好) 4).支持多个公交换乘到达目的地的最佳算法 (包括公共汽车与地铁换乘) 5). 查询上海公交某一个站点 6). 查询上海公交站某一个站25、酒店点菜系统(1)自定义文件生成工具: 将酒店提供的餐饮项目进行汇总,生成自定义的文件供移动设备使用。(2)点菜软件:运行在移动设备上,供客人 点菜、退菜、结帐。(3)服务端软件: 对客人点的菜进行管理,数据备份,通知酒店。26、课程设计选题管理系统主要包括下列模块:1) 新增、修改、删除课程设计题目;2) 新增、修改、删除学生信息;3) 查询课程设计内容;4) 课程设计选题;27、杂志订阅管理系统使用计算机对杂志进行管理,该杂志最多拥有订户不超过10人,每个订户的信息包括:姓名,性别,电话号码,杂志单位,订阅数,订阅期限(某年某月)要求有以下功能:(1)增加新订户,即将新订户的全部信息输入到文件中(2)根据当天的日期对新订户全部信息进行查询,删除已到期的订户记录(3)统计本期杂志订户数并打印运算结果本期订信息 订户名 订阅数 单价 全额 李平 2 5.5 11.0 黄海 1 5.5 5.5 合计 3 1.0 16.528、成绩记录簿编制一个C+语言成绩记录簿,每个学生信息包括:学号、姓名、C+语言成绩。具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、6079、8089、90分以上各分数段的学生信息。29、设计一个简单计算器(限最多1人完成)要求: 在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。学 校 人 员 管 理 系 统(第一组)本程序用于管理一所学校的人员,所有人员类(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、 文件输入输出注意:工具用的越多越好,但要用的恰当。 不同的类对象存放在不同的文件中。附: 在完成上面要求的情况下,如有时间请做下面部分:对每一对象的生日作有效性检测,月份在1-12,日期在1-31,年份在1940-2002,如月份、日期无效置月份、日期为1,日期还要根据是否是闰年来检测有效性。对于员工类如某一个月是某人的生日工资加200元作额外津贴。公 司 人 员 工 资 管 理 系 统(第二组)本程序用于管理一个公司的人员工资,所有雇员类(Employee)有共性的数据成员是:编号、姓名和工资。技术员类(Technician)的数据成员包括共性的数据成员以及工作时间(每月的)、每小时的工资。销售员类(Salesman)的数据成员包括共性的数据成员以及销售额(本月)、提成。经理类(Manager)的数据成员包括共性的数据成员以及月工资。销售员兼经理类(Salesmanager)的数据成员包括销售员类和经理类的数据成员。各类之间的关系如下图:类Employee 类Technician 类Manager 类Salesman 类Salesmanager 程序要求:1. 先创建一个菜单,让用户选择是对哪一类对象进行操作。2. 确定好对哪一类对象进行操作后,程序又创建一个菜单让用户选择对此类对象进行如何操作。操作包括:输入记录、显示记录、修改记录和删除记录。3. 输入记录时提示用户输入每一条记录的各个字段,输入的每一条记录都要保存到文件如(a:example.dat)下。注意一条记录相当于一个对象。输入的工号不能重复,输入的数据字段作有效性检测。4. 显示记录时,先提示用户输入要显示哪一个记录号的记录,如记录号在不超出范围则显示要访问的记,否则告诉用户记录号超出范围。5. 修改记录时,先要求用户输入要修改的记录关键字内容,如学生的关键字段学号、员工的关键字段是工号。输入好关键字后进行查找所要修改的记录,找到了重新输入该记录的数据成员内容,否则告诉用户找不到此记录。6. 删除记录时,先要求用户输入要修改的记录关键字内容,)输入好关键字后进行查找所要删除的记录,找到了把它删除掉,否则告诉用户找不到此记录。提示:删除的方法先创造一个临时的文件(a:example.tmp),一条一条记录查找过去,把非要删除的记录一条一条写到临时文件下,然后把临时文件复制到a: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. 文件输入输出注意:工具用的越多越好,但要用的恰当。 不同类对象存放在不同的文件内。附: 在完成上面要求的情况下,如有时间请做下面部分:在Employee类中增加一个字段生日,且对每一对象的生日作有效性检测,月份在1-12,日期在1-31,年份在1940-2002,如月份、日期无效置月份、日期为1,日期还要根据是否是闰年来检测有效性。如某一个月是某人的生日工资加200元作额外津贴。栈操作(第三组)一定义一个栈类(采用类模板),实现下列操作(1) 编写进栈、出栈、显示栈中全部元素的程序; (2) 编写一个二进制、八进制、十进制、十六进制相互转换的应用程序;二要求:(1)采用类模板定义一个栈类实现上述关于栈的操作(2)设计一个选择式菜单,实现进位制之间转换。三编写此程序至少要用二个以上的下列面向对象工具:1. 类2. 继承与派生3. 友元函数4. 虚函数5. 构造函数6. 模板7. 文件输入输出二叉操作(第四组)一定义一个二叉树类(采用类模板),实现下列操作(3) 生成二叉树。(4) 对二叉前序、中序、后序遍历。(5) 求每个结点层次(高度)。(6) 求每个结点的子孙个数。设计一个选择式菜单,以菜单方式选择上述操作。二编写此程序至少要用二个以上的下列面向对象工具:1. 类2. 继承与派生3. 友元函数4. 虚函数5. 构造函数6. 模板7. 文件输入输出教务信息管理系统(第五组)一 基本表:教师基本信息:如教师工号、姓名、性别、职称、课程编号、课程名称等。学生基本信息:如学号、姓名、性别、年龄、宿舍号码、电话号码等。学生选修课程的基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。如果重修,需要考虑重修学期、重修成绩。并且要考虑多次重修的情况。二 功能与要求(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. 文件输入输出图书资料信息管理系统(第六组)一 图书基本信息基本表结构:图书资料基本信息:中图法分类号、图书编号、书名、作者(要考虑多个作者情况)、出版社、出版日期、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. 文件输入输出字符串编辑(第七组)一设计一个简单串类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

温馨提示

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

评论

0/150

提交评论