2022年面向对象程序设计大作业 .pdf
《2022年面向对象程序设计大作业 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计大作业 .pdf(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计大作业- 计算器类、学校人员管理系统学 院 名称数学与系统科学学院专业 班级信息与计算科学 2013-2 班学生 姓名陈涛学号 201301050904 指 导 教 师孙红梅完成时间: 2015 年 7 月 1 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 32 页 - - - - - - - - - 山东科技大学大 作 业 任 务 书一、题目:计算器类二、原始资料:面向对象程序设计大作业要求和任务书三、应解决下列各主要问题:计算器类:设计一个计算器类
2、模板,适用各类型表达式的“+、- 、 / ” 数学四则运算以及“、=、 、=、=、!=、=”等关系运算。数学四则运算表达式中可含有加、减、乘、除运算符以及各型数据的运算对象。程序可以直接输入数学表达式以及关系表达式,不需要任何转换,就可以直接输出数学四则运算和逻辑运算的结果。并且操作简单、界面清晰、灵活、实用、方便等。(系统功能可充分自由发挥) 。扩展功能:三角运算、进制转换、开方、幂指数等。问题描述设计一个简单计算器。 用户输入四则运算表达式, 程序输出正确结果。 当表达式中数据格式或运算符输入错误,程序给出错误信息。要求:(1)表达式的左、右操作数可以为整数或实数。(2)运算符限制为 +,
3、- ,*,/ (3)输入表达式允许有前导空格,允许在运算符前后嵌入空格。(4)检测表达式由以下函数完成:void check(char *input, int &a, double &y, int &op, char * &err); 其中参数意义如下: input 输入表达式的字符串。x 返回表达式的左操作数转换结果数值。此题为简单起见,把数据统一转换成double 类型。y 返回表达式的右操作数转换结果数值。op 返回对运算式的判断结果。若输入表达式左、右操作数和运算符都正确,则返回值为1、2、3、4,分别表示做 +、-、*、/ 运算。若返回 -1,表示左操作数错;若返回 -2,表示右操作
4、数错;若返回-3,表示操作符错。err 返回显示错误信息的字符串。附录(源程序代码)#include iostream #include string using namespace std; void check(char *input, double &x, double &y, int &op, char * &err); double chage(char *ch); int main() double x,y; int op; char input40,*err; double result; gets(input); 名师资料总结 - - -精品资料欢迎下载 - - - - - -
5、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 32 页 - - - - - - - - - check(input,x,y,op,err); if(op0) couterrendl; return 0; switch(op) case 1: result=x+y; break; case 2: result=x-y; break; case 3: result=x*y; break; case 4: result=x/y; break; coutinput=result=0&inputj+1=0&inputj1) err=左操作数错
6、误 !; op=-1; return; j+; k=0; while(i=0&inputj+1=0&inputj1) err=右操作数错误 !; op=-2; return; j+; k=0; while(i=0;i-) wre=1; j=0; while(jf-i-1) wre*=10; j+; result+=(chi-0)*wre; for(i=f+1;chfχi+) wre=1; j=0; while(ji-f) wre*=0.1; j+; result+=(chi-0)*wre; return result; 名师资料总结 - - -精品资料欢迎下载 - - - - - -
7、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 32 页 - - - - - - - - - 指导教师评语成绩:指导教师(签章):2015 年月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 32 页 - - - - - - - - - 山东科技大学大 作 业 任 务 书六、题目:公司人员工资管理系统七、原始资料:面向对象程序设计大作业要求和任务书八、应解决下列各主要问题:公司人员工资管理系统:本程序用于管理一个
8、公司的人员工资,所有雇员类(Employee) 有共性的数据成员是:编号、 姓名和工资。 技术员类 (Technician)的数据成员包括共性的数据成员以及工作时间( 每月的 ) 、每小时的工资。销售员类(Salesman) 的数据成员包括共性的数据成员以及销售额( 本月 ) 、提成。经理类(Manager) 的 数 据 成 员 包 括 共 性 的 数 据 成 员 以 及 月 工 资 。 销 售 员 兼 经 理 类(Salesmanager)的数据成员包括销售员类和经理类的数据成员。九、设计说明书应附有下列图纸:无十、小组分工说明:无六、命题发出日期:2015.6.10 设计完成日期:2015
9、.7.10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 32 页 - - - - - - - - - 目的与要求本程序用于管理一个公司的人员工资,所有雇员类 (Employee) 有共性的数据成员是:编号、姓名和工资。技术员类(Technician)的数据成员包括共性的数据成员以及工作时间(每月的) 、每小时的工资。 销售员类(Salesman) 的数据成员包括共性的数据成员以及销售额(本月) 、提成。经理类 (Manager)的数据成员包括共性的数据成员以及月工资。
10、销售员兼经理类 (Salesmanager) 的数据成员包括销售员类和经理类的数据成员。问题描述(1)公司主要有 4 类人:经理、计术员、销售员、销售经理。要求存储这些人的职工号、 姓名、月工资、年龄、性别等信息。(2)工资的计算方法 A 、经理:固定月薪为8000元; B 、技术员:工作时间 *小时工资( 100元每小时); C、销售员:销售额 *4% 提成;D、销售经理:底薪( 5000 元)+所辖部门销售额总额 *0.5%;(3)输入员工基本数据,要求每类人员不能少于2 人。(4)实现功能数据录入:输入各项数据;数据统计:统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行的
11、冒泡排序;数据打印:打印各类员工的数据信息;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 32 页 - - - - - - - - - 数据备份:把各类员工的数据信息写入文件中保存;退出:退出本系统(6)菜单说明数据录入指通过键盘输入各类员工的各项数据;数据统计指统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行的冒泡排序;数据打印指按照表格的格式在屏幕上输出各类员工的信息;数据备份指将所有员工的信息保存到文件;退出:结束程序的运行。附录(源程序代码)#i
12、nclude #include #include #include #include using namespace std; ofstream outfile; const int B=2; const int T=2; const int SB=2; const int S=4; int wage(int n); void technicianinformatian(); void managerinformation(); void salesmanagerinformation(); void sellerinformation(); 名师资料总结 - - -精品资料欢迎下载 - -
13、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 32 页 - - - - - - - - - void total(); void maopao(); void yejibiao(); void SBrank(); void excelhead(); void excelmiddle(); void excelend(); void backup_yejibiao(); void backup_SBrank(); void backup_technicianinformatian(); void backup_manag
14、erinformation(); void backup_salesmanagerinformation(); void backup_sellerinformation(); class Employee public: int nume() return(num); string nam()return(name); char showsex() return(sex); int showage() return(age); protected: int num; string name; char sex; int age; int wage; ; class Manager:publi
15、c Employee 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 32 页 - - - - - - - - - public: Manager() /8000元为经理固定月薪wage=8000; int managerwage() return(wage); void set_in() coutnum; coutendl; coutname; coutendl; coutsex; coutendl; coutage; coutendl; ; class Techni
16、cian:public Employee public: void set_in() coutnum; coutendl; coutname; coutendl; coutsex; coutendl; coutage; coutendl; coutworktime; coutendl; int get_wage() return (worktime*100); /100元为单位小时工资protected: int worktime; ; class Salesmanager:public Employee public: Salesmanager() allsale=0; void set_i
17、n() coutnum; coutendl; coutname; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 32 页 - - - - - - - - - coutendl; coutsex; coutendl; coutage; coutendl; int get_wage() return (5000+allsale*0.005); /5000元为销售经理底薪protected: int allsale; ; class Seller:public Employ
18、ee public: int bossnume() return(bossnum); int money() return(salesmoney); void set_in() coutnum; coutendl; coutname; coutendl; coutsex; coutendl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 32 页 - - - - - - - - - coutage; coutendl; coutsalesmoney; coutendl
19、; coutbossnum; coutendl; int get_wage() return (salesmoney*0.04); protected: int salesmoney; int bossnum; ; Manager bossB; Technician techniT; Seller salesmanS; Salesmanager salesbossSB; int salesbosstotaleSB=0; Salesmanager exchangeSB; int exchange; int b=0,t=0,sb=0,s=0; int Inputboss() for(int i=0
20、;iB;i+) bossi.set_in(); coutendl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 32 页 - - - - - - - - - return 0; int Inputtechni() for(int j=0;jT;j+) technij.set_in(); coutendl; return 0; int Inputsalesman() for(int n=0;nS;n+) salesmann.set_in(); coutendl; re
21、turn 0; int Inputsalesboss() for(int m=0;mSB;m+) salesbossm.set_in(); return 0; int main () for(;) cout 小型公司工资管理系统endl; cout endl; cout 请选择您所需要的操作endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 32 页 - - - - - - - - - cout 数据输入: 1,并按回车键endl; cout 数据统计: 2,并
22、按回车键endl; cout 数据打印: 3,并按回车键endl; cout 数据备份: 4,并按回车键endl; cout 退出系统: 5,并按回车键endl; cout endl; coutselect; switch(select) case 1: for(;) cout 小型公司工资管理系统endl; coutendl; cout请选择您所需要的操作endl; cout经理数据输入:1,并按回车键endl; cout技术员数据输入:2,并按回车键endl; cout销售员数据输入:3,并按回车键endl; cout销售经理数据输入:4,并按回车键endl; cout返回上一级:5,并按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年面向对象程序设计大作业 2022 面向 对象 程序设计 作业
限制150内