收藏 分销(赏)

C程序设计实习报告.doc

上传人:鼓*** 文档编号:12148785 上传时间:2025-09-17 格式:DOC 页数:22 大小:347.50KB 下载积分:8 金币
下载 相关 举报
C程序设计实习报告.doc_第1页
第1页 / 共22页
C程序设计实习报告.doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
目录 一、 实习内容…………………………………………………………………………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语句,将上述功能编为case 1~5,每个case后添加break; 5.程序结束。 以上就是我所认为得该程序得几个要点…………………………………、、 三、程序清单 #include〈iostream> #include<string〉 #include<cmath> #include<iomanip〉 #include<fstream> using namespace std; const N=2; fstream outfile; class employee  //基类,雇佣者 { protected: string name; ﻩchar sex; int age; public: virtual void display() ﻩ{  cout<<"其姓名:”; ﻩcin>>name; cout〈<”性别(m/w):"; ﻩcin>>sex; ﻩ cout<<"年龄:"; ﻩ   cin〉〉age; ﻩ} ﻩstring nam(){return name;} char se(){return sex;} int ag(){return age;} };             // class technician: public employee  //技术员类 { public:     int worktime; ﻩint number1; public: void display1() ﻩ{ ﻩﻩcout〈<”技术员得编号:"; ﻩ cin>〉number1; employee::display(); cout<<”工作时间”; ﻩ cin>>worktime; } ﻩint time(){return worktime;} ﻩint numb1(){return number1;} };           // class manager : public employee   //经理类 {protected: int number2; public: void display2() { ﻩcout<〈"经理得编号:”; ﻩﻩcin>>number2; employee::display(); } ﻩint numb2(){return number2;} };                  // class salesman : public employee    //销售员类 { protected: int total; int boss; ﻩint number3; public: ﻩvoid display3() ﻩ{ ﻩcout<〈"销售员得编号:"; ﻩcin〉>number3; employee::display();   cout<<"销售额:"; ﻩcin>>total; ﻩﻩcout<<"所属销售经理得编号:”; ﻩ cin〉〉boss; } int hismanager(){return boss;} ﻩint xiaoshoue(){return total;} ﻩint numb3(){return number3;} };                  // class salesmanager : public manager   //销售经理类 {protected:   int number4; public: ﻩvoid display4() ﻩ{ ﻩcout〈<”销售经理得编号:";         cin>>number4; employee::display(); } ﻩint numb4(){return number4;} };              // void form() { cout<<"★★小型公司工资管理系统★★"<<endl;   //提示表格 cout<<"┌─────────────┐"〈<endl; cout〈<”│   请选择您所需得操作  │"<<endl; cout〈<”│  数据输入:1,并按回车键 │"〈<endl; cout〈<"│  数据统计:2,并按回车键 │"〈〈endl; cout〈<"│ 数据打印:3,并按回车键 │"〈<endl; cout<<”│  数据备份:4,并按回车键 │"<<endl; cout〈<"│  退出系统:5,并按回车键 │"〈〈endl; cout〈<”└─────────────┘"〈〈endl; cout〈<"请选择一个操作:"; } int main() { int i,j,k,g,m,all,t;   char shuzi; int wage[N];   technician t1[N]; manager m1[N];   salesman s1[2*N],s2[2*N];   salesmanager sm1[N],f; for(t=1;;t++) { ﻩform(); cin〉>shuzi; ﻩswitch(shuzi) ﻩ{ case ’1’:{          //功能1   for(i=0;i〈N;i++)   t1[i]、display1(); cout<〈”、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、”<<endl; for(i=0;i〈N;i++)    m1[i]、display2(); cout<<"、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、”<<endl;  for(i=0;i<2*N;i++) s1[i]、display3(); cout<〈”、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、"〈〈endl; for(i=0;i〈N;i++)  sm1[i]、display4(); cout<<”、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、"<〈endl; break;} case '2':                   //功能2 ﻩfor(i=0;i<N;i++) {wage[i]=5000;all=0;ﻩ cout〈<"职工号为"<〈sm1[i]、numb4()<<”销售经理"〈<sm1[i]、nam()<<"下属销售员得业绩为:"<〈endl; ﻩcout<〈”┌─────┬────┬─────┐”〈〈endl;    cout<<"│职工号   │姓名   │销售额   │"〈<endl; ﻩ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〈<"├─────┼────┼─────┤”<〈endl; ﻩ cout<<"│"〈〈setw(10)<<s1[m]、numb3()〈<"│”<< setw(8)<〈s1[m]、nam()〈<”│"〈〈setw(10)<<s1[m]、xiaoshoue()〈<"│”<〈endl; ﻩ}} cout<〈”├─────┼────┴─────┤”〈<endl; cout<<”│销售额总计│"<〈setw(20)<<all<<”│"〈〈endl; cout〈〈”└─────┴──────────┘"<<endl;} for(j=0;j<N;j++) for(k=0;k<N-j;k++)   if(wage[k]<wage[k+1]) {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<〈”销售经理按工资排序为:”<<endl; cout〈〈"┌─────┬────┬────┬────┬────┐”<<endl; cout〈<”│职工号  │姓名 │性别   │年龄   │工资    │"<<endl; for(g=0;g<N;g++) { cout〈〈”├─────┼────┼────┼────┼────┤”〈〈endl; cout<<"│"<〈setw(10)<<sm1[g]、numb4()〈〈"│”<<setw(8)<<sm1[g]、nam()<<”│"<<setw(8)〈<sm1[g]、se()〈<”│"<<setw(8)〈<sm1[g]、ag()<<"│"<<setw(8)<〈wage[g]<<"│"<<endl; } cout〈〈”└─────┴────┴────┴────┴────┘"〈<endl;   break ;          //功能3 case '3': cout<<”请等待、、、、、、、、、、、、"<<endl; ﻩ cout<〈”职工基本情况一览表如下"<〈endl; ﻩﻩcout<<"技术员”<<endl;        cout<<"┌─────┬────┬────┬────┬────┐"<<endl;  cout<<"│职工号  │姓名 │性别 │年龄 │工资   │"〈〈endl;     for(i=0;i<N;i++) ﻩﻩ{ ﻩcout<<"├─────┼────┼────┼────┼────┤"〈〈endl; ﻩcout<<”│"<〈setw(10)〈〈t1[i]、numb1()〈〈”│"<〈setw(8)<<t1[i]、nam()<〈"│"<<setw(8)〈<t1[i]、se()<〈”│"<<setw(8)<<t1[i]、ag()〈<"│”<〈setw(8)〈〈t1[i]、time()*100<<”│"<<endl; ﻩ} ﻩcout〈〈"└─────┴────┴────┴────┴────┘"<<endl; //技术员表 cout<<"、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、"<<endl; ﻩcout〈<”经理"<〈endl; cout〈<”┌─────┬────┬────┬────┬────┐”<<endl;   cout〈<"│职工号   │姓名   │性别   │年龄 │工资 │”<〈endl;   for(i=0;i<N;i++) ﻩ{ cout<<"├─────┼────┼────┼────┼────┤”<<endl; ﻩ cout〈〈"│”<<setw(10)<<m1[i]、numb2()〈<”│”<〈setw(8)<<m1[i]、nam()<<"│"<〈setw(8)〈<m1[i]、se()〈〈"│"<<setw(8)<<m1[i]、ag()<〈"│"<<setw(8)<<"8000”〈<"│"<<endl;ﻩﻩ ﻩ } ﻩ cout<<"└─────┴────┴────┴────┴────┘"<〈endl; //经理表 cout〈<”、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、"<〈endl; cout<<”销售经理"〈<endl;     cout〈<"┌─────┬────┬────┬────┬────┐"<<endl;    cout<<”│职工号  │姓名    │性别   │年龄  │工资    │”<<endl;   for(g=0;g<N;g++) ﻩ{     cout<<"├─────┼────┼────┼────┼────┤"〈<endl;      cout〈<"│”<<setw(10)〈<sm1[g]、numb4()〈<"│”<〈setw(8)〈〈sm1[g]、nam()〈<"│"<<setw(8)〈〈sm1[g]、se()〈<"│”<<setw(8)〈<sm1[g]、ag()〈〈”│"〈<setw(8)<<wage[g]<〈”│”<〈endl; }       cout<<"└─────┴────┴────┴────┴────┘"<<endl; cout<〈”、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、”<<endl;    //销售经理表 ﻩ cout<〈"销售员"<<endl;        cout<〈"┌─────┬────┬────┬────┬────┬────────┐”<<endl;      cout<<"│职工号 │姓名  │性别    │年龄   │工资    │所属部门经理编号│"<〈endl;   for(i=0;i<(2*N);i++) { ﻩﻩcout〈<”├─────┼────┼────┼────┼────┼────────┤”〈〈endl; cout〈<"│"<〈setw(10)<〈s1[i]、numb3()<〈"│”〈<setw(8)〈〈s1[i]、nam()<<"│”<<setw(8)<<s1[i]、se()<<”│"<<setw(8)〈<s1[i]、ag()<<"│"<<setw(8)〈〈s1[i]、xiaoshoue()*0、04〈<"│"<〈setw(16)<〈s1[i]、hismanager()<<”│"<<endl; } cout〈〈”└─────┴────┴────┴────┴────┴────────┘"<〈endl;  //经理表 cout<〈"、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、”〈<endl;       break; case '4': ﻩcout〈〈”数据备份”<<endl;    out("E:\\sjq、txt",ios::in|ios::out|ios::trunc);     outfile<〈”技术员”<<endl;    outfile<<”┌─────┬────┬────┬────┬────┐"<<endl;      outfile<〈"│职工号    │姓名   │性别   │年龄  │工资 │"〈〈endl;     for(i=0;i<N;i++) ﻩﻩ{ ﻩoutfile〈<”├─────┼────┼────┼────┼────┤"<<endl; ﻩ outfile<<"│"<<setw(10)<<t1[i]、numb1()<<”│”〈<setw(8)<〈t1[i]、nam()<〈"│"〈<setw(8)<〈t1[i]、se()〈〈”│"〈〈setw(8)<<t1[i]、ag()<<"│"<<setw(8)<<t1[i]、time()*100<<"│"<<endl; } ﻩ outfile〈〈"└─────┴────┴────┴────┴────┘"<<endl; //技术员表       outfile<<”、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、"〈<endl; ﻩﻩoutfile<<"经理"<<endl;     outfile〈<"┌─────┬────┬────┬────┬────┐"〈<endl;     outfile〈<"│职工号 │姓名   │性别 │年龄   │工资    │"<<endl;      for(i=0;i<N;i++) ﻩ{ ﻩﻩoutfile<〈"├─────┼────┼────┼────┼────┤”<〈endl; outfile〈〈"│”〈<setw(10)〈<m1[i]、numb2()<<”│"<<setw(8)<<m1[i]、nam()〈<"│"〈<setw(8)<<m1[i]、se()<〈”│”〈<setw(8)<〈m1[i]、ag()<<"│”<〈setw(8)〈〈"8000”〈<"│"<<endl; } ﻩoutfile<〈”└─────┴────┴────┴────┴────┘”<<endl; //经理表 ﻩ outfile〈〈"、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、”〈〈endl; ﻩoutfile<〈"销售经理"<〈endl;   outfile〈<”┌─────┬────┬────┬────┬────┐”<〈endl;     outfile<〈"│职工号   │姓名 │性别  │年龄   │工资   │"〈<endl;   for(g=0;g<N;g++) ﻩﻩ{  outfile<〈"├─────┼────┼────┼────┼────┤”<<endl;    outfile〈<”│"<<setw(10)<<sm1[g]、numb4()<<"│”〈<setw(8)<〈sm1[g]、nam()〈〈"│"<〈setw(8)〈<sm1[g]、se()<〈”│"<<setw(8)〈<sm1[g]、ag()<<"│"<〈setw(8)<<wage[g]<<"│"<<endl; ﻩﻩ}     outfile<<"└─────┴────┴────┴────┴────┘"<<endl; ﻩoutfile<〈"、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、"<<endl;     //销售经理表 ﻩﻩoutfile<<"销售员”〈<endl;    outfile<〈"┌─────┬────┬────┬────┬────┬────────┐”<<endl;   outfile<<"│职工号 │姓名   │性别   │年龄 │工资   │所属部门经理编号│"<〈endl; for(i=0;i〈(2*N);i++) ﻩ{ ﻩﻩoutfile<〈"├─────┼────┼────┼────┼────┼────────┤"<<endl; ﻩﻩoutfile<<”│"<<setw(10)〈〈s1[i]、numb3()〈<"│"〈<setw(8)<<s1[i]、nam()<<"│”<〈setw(8)〈<s1[i]、se()〈〈”│"〈<setw(8)<<s1[i]、ag()<〈”│"〈<setw(8)<<s1[i]、xiaoshoue()*0、04〈<”│"<〈setw(16)<<s1[i]、hismanager()<<"│"〈<endl; ﻩ} ﻩ outfile〈〈”└─────┴────┴────┴────┴────┴────────┘"<<endl;  //经理表 outfile〈〈"、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、”〈<endl; out(); break;  case ’5':cout<〈"确定退出系统吗?”<<endl; cout<〈"就是:1,   否:2"〈〈endl; ﻩﻩint a; ﻩﻩﻩcin〉>a; if(a==1) exit(5);break; default :cout<〈"error"<<endl;ﻩﻩ ﻩ } } return 0; } 四、运行结果 数据备份内容……………………………………………、 五、程序得使用说明 1。从键盘输入1,按回车键,可进行各类数据得输入,此步骤必须执行; 2.从键盘输入2,按回车键,即可进行数据统计,得到统计列表; 3.从键盘输入3,按回车键,可打印出各类成员得基本信息; 4.从键盘输入4,按回车键,可进行数据备份; 5.从键盘输入5,按回车键,出现提示信息,若退出系统输入1否则输入2. ﻬ六、总结及心得体会 从9月2号,我们开始了为期一周得C++程序设计实习——《小型工资管理系统》,每天下午去机房调试程序,上午编写下一天得程序代码。 刚开始得时候,脑袋里一点思路都没有,因为以前没有接触过这么大得程序。所以刚开始得时候,心里只有一个字能形容就就是怕。怕自己便不好,怕这门课程完成不了,很多很多。去做一件事情,最忌讳得就就是这一点.失败者与成功者最大得区别就就是面对困难时得心态,我深知这一点。所以,我沉下心来思考了很多。做一个程序,最重要得就就是大体思路,得有全局得思考,我承认,这一点我做得不就是很好,因为我第2天得程序做了大改动,也许就是我基本功不扎实,但就是我所能想到得就就是大改动了,可能有其她简便得方法,所以这对于我而言,就是一个重大得警告.在第二天得晚上,我花了一晚得时间来重新整理思路,以防止在接下来得几天里再出现那样得错误,那就很让人纠结了。第1天时完成数据得输入以及类得设计。这个还不就是很难,就就是定义一个基类employee,然后派生下来几个子类。然后在类内编写返回值得函数,以及数据输入得函数等等,数据成员都设置成protected。在类外在编几个数组,用来调用类内函数。 第2天就是完成数据统计,排序功能。排序得话用冒泡法,用数组进行数据得排序。但就是问题出现了,第一天我就是把输入功能独立变成一个void函数在主函数前面得,但就是我发现数据无法存储下来.所以第2天我就把第一步得内容全改了,搬到了类内,这样才解决了问题。   第三天时完成数据得输出显示,这个地方得难点就就是设计表格,这个就涉及到了那个输入内容宽度得设计,以及制表键盘得。然后数据得输出就就是在主函数内定义类对象数组,以此来实现数据得调用。    然后剩下得就就是备份以及推出功能得实现了。这些都就是在网上查了相关资料然后学会如何编写得,刚开始觉得很深奥,学了之后,就觉得,嗯,还行.所以其她得任务在半天内就完成了。瞧着自己编出得程序,真心觉得一切都值了,很有成就感得样子,我想这就就是编程员得欢喜吧。 整个实习过程让我明白了几点: 1. 设计一个程序时需要从整体考虑,不能分散到最后结合不到一起; 2. 有些貌似简单得功能得实现其程序实现不一定简单,但也不能畏首畏尾,不敢尝试,要勇于挑战自己,相信自己一定可以; 1. 需要具有刻苦钻研得精神,注意总结,遇到问题认真思考,力求得到结果; 2. 同时也不能忽略团队得力量,遇到实在个人解决不了得问题可以通过与同学商量解决,并且结合别人与自己得观点,从多方面考虑,在众多方案中找出最优化得; 3. 遇到一些问题时要有耐心进行更正,因为可能有时候一个很小得错误会导致整个程序运行失常。 我感觉这一周得实习非常充实,谢谢这一周给我指导得老师,以及各位同学得陪伴。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服