C语言课程设计职工工作量统计系统.docx
- 文档编号:9118710
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:37
- 大小:239.11KB
C语言课程设计职工工作量统计系统.docx
《C语言课程设计职工工作量统计系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计职工工作量统计系统.docx(37页珍藏版)》请在冰豆网上搜索。
C语言课程设计职工工作量统计系统
湖北师范学院计科院
C语言课程设计报告
题目:
职工工作量统计系统
完成人:
赵天宇、梁可
学号:
20
20
批阅人:
夏端峰
2014年6月15日
一、课程设计的目的与意义错误!
未定义书签。
二、总体设计思路.错误!
未定义书签。
三、详细设计.错误!
未定义书签。
1、模块功能介绍
错误!
未定义书签。
(1)、菜单设计错误!
未定义书签。
(2)、输入职工基本信息错误!
未定义书签。
(3)、工作量输入并累加错误!
未定义书签。
(4)、职工按照量化得分排序错误!
未定义书签。
(5)、查询、修改或删除某工号人员信息错误!
未定义书签。
(6)、信息浏览功能错误!
未定义书签。
(7)、信息查询功能详细错误!
未定义书签。
(8)、信息修改功能详细错误!
未定义书签。
(9)、信息删除功能错误!
未定义书签。
四、各功能实现后的展示.错误!
未定义书签。
1、菜单界面:
错误!
未定义书签。
错误!
未定义书签。
五、附录一.错误!
未定义书签。
1、程序清单
错误!
未定义书签。
六、附录二:
小组分工.错误!
未定义书签。
课程设计的目的与意义
作为一门课程,通过课程设计的实践环节的教学,可以加深对课堂所学基础知识的掌握与理解,提高所学内容的综合运用能力;同时也可以通过查询相关资料,培养学生自学能力、接受新知识的能力,提高学习兴趣;增强学生程序设计能力,掌握编程技巧,并可培养学生实际上机调试程序的能力。
“理论与实践”相结合,使学生得到很好的锻炼,为以后学习、工作打下坚实的基础。
作为学生,我们可以通过查阅相关资料,编写相关程序来增加自己的编程经验,强化自己的自主学习能力,强化自身的编程实践能力,掌握一定的软件开发流程。
、总体设计思路
设计框图如下:
职工工作量统计系统
三、详细设计
1、模块功能介绍
1)、菜单设计
菜单界面大致设计为:
职工工作量统计系统
1、职工基本信息录入;
2、工作量累加;
3、按照量化得分排序;
4、删除某职工信息;
5、浏览所有员工信息表;
6、查询莫员工信息;
7、修改某员工信息;
8、结束程序,将数据写入文件。
2)、输入职工基本信息
设计框图如下:
3)、工作量输入并累加
设计框图如下:
4)、职工按照量化得分排序
设计框图如下:
5)、查询、修改或删除某工号人员信息
具体的设计框图如下:
6)、信息浏览功能
设计框图如下:
7)、信息查询功能详细
8)、信息修改功能详细
9)、信息删除功能
设计框图如下:
1、菜单界面:
2、职工信息输入界面
3、职工信息浏览界面
4、按量化得分排序后界面
5、查询职工信息功能界面
可见相比较于刚才,删去了4号职工张亮。
8、工作量累加界面
可以看到2号职工赵天宇的工作量直接累加上了
五、附录
1、程序清单
2、
#include
<>
3、
#include
<>
4、
#include
<>
5、
#define
FILENAME"d:
\\
6、
#define
N100
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(
"+
+\n");
31、
printf(
"+
2.
工作量累加
+\n");
32、
printf(
"+
+\n");
33、
printf("+
3.
按照量化得分排序
+\n");
34、
printf(
"+
+\n");
35、
printf(
"+
4.
删除某职工信
息
+\n"
);
36、
printf(
"+
+\n");
37、
printf(
"+
5.
浏览所有员工
38、
printf(
"+
+\n");
39、
printf(
"+
6.
查询某员工
信息
+\n"
);
40、
printf(
"+
+\n");
41、
printf(
"+
7.
修改某员工信
息
+\n"
);
42、
printf(
"+
+\n");
43、
printf(
"+
8.
结束程序,
将数据写入文件
+\n"
);
信息表
+\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 54、 53、{ sum1+=w[i].Teachworkload; 55、sum2+=w[i].Scientficworkload; 56、} 57、score=(w[j].Scientficworkload/sum2)*(1/2)+(w [j].Teachworkload/sum1)*(1/2); 58、for(i=0;i 59、{ 60、 w[i].Qscore=w[i].Scientficworkload/sum2*+w[i].Teachworkload/sum1*; 61、} 62、} 63、/********************************************** 64、计算量化得分 66、intreadFromFile(structworkerw[]) 67、{ 68、FILE*fp=NULL; 69、inti=0;/*i用来循环判断人 数*/ 70、 71、fp=fopen(FILENAME,"rb");/*打开文件,文件指 if(fread(w+i, sizeof(worker),1,fp)==1) 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 96、{ 97、printf("第%d个职工\n",i+1);/*显示 下一个需要输入信息的员工是第几个员工*/ 98、printf("\n"); 101、 if(w[i].empnum==0)break; 102、 printf("\n"); 103、 printf("\n"); 104、 for(j=0;j 105、 { 106、 if(w[j].empnum==w[i].empnum) 107、 { 108、 flag=0; 109、 printf("该职工号人员已经存在,请 重新输入"); 110、 } 111、 } 112、 if(flag==0)break;/*如果职工 已经存在那么跳出程序*/ printf("请你输入工号(以职工号为0结束输 入): \n)" );/*输入职工号信息*/ 100、 scanf("%d",&w[i].empnum); 99、 113、printf("请你输入该员工的姓名: \n"); /*开始输入该员工的各类基本信息*/ 114、 scanf("%s",&w[i].name); 115、 printf("请你输入该员工的性别: \n" 116、 scanf("%s",&w[i].sex); 117、 printf("请输入该员工的年龄: \n"); 118、 scanf("%d",&w[i].age); 119、 printf("请输入该员工的出生年月日(格式 1995/03/23): \n" ); 120、 scanf("%s",&w[i].birthday); 121、 printf("请输入该员工的系别: \n"); 122、 scanf("%s",&w[i].Dep); 123、 printf("请你输入该员工的教育工作量 (单 位: 小时): \n"); 124、 scanf("%lf",&w[i].Teachworkload); 125、 printf("\n"); 126、 printf("请你输入该员工的科研工作量 (单 位: 小时): \n"); 127、 scanf("%lf",&w[i].Scientficworkload); 128、 score); 129、 score); 130、 printf("请你输入该员工的职位: \n") 131、 scanf("%s",&w[i].Position); 132、 printf("\n"); 133、 i++; 134、 } 135、 Qscore1(w,length); 137、 } 138、 /******************************************* 136、 returni; 139、 功能: 输入职工基本信息 140、 / 141、 voidinput(structworkerw[],intlength) 142、 { 143、 inti=1,empnum;/*i用来寻找需要累加工作量 的员工*/ 144、 doubleScientficworkload,Teachworkload; 145、 printf("请输入工号: \n");/*用来查找某位 工人*/ 146、 scanf("%d",&empnum); 147、 if(empnum==0) 148、 { 149、 printf("输入错误请重新输入"); 150、 getchar(); 151、 scanf("%d",&empnum); 152、 } 154、{ 155、printf("请输入新完成教育工作量(单位: 小 时,无增加请填0): \n");/*输入各类新增工作量*/ 156、getchar(); 157、scanf("%lf",&Teachworkload); 158、printf("请输入新完成的科研工作量(单位: 小时,无增加请填0): \n"); 159、getchar(); 160、scanf("%lf",&Scientficworkload); 161、mpnum==empnum)/*找到该员工 存在,则累加新增工作量*/ 162、{ 163、 w[i].Scientficworkload+=Scientficworkload; 164、 w[i].Teachworkload+=Teachworkload; 165、 break; 166、 } 167、 } 168、 if(i>=length) /*如果员工不存在,提 示重新输入工号*/ 170、 printf( "工号不存在: \n 171、 printf( "请输入工号: \n 172、 scanf( "%d",&empnum); 173、 } 174、 Qscore1(w,length); 175、 } 176、 } 177、 /******************************************* ); ); 178、功能: 工作量输入并累加 179、 / 180、voidsortQscore(structworkerw[],intlength) /*选择法对量化得分进行排序*/ 181、 { 182、 inti=0,j=0,k=0; 183、 structworkers; /*结构体temp转换变量*/ 184、 for(i=0;i /*选择法对于量 化得分进行排序*/ 186、 k=i; 187、 for(j=i+1;j 188、 { 189、 if(w[j].Qscore>w[k].Qscore)k=j; 190、 } 191、 /*交换w[i]andw[k]*/ 192、 s=w[k]; 193、 w[k]=w[i]; 194、 w[i]=s; 195、 } 、if(length>0)w[0].grade=1; 197、 for(i=1;i 化得分排序好后的人进行标上名次的操作*/ 198、 { 199、 if(w[i].Qscore==w[i-1].Qscore) w[i].grade=w[i-1].grade; 200、elsew[i].grade=w[i-1].grade+1; 201、} 202、printf("名次工号姓名年龄 性别生日系别职称教育工作量科研工作量量化得分\n");/*输出表头*/ 203、for(i=0;i 职工工作量信息表*/ 204、 { 205、 Qscore1(w,length); 206、 printf("%d\t",w[i].grade); 207、 printf("%d\t",w[i].empnum); 208、printf("%s\t",w[i].name); 209、 printf( "%d\t",w[i].age); 210、 printf( "%s\t",w[i].sex); 211、 printf( "%s\t",w[i].birthday); 212、 printf( "%s\t",w[i].Dep); 213、 printf( "%s\t",w[i].Position); 214、 printf( "%\t",w[i].Teachworkload); 215、 printf( "%\t",w[i].Scientficworkload); 216、 printf( "%\t",w[i].Qscore); 217、 printf( "\n"); 218、 printf( "\n"); 219、 } 220、 } 221、 /******************************************* 222、 按量化得分从大到小排序并标上名次并且输出 排序结果 / 224、intdelet(structworkerw[],intlength) 225、{ 226、inti=0,j=0; 227、charchoice;/*给用户来判断是否删除*/ 228、intempnum;/*所需要删除职工信息的工 号*/ 229、printf("请输入需要删除的员工职工号: \n"); 230、scanf("%d",&empnum);/*输入所需要删除的 职工号*/ 231、for(i=0;i 是否存在并输出该职工工号信息*/ 232、 { 233、 if (w[i].empnum==empnum) 234、 { 235、 printf("想删除的职工号为: " 236、 printf("%d\n",w[i].empnum); 237、 break; 238、 } 241、 { 242、 printf("你却定要删除这个职工信息吗 (Y/N)\n"); /*输出让用户确实是否删除*/ 243、 getchar(); 244、 scanf("%c",&choice); 245、 if(choice=='Y'||choice=='y') 246、 { 247、 for(j=i;j 248、 { 249、 w[j]=w[j+1]; 250、 } 251、 length--;/*删 除之后总人数减一*/ 252、 printf("删除成功"); 253、 } 254、 } 255、 elseprintf("\n指定员工不存在\n"); 256、 returnlength; 257、 } 258、 /******************************************* 259、 按职工号删除职工信息 260、 261、voidwriteToFile(structworkerw[],intlength) /*数据写入文件的功能函数*/ 262、 { 263、 FILE*fp=NULL; /*设置文件指针*/ 264、 int i=0; 265、 fp=fopen(FILENAME,"wb"); /*打开文件*/ 266、 if (fp==NULL)/*打开失败*/ 267、 { 268、 printf("打开文件出错! \n"); 269、 exit(0); 270、 } 271、 for(i=0;i /*循环写入文件每 一组结构体数据*/ 272、fwrite(w+i,sizeof(worker),1,fp);/*写 入每个结构体数据*/ 273、 274、 275、 276、 fclose(fp);/*关闭文件*/ } 277、结构体数组中的职工信息输出到 文件 278、 279、voidviewworker(structworkerw[],intlength) 280、{ 281、inti; 282、Qscore1(w,length); 283、mpnum); 284、printf( "%s\t",w[i].name); 285、 printf("%d\t",w[i].age); 286、 printf("%s\t",w[i].sex); 287、 printf("%s\t",w[i].birthday); 288、 printf("%s\t",w[i].Dep); 289、 printf("%s\t",w[i].Position); 290、 printf("%\t",w[i].Teachworkload); 291、 printf("%\t",w[i].Scientficworkload); 292、 printf( "%\t",w[i].Qscore); 293、 printf( "\n"); 294、 printf( "\n"); 296、 } 297、 voidSeek(structworkerw[],intlength) 298、 { 299、 inti; 300、 charDep[20]; 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 职工 工作量 统计 系统