c程序设计报告职工信息管理系统

c程序设计报告职工信息管理系统
c程序设计报告职工信息管理系统

职工信息管理系统

题目要求 (2)

设计目的 (2)

总体设计 (2)

详细设计 (2)

调试与测试 (12)

源程序 (14)

总结 (27)

职工信息管理程序

一.题目要求

1.问题描述:

设计一个系统来管理职工的信息。职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)

2.要求:

?系统需要提供一下功能:

–1、以菜单方式工作

–2、职工信息浏览功能

–3、职工信息查询功能

?查询方式:按学历查询和按职工号查询

–4、职工信息删除

–5、职工信息修改

–6、职工信息的输入

–职工信息存储在文本中。.

二.设计目的

根据题目要求,由于职工信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览职工的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.

三.总体设计

根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块.

1、职工信息管理系统

1、1输入信息

1、2查询信息

1、3删除信息

1、4修改信息

四.详细设计

1.主函数:

主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择.

menu();

int a;

char b;

printf("选择要进行的项目\n");

scanf("%d",&a);

exa: switch(a){

case 1:

printf("输入职工信息\n");printf("\n");

input();

break;

case 2:

printf("浏览职工信息\n");printf("\n");

display();

break;

case 3:

printf("查询职工信息\n");printf("\n");

search();

break;

case 4:

printf("修改职工信息\n");

printf("\n");

xiugai();

break;

case 5:

printf("删除职工信息\n");printf("\n");

del();

break;

/* case 6:

printf("添加职工信息\n");

printf("\n");

add();

break; */

case 6:exit(0);break;

default :break;

}

getchar();

printf("是否继续进行(y or n):\n"); scanf("%c",&b);

if(b=='y'){

menu();

printf("再次选择操作:\n"); scanf("%d",&a);goto exa;

}

else exit(0);

}

void input(){

int n;

printf("输入职工个数:\n"); scanf("%d",&m);

for(n=0;n

printf("输入职工号");

scanf("%d",&peo[n].num);

printf("输入姓名: ");

scanf("%s",peo[n].name); getchar();

printf("输入性别:");

scanf("%c",&peo[n].sex);

printf("输入工资: ");

scanf("%d",&peo[n].money); printf("输入地址: ");

scanf("%s",peo[n].addr);

printf("输入号码: ");

scanf("%d",&peo[n].phone);

printf("输入年龄: ");

scanf("%d",&peo[n].age);

printf("输入学历: ");

scanf("%s",peo[n].xueli);}

save(m);

}

2.}修改模块:

[分析]:用户输入要修改职工的职工号,根据职工号等信息查找学生记录,并提示用户修改该记录的哪部分信息.根据用户选择修改相应的信息.

[流程图]:

1、输入要修改的职工的职工号

2、查询其信息

3、使用函数删除其信息

4、对其进行信息的重新输入

[程序]:

void xiugai(){

int t,i,j;

printf("输入要修改职工的职工号:\n");

scanf("%d",&t);

um==t)

j=i;

break;

}

um);

printf("输入姓名: ");

scanf("%s",peo[j].name);

getchar();

printf("输入性别:");

scanf("%c",&peo[j].sex);

printf("输入工资: ");

scanf("%d",&peo[j].money);

printf("输入地址: ");

scanf("%s",peo[j].addr);

printf("输入号码: ");

scanf("%d",&peo[j].phone);

printf("输入年龄: ");

scanf("%d",&peo[j].age);

printf("输入学历: ");

scanf("%s",peo[j].xueli);

save(::m);

} }

3.删除模块:

[分析]:

该模块的功能是,用户输入要删除的学生的学号,根据学生学号查找记录并删除.

[流程图]:

1、找到要删除的职工的信息

2、对其使用写的功能,删除其中的值

3、完成删除后浏览剩余信息

[程序]:

void del(){

FILE *fp;

int m=load();

int s,n,j,i,l=0;

printf("\n 原来的职工信息:\n");

display();

printf("\n");

printf("请输入要删除的职工的职工号:\n");

scanf("%d",&s);

for(n=0;n<100;n++)

{

if(peo[n].num==s)

{

j=n;

l=1;

}

}

if(l==1)

{

fp=fopen("D:\\","w");

clear(peo,j);

for(i=0;i<::m;i++)

{

if(i==j)

continue;

fprintf(fp,"%d %s %d %c %d %d %s %s\n",peo[i].num,peo[i].name,peo[i].age,peo[i].sex,peo[i ].phone,peo[i].money,peo[i].addr,peo[i].xueli);

}

printf("删除成功!");

fclose(fp);

return;

}

else

{

printf("没有找到!\n");

}

display();

}

4.查询模块

[需求分析]:

该模块的功能是根据输入的职工号查找对应的记录,找到以后,显示相应的职工信息.

[流程图]:

1、根据对应的提示查找信息

2、运用循环比较的方法进行查找

3、分别是按照职工号和学历

程序:

void search(){

int d;

printf("你选择的查询方法:1.按职工号2.按学历");

scanf("%d",&d);

switch(d){

case 1:search_num();break;

case 2:search_xueli();break;

default :break;

}

}

void search_num()

{ int num;

int i,h=1;

int m=load();

printf("请输入要查找的职工号:\n");

scanf("%d",&num);

for(i=0;i

if(num==peo[i].num)

{

printf(" 职工号姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");

printf("\n %d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n",peo[i].num,peo[i].name,peo[i].sex,peo[i].age, peo[i].xueli,peo[i].money,peo[i].addr,peo[i].phone);

}

else ;}

void search_xueli(){

char xueli[30];

int i,h=1;

int m=load();

printf("请输入要查找的学历:\n");

scanf("%s",xueli);

for(i=0;i

if(strcmp(peo[i].xueli,xueli)==0) {

printf(" 职工号姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");

printf("\n %d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n",peo[i].num,peo[i].name,peo[i].sex,peo[i].age, peo[i].xueli,peo[i].money,peo[i].addr,peo[i].phone);

}

else ;

}

void xiugai(){

int t,i,j;

printf("输入要修改职工的职工号:\n");

scanf("%d",&t);

um==t)

j=i;

break;

}

um);

printf("输入姓名: ");

scanf("%s",peo[j].name);

getchar();

printf("输入性别:");

scanf("%c",&peo[j].sex);

printf("输入工资: ");

scanf("%d",&peo[j].money);

printf("输入地址: ");

scanf("%s",peo[j].addr);

printf("输入号码: ");

scanf("%d",&peo[j].phone);

printf("输入年龄: ");

scanf("%d",&peo[j].age);

printf("输入学历: ");

scanf("%s",peo[j].xueli);

save(::m);

}

5.输出模块:

[需求分析]:

该模块的功能是显示所有职工记录信息.

[程序]:

我void display(){

int t;

um,peo[t].name,peo[t].sex,peo[t].age,peo[t].xueli,peo[t].money,peo[t].addr,peo[t].p hone);

}

四调试与测试

在这次课程设计中,程序编写过程中遇到了很多的问题,各种函数的运用也让人头疼,在上机编译运行过程中出现了很多的错误,例如:各种数据类型的定义,函数的调用等等。但最终还是在老师同学的帮助下进行了各种代码的编写与修改,最终程序成功的运行。

下面是各个模块的界面图

(1)主菜单函数:

(2): 输入模块:

(3): 显示模块:

(4): 删除模块:

(5): 查找模块:

(6): 修改模块:

六.程序源

#include<>

#include<>

#include <>

void input();

void clear(struct people *peo,int); void save(int);

void display();

void del();

void menu();

void search_num();

void search();

void search_xueli();

void xiugai();

int m;

struct people{

int num;

char name[10];

char sex;

int age;

int money;

int phone;

char addr[30];

char xueli[10];

}peo[100];

void menu()

{

printf("职工信息管理系统\n");

printf("1.输入职工信息\n");

printf("2. 浏览职工信息\n");

printf("3.查询职工信息\n");

printf("4. 修改职工信息\n");

printf("5.删除职工信息\n");

printf("6.退出\n");

}

void main(){

menu();

int a;

char b;

printf("选择要进行的项目\n");

scanf("%d",&a);

exa: switch(a){

case 1:

printf("输入职工信息\n");printf("\n");

input();

break;

case 2:

printf("浏览职工信息\n");printf("\n");

display();

break;

case 3:

printf("查询职工信息\n");printf("\n");

search();

break;

case 4:

printf("修改职工信息\n");

printf("\n");

xiugai();

break;

case 5:

printf("删除职工信息\n");printf("\n");

del();

break;

/* case 6:

printf("添加职工信息\n");

printf("\n");

add();

break; */

case 6:exit(0);break;

default :break;

}

getchar();

printf("是否继续进行(y or n):\n");

scanf("%c",&b);

if(b=='y'){

menu();

printf("再次选择操作:\n");

scanf("%d",&a);goto exa;

}

else exit(0);

}

void input(){

int n;

printf("输入职工个数:\n"); scanf("%d",&m);

for(n=0;n

printf("输入职工号"); scanf("%d",&peo[n].num);

printf("输入姓名: "); scanf("%s",peo[n].name); getchar();

printf("输入性别:");

scanf("%c",&peo[n].sex);

printf("输入工资: "); scanf("%d",&peo[n].money); printf("输入地址: ");

scanf("%s",peo[n].addr);

printf("输入号码: "); scanf("%d",&peo[n].phone); printf("输入年龄: ");

scanf("%d",&peo[n].age); printf("输入学历: ");

scanf("%s",peo[n].xueli);} save(m);

}

void save(int m) um,peo[i].name,peo[i].age,peo[i].sex,peo[i].phone,peo[i].money,peo[i].addr,peo[i].xueli);}

fclose(fp);um,peo[i].name,&peo[i].age,&peo[i].sex,&peo[i].phone,&peo[i].money,peo[i].addr,peo [i].xueli)!=EOF)

{i++;}

fclose(fp);

return(i-1);

}

void display(){

int t;

um,peo[t].name,peo[t].sex,peo[t].age,peo[t].xueli,peo[t].money,peo[t].addr,peo[t].phone);

}

void del(){

FILE *fp;

int m=load();

int s,n,j,i,l=0;

printf("\n 原来的职工信息:\n");

display();

printf("\n");

printf("请输入要删除的职工的职工号:\n");

scanf("%d",&s);

for(n=0;n<100;n++)

{

if(peo[n].num==s)

{

j=n;

l=1;

}

}

if(l==1)

{

fp=fopen("D:\\","w");

clear(peo,j);

for(i=0;i<::m;i++)

{

if(i==j)

continue;

fprintf(fp,"%d %s %d %c %d %d %s %s\n",peo[i].num,peo[i].name,peo[i].age,peo[i].sex,peo[i].ph one,peo[i].money,peo[i].addr,peo[i].xueli);

}

printf("删除成功!");

fclose(fp);

return;

}

else

{

printf("没有找到!\n");

}

display();

}

void search(){

int d;

相关主题
相关文档
最新文档