C语言课程设计-职工信息管理系统程序设计
C语言课程设计报告
设计题目:职工信息管理系统程序设计
课程设计评语2
目 录3
1.课程论文题目4
2.程序设计思路4
3.功能模块图5
4.数据结构设计5
5.算法设计6
6.程序代码13
7.程序运行结果22
8.编程中遇到的困难及解决方法25
9.总结心得及良好建议26
10.致谢26
课程论文题目
职工信息管理系统程序设计
题目要求
职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:
系统以菜单的方式工作。
职工信息录入功能 (职工信息用文件保存)。
职工浏览功能。
职工信息查询功能,查询方式可按学历查询或者工号查询。
职工信息的删除、修改功能(可选项)。
2.程序设计思路
1、设计思路
(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;
(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;
(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图
5.算法设计
1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
N
Y
2浏览模块
【分析】
该模块的功能是浏览职工的全部信息
3排序模块
N
Y
12
1
2
4查询模块
【分析】
该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。流程图如下:
5修改模块
【分析】
该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。流程图如下:
Y
6.程序代码
#include
#define N 50
struct worker
{
char id[50];
char name[20];
char sex[10];
char age[10];
char edu[20];
char salary[10];
char address[20];
char tel[20];
}worker[N];
void save(int n) //保存函数,保存n个记录
{ FILE *fp;
int i;
if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件
{ printf("\nCannot open file\n");
}
for(i=0;i
if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
int load() //加载函数
{ FILE *fp;
int i;
if((fp=fopen("worker.txt","rb"))==NULL)
{printf("\nCannot open file\n");
return NULL;
}
for(i=0;!feof(fp);i++)
fread(&worker[i],sizeof(struct worker),1,fp);
fclose(fp);
return(i-1);
}
void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n表示比较到第n个职工
{ int j,k,w1;
do
{w1=0;
printf("工号:");
scanf("%s",worker[i].id);
for(j=0;worker[i].id[j]!='\0';j++)
if(w