第一篇:中国石油大学c++实习报告 小型公司工资管理系统(写写帮推荐)
中国石油大学(华东)信息与控制工程学院
《程序设计实习》报告
小型公司工资管理系统的设计
专业班级:电子11级 学
号: 姓
名:
时 间:2012.09.01~2011.09.07
2012年9月
目录
一、实习内容„„„„„„„„„„„„„„„„„„„„„„„„„„„„1
二、设计思路„„„„„„„„„„„„„„„„„„„„„„„„„„„„2
三、程序清单„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
四、运行结果„„„„„„„„„„„„„„„„„„„„„„„„„„„„14
五、程序使用说明„„„„„„„„„„„„„„„„„„„„„„„„„„21
六、总结及心得体会„„„„„„„„„„„„„„„„„„„„„„„„„2
2程序设计实习报告
一、实习内容
设计一个简单的《小型公司管理系统》。了解系统开发的需求设计、类层次设计、模版分析、模块组装与整体调试的过程;熟悉程序设计的方法。
1..题目:小型公司工资管理系统的设计
2.设计说明与基本要求:
(1)公司主要有4类人员: 经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、性别、年龄、月工资等信息;
(2)工资的计算方法:
经理:固定月薪为8000元; 技术员:工作时间×工资(100元/小时); 销售员:销售额×4%提成; 销售经理:底薪(5000元)+下属销售员销售额总额×0.5%;
(3)员工基本数据的输入: 要求每类人员不能少于4人,其中销售员需要8名,每名销售经理手下有2名销售员。
3.实现的基本功能:数据输入、数据统计、数据打印、数据备份、退出。(应用程序中要有菜单,用于选择各项功能)
4.菜单说明
① 数据输入要通过键盘;
② 统计是统计销售经理下属销售员的销售额及销售额之和,销售经理按工资冒泡排序;
③ 数据打印是以表格形式在屏幕上输出; ④ 数据备份是将所有的员工信息保存到文件; ⑤ 退出:结束程序运行。
程序设计实习报告
二、设计思路
1.类的结构
先创建了一个Employer基类.然后派生出四个类: Manager、Technician、Salesman、Salemanager。分别对经理、技术员、销售员、销售经理的数据进行输入。
然后选用了一个switch的多分枝选择结构,依次据菜单的选择条件执行数据的输入、数据统计、数据打印、数据备份和退出等。
数据的备份要用到fstream类,用来支持对磁盘文件的输入输出。对于switch,结束循环用到exit函数。此函数的参数为任意整数。
程序设计实习报告
三、程序清单
#include
{ public: int get1();string get2();char get3();int get4();protected: int num,age;
string name;double pay;char sex;};int employee::get1(){return num;} string employee::get2(){return name;} char employee::get3(){return sex;} int employee::get4(){return age;} class technician:public employee {
程序设计实习报告
protected: int hour;public: void display1(){cout<<“技术员编号:”;cin>>num;
cout<<“技术员姓名:”;cin>>name;cout<<“技术员年龄:”;cin>>age;
cout<<“技术员性别(m/w):”;cin>>sex;cout<<“技术员工作时间:”;cin>>hour;
} double get_pay();int get_time();};double technician::get_pay(){ pay=100*hour;return pay;} int technician::get_time(){return hour;} class manager:public employee
{public: void display2(){ cout<<“经理编号:”;cin>>num;
cout<<“经理姓名:”;cin>>name;
cout<<“经理性别(m/w):”;cin>>sex;
cout<<“经理年龄:”;cin>>age;
} double get_pay(){pay=8000;return pay;}
程序设计实习报告
};class salesman:public employee
{ protected: int number;double sales_volume;public: void display3(){cout<<“销售员编号:”;cin>>num;
cout<<“销售员姓名:”;cin>>name;
cout<<“销售员性别(m/w):”;cin>>sex;
cout<<“销售员年龄:”;cin>>age;
cout<<“销售员的销售额:”;cin>>sales_volume;
cout<<“所属销售经理的编号:”;cin>>number;
} int numb(){return number;} double sa(){return sales_volume;} double get_pay(){return sales_volume*0.04;} };class salesmanager:public manager
{ public: void display4(){cout<<“销售经理的编号:”;cin>>num;
cout<<“销售经理的姓名:”;cin>>name;
cout<<“销售经理的性别(m/w):”;cin>>sex;
程序设计实习报告
cout<<“销售经理的年龄:”;cin>>age;
} };void excel(){ cout<<“
★★小型公司工资管理系统★★”< cout<<” cout<<“ cout<<” cout<<“ cout<<” cout<<“ cout<<” cout<<“请选择一个操作:”;} void main(){int i,j,x,k,y;char a;double mo[4],mone[4];excel();technician t[4];manager m[4]; salesman s[8]; salesmanager sm[4]; cin>>j;while(j==1||j==2||j==3||j==4||j==5){switch(j){case 1: {for(i=0;i<4;i++) “< 请选择您所需的操作 │”< │ “< │”< │“< │”< │“< ┌─────────────┐ │ │ │ │ │ │ └─────────────┘程序设计实习报告 {t[i].display1(); cout<<“-------------”< cout<<“-------------”< {s[i].display3(); cout<<“-------------”< {sm[i].display4(); cout<<“-------------”< excel(); cin>>j;} break;case 2: { for(i=0;i<4;i++){cout<<“职工号为”< cout<<“┌─────┬─────┬─────┐”< cout<<“│ 职工号 │ 姓名 │ 销售额 │”< cout<<“├─────┼─────┼─────┤”< double money=0; for(x=0;x<8;x++) { if(s[x].numb()==sm[i].get1()) { money=money+s[x].sa(); mone[i]=money*0.005+5000; 程序设计实习报告 mo[i]=money*0.005+5000; cout<<“│”< cout<<“├─────┼─────┴─────┤”< } } cout<<“│销售额总计│”< cout<<“└─────┴───────────┘”< cout<<“│ 职工号 │ 姓名 │ 性别 │ 年龄 │ 工资 │”< cout<<“├─────┼─────┼─────┼────┼────┤”< │ ”< │”< 程序设计实习报告 cout<<“-----------”< { {cout<<“请等待„”< 职工基本情况一览表如下”< │ ”< │”< cout<<”└────┴────┴────┴────┴────┘“< 程序设计实习报告 cout<<”│“< │ “< │“< cout<<”└────┴────┴────┴────┴────┘“< │ “< │“< cout<<”└────┴────┴────┴────┴────┘“< 程序设计实习报告 “< cout<<”└────┴────┴────┴────┴────┘“< } cout<<”-----------------------------“< { ofstream outfile; //类,对象 outfile.open(”copy.txt“,ios::out); //文件关联 cout<<”数据备份...“< 职工的基本情况:“< outfile<<” 1、技术员资料“< outfile<<”┌────┬────┬────┬────┌────┐“< outfile<<”│ 职工号│ 姓名 │ 性别 │ 年龄 │ 工资 │“< outfile<<”│“< │ “< │“< } outfile<< ”└────┴────┴────┴────┴────┘“< outfile<<” 2、销售员的资料“< outfile<<”┌────┬────┬────┬────┬────┐“< 程序设计实习报告 outfile<<”│ 职工号│ 姓名 │ 性别 │ 年龄 │ 工资 │“< {outfile<<”├────┼────┼────┼────┼────┤“< │ “< │“< } outfile<<”└────┴────┴────┴────┴────┘“< outfile<<” 3、销售经理的资料“< outfile<<”┌────┬────┬────┬────┬────┐“< outfile<<”│“< │ “< │“< outfile<<” 4、经理的资料“< outfile<<”┌────┬────┬────┬────┬────┐“< 程序设计实习报告 outfile<<”│ 职工号│ 姓名 │ 性别 │ 年龄 │ 工资 │“< │ “< │“< } outfile<<”└────┴────┴────┴────┴────┘“< cout<<”备份ok!成功备份到cpp文件中。“< outfile.close(); //将关联文件关闭 cout< } } } cin>>j;break;} 程序设计实习报告 四、运行结果 程序设计实习报告 程序设计实习报告 程序设计实习报告 程序设计实习报告 程序设计实习报告 程序设计实习报告 程序设计实习报告 五、程序的使用说明 运行程序后,根据菜单栏的提示选择操作。 输入“1”回车后,进入职工基本数据输入栏,在这里,要将所有的技术员、销售员、销售经理、经理的职工号、姓名、性别、工作时间等信息输入程序中。 职工的数据输入完成后自动跳转到菜单栏,选择“2”回车后进入到数据统计界面,程序会自动对你输入的各销售经理下属销售员的销售额及销售额之和进行统计,并对销售经理按工资进行排序。 数据统计完成后,选择“3”,程序会对你输入的职工基本信息进行打印,打印结果显示在控制台下。 在菜单栏中继续选择“4”后,程序将对所有的员工信息进行打印并保存到文件中。 最后选择“5”,根据提示是否退出本程序,输入“Y”,结束程序执行;输入“N”,返回主菜单继续进行程序。 程序设计实习报告 六、总结及心得体会 一学期的c++和实习结束了,感觉学到了很多东西。在这里对这一学期学习C++的学习做一总结,对将来的学习、工作会很有用处。从对C++的学习我知道了对学习就要在刚开始时多下功夫,首先要把基础打好,彻底把知识点弄透彻,这样后面的才能学懂。 其实要学习c++,想要学好c++,不仅是课堂上是最重要的,还要在课上多多练习,多上机操作,实践是检验真理的唯一标准。也是,通过此次实习,吸取到很多教训,印象最深的就是有一次点击运行的的时候,刚键入几个字符,一回车,整个程序就无限循环了。不过在最后加入一个系统调用函数exit,终于跳出了。所以c++学习不是一朝一夕就能完成的,我们还有很多未知的知识等待去了解,去开发。 纵观整个实习,用到最多的就是类、子类、对象了,还有循环—for、witch,以及一整大个多分枝选择结构switch。还有就是函数的调用也是让我感觉很有兴趣的,这个特别好用,很方便。 通过这次编写的工资管理程序,对于编程有了更多的了解和体会。我想这有利于今后对c++的使用,锻炼我们缜密的思维以及提高我们的独立思考,独立解决问题,综合运用所学知识的能力,提高了上机动手编程的能力和对一些错误处理和解决的能力,更加有助于我对对程序调试的动手能力的提高。这对我们将要来临的计算机二级考试也有很大的帮助,正好趁此机会复习了一下c++大略的知识点。 中国石油大学(华东)信息与控制工程学院 《程序设计实习》报告 小型公司工资管理系统的设计 姓 名:Yuppies Liu 时 间:2011.7.14~2011.7.17 2011年7月 目录 一、实习内容…………………………………………………………………………1 二、设计思路…………………………………………………………………………2 三、程序代码清单……………………………………………………………………3 四、运行结果…………………………………………………………………………10 五、程序使用说明……………………………………………………………………16 六、总结及心得体会…………………………………………………………………17 程序设计实习报告 一、实习内容 题目:《小型公司管理系统的设计》设计 2.设计说明与基本要求 (1)公司主要有4类人员:经理、技术员、销售员、销售经理。 要求存储这些人的职工号、姓名、月工资、年龄、性别等信息。(2)工资的计算方法 A 经理:固定月薪为8000元; B技术员:工作时间*小时工资(100元/小时); C销售员:销售额*4%提成; D销售经理:底薪(5000元)+所辖部门销售额总额*0.5%。(3)员工基本数据的输入 要求每类人员不能少于4人,其中销售员需要8名,每名销 售经理手下有2名销售员。 (4)各类的数据成员访问权限设置为:protected 3.实现基本功能 (1)数据输入:输入各种数据 (2)数据的输入 :统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行的帽泡排序; (3)数据打印:打印各类员工的数据信息; (4)数据备份 (5)退出:退出本系统 备注:可适当扩充程序功能,功能扩充得当可加分 4.菜单说明 (1)数据录入指通过键盘输入各类员工的各项数据 (2)数据统计指统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行的冒泡排序 (3)数据的打印指按照表格的格式在屏幕上输出各员工的数据信息(4)数据的备份指把各类员工的数据信息写入文件中保存(5)退出:结束程序的运行 程序设计实习报告 二、设计思路 在这个公司中有四类人员:经理、兼职技术人员、销售员要存储的信息有姓名、编号、性别、年龄、工资、销售额、所属经理编号.由于所有职员有相同的成员如编号(num)、姓名(name)、性别(sex)、年龄(age)、工资(wage)。所以可将所有信息归纳为一个职员类(Guyuan),将其作为一个基类,然后派生出子类,实现各类人员不同的信息(如工资计算),由于销售经理具有销售员和经理的特性,所以销售经理采用多重继承的关系,继承销售员和经理的两个类,为避免二义性将employee定义为虚基类,可用下图表示: 题目中假设公司有2名技术员、4名销售员、经理和销售经理各2名,所以用对象数组的方式,利用循环语句来实现人员的输入和输出,整个程序设计如下: 基类雇员类: 数据成员有职工号、姓名、年龄、性别、月工资; 成员函数只有姓名、年龄、性别的设置函数。技术员类:继承基类 数据成员增加了工作时间; 成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数。经理类:继承基类 数据成员未增加; 成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数。销售员类:继承基类 数据成员多了销售额、所属经理编号; 成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数、销售额返回函数、所属经理编号输出函数。销售经理类:继承基类 数据成员未增加; 成员函数有设置函数、构造函数、输出函数下属函数、备份函数下属函数、统计函数所属函数。 程序设计实习报告 三、程序代码清单 #include void set_jishuyuan(){cout<<“技术员编号:”;cin>>num;cout< cout<<“其姓名:”;cin>>name; cout< cout<<“性别(m/w):”;cin>>sex; cout< cout<<“年龄:”;cin>>age; cout< cout<<“工作时间:”;cin>>time; cout< wage=time*100;} void show_jishuyuan() {cout<<“┃”< void show_jishuyuan4() {outfile<<”┃“< void set_jingli() {cout<<”经理的编号:“;cin>>num;cout< cout<<”其姓名:“;cin>>name; cout< cout<<”其性别(m/w):“;cin>>sex; cout< cout<<”年龄:“;cin>>age;cout< wage=8000;} void show_jingli() {cout<<”┃“< ┃┃ ┃┃ ┃ 程序设计实习报告 “< {outfile<<”┃“< ┃┃“< class Xiaoshouyuan:protected Guyuan {public: void set_xiaoshouyuan() {cout<<”销售员的编号:“;cin>>num; cout< cout<<”其姓名:“;cin>>name; cout< cout<<”性别(m/w):“;cin>>sex; cout< cout<<”年龄:“;cin>>age; cout< cout<<”销售额:“;cin>>sell; cout< cout<<”所属销售经理的编号:“;cin>>belong;cout< wage=sell*4/100;} void show_xiaoshouyuan() {cout<<”┃“< void show_xiaoshouyuan2() {cout<<”┃“< void show_xiaoshouyuan4() {outfile<<”┃“< int shu_jingli() {return num;} void set_xiaoshoujingli() { cout<<”销售经理的编号:“;cin>>num;cout< cout<<”其姓名:“;cin>>name;cout< cout<<”性别(m/w):“;cin>>sex;cout< cout<<”年龄:“;cin>>age;cout< {cout<<”┃“< ┃ ┃┃ ┃┃ ┃ 程序设计实习报告 “< void show_xiaoshoujingli4() {outfile<<”┃“< void show_wage() {cout< {wage=5000+sum*0.5/100;} };void disp(){ cout<<” ★★小型公司工资管理系统★★ “< cout<<” ┏━━━━━━━━━━━━┓ “< cout<<” ┃ 请选择您所需要的操作 ┃ “< cout<<” ┃ 数据输入: 1,并按回车键 ┃ “< cout<<” ┃ 数据统计: 2,并按回车键 ┃ “< cout<<” ┃ 数据打印: 3,并按回车键 ┃ “< cout<<” ┃ 数据备份: 4,并按回车键 ┃ “< cout<<” ┃ 退出系统: 5,并按回车键 ┃ “< cout<<” ┗━━━━━━━━━━━━┛ “< cout< cout<<”请选择一个操作: “; } int main(){ const int n=2; int i,w; Jishuyuan a[n]; Jingli b[n]; Xiaoshouyuan c[2*n]; Xiaoshoujingli d[n]; disp();while(1){cin>>w;switch(w){case 1: { {for(i=0;i a[i].set_jishuyuan();cout<<”*******************************************************“< b[i].set_jingli();cout<<”*******************************************************“< c[i].set_xiaoshouyuan(); 程序设计实习报告 cout<<”*******************************************************“< d[i].set_xiaoshoujingli();cout<<”*******************************************************“< for(j=0;j { sum[j]=0; cout<<”职工号为“;d[j].show_num();cout<<”销售经理“;d[j].show_name();cout<<”下属销售员的业绩为:“< cout<<”┏━━━━━━━┳━━━━━━━┳━━━━━━━┓“< cout<<”┃ 职工号 ┃ 姓名 ┃ 销售额 ┃“< for(i=0;i<2*n;i++) {if(c[i].belong==d[j].shu_jingli()) {cout<<”┣━━━━━━━╋━━━━━━━╋━━━━━━━┫“< c[i].show_xiaoshouyuan(); sum[j]=sum[j]+c[i].sell;}} cout<<”┣━━━━━━━╋━━━━━━━┻━━━━━━━┫“< cout<<”┃“<<”销售额总计 ┃“< cout<<”┗━━━━━━━┻━━━━━━━━━━━━━━━┛“< cout<<”┃ 职工号 ┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 工资 ┃“< Xiaoshoujingli x;double y;for(i=0;i for(j=0;j第二篇:小型公司工资管理系统--(完结)