分享
分销 收藏 举报 申诉 / 29
播放页_导航下方通栏广告

类型中国石油大学c--实习报告.doc

  • 上传人:仙人****88
  • 文档编号:12020157
  • 上传时间:2025-08-28
  • 格式:DOC
  • 页数:29
  • 大小:354.50KB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    中国 石油大学 实习 报告
    资源描述:
    中国石油大学(华东)信息与控制工程学院 《程序设计实习》报告 小型公司工资管理系统的设计 专业班级:电子信息工程 学  号:10052222 姓  名:王博 时 间:2011.7.14~2011.7.17 2011年7月 目录 一、 实习内容…………………………………………………………………………1 二、 设计思路…………………………………………………………………………2 三、 程序清单…………………………………………………………………………3 四、 运行结果…………………………………………………………………………4 五、 程序使用说明……………………………………………………………………5 六、 总结及心得体会…………………………………………………………………6 程序设计实习报告 一、实习内容 本次实习的内容是设计一个小型公司的工资管理系统,通过这个系统实现对经理、技术员、销售员及销售经理等公司成员的职工号、姓名、年龄、月工资等信息的数据输入、数据处理、数据的输出显示、数据的备份等功能。本次实习主要是针对较难综合题目进行分析、编程、调试和运行,这利于我们进一步掌握面向过程和面向对象程序的基本方法和编程技巧,巩固所学理论知识,使理论与实践相结合,提高分析问题解决问题的能力。 本次实习的题目及要求如下: 1..题目:小型公司工资管理系统的设计 2.设计说明与基本要求: (1 )公司主要有4类人员: 经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、性别、年龄、月工资等信息; (2) 工资的计算方法: 经理:固定月薪为8000元; 技术员:工作时间×工资(100元/小时); 销售员:销售额×4%提成; 销售经理:底薪(5000元)+下属销售员销售额总额×0.5%; (3) 员工基本数据的输入: 要求每类人员不能少于4人,其中销售员需要8名,每名销售经理手下有2名销售员。 (4) 各类的数据成员访问权限设置为:protected 3.实现的基本功能: (1 )菜单选择功能; (2)数据的输入; (3)数据的统计; (4)数据的输出,显示; (5)数据的备份; (6)退出系统。 二、设计思路 1.类的层次结构 2.设计思路 首先要总体设计,要有一个菜单,用于选择各项功能,用来进行数据的录入,数据的统计,数据的打印,数据的备份,进入多级菜单,退出系统等功能。这就要充分利用了类的继承与派生的知识,先定义一个基类base,由基类共有派生出技术员类 Tec,销售员类Sel,经理类Man,又由经理类公有派生出销售经理类Sma。把基类定义成虚基类,通过基类去写的派生类就可以调用基类的公有成员。程序中宜使用全局变量,便于修改,简便清晰。定义完类后,定义各函数,因为各功能的实现需要定义与其功能相适应的函数,所以定义了数据输入函数ph1( ),数据打印函数ph3( ),数据统计函数ph2( ),数据备份函数save( ),进入多级菜单进行统计函数ph4( )等。将主函数放在最后来实现整个程序的运行,运用switch语句选择系统进行的工作,在主菜单中进行调用各函数,从而实现各功能。程序中要求销售经理工资排序则采用的冒泡排序法实现。 三、程序清单 # include <iostream> # include <fstream> # include <iomanip> # include <string> using namespace std; fstream outfile; int m,i,t,x; int salary[4]={0,0,0,0}; int s[4]={0,0,0,0}; void menu() //定义主菜单函数 {cout<<"★★小型公司工资管理系统★★"<<endl; cout<<"┌─────────────┐"<<endl; cout<<"│ 请选择您所需的操作 │"<<endl; cout<<"│ 数据输入:1,并按回车键 │"<<endl; cout<<"│ 数据统计:2,并按回车键 │"<<endl; cout<<"│ 数据打印:3,并按回车键 │"<<endl; cout<<"│ 数据备份:4,并按回车键 │"<<endl; cout<<"│ 退出系统:5,并按回车键 │"<<endl; cout<<"│ 多级菜单:6,并按回车键 │"<<endl; cout<<"└─────────────┘"<<endl; cout<<"请选择一个操作: "; } void menus() //定义多级菜单函数 {cout<<"★★小型公司工资管理系统★★"<<endl; cout<<"┌────────────────┐"<<endl; cout<<"│ 请选择您所需的操作 │"<<endl; cout<<"│ 技术员基本情况 :1,并按回车键│"<<endl; cout<<"│ 经理基本情况 :2,并按回车键│"<<endl; cout<<"│ 销售经理基本情况 :3,并按回车键│"<<endl; cout<<"│ 销售员基本情况 :4,并按回车键│"<<endl; cout<<"│ 返回上一级 :5,并按回车键│"<<endl; cout<<"└────────────────┘"<<endl; cout<<"请选择一个操作: "; } void heng() //定义heng函数 {cout<<"┈┈┈┈┈┈┈┈┈┈" <<endl;} void form() //定义form函数 {cout<<"┌────┬───┬────┬────┬──────┐"<<endl; cout<<"│ 职工号 │ 姓名 │ 性别 │ 年龄 │ 工资 │"<<endl; } void forms() //定义forms函数 {outfile<<"┌────┬───┬────┬────┬──────┐"<<endl; outfile<<"│ 职工号 │ 姓名 │ 性别 │ 年龄 │ 工资 │"<<endl; } void head() //定义head函数 {cout<<"┌────┬───┬────┬────┬──────┐"<<endl; cout<<"│ 职工号 │ 姓名 │ 性别 │ 年龄 │ 工资 │"<<endl;} void end() //定义end函数 {cout<<"└────┴───┴────┴────┴──────┘"<<endl;} class Base //定义基类 {protected: int a,b,n; string c; char d;}; class Tec:protected Base //技术员类 {public: void print1 () {cout<<"技术员的编号: "; cin>>a; cout<<"其姓名: "; cin>>c; cout<<"性别(m/w):"; cin>>d; cout<<"年龄: "; cin>>n; cout<<"工作时间: "; cin>>b;} void out1() {cout<<"├────┼───┼────┼────┼──────┤"<<endl; cout<<"│"<<setw(8)<<a<<"│"<<setw(6)<<c<<"│"<<setw(8)<<d<<"│"<<setw(8)<<n<<"│"<<setw (12)<<int(b*100)<<"│"<<endl;} int a1(){return a;} int b1(){return b;} string c1(){return c;} char d1(){return d;} int n1(){return n;} }Tec,tec[4]; class Man:protected Base //经理类 {public: void out2() {cout<<"├────┼───┼────┼────┼──────┤"<<endl; cout<<"│"<<setw(8)<<a<<"│"<<setw(6)<<c<<"│"<<setw(8)<<d<<"│"<<setw(8)<<b<<"│"<<setw (12)<<"8000"<<"│"<<endl;} int a2(){return a;} int b2(){return b;} string c2(){return c;} char d2(){return d;} int n2(){return n;} void print2 () {cout<<"经理的编号: "; cin>>a; cout<<"其姓名: "; cin>>c; cout<<"性别(m/w):"; cin>>d; cout<<"年龄: "; cin>>b;} }Man,man[4]; class Sel:protected Base //销售员类 {public: void print3 () {cout<<"销售员的编号: "; cin>>a; cout<<"其姓名: "; cin>>c; cout<<"性别(m/w):"; cin>>d; cout<<"年龄: "; cin>>b; cout<<"销售额: "; cin>>n; cout<<"所属销售经理的编号: "; cin>>f;} int printsnum() {return f;} int printmoney(){return n;} void out() { cout<<"├──────┼─────┼──────┤"<<endl; cout<<"│"<<setw(9)<<a<<" │"<<setw(9)<<c<<" │"<<setw(9)<<n<<" │"<<endl;} void out3() {cout<<"├────┼───┼────┼────┼─────┼─────────┤"<<endl; cout<<"│"<<setw(8)<<a<<"│"<<setw(6)<<c<<"│"<<setw(8)<<d<<"│"<<setw(8)<<b<<"│"<<setw (10)<<int(n*0.04)<<"│"<<setw(18)<<f<<"│"<<endl;} int a3(){return a;} int b3(){return b;} string c3(){return c;} char d3(){return d;} int n3(){return n;} int f3(){return f;} private: int f; }Sel,sel[8]; class Sma:protected Man //销售经理类 {public: void print4 () {cout<<"销售经理的编号: "; cin>>a; cout<<"其姓名: "; cin>>c; cout<<"性别(m/w):"; cin>>d; cout<<"年龄: "; cin>>b;} int printnum(){return a;} string printname(){return c;} int a4(){return a;} int b4(){return b;} string c4(){return c;} char d4(){return d;} int n4(){return n;} void mout() {cout<<"├────┼───┼────┼────┼──────┤"<<endl; cout<<"│"<<setw(8)<<a<<"│"<<setw(6)<<c<<"│"<<setw(8)<<d<<"│"<<setw(8)<<b<<"│"<<setw (12)<<int(5000+0.005*s[i])<<"│"<<endl;} };Sma sma[4]; void ph1() //定义数据输入函数 { for(i=0;i<4;i++) tec[i].print1();heng(); for(i=0;i<4;i++) man[i].print2();heng(); for(i=0;i<8;i++) sel[i].print3();heng(); for(i=0;i<4;i++) sma[i].print4();heng(); menu();} void ph2() //定义数据统计函数 {int salary[4]={0,0,0,0}; int s[4]={0,0,0,0}; for(int j=0;j<=3;j++) {cout<<"\n职工号为"<<sma[j].printnum()<<"销售经理"<<sma[j].printname()<<"下属销售员的业绩为:"<<endl; cout<<'\n'<<endl; cout<<"┌──────┬─────┬──────┐"<<endl; cout<<"│ 职工号 │ 姓名 │ 销售额 │"<<endl; for(i=0;i<8;i++) {if(sel[i].printsnum()==sma[j].printnum()) {sel[i].out(); s[j]+=sel[i].printmoney(); }salary[j]=s[j];} cout<<"├──────┼─────┴──────┤"<<endl; cout<<"│"<<" 销售额总计:"<<"│"<<setw(24)<<s[j]<<"│"<<endl; cout<<"└──────┴────────────┘"<<endl;} cout<<"\n销售经理按工资排序为: "<<'\n'<<endl; form(); for(i=0;i<3;i++) for(j=0;j<3-i;j++) if(s[j]<s[j+1]) {m=s[j];s[j]=s[j+1];s[j+1]=m;} for(i=0;i<4;i++) for(j=0;j<4;j++) if(salary[j]==s[i]) {sma[j].mout();break;} cout<<"└────┴───┴────┴────┴──────┘"<<endl; menu ();} void ph3 () //定义数据打印函数 {cout<<" 请等待......"<<endl; cout<<"职工基本情况一览表如下"<<endl; for(;;) //死循环 {menus(); cin>>m; if(m==1) {cout<<"技术员"<<endl; form(); for(int i=0;i<4;i++) tec[i].out1(); cout<<"└────┴───┴────┴────┴──────┘"<<endl; heng();continue;} else if(m==2) {cout<<"经理"<<endl; form(); for(i=0;i<4;i++) man[i].out2(); cout<<"└────┴───┴────┴────┴──────┘"<<endl; heng();continue;} else if(m==3) {cout<<"销售经理"<<endl; form(); for(i=0;i<2;i++) for(int j=0;j<4;j++) if(salary[j]==s[i]) {sma[j].mout();break;} cout<<"└────┴───┴────┴────┴──────┘"<<endl; heng();continue;} else if (m==4) {cout<<"销售员"<<endl; cout<<"┌────┬───┬────┬────┬─────┬─────────┐"<<endl; cout<<"│ 职工号 │ 姓名 │ 性别 │ 年龄 │ 工资 │ 所属部门经理编号 │"<<endl; for(int k=0;k<=7;k++) sel[k].out3(); cout<<"└────┴───┴────┴────┴─────┴─────────┘"<<endl; heng();continue;} else if(m==5)break; else cout<<"你的选择有误,请重新选择。。:"<<endl;}} void ph4 () //定义进入多级菜单,数据统计函数 { cout<<"职工基本情况一览表如下:"<<endl; cout<<"技术员"<<endl; head(); for(i=0;i<4;i++) tec[i].out1(); end(); cout<<"-------------------------------------------"<<endl; cout<<"经理"<<endl; head(); for(i=0;i<4;i++) man[i].out2(); end(); cout<<"-------------------------------------------"<<endl; cout<<"销售经理"<<endl; head(); for(i=0;i<4;i++) sma[i].mout(); end(); cout<<"-------------------------------------------"<<endl; cout<<"销售员"<<endl; cout<<"┌────┬───┬────┬────┬─────┬─────────┐"<<endl; cout<<"│ 职工号 │ 姓名 │ 性别 │ 年龄 │ 工资 │ 所属部门经理编号 │"<<endl; for(i=0;i<8;i++) sel[i].out3(); cout<<"└────┴───┴────┴────┴─────┴─────────┘"<<endl; cout<<"-------------------------------------------"<<endl; menu(); } void save() //定义数据备份函数 {cout<<"数据备份中,请稍等...."<<endl; outfile.open("D:save.txt",ios::trunc|ios::out); outfile<<"技术员"<<endl; forms(); for(i=0;i<4;i++) {outfile<<"├────┼───┼────┼────┼──────┤"<<endl; outfile<<"│"<<setw(8)<<tec[i].a1()<<"│"<<setw(6)<<tec[i].c1()<<"│"<<setw(8)<<tec[i].d1 ()<<"│"<<setw(8)<<tec[i].n1()<<"│"<<setw(12)<<int(tec[i].b1()*100)<<"│"<<endl; }outfile<<"└────┴───┴────┴────┴──────┘"<<endl; outfile<<"┈┈┈┈┈┈┈┈┈┈" <<endl; outfile<<"经理"<<endl; forms(); for(i=0;i<4;i++) {outfile<<"├────┼───┼────┼────┼──────┤"<<endl; outfile<<"│"<<setw(8)<<man[i].a2()<<"│"<<setw(6)<<man[i].c2()<<"│"<<setw(8) <<man[i].d2()<<"│"<<setw(8)<<man[i].b2()<<"│"<<setw(12)<<"8000"<<"│"<<endl;} outfile<<"└────┴───┴────┴────┴──────┘"<<endl; outfile<<"┈┈┈┈┈┈┈┈┈┈" <<endl; outfile<<"销售经理"<<endl; forms(); for(i=0;i<4;i++) {outfile<<"├────┼───┼────┼────┼──────┤"<<endl; outfile<<"│"<<setw(8)<<sma[i].a4()<<"│"<<setw(6)<<sma[i].c4()<<"│"<<setw(8) <<sma[i].d4()<<"│"<<setw(8)<<sma[i].b4()<<"│"<<setw(12)<<int(5000+0.005*salary[i]) <<"│"<<endl;} outfile<<"└────┴───┴────┴────┴──────┘"<<endl; outfile<<"┈┈┈┈┈┈┈┈┈┈" <<endl; outfile<<"销售员"<<endl; outfile<<"┌────┬───┬────┬────┬─────┬─────────┐"<<endl; outfile<<"│ 职工号 │ 姓名 │ 性别 │ 年龄 │ 工资 │ 所属部门经理编号 │"<<endl; for(i=0;i<8;i++) {outfile<<"├────┼───┼────┼────┼─────┼─────────┤"<<endl; outfile<<"│"<<setw(8)<<sel[i].a3()<<"│"<<setw(6)<<sel[i].c3()<<"│"<<setw(8)<<sel[i].d3 ()<<"│"<<setw(8)<<sel[i].b3()<<"│"<<setw(10)<<int(sel[i].n3()*0.04)<<"│"<<setw(18)<<sel [i].f3()<<"│"<<endl; }outfile<<"└────┴───┴────┴────┴─────┴─────────┘"<<endl; outfile<<"┈┈┈┈┈┈┈┈┈┈" <<endl; outfile.close(); cout<<"备份完成!"<<endl;} int main() //主函数 {menu(); for(i=1;i<=10;i++) {cin>>x; switch (x) {case 1:ph1();break; case 2: ph2();break; case 3:ph4();break; case 4:save();menu();break; case 6:ph3();menu();break;} if(x==5) {char t; cout<<"您确定要退出吗?退出:请按 Y,否:请按N"<<endl; cout<<"请选择:"; cin>>t; for(;;) {if(t!='n'&&t!='N'&&t!='y'&&t!='Y') cout<<"您的选择有误,请重新选择(Y/N):"; else break;cin>>t;} if(t=='n'||t=='N')menu(); else break;}} return 0;} 四、运行结果 五、程序的使用说明 1.菜单说明 : (1)数据输入指通过键盘输入经理、技术员、销售员及销售经理等公司成员的职工号、姓名、年龄等各项数据; (2)数据统计指统计各销售经理下属销售员的销售额及销售总额,销售经理按工资进行的冒泡排序; (3)数据打印指按照表格的格式在屏幕上输出个员工的信息; (4)数据备份指将所有员工的信息保存到文件; (5)退出指结束程序的运行; (6)进入多级菜单。 2.其他说明: (1)选择功能是输入的必须是数字,否则系统可能会运行出错,得到不确定的结果。 (2)由于程序设计的限制,输入名字时不能输入过长,否则系统出错; 六、总结及心得体会 通过四天的实习,我基本完成了设计一个小型公司工资管理系统的程序的任务,这使我对c++以及它的使用有了更深一步的理解和熟练,不过期间也遇到不少问题,由于对基础知识掌握的不够好,对全局变量的掌握不好,所以在出现错误是没能及时解决。 刚开始时感觉无从下手,不过分步进行编辑,编译,调试,运行,比较容易进行编程。记得刚学习c++是感觉特别难,始终没有搞清楚c++是门什么样的课,而通过这次实习我能够基本掌握C++语言编程的基础知识,通过这次编写的较难的程序,对于编程有了更多的了解和更贴切的体会。我想这有利于今后对c++的使用,锻炼我们缜密的思维提高我们的独立思考,独立解决问题,综合运用所学知识的能力,提高了上机动手编程的能力。 通过本次实习,我加深了对类与派生的理解,对于类的保护成员只对本身成员函数使用,而不能被公有派生出的成员函数使用。了解了类与派生类之间的关系,练习了for循环switch的用法,全局变量的定义以及它的使用,一维数组的定义使用,并看到了一维数组使用的优点,通过编写一个小型工资管理系统,学会了简单的面向对象的编程方法,包括类的结构设计、类的继承、虚函数与多态性等知识的应用以及文件的操作,并学会了模块化程序设计的方法。在主菜单中调用各函数的算法,掌握了如何去调用一个函数,以及函数的定义与调用的关系,定义在调用前的话,可以直接进行函数的调用,否则要先声明该函数,然后才能调用该函数。定义一个类对象即对一个类进行实例化,了解到该对象调用类的成员函数的方法。掌握用冒泡法对数组进行从小到大的排序。了解到如何使一个系统看起来比较规整,有条理性。了解到类中定义虚函数的用法,在该类的派生类中定义了同名的成员函数时,该派生类的成员函数仍然是虚函数。了解虚基类的使用和虚函数的使用。 在这次实习中,知道了自己的动手能力还有待进一步提高,一开始总是不能够把书本上学的知识运用到编写的程序上,就觉得好像没有信心完成,甚至有了放弃的念头,但是在认真看了课本及于同学的讨论之后,一项一项的任务渐渐完成,也就逐渐有了信心,渐渐觉得不怕出现错误,觉得改正错误挺有趣的,特别是改正过来使得成就感无法言说,实习中我也感觉到了请教别人与别人交流的重要性,这可能是你事半功倍,而且能是你的程序更简洁方便。再就是,在编译、连接、调试的过程中应定要有足够的耐心,因为这个过程中可能出现很多错误,我们也要记清常出的错误,以便下次出现时能更好更快的改正,遇到问题更要全面的分析。 总之,这次实习是极有意义的一次实践,提高了自身的能力,这对以后的学习生活都有极大地意义…… 27
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:中国石油大学c--实习报告.doc
    链接地址:https://www.zixin.com.cn/doc/12020157.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


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

    自信网络  |  ZixinNetwork