《面向对象程序设计课程设计指导书.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计课程设计指导书.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计指导书课程名称: 面向对象程序设计班次: 计科2015设计任务: 整个课程设计分为两个阶段。第一阶段为基础练习,完成后可以得到及格与中等成绩。完成第二阶段任务后可获得良好、优秀成绩。课程设计目的1、 进一步提高程序设计能力;2、 进一步理解和运用面向对象程序设计的思想和方法;3、 初步掌握开发一个小型实用系统的基本方法;4、 学会调试一个较长程序的基本方法;第一阶段:基础任务(在以下题目中任选一个完成)1.“高校人员信息管理系统设计”1)问题描述某高校有四类员工:教师、实验员、行政人员,教师兼行政人员;共有的信息包括:编号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、
2、职称;实验员还包含的信息由:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称等。2)功能要求(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系
3、统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。(6)统计功能:能根据多种参数进行人员的统计。能统计四类人员数量以及总数,统计男、女员工的数量。3)问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;
4、 (8)完成系统总结报告。 2.“公司员工信息管理系统设计”1)问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。2)功能要求(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记
5、录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量等信息。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界
6、面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。3.“媒体库管理系统设计”1)问题描述图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。图书馆共有三大类物品资料:图书、视频光盘、图画。这三类物品共同具有的属性有:编号、标题、作者、评级(未评级,一般,成人,儿童)等。其中图书类增加出版社、ISBN号、页数等信息;视频光盘类增加出品者的名字、出品年份和视频时长等信息;图
7、画类增加出品国籍、作品的长和宽(以厘米计,整数)等信息。2)功能要求(1)添加物品:主要完成图书馆三类物品信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。(2)查询物品可按照三种方式来查询物品,分别为:按标题查询:输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!”;(3)显示物品库:输出当前物品库中所有物品信息,每条记录占据一行。(4)编辑物品:
8、可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除物品:主要完成图书馆物品信息的删除。如果当前物品库为空,则提示“物品库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。(6)统计信息输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描
9、述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。 4.“车辆管理系统设计”1)问题描述车辆管理系统主要负责各种车辆的常规信息管理工作。系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。每台车辆当月总费用=油价*耗油量/公里+基本维护费用。基本维护费用:客车:2000元/月,小轿车:1000元/月,卡
10、车:1500元/月2)功能要求(1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。(2)查询车辆:可按照三种方式来查询物品,分别为:按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”;(3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。(4)编辑功能:可根据查询
11、结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。(6)统计信息输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各
12、个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。5.“高校水电费管理系统设计”1)问题描述住宿学生信息包括:学号、姓名、性别、年龄、班级、用电量、用水量等信息。教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。能计算出学生和教工每月所要交的电费和水费。定义一个人员类,实现学生和教工共同的信息和行为。2)功能要求(1)添加功能:程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据姓名、用水
13、量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生和教工的记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的学生或教工记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能统计学生和教工的用水用电量、所要交纳的电费和水费、未交纳水电费的人员信息等。(7)计算电费和水费。学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。3)问题的解决方案
14、根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。6. “小型公司工资管理系统设计”1)问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。四类人员的月薪计算方法如下:经理拿固定月薪;技术人员按小时领取月薪;销售人员按其当月销售额的提成领取工资;
15、销售经理既拿固定月薪也领取销售提成。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。2)功能要求(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能
16、:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个
17、类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。7. “公司员工考勤管理系统设计”1)问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。定义一个将小时换成天数的类。转换规则:8小时转换为一天,12小时转换为1.5天。可进行天数的加、减。定义一个记录员工生病、休假时间的类。其中包括:员工生病没工作的天数、生病可以不工作的最多天数、员工已经带薪休假的天数、员工可以带薪休假的天数。公司规定带薪休假不能超过24小时。生病可以不工作的最多不能超过16小时。设计一程
18、序能够对公司人员的休假情况进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。2)功能要求(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。还可以添加带薪休假和生病休假的记录,每条记录中必须包含员工编号和姓名。(2)查询功能:可根据编号、姓名等信息对已添加的员工信息和休假信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记
19、录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录和休假记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,统计任一员工的休假天数等信息。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完
20、成系统总结报告。8.“停车场管理系统设计”1)问题描述定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。2)功能要求(1)
21、添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。(5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。(6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等
22、。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;(8)完成系统总结报告。9. “超市商品管理系统设计”1)问题描述超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和生产厂家、品牌等信息。主要完成对商品的销售、统计和简单管理。2)功能要求(1)销售功能。购买商品时,先输入类
23、别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。(2)商品简单管理功能。添加功能:主要完成商品信息的添加。查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。修改功能:可根据查询结果对相应的记录进行修改。删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。(3)统计功能。输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量
24、、生产厂家进行统计,输出统计信息时,要按从大到小进行排序。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;(8)完成系统总结报告。10. “库存管理系统设计”1)问题描述超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和品牌等信息。定义一个管理类,主要完成对商品的销售、统计
25、和简单管理。2)功能要求(1)进货功能。按要求添加相应商品的信息到库存中。添加进货日期、生产厂家、进货价等信息。(2)出货功能。出货时,先输入商品类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入出货的数量、出货日期,计算销售额和利润。如果库存量不够,给出提示信息,结束出货。(3)统计功能。输出当前库存中所有商品的总数及详细信息;能统计每种商品一周时间内的销售额和利润;能统计每类商品的一周时间内的销售额和利润。输出统计信息时,要按从大到小进行排序。(4)商品简单管理功能。添加功能:主要完成商品基本信息的添加。查询功能:可按商品类别、商品名称、生产厂家、进货日期进行查询。
26、若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。修改功能:可根据查询结果对相应的记录进行修改。删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能
27、调试;(8)完成系统总结报告。11. “美发店管理系统设计”1)问题描述定义顾客类,属性有:会员卡号、姓名、性别、电话等信息和相关的对属性做操作的行为。定义员工类:属性有:编号、姓名、性别、电话、美发项目(理发、烫发、洗发)等信息和相关的对属性做操作的行为。定义美发类:属性有各种美发项目的收费标准和相关的对属性做操作的行为。定义一个管理类,完成对美发店的简单管理。2)功能要求(1)美发功能。根据顾客所要做的美发项目、服务的雇员、消费金额等将相应信息添加到顾客类中指定顾客和员工类中指定员工信息里。(2)简单管理功能。添加功能:程序能够添加顾客信息和雇员信息,要求编号要唯一,如果添加了重复编号的记
28、录时,则提示数据添加重复并取消添加。查询功能:可根据姓名、电话、卡号等信息对已添加的顾客信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;还可以根据姓名、工种编号等信息对雇员信息进行查询。显示功能:可显示当前系统中所有顾客信息和雇员信息,每条信息占据一行。编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。删除功能:主要实现对已添加的顾客和雇员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。(3)统计功能。能统计出顾客的消费总数、雇员的收入总数。都按从大到小排序。3)问题的解决方案根据系统功能要求,可以将问题解决分为
29、以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;(8)完成系统总结报告。12.“诊所信息管理系统设计”1)问题描述完成小型诊所的简单信息管理程序,掌握类的设计以及继承和派生的应用。2)功能要求:设计人类(Person类)和医生类(Doctor类),在此基础上,通过增加患者和账单,使它们公用于表示一家诊所的信息管理。(1)在一条医生记录中,包括医生的专业说明(speci
30、alty),如内科医生(surgeon)、儿科医生(pediatrician) 、产科医生(obstetrician)及全科医生(general practitioner)。(2)Doctor记录还含有诊费(office_vist_fee)。(3)在一条患者记录中,包括该患者产生的药费(drug_fee) ,患者的诊费(即医生的诊费)。(4)在一条账单记录中,包括一条患者对象、该患者对应得主治医生、该患者产生的诊费和药费。(5)应用程序能够显示出诊所中每个患者的信息和对应主治医生的信息。(6)能够统计出所有患者的总费用。3)问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤: (1)
31、应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;(8)完成系统总结报告。13.“企业人力资源管理系统工资管理”1)问题描述:企业人力资源管理系统工资管理案例主要对企业员工信息和工资进行管理。将企业员工按工种的不同分为经理、销售人员、技术人员、销售经理和技术总监五类人员。该案例具备五类人员信息的添加、删除、修改、查询、浏览、保存和计算工资等功能,很好的达到了对企业员工信息和工资管理的目的
32、。2)功能要求:(1)对企业中所有员工的基本信息提取出来定义一个类。该类包括员工的编号、姓名、性别、年龄、参加工作时间、部门、职务、联系方式,奖金、扣发工资和基本工资等属性,还包括对员工基本信息的录入、显示和计算实发工资等功能。(2)根据企业中员工的工作性质的不同,将所有员工分为经理、销售人员、技术人员等三类。其中,经理又可分为销售经理和技术总监两类。经理类除了包含员工的基本信息外,还包括级别和职务津贴两个属性,还包括对经理信息的录入、显示和计算实发工资等功能。经理类是从员工类派生的。实发工资等于基本工资+奖金-扣发工资+职务津贴。销售人员类除了包含员工的基本信息外,还包括销售额和提成比例两个
33、属性,还包括对销售人员信息的录入、显示和计算实发工资等功能。销售人员类是从员工类派生的。实发工资等于基本工资+奖金-扣发工资+销售额*提成比例。技术人员除了包含员工的基本信息外,还包括工作时数和每小时金额两个属性,还包括对技术人员信息的录入、显示和计算实发工资等功能。技术人员类也是从员工类派生的。实发工资等于基本工资+奖金-扣发工资+工作时数*每小时金额。每小时金额随工作时数的不同而取不同的值。销售经理即包含经理的信息,也包含销售人员的信息。所以销售经理是由经理类和销售人员类派生的。它具备信息的录入、显示和计算实发工资等功能。实发工资等于基本工资+奖金-扣发工资+销售额*提成比例+职务津贴。技
34、术总监即包含经理的信息,也包含技术人员的信息。所以技术总监是由经理类和技术人员类派生的。它具备信息的录入、显示和计算实发工资等功能。实发工资等于基本工资+奖金-扣发工资+工作时数*每小时金额+职务津贴。3)问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;(8)完成系统总结报告。第二阶段:提高任务(尝试完成以下任务,才
35、能得到良以上的成绩)魔兽世界任务描述魔兽世界的西面是红魔军的司令部,东面是蓝魔军的司令部。两个司令部之间是依次排列的若干城市,城市从西向东依次编号为1,2,3 . N。 两军的司令部都会制造武士。武士一共有 dragon 、ninja、iceman、lion、wolf 五种。每种武士都有编号、生命值、攻击力这三种属性。 双方的武士编号都是从1开始计算。红方制造出来的第 n 个武士,编号就是n。同样,蓝方制造出来的第 n 个武士,编号也是n。 武士在刚降生的时候有一个初始的生命值,生命值在战斗中会发生变化,如果生命值减少到0或少于0,则武士死亡(消失)。 在每个整点,即每个小时的第0分, 双方的
36、司令部中各有一个武士降生。 红方司令部按照 iceman、lion、wolf、ninja、dragon 的顺序制造武士。 蓝方司令部按照 lion、dragon、ninja、iceman、wolf 的顺序制造武士。 制造武士需要生命元。 制造一个初始生命值为 m 的武士,司令部中的生命元就要减少 m 个。 如果司令部中的生命元不足以制造某武士,那么司令部就等待,直到获得足够生命元后的第一个整点,才制造该武士。例如,在2:00,红方司令部本该制造一个 wolf ,如果此时生命元不足,那么就会等待,直到生命元足够后的下一个整点,才制造一个 wolf。 在每个小时的第10分:所有的武士朝敌人司令部方
37、向前进一步。即从己方司令部走到相邻城市,或从一个城市走到下一个城市。或从和敌军司令部相邻的城市到达敌军司令部。 在每个小时的第20分:每个城市产出10个生命元。生命元留在城市,直到被武士取走。 在每个小时的第30分:如果某个城市中只有一个武士,那么该武士取走该城市中的所有生命元,并立即将这些生命元传送到其所属的司令部。 在每个小时的第40分:在有两个武士的城市,会发生战斗。 在每个小时的第50分,司令部报告它拥有的生命元数量。 每次战斗有且只有一方武士主动进攻。被攻击者生命值会减去进攻者的攻击力值。如果被攻击者生命值减至小于等于0,则其被杀死。 如果被攻击者没有被杀死,则会发动反击,被反击者的
38、生命值要减去反击者攻击力值的一半(去尾取整)。反击当然可能致敌人于死地。 如果武士在战斗中杀死敌人(不论是主动进攻杀死还是反击杀死),则其司令部会立即向其发送8个生命元作为奖励,使其生命值增加8。当然前提是司令部得有8个生命元。如果司令部的生命元不足以奖励所有的武士,则优先奖励距离敌方司令部近的武士。 如果某武士在某城市的战斗中杀死了敌人,则该武士的司令部立即取得该城市中所有的生命元。注意,司令部总是先奖励武士,然后再收回打了胜仗的城市的生命元。对于因司令部生命元不足而领不到奖励的武士,司令部也不会在取得战利品生命元后为其补发奖励。 每次战斗都只有一方主动进攻一次。战斗并非是你死我活的,可能是
39、双方都幸存。如果双方都幸存,则双方都不能拿走发生战斗的城市的生命元 在插红旗的城市,以及编号为奇数的无旗城市,由红武士主动发起进攻。 在插蓝旗的城市,以及编号为偶数的无旗城市,由蓝武士主动发起进攻。 一开始所有的城市都是无旗的。当某个城市有连续两场战斗都是同一方的武士杀死敌人(两场战斗中间如果有若干个战斗时刻并没有发生战斗,则这两场战斗仍然算是连续的) ,那么该城市就会插上胜方的旗帜,若原来插着败方的旗帜,则败方旗帜落下。旗帜一旦插上,就一直插着,直到被敌人更换。一个城市最多只能插一面旗帜,旗帜没被敌人更换前,也不会再次插同颜色的旗。 不同的武士各有其特点: dragon 在一次在它主动进攻的
40、战斗结束后,如果还没有战死,就会欢呼。 ninja 挨打了也从不反击敌人。 iceman 每前进两步,在第2步完成的时候,生命值会减少9,攻击力会增加20。但是若生命值减9后会小于等于0,则生命值不减9,而是变为1。即iceman不会因走多了而死。 lion 若是战死,则其战斗前的生命值就会转移到对手身上。 在一个 wolf 通过主动攻击杀死敌人的次数达到偶数的时刻(次数从1开始算),在战斗完成后,该 wolf 生命值和攻击力都增加1倍。如果其杀死的敌人是lion,则攻击力和生命值先加倍,然后才吸取lion的生命值。获取总部的生命元奖励,发生在加倍之后。只有在主动攻击杀死敌人时才能有加倍的事情
41、,反击杀死敌人则不不会发生加倍。 武士到达对方司令部后就算完成任务了,从此就呆在那里无所事事。 任何一方的司令部里若是出现了2个敌人,则认为该司令部已被敌人占领。 任何一方的司令部被敌人占领,则战争结束。战争结束之后就不会发生任何事情了。 给定一个时间,要求你将从0点0分开始到此时间为止的所有事件按顺序输出。事件及其对应的输出样例如下: 1) 武士降生 输出样例: 000:00 blue lion 1 born 表示在 0点0分,编号为1的蓝魔lion武士降生 2) 武士前进到某一城市 输出样例: 000:10 red iceman 1 marched to city 1 with 20 el
42、ements and force 30 表示在 0点10分,红魔1号武士iceman前进到1号城市,此时他生命值为20,攻击力为30 对于iceman,输出的生命值和攻击力应该是变化后的数值 3) 武士主动进攻 输出样例:000:40 red iceman 1 attacked blue lion 1 in city 1 with 20 elements and force 30 表示在0点40分,1号城市中,红魔1号武士iceman 进攻蓝魔1号武士lion,在发起进攻前,红魔1号武士iceman生命值为20,攻击力为 30 4) 武士反击 输出样例:001:40 blue dragon 2
43、 fought back against red lion 2 in city 1 表示在1点40分,1号城市中,蓝魔2号武士dragon反击红魔2号武士lion 5) 武士战死 输出样例:001:40 red lion 2 was killed in city 1 6) 武士欢呼 输出样例:003:40 blue dragon 2 yelled in city 4 7) 武士获取生命元( elements ) 输出样例:001:40 blue dragon 2 earned 10 elements for his headquarter 8) 旗帜升起 输出样例:004:40 blue fl
44、ag raised in city 4 9) 武士抵达敌军司令部 输出样例:001:10 red iceman 1 reached blue headquarter with 20 elements and force 30 (此时他生命值为20,攻击力为30)对于iceman,输出的生命值和攻击力应该是变化后的数值 10) 司令部被占领 输出样例:003:10 blue headquarter was taken 11)司令部报告生命元数量 000:50 100 elements in red headquarter 000:50 120 elements in blue headquart
45、er 表示在0点50分,红方司令部有100个生命元,蓝方有120个 输出事件时: 首先按时间顺序输出; 同一时间发生的事件,按发生地点从西向东依次输出. 武士前进的事件, 算是发生在目的地。 在一次战斗中有可能发生上面的 3 至 8 号事件。这些事件都算同时发生,其时间就是战斗开始时间。一次战斗中的这些事件,序号小的应该先输出。 两个武士同时抵达同一城市,则先输出红武士的前进事件,后输出蓝武士的。 显然,10号事件发生之前的一瞬间一定发生了9号事件。输出时,这两件事算同一时间发生,但是应先输出9号事件 虽然任何一方的司令部被占领之后,就不会有任何事情发生了。但和司令部被占领同时发生的事件,全都
46、要输出。 输入:第一行是一个整数,代表测试数据组数 每组测试数据共三行。 第一行,三个整数 M,N,T。其含义为: 每个司令部一开始都有M个生命元两个司令部之间一共有N个城市要求输出从0时0分开始,到时间T为止(包括T) 的所有事件。T以分钟为单位,0 = T = 1000 第二行:五个整数,依次是 dragon 、ninja、iceman、lion、wolf 的初始生命值。它们都大于0小于等于100 第三行:五个整数,依次是 dragon 、ninja、iceman、lion、wolf 的攻击力。它们都大于0小于等于100 输出:对每组测试数据,首先输出“Case:n n是测试数据的编号,从1开始 接下来按恰当的顺序和格式输出到时间T为止发生的所有事件。每个事件都以事件发生的时间开头,时间格式是“时: 分”,“时”有三位,“分”有两位。Sample Input299 2 100010 20 50 50 3020 50