tightening-新宠儿
湖
北
师
范
学
院
计
科
院
C
语言课程设计报告
题目:
职工工作量统计系统
完成人:
赵天宇、梁可
学号:
20
20
批阅人:
夏
端
峰
p>
2014
年
6
月<
/p>
15
日
目录
一、
课程设计的目的与意义
.
............................................ ..............
错误
!
未定义书签。
二、
总体设计思路
.
................................................ ..........................
错误
!
未定义书签。
三、
详细设计
.
..................................................
................................
错误
!
未定义书签。
1
、
模块功能介绍
.
................................................ ......................
错误
!
p>
未定义书签。
(
1
)
、菜单设计
.
....................................
..................................
错误
p>
!
未定义书签。
(
2
)
、输入职工基本信息
.
....................
..................................
错误
p>
!
未定义书签。
(
3
)
、工作量输入并累加
.
....................
..................................
错误
p>
!
未定义书签。
(
4
)
、职工按照量化得分排序
.
..................
............................
错误
< br>!
未定义书签。
(
5
)
、查询、修改或删除某工号人员信息
...........................
错误
!
未定义书签。
(
6
)
、信息
浏览功能
.
...........
..................................................
.
错误
!
未定义书签。
(
7
)
< br>、信息查询功能详细
.
...
..................................................
.
错误
!
未定义书签。
(
8
)
< br>、信息修改功能详细
.
...
..................................................
.
错误
!
未定义书签。
(
9
)
< br>、信息删除功能
.
.....
..................................................
.......
错误
!
未定义书签。
四、
各功能实现后的展示
.
.............................................
.................
错误
!
未定义书签。
1
、
菜单界面:
.
.................................................
.........................
错误
!
未定义书签。
2
、
职工信息输入界面
.
..............................................
................
错误
!
< br>未定义书签。
3
、
职工信息浏览界面
.
..............................................
................
错误
!
< br>未定义书签。
4
、
按量化得分排序后界面
.
............................................ ..........
错误
!
未定义
书签。
5
、
查询职工信息功能界面
.
............................................ ..........
错误
!
未定义
书签。
6
、
修改职工信息界面
.
..............................................
................
错误
!
< br>未定义书签。
7
、
删除职工信息功能界面
.
............................................ ..........
错误
!
未定义
书签。
8
、
工作量累加界面
.
< br>............................................... ...................
错误
!
未定义书签。
五、
附录一
.
.
..................................................
...................................
错误<
/p>
!
未定义书签。
1
、
程序清单
.
..................................................
............................
错误
< br>!
未定义书签。
六、
附录二:小组分工
.
..............................................
....................
错误
!
未定义书签。
一、
课
程设计的目的与意义
作为一门课程,
通过课程设计的实践环节的教学,
可
以加深对课堂所学基础
知识的掌握与理解,
提高所学内容的综合
运用能力;
同时也可以通过查询相关资
料,培养学生自学能力、
接受新知识的能力,提高学习兴趣;增强学生程序设计
能力,掌握编程技巧,并可培养学
生实际上机调试程序的能力。
“理论与实践”
相结合,使学生得
到很好的锻炼,为以后学习、工作打下坚实的基础。
作为学生
,
我们可以通过查阅相关资料,
编写相关程序来增加自己的编程
经
验,
强化自己的自主学习能力,
强化
自身的编程实践能力,
掌握一定的软件开发
流程。
二、
总
体设计思路
设计框图如下:
职工工作量统计系统
菜单设计
录入职工信息
工作量输入
查询职工信息
职工信息按量化得分排序
职工信息的删除
浏览职工信息
结束程序
三、
详
细设计
1
、
模
块功能介绍
(
1
)
、菜单设计
< br>
菜单界面大致设计为:
职工工作量统计系统
1
、
2
、
3
、
4
、
5
、
6
、
7
、
8
、
职工基本信息录入;
工作量累加;
按照量化得分排序;
删除某职工信息;
浏览所有员工信息表;
查询莫员工信息;
修改某员工信息;
结束程序,将数据写入文件。
(
p>
2
)
、输入职工基本信息
< br>
设计框图如下:
是
否
(
3
p>
)
、工作量输入并累加
设计框图如下:
< br>(
4
)
、职工按照量化得分排序
设计框图如下
:
(
5
p>
)
、查询、修改或删除某工号人员信息
具体的设计框图如下:
(
6
)
、信息浏览功能<
/p>
设计框图如下:
(
7
p>
)
、信息查询功能详细
设计框图如下:
(
8
)
p>
、信息修改功能详细
设计框图如下:
(
9
)
p>
、信息删除功能
设计框图如下:
四、
各
功能实现后的展示
1
、
菜
单界面:
2
、
职
工信息输入界面
3
、
职
工信息浏览界面
4
、
按
量化得分排序后界面
5
、
查
询职工信息功能界面
6
、
修
改职工信息界面
7
、
删
除职工信息功能界面
可见相比较于刚才,删去了
4
号职工张亮。
8
、
工
作量累加界面
可以看到
2
号职工赵天宇的工作量直接累加上了
五、
附
录一
1
、
程
序清单
2
、
#include
<>
3
、
#include
<>
4
、
#include
<>
5
、
#define
FILENAME
6
、
#define
N 100
7
、
struct
worker
8
、
{
9
、
int
empnum;
/*
工号
*/
char
name[20];
/*
姓名
*/
char
sex[5];
/*
性别
*/
char
birthday[30];
/*
生日
*/
10
、
11
、
12
、
13
、
char
Dep[20];
/*
系别
*/
14
、
15
、
16
、
17
、
18
、
19
、
20
、
};
21
、
/*
**************************************************
*
***
22
、
定义
23
、
<
/p>
****************************************
***************/
24
、
void
xinxi()
25
、
{
26
、
int
age;
/*
年龄
*/
double
Teachworkload;
/*
教育
工作量
*/
double
Scientficworkload;
/*
科研
工作量
*/
double
Qscore;
<
/p>
/*
量化得分
*/
int
grade;
/*
该员工的排名名次
*/
char
Position[30];
/*
职称
*/
printf(
++++++++++
+n
);
27
、
+n
);
28
、
+n
);
printf(
职工工作量统计系统
printf(
29
、
printf(
1.
职工基本信息输入
+n
);
30
、
+n
);
31
、
+n
);
32
、
+n
);
33
、
+n
);
34
、
+n
);
35
、
+n
);
36
、
+n
);
37
、
+n
);
printf(
printf(
printf(
printf(
printf(
printf(
printf(
printf(
2.
工作量累加
3.
按照量化得分排序
4.
删除某职工信息
5.
浏览所有员工信息表
38
、
printf(
+n
);
39
、
printf(
6.
查询某员工信息
+n
);
40
、
+n
);
41
、
+n
);
42
、
+n
);
43
、
printf(
8.
结束程序,将数据写
入文件
+n
);
44
、
printf(
printf(
printf(
7.
修改某员工信息
printf(
++++++++++++n
);
45
、
}
46
、
/*
**************************************************
*
***
47
、
显示菜单
48
、
<
/p>
****************************************
***************/
49
、
void
Qscore1(
struct
worker
w[],
int
length)
50
、
{
51
、
52
、
53
、
54
、
55
、
56
、
57
、
int
i=0,sum1=0,sum2=0;
for
sum2+=w[i].Scientficworkload;
(i=0;i
{
}
score=(w[j].Sci
entficworkload/sum2)*(1/2)+(w[j].Teachworkl
sum1+=w[i].Teachworkload;
oad/sum1)*(1/2);
58
、
59
、
60
、
w[i].Qscore=w[i].Scientficw
orkload/sum2*+w[i].Teachworkload/s
for
p>
(i=0;i
{
um1*;
61
、
62
、
}
63
、
/*
**************************************************
*
**
64
、
计算量化得分
65
、
<
/p>
****************************************
***************/
66
、
int
readFromFile(
struct
worker
w[])
}
67
、
{
68
、
69
、
70
、
71
、
<
/p>
fp=fopen(FILENAME,
);
/*
打开文件,文件指针指向内
FILE *fp=NULL;
int
i=0;
/*i
用来循环判断人数
*/
部数据
*/
72
、
73
、
74
、
{
75
、
76
、
77
、
while
(!feof(fp))
p>
/*
从文件中读入工作人员
*/
{
if
(fp!=NULL)
78
、
79
、
80
、
81
、
82
、
83
、
84
、
85
、
86
、
}
fclose(fp);
/*<
/p>
关闭文件
*/
}
if
(i>=N)
p>
/*
如果溢出,则跳出文件
*/
break
;
if
(fread(w+i,
sizeof
< br>(worker),1,fp)==1)
i++;
87
、
return
i;
88
、
}
89
、
/*
**************************************************
*
***
90
、
信息显示到屏幕
91
、
<
/p>
****************************************
***************/
92
、
int
f(
struct
worker
w[],
int
length)
93
、
{
94
、
int
i=length,j=0,flag=1;
/*i
用来表示已经录入过
信息的人数
*/
95
、
96
、
97
、
while
):n)
(i
{
pri
ntf(
第
%d
个职工
n
,i+1);
/*
显示下一个需要
输入信息的员工是第几个员工
*/
98
、
99
、
pri
ntf(
);
printf(
请你输入工号
(
p>
以职工号为
0
结束输入
);
/*
输入
职工号信息
*/
100
、
101
、
102
、
103
、
104
、
scanf(
,&w[i].empnum);
if
(w[i].empnum==0)
break
;
printf(
);
printf(
);
p>
for
(j=0;j