C语言程序设计职工工作量统计系统设计.docx

上传人:b****5 文档编号:7664029 上传时间:2023-01-25 格式:DOCX 页数:24 大小:372.52KB
下载 相关 举报
C语言程序设计职工工作量统计系统设计.docx_第1页
第1页 / 共24页
C语言程序设计职工工作量统计系统设计.docx_第2页
第2页 / 共24页
C语言程序设计职工工作量统计系统设计.docx_第3页
第3页 / 共24页
C语言程序设计职工工作量统计系统设计.docx_第4页
第4页 / 共24页
C语言程序设计职工工作量统计系统设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C语言程序设计职工工作量统计系统设计.docx

《C语言程序设计职工工作量统计系统设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计职工工作量统计系统设计.docx(24页珍藏版)》请在冰豆网上搜索。

C语言程序设计职工工作量统计系统设计.docx

C语言程序设计职工工作量统计系统设计

学院

程序设计工程训练报告

 

C语言程序设计职工工作量统计系统设计

课程名称C语言程序设计工程训练

姓名

院(系)信息科学与技术学院

专业班级

学号

指导教师

 

教务处制

1需求分析

设计职工工作量统计系统,使之能提供以下功能:

●系统以菜单方式工作

●输入职工工号和完成的产品数量,允许同一职工有多次输入

●对其完成的产品数量实现累计。

程序按完成数量对他们排序,并确定他们的名次

●完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)

●要求程序用有序链表存储数据信息。

2系统总框图和功能模块说明

2.1系统总框图

图1系统总框图

2.2功能模块说明

1、输入信息模块,完成信息录入功能,把用户从终端键盘输入的信息(工作量,工号,姓名)保存在系统中。

2、浏览信息模块,完成信息输出功能,把系统中已经保存的信息输出,查看排名等

3、初始化系统模块,完成系统初始化操作。

4.输出模块,按需求输出信息。

5、退出系统模块,完成关闭程序操作。

6、修改信息模块,包括修改或添加或删除职工工作量,姓名等信息。

3系统设计

3.1主要结构体

#include

#include

#include

classstu

{

charname[20];

doublemuch,sum;

public:

stu()

{

}

stu(charn[20],doublemuc)

{

strcpy(name,n);

much=muc;

}

doublegetsum()

{

sum=much;

returnsum;

}

friendvoidmain();

};

3.2主要功能函数

输入信息函数

此模块是输入职工信息模块的函数,输入职工的姓名,工号,及工作量。

do{

switch(p)

{

case'0':

{

charc;

charname[20];doublemuch;

do{

cout<<"请输入职工姓名"<

cin>>name;

cout<<"请输入产品数量:

"<

cin>>much;

file[j]=newofstream("d:

\\document",ios:

:

ate);

*file[j]<<"姓名"<

j++;

s[i]=newstu(name,much);

i++;

cout<<"数据录入成功,想继续录入吗(y/n)"<

cin>>c;

flag2=0;

修改工作量函数

此模块要求修改,删除工作量的函数

{

cout<<"请输入您要增加的职工的姓名:

"<

cin>>name;

cout<<"请输入产品数量"<

cin>>much;

file[j]=newofstream("d:

\\document",ios:

:

ate);

*file[j]<<"姓名"<

j++;

s[i]=newstu(name,much);

i++;

}

{

do{

cout<<"请输入您要删除的职工姓名:

"<

cin>>name;

for(inth=0;h

{

if(strcmp(name,s[h]->name)==0)

{

flag3=1;

i--;

do{

s[h]=s[h+1];

h++;

}while(h<=i);

}

}

{cout<<"请输入您要修改的职工的姓名:

"<

cin>>name;

for(inth=0;h

{

if(strcmp(name,s[h]->name)==0)

{

flag2=1;

cout<<"请输入新完成的产品数量:

"<

cin>>mat;

s[h]->much+=mat;

cout<<"数据添加成功!

";

}

查询模块函数

此函数提供查询职工工作量,及排名的功能

do{

intflag=0;

cout<<"请输入你要查询的职工姓名"<

cin>>n;

for(intj=0;j

{

if(strcmp(n,(*s[j]).name)==0)

{

flag=1;

cout<<"您要查询的职工是:

"<<(*s[j]).name<

cout<<(*s[j]).name<<"的总产品数量是"<<(*s[j]).getsum()<

}

 

for(intk=0;k

{

cout<

"<<""<name<<"总产品数量:

"<<""<<(*s[k]).getsum()<

}

break;

}

case'7':

{

intt;stub;

cout<<"本系统所有职工排名如下:

"<

for(intx=0;x

{

t=x;

for(inty=x+1;y

{

if((s[t]->getsum())<(s[y]->getsum()))

t=y;

if(t!

=x)

{

b=*s[x];

*s[x]=*s[t];

*s[t]=b;

}

 

3.3关键函数流程图

主函数流程图:

 

输入模块流程图

修改模块函数流程图

4.系统调试及运行界面

显示菜单

输入职工信息界面

输出职工工作量排名

删除职工信息界面

添加职工信息界面

5.设计总结(课程设计心得与体会)

经过几天的C语言课程设计,感觉自己收获不少!

这个课程设计里面主要都是用链表,因为要达到这样的功能,使用链表相当方便,但不容易理解,所以在这方面我很了很多的时间看课本和参考课外书,使C语言的知识强化了不少。

其次,在做课程设计的过程中,发现了平时很多没有注意到的问题,例如:

返回值函数和不返回值函数两者在主函数中的调用是不同的…………

更重要的是,这次课程设计虽然花了我不少时间,但正是这些时间,让我见识到了C语言的重要性。

由于这是第一次进行设计,写文档,难免会写得不好!

请见谅!

 

6.程序代码

#include

#include

#include

classstu

{

charname[20];

doublemuch,sum;

public:

stu()

{

}

stu(charn[20],doublemuc)

{

strcpy(name,n);

much=muc;

}

doublegetsum()

{

sum=much;

returnsum;

}

friendvoidmain();

};

voidmain()

{

cout<<"请选择您需要的操作!

"<

cout<<"操作:

"<

cout<<"(0)职工数据录入"<

cout<<"

(1)增加职工人员"<

cout<<"

(2)删除职工人员"<

cout<<"(3)新完成的需要添加的产品数量数据"<

cout<<"查询:

"<

cout<<"(4)按总产品数量查询"<

cout<<"(5)按职工姓名查询"<

cout<<"(6)输出所有职工的数据"<

cout<<"生产量排名名次"<

cout<<"(7)按职工生产的总产品数量查询排名"<

cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!

"<

charp;charw;

stu*s[50];

ofstream*file[50];

inti=0;

intj=0;

boolflag2=0;

do

{

cin>>p;

if((p>='0'&&p<='10'))

flag2=1;

else

cout<<"指令错误!

请重新输入:

"<

}while(flag2==0);

do{

switch(p)

{

case'0':

{

charc;

charname[20];doublemuch;

do{

cout<<"请输入职工姓名"<

cin>>name;

cout<<"请输入产品数量:

"<

cin>>much;

file[j]=newofstream("d:

\\document",ios:

:

ate);

*file[j]<<"姓名"<

j++;

s[i]=newstu(name,much);

i++;

cout<<"数据录入成功,想继续录入吗(y/n)"<

cin>>c;

flag2=0;

do

{

if(c!

='y'&&c!

='n')

{

cout<<"指令错误!

请重新输入!

"<

cin>>c;

}

else

flag2=1;

}while(flag2==0);

}while(c=='y');

break;

}

case'1':

{

charname[20];doublemuch;

charc;

do

{

cout<<"请输入您要增加的职工的姓名:

"<

cin>>name;

cout<<"请输入产品数量"<

cin>>much;

file[j]=newofstream("d:

\\document",ios:

:

ate);

*file[j]<<"姓名"<

j++;

s[i]=newstu(name,much);

i++;

cout<<"数据录入成功,想继续录入吗(y/n)"<

cin>>c;

if(c!

='y'&&c!

='n')

{

cout<<"指令错误!

请重新输入!

"<

cin>>c;

}

}while(c=='y');

break;

}

case'2':

{

charname[20];boolflag3=0;charc;

do{

cout<<"请输入您要删除的职工姓名:

"<

cin>>name;

for(inth=0;h

{

if(strcmp(name,s[h]->name)==0)

{

flag3=1;

i--;

do{

s[h]=s[h+1];

h++;

}while(h<=i);

}

}

if(flag3==0)

cout<<"您要求删除的对象本来就不存在!

请检查输入的正确性!

";

cout<<"要继续删除吗?

(y/n)"<

cin>>c;

if(c!

='y'&&c!

='n')

{

cout<<"指令错误!

请重新输入!

"<

cin>>c;

}

}while(c=='y');

break;

}

case'3':

{

charname[20];doublemat;flag2=0;

charc;

do

{

cout<<"请输入您要修改的职工的姓名:

"<

cin>>name;

for(inth=0;h

{

if(strcmp(name,s[h]->name)==0)

{

flag2=1;

cout<<"请输入新完成的产品数量:

"<

cin>>mat;

s[h]->much+=mat;

cout<<"数据添加成功!

";

}

}

if(flag2==0)

{

cout<<"您要修改的职工本来就不存在!

请检查重新输入!

"<

}

cout<<"想继续修改吗(y/n)"<

cin>>c;

if(c!

='y'&&c!

='n')

{

cout<<"指令错误!

请重新输入!

"<

cin>>c;

}

}while(c=='y');

break;

}

case'4':

{

doublet;charc;

do

{

intflag1=0;

cout<<"请输入你要查询职工的总产品数量"<

cin>>t;

for(intq=0;q

{

if(s[q]->getsum()==t)

{

flag1=1;

cout<<"您要查询的职工是:

"<<(*s[q]).name<

}

}

if(flag1==0)

cout<<"对不起!

您要查询的职工不存在!

"<

cout<<"您想继续查询吗?

(y/n)"<

cin>>c;

if(c!

='y'&&c!

='n')

{

cout<<"指令错误!

请重新输入!

"<

cin>>c;

}

}

while(c=='y');

break;

}

case'5':

{

charn[20];intj=0;charc;

do{

intflag=0;

cout<<"请输入你要查询的职工姓名"<

cin>>n;

for(intj=0;j

{

if(strcmp(n,(*s[j]).name)==0)

{

flag=1;

cout<<"您要查询的职工是:

"<<(*s[j]).name<

cout<<(*s[j]).name<<"的总产品数量是"<<(*s[j]).getsum()<

}

}

if(flag==0)

cout<<"对不起!

您要查询的职工不存在!

"<

cout<<"您想继续查询吗?

(y/n)"<

cin>>c;

if(c!

='y'&&c!

='n')

{

cout<<"指令错误!

请重新输入!

"<

cin>>c;

}

}

while(c=='y');

break;

}

case'6':

{

cout<<"本系统所有职工数据如下:

"<

if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!

"<

for(intk=0;k

{

cout<

"<<""<name<<"总产品数量:

"<<""<<(*s[k]).getsum()<

}

break;

}

case'7':

{

intt;stub;

cout<<"本系统所有职工排名如下:

"<

for(intx=0;x

{

t=x;

for(inty=x+1;y

{

if((s[t]->getsum())<(s[y]->getsum()))

t=y;

if(t!

=x)

{

b=*s[x];

*s[x]=*s[t];

*s[t]=b;

}

}

}

if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!

";

for(intk=0;k

{

cout<

"<<""<name

<<"总产品数量:

"<<""<getsum()<

}

break;

}

case'9':

{

intt;stub;

cout<<"本系统所以职工总产品数量排名如下:

"<

for(intx=0;x

{

t=x;

for(inty=x+1;y

{

if((s[t]->much)<(s[y]->much))

t=y;

if(t!

=x)

{

b=*s[t];

*s[t]=*s[x];

*s[x]=b;

}

}

}

if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!

";

for(intk=0;k

{

cout<

"<<""<name

<<"产品数量:

"<<""<getsum()<

}

break;

}

}

cout<<"您想继续进行其他操作吗?

(y/n)"<

boolflag4=0;

do

{

cin>>w;

if(w!

='y'&&w!

='n')

cout<<"指令错误!

请重新输入!

"<

else

flag4=1;

}while(flag4==0);

if(w=='y')

cout<<"请输入操作代码:

(0)职工数据录入;

(1)增加职工人员;

(2)删除职工人员;(3)新完成需要添加的产品数量数据;(4)按总产品数量查询;(5)按职工姓名查询;(6)输出所有职工的数据;(7)按职工生产的总产品数量查询排名"<

cin>>p;

}while(w=='y');

for(intx=0;x

{

deletes[x];

cout<<"删除所有数据成员"<

}

 

程序设计工程训练成绩评定标准表

明细项目

评分等级(含系数)

评分分值

实际得分

考勤

A

(1)

B(0.8)

C(0.5)

D(0.0)

10

工程项目规范

A

(1)

B(0.8)

C(0.5)

D(0.2)

10

工程训练报告

A

(1)

B(0.8)

C(0.5)

D(0.2)

30

设计作品质量

A

(1)

B(0.8)

C(0.5)

D(0.2)

45

材料收集情况

A

(1)

B(0.8)

C(0.5)

D(0.2)

5

综合评分

90-100

80-89

70-79

合格

60-69

不合格

0-59

该生成绩为:

,指导老师(签名):

评定日期:

年月日

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1