C语言程序设计职工管理系统.docx

上传人:b****6 文档编号:8666177 上传时间:2023-02-01 格式:DOCX 页数:17 大小:102.60KB
下载 相关 举报
C语言程序设计职工管理系统.docx_第1页
第1页 / 共17页
C语言程序设计职工管理系统.docx_第2页
第2页 / 共17页
C语言程序设计职工管理系统.docx_第3页
第3页 / 共17页
C语言程序设计职工管理系统.docx_第4页
第4页 / 共17页
C语言程序设计职工管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言程序设计职工管理系统.docx

《C语言程序设计职工管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计职工管理系统.docx(17页珍藏版)》请在冰豆网上搜索。

C语言程序设计职工管理系统.docx

C语言程序设计职工管理系统

C语言程序设计大作业

职工信息管理系统

 

2012/1/1

组内合作

组长:

组内成员:

C语言程序大作业报告

1. 设计目的(需求分析)

此程序的主要功能就是在用户输入一个目标文件名,在运行目录下建立相应的文件夹来储存职工信息,然后由用户输入职工信息,之后支持职工信息的新建添加、查询、修改、删除、显示输出的功能。

 

2.     总体设计(流程图)

开始

用户输入文件名

建立文件夹

 

用户输入职工信息

用户输入功能选项

1

2

0

退出

结束

5

输出

用户输入添加职工信息

输入要查找的职工名

有?

输出信息

输出提示

 

 

3.     详细设计

主函数中运用的函数及其功能:

creat();建立文件夹;

由用户输入文件名,在运行目录下建立文件夹;

Build();新添加信息;

output();显示所有记录;

search();职工信息信息查找;

由用户输入要查找的职工名,进行查询;

Delete();删除职工信息;

Change();修改职工信息;

输入职工名,找到后并修改,再把修改后的信息保存起来!

用户输入新学生的信息;

4.     调试与测试:

程序的编写过程中,出现的主要问题是各个分函数的相互联系不能很好的处理;部分函数缺少参数;exe文件显示结构混乱;刚开始有点忙乱于文件的使用,后来在复习书本、网上查询、组员一起讨论,在经过多次修改后得以有所解决。

5.     源程序清单和执行结果:

#include

#include

structinfo

{

charname[8];

charnum[8];

chartel[15];

charaddr[50];

};

charfilename[20];

FILE*fp;

voidcreat();

voidoutput();

voidsearch();

voidbuild();

voidchange();

voiddelete();

main()

{

intm;

printf("");

printf("--------------------------------------------------------------------------\n");

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

printf("--------------------------------------------------------------------------\n");

creat();

while

(1)

{

printf("---------------------------------\n");

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

printf("||=============================||\n");

printf("||1.职工信息的新建||\n");

printf("||2.职工信息的查询||\n");

printf("||3.职工信息的修改||\n");

printf("||4.职工信息的删除||\n");

printf("||5.职工信息的输出||\n");

printf("||0.退出职工信息管理系统||\n");

printf("||=============================||\n");

printf("请选择操作0-5\n\n");

scanf("%d",&m);

if(m>=0&&m<=5)

{

switch(m)

{

case1:

build();/*新建立*/

break;

case2:

search();/*查询*/

break;

case3:

change();/*修改*/

break;

case4:

delete();/*删除*/

break;

case5:

output();/*输出*/

break;

case0:

exit();

}

printf("\n\n操作完毕,请再次选择!

");

}

else

printf("\n\n选择错误,请再次选择!

");

}

}

/*开始定义函数*/

voidcreat()/*信息簿的建立及保存函数*/

{

structinfoone;

printf("\n请输入职工信息簿名:

");

scanf("%s",filename);

if((fp=fopen(filename,"w"))==NULL)

{

printf("\n不能建立信息簿!

");

exit();

}

fprintf(fp,"%-10s%-10s%-20s%-50s\n","姓名","工号","电话号码","住址");

printf("\n请输入姓名、工号、电话号码及住址(相邻两信息之间用空格分开并以0结束)\n");

scanf("%s",one.name);

while(strcmp(one.name,"0"))

{

scanf("%s%s%s",one.num,one.tel,one.addr);

fprintf(fp,"%-10s%-10s%-20s%-50s\n",one.name,one.num,one.tel,one.addr);

scanf("%s",one.name);

}

fclose(fp);

}

voidoutput()/*输出*/

{

structinfoone;

if((fp=fopen(filename,"r"))==NULL)

{

printf("\n不能打开信息簿!

");

exit();

}

printf("\n\n%20s\n","职工信息簿");

while(!

feof(fp))

{

fscanf(fp,"%s%s%s%s\n",one.name,one.num,one.tel,one.addr);

printf("%-10s%-10s%-20s%-50s",one.name,one.num,one.tel,one.addr);

}

fclose(fp);

}

voidbuild()/*新建并保存*/

{

structinfoone;

if((fp=fopen(filename,"a"))==NULL)

{

printf("\n不能打开职工信息簿!

");

exit();

}

printf("\n请输入添加的姓名、工号、电话号码及住址\n");

scanf("%s%s%s%s",one.name,one.num,one.tel,one.addr);

fprintf(fp,"%-10s%-10s%-20s%-50s\n",one.name,one.num,one.tel,one.addr);

fclose(fp);

}

voidsearch()/*查找信息*/

{

intk=0;

charnamekey[8];

structinfoone;

printf("\n请输入姓名:

");

scanf("%s",namekey);

if((fp=fopen(filename,"rb"))==NULL)

{

printf("\n不能打开职工信息簿!

");

exit();

}

while(!

feof(fp))

{

fscanf(fp,"%s%s%s%s\n",one.name,one.num,one.tel,one.addr);

if(!

strcmp(namekey,one.name))

{

printf("\n\n已查到,记录为:

");

printf("\n%-10s%-10s%-18s%-50s",one.name,one.num,one.tel,one.addr);

k=1;

}

}

if(!

k)

printf("\n\n对不起,信息簿中没有此人的记录。

");

fclose(fp);

}

voidchange()/*找到并修改*/

{

intk=0;

longoffset;

charnamekey[8];

structinfoone;

printf("\n请输入姓名:

");

scanf("%s",namekey);

if((fp=fopen(filename,"r+"))==NULL)

{

printf("\n不能打开职工信息簿!

");

exit();

}

while(!

feof(fp))

{

offset=ftell(fp);

fscanf(fp,"%s%s%s%s\n",one.name,one.num,one.tel,one.addr);

if(!

strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(k)

{

printf("\n已查到,记录为:

");

printf("\n%-10s%-10s%-18s%-50s",one.name,one.num,one.tel,one.addr);

printf("\n请输入新姓名、工号、电话号码及住址:

");

scanf("%s%s%s%s",one.name,one.num,one.tel,one.addr);

fseek(fp,offset,SEEK_SET);

printf("%ld",ftell(fp));

fprintf(fp,"%-10s%-10s%-20s%-50s\n",one.name,one.num,one.tel,one.addr);

}

else

printf("\n对不起,信息簿中没有此人的记录。

");

fclose(fp);

}

voiddelete()/*找到并删除*/

{

intm,k=0;

longoffset1;

charnamekey[8];

structinfoone;

printf("\n请输入姓名:

");

scanf("%s",namekey);

if((fp=fopen(filename,"r+"))==NULL)

{

printf("\n不能打开职工信息簿!

");

exit();

}

while(!

feof(fp))

{

offset1=ftell(fp);

fscanf(fp,"%s%s%s%s\n",one.name,one.num,one.tel,one.addr);

if(!

strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(k)

{

printf("\n已查到,记录为");

printf("\n%-10s%-10s%-18s%-50s",one.name,one.num,one.tel,one.addr);

printf("\n确实要删除,按1;不删除,按0:

");

scanf("%d",&m);

if(m)

{

fseek(fp,offset1,SEEK_SET);

fprintf(fp,"%-10s%-10s%-20s%-50s\n","","","","");

}

}

else

printf("\n对不起,信息簿中没有此人的记录。

");

fclose(fp);

此系统由

--------------------------------------------------------------------------

职工信息管理系统

--------------------------------------------------------------------------

请输入职工信息簿名:

职工信息簿1

请输入姓名、工号、电话号码及住址(相邻两信息之间用空格分开并以0结束)

城0000118安康

睿0000218大理

0

---------------------------------

职工信息管理系统

||=============================||

||1.职工信息的新建||

||2.职工信息的查询||

||3.职工信息的修改||

||4.职工信息的删除||

||5.职工信息的输出||

||0.退出职工信息管理系统||

||=============================||

请选择操作0-5

1

请输入添加的姓名、工号、电话号码及住址

娇0000118汉中

 

操作完毕,请再次选择!

---------------------------------

职工信息管理系统

||=============================||

||1.职工信息的新建||

||2.职工信息的查询||

||3.职工信息的修改||

||4.职工信息的删除||

||5.职工信息的输出||

||0.退出职工信息管理系统||

||=============================||

请选择操作0-5

2

请输入姓名:

 

已查到,记录为:

娇0000118921汉中

 

操作完毕,请再次选择!

---------------------------------

职工信息管理系统

||=============================||

||1.职工信息的新建||

||2.职工信息的查询||

||3.职工信息的修改||

||4.职工信息的删除||

||5.职工信息的输出||

||0.退出职工信息管理系统||

||=============================||

请选择操作0-5

3

请输入姓名:

对不起,信息簿中没有此人的记录。

操作完毕,请再次选择!

---------------------------------

职工信息管理系统

||=============================||

||1.职工信息的新建||

||2.职工信息的查询||

||3.职工信息的修改||

||4.职工信息的删除||

||5.职工信息的输出||

||0.退出职工信息管理系统||

||=============================||

请选择操作0-5

请输入姓名:

已查到,记录为:

城0000118安康

请输入新姓名、工号、电话号码及住址:

成0000118安康

92

操作完毕,请再次选择!

---------------------------------

职工信息管理系统

||=============================||

||1.职工信息的新建||

||2.职工信息的查询||

||3.职工信息的修改||

||4.职工信息的删除||

||5.职工信息的输出||

||0.退出职工信息管理系统||

||=============================||

请选择操作0-5

4

请输入姓名:

已查到,记录为

成0000118安康

确实要删除,按1;不删除,按0:

1

 

操作完毕,请再次选择!

---------------------------------

职工信息管理系统

||=============================||

||1.职工信息的新建||

||2.职工信息的查询||

||3.职工信息的修改||

||4.职工信息的删除||

||5.职工信息的输出||

||0.退出职工信息管理系统||

||=============================||

请选择操作0-5

5

 

职工信息簿

姓名工号电话号码住址

睿0000218大理

娇0000118汉中

 

操作完毕,请再次选择!

---------------------------------

职工信息管理系统

||=============================||

||1.职工信息的新建||

||2.职工信息的查询||

||3.职工信息的修改||

||4.职工信息的删除||

||5.职工信息的输出||

||0.退出职工信息管理系统||

||=============================||

请选择操作0-5

0

 

Pressanykeytocontinue

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1