C语言课程设计职工工作量统计系统Word格式文档下载.docx
《C语言课程设计职工工作量统计系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计职工工作量统计系统Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
1、职工基本信息录入;
2、工作量累加;
3、按照量化得分排序;
4、删除某职工信息;
5、浏览所有员工信息表;
6、查询莫员工信息;
7、修改某员工信息;
8、结束程序,将数据写入文件。
(2)、输入职工基本信息
是
否
(3)、工作量输入并累加
(4)、职工按照量化得分排序
设计框图如下:
(5)、查询、修改或删除某工号人员信息
具体的设计框图如下:
(6)、信息浏览功能
(7)、信息查询功能详细
(8)、信息修改功能详细
(9)、信息删除功能
四、各功能实现后的展示
1、菜单界面:
2、职工信息输入界面
3、职工信息浏览界面
4、按量化得分排序后界面
5、查询职工信息功能界面
6、修改职工信息界面
7、删除职工信息功能界面
可见相比较于刚才,删去了4号职工张亮。
8、工作量累加界面
可以看到2号职工赵天宇的工作量直接累加上了
五、附录一
1、程序清单
2、#include<
stdio.h>
3、#include<
stdlib.h>
4、#include<
string.h>
5、#defineFILENAME"
d:
\\worker.bin"
6、#defineN100
7、structworker
8、{
9、intempnum;
/*工号*/
10、charname[20];
/*姓名*/
11、charsex[5];
/*性别*/
12、charbirthday[30];
/*生日*/
13、charDep[20];
/*系别*/
14、intage;
/*年龄*/
15、doubleTeachworkload;
/*教育工作量*/
16、doubleScientficworkload;
/*科研工作量*/
17、doubleQscore;
/*量化得分*/
18、intgrade;
/*该员工的排名名次*/
19、charPosition[30];
/*职称*/
20、};
21、/*******************************************************
22、定义
23、*******************************************************/
24、voidxinxi()
25、{
26、printf("
\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
);
27、printf("
+职工工作量统计系统+\n"
28、printf("
++\n"
29、printf("
+1.职工基本信息输入+\n"
30、printf("
31、printf("
+2.工作量累加+\n"
32、printf("
33、printf("
+3.按照量化得分排序+\n"
34、printf("
35、printf("
+4.删除某职工信息+\n"
36、printf("
37、printf("
+5.浏览所有员工信息表+\n"
38、printf("
39、printf("
+6.查询某员工信息+\n"
40、printf("
41、printf("
+7.修改某员工信息+\n"
42、printf("
43、printf("
+8.结束程序,将数据写入文件+\n"
44、printf("
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
45、}
46、/*******************************************************
47、显示菜单
48、*******************************************************/
49、voidQscore1(structworkerw[],intlength)
50、{
51、inti=0,sum1=0,sum2=0;
52、for(i=0;
i<
length;
i++)
53、{
54、sum1+=w[i].Teachworkload;
55、sum2+=w[i].Scientficworkload;
56、}
57、//returnw[j].Qscore=(w[j].Scientficworkload/sum2)*(1/2)+(w[j].Teachworkload/sum1)*(1/2);
58、for(i=0;
59、{
60、w[i].Qscore=w[i].Scientficworkload/sum2*0.5+w[i].Teachworkload/sum1*0.5;
61、}
62、}
63、/******************************************************
64、计算量化得分
65、*******************************************************/
66、intreadFromFile(structworkerw[])
67、{
68、FILE*fp=NULL;
69、inti=0;
/*i用来循环判断人数*/
70、
71、fp=fopen(FILENAME,"
rb"
/*打开文件,文件指针指向内部数据*/
72、
73、if(fp!
=NULL)
74、{
75、
76、while(!
feof(fp))/*从文件中读入工作人员*/
77、{
78、
79、if(i>
=N)/*如果溢出,则跳出文件*/
80、break;
81、if(fread(w+i,sizeof(worker),1,fp)==1)
82、i++;
83、}
84、
85、fclose(fp);
/*关闭文件*/
86、}
87、returni;
88、}
89、/*******************************************************
90、信息显示到屏幕
91、*******************************************************/
92、intf(structworkerw[],intlength)
93、{
94、inti=length,j=0,flag=1;
/*i用来表示已经录入过信息的人数*/
95、while(i<
N)
96、{
97、printf("
第%d个职工\n"
i+1);
/*显示下一个需要输入信息的员工是第几个员工*/
98、printf("
\n"
99、printf("
请你输入工号(以职工号为0结束输入):
\n)"
/*输入职工号信息*/
100、scanf("
%d"
&
w[i].empnum);
101、if(w[i].empnum==0)break;
102、printf("
103、printf("
104、for(j=0;
j<
j++)
105、{
106、if(w[j].empnum==w[i].empnum)
107、{
108、flag=0;
109、printf("
该职工号人员已经存在,请重新输入"
110、}
111、}
112、if(flag==0)break;
/*如果职工已经存在那么跳出程序*/
113、printf("
请你输入该员工的姓名:
/*开始输入该员工的各类基本信息*/
114、scanf("
%s"
w[i].name);
115、printf("
请你输入该员工的性别:
116、scanf("
w[i].sex);
117、printf("
请输入该员工的年龄:
118、scanf("
w[i].age);
119、printf("
请输入该员工的出生年月日(格式1995/03/23):
120、scanf("
w[i].birthday);
121、printf("
请输入该员工的系别:
122、scanf("
w[i].Dep);
123、printf("
请你输入该员工的教育工作量(单位:
小时):
124、scanf("
%lf"
w[i].Teachworkload);
125、printf("
126、printf("
请你输入该员工的科研工作量(单位:
127、scanf("
w[i].Scientficworkload);
128、//printf("
请你输入该员工的量化的分(单位:
分)"
w[i].Qscore);
129、//scanf("
w[i].Qscore);
130、printf("
请你输入该员工的职位:
131、scanf("
w[i].Position);
132、printf("
133、i++;
134、}
135、Qscore1(w,length);
136、returni;
137、}
138、/*******************************************************
139、功能:
输入职工基本信息
140、*******************************************************/
141、voidinput(structworker