《面向对象程序设计》大作业要求和任务书范文.docx
《《面向对象程序设计》大作业要求和任务书范文.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》大作业要求和任务书范文.docx(15页珍藏版)》请在冰豆网上搜索。
《面向对象程序设计》大作业要求和任务书范文
《面向对象程序设计》大作业要求和任务书
一、目的和要求
检验学生学习《面向对象程序设计》课程后的学习成果,对于软件程序设计主流方法和思想——面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续实践课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。
要求学生综合应用已学的相关知识,例如程序设计基本思想和方法、C++语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。
要求学生针对比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。
加深对所学知识的理解和掌握,巩固课程学习的内容,培养学生掌握面向对象程序设计(OOP)的思想,锻炼其使用面向对象的程序设计思想分析和解决实际问题的能力,培养上机动手能力,培养文档报告书面表达和思辨的能力。
要求学生对自己学过的C++知识进行综合运用,要求要用到类的特性:
即类的封装、类的抽象、继承和多态,编写一些小型的具有一定应用价值的程序,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题;掌握在Visual C++集成开发环境下编辑、编译、链接和运行一个C++程序的基本方法。
二、任务内容
参考后附的大作业题目,规定每位同学完成两道题目(第一个题目是计算机类,第二个题目从第2-4题中任选一题)。
针对所选题目完成如下具体任务:
1.问题分析和任务定义:
根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?
对功能进行说明;
2.类设计:
综合考虑系统功能,对问题描述中涉及的操作对象定义相应的数据类型。
抽象数据类型的实现尽可能做到数据封装,充分运用继承、派生、多态等知识,给出用UML描述的类之间的关系图;
3.详细设计:
给出各个主要模块的算法,并画出模块之间的调用关系图;要使得系统结构清晰、合理、简单和易于调试,写出主要函数的算法框架;
4.程序编码:
把详细设计的结果进一步求精为程序设计语言程序。
同时加入一些注解和断言,使程序中逻辑概念清楚;
5.程序调试与测试:
采用自底向上,分模块进行,即先调试低层函数。
能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;
6.结果分析:
程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。
7.编写报告
任务结束时,要求学生提交纸质和电子报告,提交可运行的源程序。
三、报告正文的内容
1、实习报告题头
给出题目、班级、姓名、学号和完成日期
2、目的和要求
……
3、问题描述
4.开发环境和工具
(1)硬件环境
(2)操作系统平台
(3)程序设计工具
5.设计过程描述
(1)根据目的、要求与问题描述,构思程序的构架与设计方案。
(2)具体地说明本程序中用到的所有类的定义、给出类图
(3)主程序的流程以及各程序模块之间的层次(调用)关系,画出流程图。
6、小结
(1)说明调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;
(2)算法的分析和改进设想
(3)经验和体会等
7、附录(源程序代码)
源程序代码书写要求规范化,开始要有规范化的说明,如程序名、功能、环境与工具、函数(方法)间的调用(引用)关系、设计者、设计时间与修改时间等;代码书写要采用缩格、函数(方法)和关键语句与变量要加注释等。
8、测试结果
以问题描述中所列出的测试数据进行测试,列出测试结果,包括输入和输出。
9.参考文献
列出参考的相关资料和书籍。
四、答辩
完成大作业后,组织学生进行答辩,讲解设计思路和编程方法。
学生完成实验后,找老师检查,截至检查时间:
18周五。
检查的方法为:
a)检查文档;
b)检查源程序及运行结果。
c)回答问题
五、考核方法及成绩评定
成绩分两部分,报告占40%,可运行工程项目占60%。
按照优秀、良好、中、及格,不及格五级给予成绩。
六、进度安排
任务发出日期:
2015.6.10
任务验收日期:
2015.7.10
七、报告要求:
1)封面(见下页)
2)任务书(见后面)
3)目录
4)正文内容
面向对象程序设计大作业
------项目名称
学院名称(四号宋体居中)填写全称
专业班级(四号宋体居中)填写全称
学生姓名(四号宋体居中)
学号(四号宋体居中)
指导教师(四号宋体居中)
完成时间:
年月日
山东科技大学
大作业任务书
一、题目:
计算器类、
二、原始资料:
《面向对象程序设计》 大作业要求和任务书
三、应解决下列各主要问题:
1、计算器类:
设计一个计算器类模板,适用各类型表达式的“+、-、×、/”数学四则运算以及“>、>=、<、<=、!
=、==”等关系运算。
数学四则运算表达式中可含有加、减、乘、除运算符以及各型数据的运算对象。
程序可以直接输入数学表达式以及关系表达式,不需要任何转换,就可以直接输出数学四则运算和逻辑运算的结果。
并且操作简单、界面清晰、灵活、实用、方便等。
(系统功能可充分自由发挥)。
扩展功能:
三角运算、进制转换、开方、幂指数等。
2、
四、设计说明书应附有下列图纸:
无
五、小组分工说明:
无
六、命题发出日期:
2015.6.10 设计完成日期:
2015.7.10
指导教师评语
成绩:
指导教师(签章):
2015年 月日
目录
附课程设计题目:
2个大作业题(第1题必做,第二个大作业从第2-4题中任选一题)
不得从网上下载或者抄袭别人的资料,一经发现,作不及格处理。
1.计算器类counter
设计一个计算器类模板,适用各类型表达式的“+、-、×、/”数学四则运算以及“>、>=、<、<=、!
=、==”等关系运算。
数学四则运算表达式中可含有加、减、乘、除运算符以及各型数据的运算对象。
程序可以直接输入数学表达式以及关系表达式,不需要任何转换,就可以直接输出数学四则运算和逻辑运算的结果。
并且操作简单、界面清晰、灵活、实用、方便等。
(系统功能可充分自由发挥)。
扩展功能:
三角运算、进制转换、开方、幂指数等。
编写此程序至少要用二个以上的下列面向对象工具:
1、友元函数
2、运算符重载
3、构造函数
4、虚函数
5、模板
注意:
工具用的越多越好,但要用的恰当。
不同的类对象存放在不同的文件中。
2.学校人员管理系统
本程序用于管理一所学校的人员,所有人员类(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、查找记录
6、退出
请选择功能号(1-5):
1
请输入姓名:
王名
性别:
男
身份证号码:
88
生日:
1979/1/1
地址:
BGD100BEIJING
年龄:
20
学号:
12345
宿舍号:
8-3-225
专业:
COMPUTERSCIENCE
年级:
5
按任意键继续……
1、输入记录
2、显示记录
3、修改记录
4、删除记录
5、查找记录
6、退出
请选择功能号(1-5):
2
请输入记录号(1-4):
1
注意第二屏的退出退到第一屏,第一屏退出退出整个程序。
编写此程序至少要用三个以上的下列面向对象工具:
1、继承与派生
2、友元函数
3、运算符重载
4、构造函数
5、虚函数
6、模板
7、文件输入输出
8、异常处理
注意:
工具用的越多越好,但要用的恰当。
不同的类对象存放在不同的文件中。
其中“文件输入输出”必须要用
3.公司人员工资管理系统
本程序用于管理一个公司的人员工资,所有雇员类(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.程序执行结果部分演示如下图:
第一屏:
1.
技术员
2.销售员
3.经理
4.销售员兼经理
5.退出
请选择功能号(1-5):
1
第二屏:
1.
输入记录
2.显示记录
3.修改记录
4.删除记录
5.查询记录
6.退出
请选择功能号(1-5):
1
请输入编号:
0001
姓名:
王名
工作时数:
160
每小时工资:
20
按任意键继续……
1、输入记录
2、显示记录
3、修改记录
4、删除记录
5、查询记录
6、退出
请选择功能号(1-5):
2
请输入记录号(1-4):
1
编号姓名工资(元)
0001王名3200.00
注意第二屏的退出退到第一屏,第一屏退出退出整个程序。
编写此程序至少要用三个以上的下列面向对象工具:
1.继承与派生
2.友元函数
3.运算符重载
4.构造函数
5.虚函数
6.模板
7.文件输入输出
8.异常处理
注意:
工具用的越多越好,但要用的恰当。
不同类对象存放在不同的文件内。
其中“文件输入输出”必须要用。
4.职工工资信息管理系统
一.职工工资信息管理系统基本表格
职工基本信息:
如工资卡号、身份证号、姓名、性别、年龄、工龄、部门、技术职称、技术职称编号、家庭电话号码、手机号码等。
工资基础信息:
技术职称编号、技术职称、基本工资、职务工资、各种补助等。
费用扣除信息:
工资卡号、水费、电费、清洁费(5元/月)、闭路电视费(10元/月)等。
工资单数据:
工资卡号、姓名、应发工资、水费、电费、清洁费、闭路电视费、税金、实发工资、特别奖励。
其中:
税金计算方法为:
应发工资<800元,税金=0;
800<应发工资1400元,税金=(应发工资-800)5%
应发工资>1400元,税金=(应发工资-1400)10%
二.系统功能:
(1) 各种基本数据的录入。
如:
职工基本信息录入等。
(2) 各种基本数据的修改。
即:
允许对以及录入的数据重新进行编辑、修改。
(3) 各种基本数据的插入。
如:
在工资基础信息中插入一条新信息等。
(4) 各种基本数据的删除。
如:
假设某员工调离,删除该员工的相关信息等。
(5) 基于各种数据的查询。
如:
技术职称为技术员的所有员工、基本工资在1000元以上的员工等。
(6) 基于各种基本数据的统计计算。
如:
(6-1)统计年龄20岁以下青年员工的总数;年龄在20岁以上,45岁以下的员工数;年龄55岁以上退休员工数。
(6-2)统计各种技术职称的员工的基本工资总额、职务工资总额、各种补助总额、应发工资总额。
进而统计全公司职工的工资总额。
(6-3)统计各种技术职称员工的员工数,并计算各种技术职称员工的平均工资。
(6-4)统计该公司每月税金总额、全年税金总额。
(6-5)按照应发工资对全公司员工进行排序。
(6-6)职工工资信息其它方面的统计。
三.编写此程序至少要用二个以上的下列面向对象工具:
1.类
2.继承与派生
3.友元函数
4.构造函数
5.虚函数
6.模板
7.文件输入输出
8.异常处理
注意:
工具用的越多越好,但要用的恰当。
不同类对象存放在不同的文件内。
其中“文件输入输出”必须要用。