C++程序设计实习报告.docx
- 文档编号:29633633
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:21
- 大小:242KB
C++程序设计实习报告.docx
《C++程序设计实习报告.docx》由会员分享,可在线阅读,更多相关《C++程序设计实习报告.docx(21页珍藏版)》请在冰豆网上搜索。
C++程序设计实习报告
一、实习容…………………………………………………………………………1
二、设计思路…………………………………………………………………………2
三、程序清单…………………………………………………………………………3
四、运行结果…………………………………………………………………………15
五、程序使用说明……………………………………………………………………20
六、总结及心得体会…………………………………………………………………21
一、实习容
课程设计的题目:
《小型公司工资管理系统》设计
设计说明:
公司主要有四类人员:
经理、技术员、销售员、销售经理。
程序要求存储这些人的职工号、、月工资、年龄、性别等信息。
并且应用程序中要求给出菜单,用于选择各项功能。
一、程序要现的功能即菜单目录有:
1、数据输入:
输入各种数据;
2、数据统计:
统计各销售经理下属销售员的销售额及销售额之和;销售经理工资进行冒泡排序;
3、数据打印:
打印各类员工的数据信息;
4、数据备份:
把各类员工的数据信息写入文件中保存;
5、退出:
退出本系统,即结束程序的运行。
二、工资的计算方法
A:
经理:
固定月薪为8000元;B:
技术员:
工作时间*小时工资(100元/小时);C:
销售员:
销售额*4%提成;D:
销售经理:
底薪(5000)+所辖部门销售额总额*0.5%。
三、类的层次结构大体如下
雇员类
↑
技术员类经理类销售员类
↓
销售经理类
二、设计思路
1.
(1)首先我们要搞清楚各类之间的继承关系,设置基类employee,其派生类manager,technician,salesman。
再以manager类为基类,再派生一个salesmanager类,将各类的数据成员设计成protected,方便派生类对基类的继承;
(2)在public里编写数据输入的函数,在主函数中输出菜单并定义各类的对象,通过对象来调用数据输入函数;
2.
(1)在基类employee中补充几个返回各类数据的函数以用于返回输入的各类值;
(2)在主函数用冒泡法对销售经理的工资进行排序,定义一个wage[]来将各销售经理下面的销售员的销售额进行储存,定义一个all用于计算销售经理的销售总额,以便于下面对其进行工资的计算;
(3)第2,3,4步都用大量的for循环进行输出,以实现表格的形成还有表格中数据的输入;在主函数定义各类的对象,然后都是直接通过类的对象调用类的函数,运用for循环进行打印,统计;
3.
备份参照课本格式,选择路径及格式,运用for循环备份;就是那个fstream之类的东西;、退出系统用exit(5)函数实现;
4.主函数运用switch语句,将上述功能编为case1~5,每个case后添加break;
5.程序结束。
以上是我所认为的该程序的几个要点…………………………………..
三、程序清单
#include
#include
#include
#include
#include
usingnamespacestd;
constN=2;
fstreamoutfile;
classemployee//基类,雇佣者
{
protected:
stringname;
charsex;
intage;
public:
virtualvoiddisplay()
{cout<<"其:
";
cin>>name;
cout<<"性别(m/w):
";
cin>>sex;
cout<<"年龄:
";
cin>>age;
}
stringnam(){returnname;}
charse(){returnsex;}
intag(){returnage;}
};//
classtechnician:
publicemployee//技术员类
{
public:
intworktime;
intnumber1;
public:
voiddisplay1()
{
cout<<"技术员的编号:
";
cin>>number1;
employee:
:
display();
cout<<"工作时间";
cin>>worktime;
}
inttime(){returnworktime;}
intnumb1(){returnnumber1;}
};//
classmanager:
publicemployee//经理类
{protected:
intnumber2;
public:
voiddisplay2()
{
cout<<"经理的编号:
";
cin>>number2;
employee:
:
display();
}
intnumb2(){returnnumber2;}
};//
classsalesman:
publicemployee//销售员类
{
protected:
inttotal;
intboss;
intnumber3;
public:
voiddisplay3()
{
cout<<"销售员的编号:
";
cin>>number3;
employee:
:
display();
cout<<"销售额:
";
cin>>total;
cout<<"所属销售经理的编号:
";
cin>>boss;
}
inthismanager(){returnboss;}
intxiaoshoue(){returntotal;}
intnumb3(){returnnumber3;}
};//
classsalesmanager:
publicmanager//销售经理类
{protected:
intnumber4;
public:
voiddisplay4()
{
cout<<"销售经理的编号:
";
cin>>number4;
employee:
:
display();
}
intnumb4(){returnnumber4;}
};//
voidform()
{
cout<<"★★小型公司工资管理系统★★"< cout<<"┌─────────────┐"< cout<<"│请选择您所需的操作│"< cout<<"│数据输入: 1,并按回车键│"< cout<<"│数据统计: 2,并按回车键│"< cout<<"│数据打印: 3,并按回车键│"< cout<<"│数据备份: 4,并按回车键│"< cout<<"│退出系统: 5,并按回车键│"< cout<<"└─────────────┘"< cout<<"请选择一个操作: "; } intmain() {inti,j,k,g,m,all,t; charshuzi; intwage[N]; techniciant1[N]; managerm1[N]; salesmans1[2*N],s2[2*N]; salesmanagersm1[N],f; for(t=1;;t++) { form(); cin>>shuzi; switch(shuzi) { case'1': { //功能1 for(i=0;i t1[i].display1(); cout<<"......................................."< for(i=0;i m1[i].display2(); cout<<"......................................."< for(i=0;i<2*N;i++) s1[i].display3(); cout<<"......................................."< for(i=0;i sm1[i].display4(); cout<<"......................................."< break;} case'2': //功能2 for(i=0;i {wage[i]=5000;all=0; cout<<"职工号为"< "< cout<<"┌─────┬────┬─────┐"< cout<<"│职工号││销售额│"< for(m=0;m<2*N;m++) {if(s1[m].hismanager()==sm1[i].numb4()) {wage[i]=wage[i]+0.005*(s1[m].xiaoshoue());all=all+s1[m].xiaoshoue(); cout<<"├─────┼────┼─────┤"< cout<<"│"< }} cout<<"├─────┼────┴─────┤"< cout<<"│销售额总计│"< cout<<"└─────┴──────────┘"< for(j=0;j for(k=0;k if(wage[k] {t=wage[k];//冒泡 wage[k]=wage[k+1]; wage[k+1]=t; f=sm1[k]; sm1[k]=sm1[k+1]; sm1[k+1]=f;} cout<<"销售经理按工资排序为: "< cout<<"┌─────┬────┬────┬────┬────┐"< cout<<"│职工号││性别│年龄│工资│"< for(g=0;g { cout<<"├─────┼────┼────┼────┼────┤"< cout<<"│"< } cout<<"└─────┴────┴────┴────┴────┘"< break;//功能3 case'3': cout<<"请等待............"< cout<<"职工基本情况一览表如下"< cout<<"技术员"< cout<<"┌─────┬────┬────┬────┬────┐"< cout<<"│职工号││性别│年龄│工资│"< for(i=0;i { cout<<"├─────┼────┼────┼────┼────┤"< cout<<"│"< } cout<<"└─────┴────┴────┴────┴────┘"< cout<<"......................................................."< cout<<"经理"< cout<<"┌─────┬────┬────┬────┬────┐"< cout<<"│职工号││性别│年龄│工资│"< for(i=0;i { cout<<"├─────┼────┼────┼────┼────┤"< cout<<"│"< } cout<<"└─────┴────┴────┴────┴────┘"< cout<<"......................................................."< cout<<"销售经理"< cout<<"┌─────┬────┬────┬────┬────┐"< cout<<"│职工号││性别│年龄│工资│"< for(g=0;g { cout<<"├─────┼────┼────┼────┼────┤"< cout<<"│"< } cout<<"└─────┴────┴────┴────┴────┘"< cout<<"......................................................."< cout<<"销售员"< cout<<"┌─────┬────┬────┬────┬────┬────────┐"< cout<<"│职工号││性别│年龄│工资│所属部门经理编号│"< for(i=0;i<(2*N);i++) { cout<<"├─────┼────┼────┼────┼────┼────────┤"< cout<<"│"< } cout<<"└─────┴────┴────┴────┴────┴────────┘"< cout<<"..............................................................................."< break; case'4': cout<<"数据备份"< outfile.open("E: \\sjq.txt",ios: : in|ios: : out|ios: : trunc); outfile<<"技术员"< outfile<<"┌─────┬────┬────┬────┬────┐"< outfile<<"│职工号││性别│年龄│工资│"< for(i=0;i { outfile<<"├─────┼────┼────┼────┼────┤"< outfile<<"│"< } outfile<<"└─────┴────┴────┴────┴────┘"< outfile<<"......................................................."< outfile<<"经理"< outfile<<"┌─────┬────┬────┬────┬────┐"< outfile<<"│职工号││性别│年龄│工资│"< for(i=0;i { outfile<<"├─────┼────┼────┼────┼────┤"< outfile<<"│"< } outfile<<"└─────┴────┴────┴────┴────┘"< outfile<<"......................................................."< outfile<<"销售经理"< outfile<<"┌─────┬────┬────┬────┬────┐"< outfile<<"│职工号││性别│年龄│工资│"< for(g=0;g { outfile<<"├─────┼────┼────┼────┼────┤"< outfile<<"│"< } outfile<<"└─────┴────┴────┴────┴────┘"< outfile<<"......................................................."< outfile<<"销售员"< outfile<<"┌─────┬────┬────┬────┬────┬────────┐"< outfile<<"│职工号││性别│年龄│工资│所属部门经理编号│"< for(i=0;i<(2*N);i++) { outfile<<"├─────┼────┼────┼────┼────┼────────┤"< outfile<<"│"< } outfile<<"└─────┴────┴────┴────┴────┴────────┘"< outfile<<"..............................................................................."< outfile.close(); break; case'5': cout<<"确定退出系统吗? "< cout<<"是: 1,否: 2"< inta; cin>>a; if(a==1)exit(5);break; default: cout<<"error"< } } return0; } 四、运行结果 数据备份容……………………………………………. 五、程序的使用说明 1.从键盘输入1,按回车键,可进行各类数据的输入,此步骤必须执行; 2.从键盘输入2,按回车键,即可进行数据统计,得到统计列表; 3.从键盘输入3,按回车键,可打印出各类成员的基本信息; 4.从键盘输入4,按回车键,可进行数据备份; 5.从键盘输入5,按回车键,出现提示信息,若退出系统输入1否则输入2。 六、总结及心得体会 从9月2号,我们开始了为期一周的C++程序设计实习——《小型工资管理系统》,每天下午去机房调试程序,上午编写下一天的程序代码。 刚开始的时候,脑袋里一点思路都没有,因为以前没有接触过这么大的程序。 所以刚开始的时候,心里只有一个字能形容就是怕。 怕自己便不好,怕这门课程完成不了,很多很多。 去做一件事情,最忌讳的就是这一点。 失败者和成功者最大的区别就是面对困难时的心态,我深知这一点。 所以,我沉下心来思考了很多。 做一个程序,最重要的就是大体思路,得有全局的思考,我承认,这一点我做的不是很好,因为我第2天的程序做了大改动,也许是我基本功不扎实,但是我所能想到的就是大改动了,可能有其他简便的方法,所以这对于我而言,是一个重大的警告。 在第二天的晚上,我花了一晚的时间来重新整理思路,以防止在接下来的几天里再出现那样的错误,那就很让人纠结了。 第1天时完成数据的输入以及类的设计。 这个还不是很难,就是定义一个基类employee,然后派生下来几个子类。 然后在类编写返回值的函数,以及数据输入的函数等等,数据成员都设置成protected。 在类外在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 实习 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)