C语言程序设计职工工作量统计系统设计--精选文档_第1页
C语言程序设计职工工作量统计系统设计--精选文档_第2页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学院程序设计工程训练报告C语言程序设计职工工作量统计系统设计 课程名称 C语言程序设计工程训练姓 名 院(系) 信息科学与技术学院专业班级 学 号 指导教师 教务处制目 录1 需求分析12 系统总框图和功能模块说明12.1 系统总框图12.2 功能模块说明13 系统设计23.1 主要结构体23.2主要功能函数23.3 关键函数的流程图74 系统调试85 总结106 源程序清单11171 需求分析设计职工工作量统计系统,使之能提供以下功能:l 系统以菜单方式工作l 输入职工工号和完成的产品数量,允许同一职工有多次输入l 对其完成的产品数量实现累计。程序按完成数量对他们排序,并确定他们的名次l 完

2、成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)l 要求程序用有序链表存储数据信息。2 系统总框图和功能模块说明2.1 系统总框图职工工作量统计系统输出信息浏览信息初始化系统修改信息退出系统输入信息图1 系统总框图2.2 功能模块说明1、输入信息模块,完成信息录入功能,把用户从终端键盘输入的信息(工作量,工号,姓名)保存在系统中。2、浏览信息模块,完成信息输出功能,把系统中已经保存的信息输出,查看排名等3、初始化系统模块,完成系统初始化操作。4.输出模块,按需求输出信息。5、退出系统模块,完成关闭程序操作。6、修改信息模块,包括修改或添加或删除职工工

3、作量,姓名等信息。3 系统设计3.1 主要结构体#include<iostream.h> #include<string.h> #include<fstream.h> class stu char name20; double much,sum; public: stu() stu(char n20,double muc) strcpy(name,n); much=muc; double getsum() sum=much; return sum; friend void main(); ;3.2主要功能函数输入信息函数此模块是输入职工信息模块的函数,输入职

4、工的姓名,工号,及工作量。do switch(p) case '0': char c; char name20;double much; do cout<<"请输入职工姓名"<<endl; cin>>name; cout<<"请输入产品数量:"<<endl; cin>>much; filej=new ofstream("d:document",ios:ate); *filej<<"姓名"<<name<

5、;<"产品数量"<<much<<endl; j+; si=new stu(name, much); i+; cout<<"数据录入成功,想继续录入吗(y/n)"<<endl; cin>>c; flag2=0; 修改工作量函数此模块要求修改,删除工作量的函数 cout<<"请输入您要增加的职工的姓名:"<<endl; cin>>name; cout<<"请输入产品数量"<<endl; cin&

6、gt;>much; filej=new ofstream("d:document",ios:ate); *filej<<"姓名"<<name<<"产品数量"<<much<<endl; j+; si=new stu(name, much); i+; do cout<<"请输入您要删除的职工姓名:"<<endl; cin>>name; for(int h=0;h<i;h+) if(strcmp(name,sh-&

7、gt;name)=0) flag3=1; i-; do sh=sh+1; h+; while(h<=i); cout<<"请输入您要修改的职工的姓名:"<<endl; cin>>name; for(int h=0;h<i;h+) if(strcmp(name,sh->name)=0) flag2=1; cout<<"请输入新完成的产品数量:"<<endl; cin>>mat; sh->much+=mat; cout<<"数据添加成功!&q

8、uot; 查询模块函数此函数提供查询职工工作量,及排名的功能do int flag=0; cout<<"请输入你要查询的职工姓名"<<endl; cin>>n; for(int j=0;j<i;j+) if(strcmp(n,(*sj).name)=0) flag=1; cout<<"您要查询的职工是:"<<(*sj).name<<endl; cout<<(*sj).name<<"的总产品数量是"<<(*sj).getsu

9、m()<<endl; for(int k=0;k<i;k+) cout<<k+1<<" "<<"姓名:"<<" "<<sk->name<<"总产品数量:"<<" "<<(*sk).getsum() <<endl; break; case '7': int t;stu b; cout<<"本系统所有职工排名如下:"<

10、;<endl; for(int x=0;x<i-1;x+) t=x; for(int y=x+1;y<i;y+) if(st->getsum()<(sy->getsum() t=y; if(t!=x) b=*sx; *sx=*st; *st=b; 3.3关键函数流程图主函数流程图: 开始输入工号,姓名工作量统计职工工作量输出统计结果结束输入模块流程图输入工号判断工号是否为零输入工作量否结束i+是开始修改模块函数流程图开始判断工号是否存在将删掉信息的职工之后的职工依次向前附值确认删除结束输入欲删除职工号存在不存在4.系统调试及运行界面显示菜单输入职工信息界面输

11、出职工工作量排名删除职工信息界面添加职工信息界面5.设计总结(课程设计心得与体会)经过几天的C语言课程设计,感觉自己收获不少!这个课程设计里面主要都是用链表,因为要达到这样的功能,使用链表相当方便,但不容易理解,所以在这方面我很了很多的时间看课本和参考课外书,使C语言的知识强化了不少。其次,在做课程设计的过程中,发现了平时很多没有注意到的问题,例如:返回值函数和不返回值函数两者在主函数中的调用是不同的更重要的是,这次课程设计虽然花了我不少时间,但正是这些时间,让我见识到了C语言的重要性。由于这是第一次进行设计,写文档,难免会写得不好!请见谅!6.程序代码#include<iostream

12、.h> #include<string.h> #include<fstream.h> class stu char name20; double much,sum; public: stu() stu(char n20,double muc) strcpy(name,n); much=muc; double getsum() sum=much; return sum; friend void main(); ;void main() cout<<"请选择您需要的操作!"<<endl; cout<<"

13、操作:"<<endl; cout<<"(0)职工数据录入"<<endl; cout<<"(1)增加职工人员"<<endl; cout<<"(2)删除职工人员"<<endl; cout<<"(3)新完成的需要添加的产品数量数据"<<endl; cout<<"查询:"<<endl; cout<<"(4)按总产品数量查询"<

14、<endl; cout<<"(5)按职工姓名查询"<<endl; cout<<"(6)输出所有职工的数据"<<endl; cout<<"生产量排名名次"<<endl; cout<<"(7)按职工生产的总产品数量查询排名"<<endl; cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl; char p;char w; stu *s50; ofstre

15、am *file50; int i=0; int j=0; bool flag2=0; do cin>>p; if(p>='0'&&p<='10') flag2=1; else cout<<"指令错误!请重新输入:"<<endl; while(flag2=0); do switch(p) case '0': char c; char name20;double much; do cout<<"请输入职工姓名"<<endl

16、; cin>>name; cout<<"请输入产品数量:"<<endl; cin>>much; filej=new ofstream("d:document",ios:ate); *filej<<"姓名"<<name<<"产品数量"<<much<<endl; j+; si=new stu(name, much); i+; cout<<"数据录入成功,想继续录入吗(y/n)"&l

17、t;<endl; cin>>c; flag2=0; do if(c!='y'&&c!='n') cout<<"指令错误!请重新输入!"<<endl; cin>>c; else flag2=1; while(flag2=0); while(c='y'); break; case '1': char name20;double much; char c; do cout<<"请输入您要增加的职工的姓名:"<&

18、lt;endl; cin>>name; cout<<"请输入产品数量"<<endl; cin>>much; filej=new ofstream("d:document",ios:ate); *filej<<"姓名"<<name<<"产品数量"<<much<<endl; j+; si=new stu(name, much); i+; cout<<"数据录入成功,想继续录入吗(y/n)&q

19、uot;<<endl; cin>>c; if(c!='y'&&c!='n') cout<<"指令错误!请重新输入!"<<endl; cin>>c; while(c='y'); break; case '2': char name20;bool flag3=0;char c; do cout<<"请输入您要删除的职工姓名:"<<endl; cin>>name; for(int h=0

20、;h<i;h+) if(strcmp(name,sh->name)=0) flag3=1; i-; do sh=sh+1; h+; while(h<=i); if(flag3=0) cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!" cout<<"要继续删除吗?(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') cout<<"指令错误!请重新输入!"<<

21、endl; cin>>c; while(c='y'); break; case '3': char name20;double mat;flag2=0; char c; do cout<<"请输入您要修改的职工的姓名:"<<endl; cin>>name; for(int h=0;h<i;h+) if(strcmp(name,sh->name)=0) flag2=1; cout<<"请输入新完成的产品数量:"<<endl; cin>&

22、gt;mat; sh->much+=mat; cout<<"数据添加成功!" if(flag2=0) cout<<"您要修改的职工本来就不存在!请检查重新输入!"<<endl; cout<<"想继续修改吗(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') cout<<"指令错误!请重新输入!"<<endl; cin>>c; w

23、hile(c='y'); break; case '4': double t;char c; do int flag1=0; cout<<"请输入你要查询职工的总产品数量"<<endl; cin>>t; for(int q=0;q<i;q+) if(sq->getsum()=t) flag1=1; cout<<"您要查询的职工是:"<<(*sq).name<<endl; if(flag1=0) cout<<"对不起!您

24、要查询的职工不存在!"<<endl; cout<<"您想继续查询吗?(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') cout<<"指令错误!请重新输入!"<<endl; cin>>c; while(c='y'); break; case '5': char n20;int j=0;char c; do int flag=0; cout<<

25、"请输入你要查询的职工姓名"<<endl; cin>>n; for(int j=0;j<i;j+) if(strcmp(n,(*sj).name)=0) flag=1; cout<<"您要查询的职工是:"<<(*sj).name<<endl; cout<<(*sj).name<<"的总产品数量是"<<(*sj).getsum()<<endl; if(flag=0) cout<<"对不起!您要查询的职工

26、不存在!"<<endl; cout<<"您想继续查询吗?(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') cout<<"指令错误!请重新输入!"<<endl; cin>>c; while(c='y'); break; case '6': cout<<"本系统所有职工数据如下:"<<endl; if(i=0)

27、cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl; for(int k=0;k<i;k+) cout<<k+1<<" "<<"姓名:"<<" "<<sk->name<<"总产品数量:"<<" "<<(*sk).getsum() <<endl; break; case '7': int t;stu

28、b; cout<<"本系统所有职工排名如下:"<<endl; for(int x=0;x<i-1;x+) t=x; for(int y=x+1;y<i;y+) if(st->getsum()<(sy->getsum() t=y; if(t!=x) b=*sx; *sx=*st; *st=b; if(i=0) cout<<"管理系统中没有录入数据或者数据已经被删除!" for(int k=0;k<i;k+) cout<<k+1<<" "<

29、;<"姓名:"<<" "<<sk->name <<"总产品数量:"<<" "<<sk->getsum() <<endl; break; case '9': int t;stu b; cout<<"本系统所以职工总产品数量排名如下:"<<endl; for(int x=0;x<i-1;x+) t=x; for(int y=x+1;y<i;y+) if(st->much)<(sy->much) t=y; if(t!=x) b=*st; *st=*sx; *sx=b; if(i=0) cout<<"管理系统中没有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论