职工信息管理系统C语言.docx
- 文档编号:24815065
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:30
- 大小:225.25KB
职工信息管理系统C语言.docx
《职工信息管理系统C语言.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统C语言.docx(30页珍藏版)》请在冰豆网上搜索。
职工信息管理系统C语言
课程设计(论文)
题目名称职工信息管理系统
课程名称C语言程序课程设计
学生姓名刘丹
学号1241302028
系、专业信息工程系、计算机科学与技术专业
指导教师黄磊
2013年6月6日
1前言
编写一个程序来处理职工信息管理系统。
通过结构体数组来存放输入的每一位职工的记录(包括工号、姓名、性别、年龄、学历、工资、住址、电话等),然后将其录入的职工信息以文件形式保存。
然后输入名字、工号、学历查询该同学的信息,并且对其进行浏览、查询、修改、删除等基本操作,建立职工信息管理的文件。
2需求分析
1、程序结构合理
2、界面比较美观
3、最好使用结构、体指针
4、输入时有提示,输出美观,整齐
职工信息由工号、姓名、性别、年龄、学历、工资、住址、电话等构成。
功能要求:
(1)系统以菜单方式工作
(2)职工信息录入功能(职工信息用文件保存)——输入
(3)职工信息浏览功能——输出
(4)查询和排序功能:
(至少一种查询方式)——算法
(5)按职工号查询
(6)按学历查询等
(7)职工信息删除、添加功能
2.1课程设计目的
学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。
通过课程设计(论文),将课本上的理论知识和实际有机结合起来,提高学生的分析解决实际问题的能力;加强学生适应实际,实践编程的能力;锻炼使用文献资料及进行科学实验或技术设计的初步能力,为毕业设计(论文)打
基础。
2.2课程设计任务
设计一个职工信息管理系统,使之能提供职工信息录入功能、职工信息浏览功能、查询功能:
按姓名查询,职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等。
实现菜单设计,使用数据文件保存和修改,应用结构体和指针等内容。
1、查阅相关文献资料;
2、按时完成系统的设计并且能够运行;
3、要求程序正确,功能可靠;操作简单,使用方便;
4、课程设计交流:
认真写课程设计日志,每2天指导老师审查,通过邮件、电话,或者面谈与导师沟通汇报情况。
5、按课程设计(论文)要求,写课程设计论文。
2.3设计环境
(1)WINDOWS2000/2003/XP/7/Vista系统
(2)VisualC++或TC集成开发环境
2.4开发语言
C语言
3分析设计
职工信息管理系统编程的作用是将职工的信息存放在文件中,然后在程序中可以浏览、查询、删除、添加职工的信息,好方便了解职工信息,同时能够及时刷新职工信息。
职工信息管理系统可以按功能进行以下划分,如下图所示:
1.菜单选择是职工信息管理的入口,进行的各种操作均需要这里进行选择。
2.信息输入是将职工的信息输入到文件中,包括工号、姓名、性别、年龄、学历、工资、住址、电话等。
3.信息浏览是将已经输入的职工信息的显示出来。
4.信息查询是用来查询职工的信息,查询方式有按工号查询和姓名查询还有按学历查询三种方式。
5.信息删除是删除职工一些信息。
6.信息添加是增加一些职工信息。
3.1模块设计
定义结构体类型structemployee表示职工信息(包括:
工号、姓名、联系电话、性别、工资、学历、年龄、地址),定义一个结构体数组em[N],用来存放N个学生的信息,假设N为3。
如下所示:
#defineN
structemployee
{intnumber;
intage;
intwage;
charname[20];
charsex[10];
charaddress[30];
charxuelil[20];
longinttelephone;
}em[N];
定义函数input(),用来输入若干职工信息存入em数组中。
定义函数save(),用来把结构体数组中的信息写入文件bbb.txt中。
在save函数中先用写的方式保存到文件bbb.txt,然后以读的方式打开文件bbb,指针变量fp,打开文件bbb失败就退出。
定义函数search(),用来在文件中查找某职工的信息。
定义函数display(),用来显示某职工的信息。
定义函数del(),用来删除某职工的信息。
定义函数add(),用来添加某职工的信息。
3.2系统流程图
系统流程图如下:
图3.1系统流程图
3.3主要模块的流程图
主函数模块流程图如下:
图3.2主函数流程图
1、主函数
显示程序中所有功能和所有会调用到的函数名。
再运用选择函数switch根据所输入的数字进入对应的功能程序。
具体程序如下:
main()/*主函数*/
{
intn;
printf("\n");
printf("******************职工信息管理****************\n");
printf("\n");
printf("1.录入职工信息\n");
printf("2.浏览职工信息\n");
printf("3.查询职工信息\n");
printf("4.删除职工信息\n");
printf("5.添加职工信息\n");
printf("6.退出\n");
printf("\n");
scanf("%d",&n);
switch(n)
{
case1:
printf("输入职工信息\n");printf("\n");input();main();break;
case2:
printf("浏览职工信息\n");printf("\n");display(*p);main();break;
case3:
printf("查询职工信息
\n");printf("\n");search();break;
case4:
printf("删除职工信息\n");printf("\n");del(p);break;
case5:
printf("添加职工信息\n");printf("\n");add(p);break;
case6:
exit(0);break;
default:
break;
}
}
输入函数模块流程图如下:
图3.3录入函数流程图
2、输入函数
定义一个结构体structemployee和数组em[N]用来存储N个职工信(职工号em[i].number、姓名em[i].name、性别em[i].sex、年龄em[i].age、学历em[i].xueli、学历工资em[i].wage、住址em[i].address、电话em[i].telephone)。
通过for循环输入所有职工信息。
用printf语句提示需要输入的内容,接着用scanf语句输入相应的内容。
输入完毕后套用保存save
[N]将所输入的信息写入指定文件。
具体程序如下:
voidinput()/*录入函数*/
{
inti;
for(i=0;i { printf("请输入职工号: "); scanf("%3d",&em[i].number);getchar();/*输入职工工号*/ printf("请输入姓名: "); scanf("%s",em[i].name);/*输入职工姓名*/ printf("请输入性别: "); scanf("%s",em[i].sex);getchar();/*输入职工性别*/ printf("请输入年龄: "); scanf("%d",&em[i].age);getchar();/*输入职工年龄*/ printf("请输入学历: "); scanf("%s",em[i].xueli);/*输入职工学历*/ printf("请输入工资: "); scanf("%d",&em[i].wage);getchar();/*输入职工工资*/ printf("请输入住址: "); scanf("%s",em[i].address);/*输入职工家庭地址*/ printf("请输入电话: "); scanf("%d",&em[i].telephone);getchar();/*输入职工联系号码*/ printf("\n"); } printf("\n创建完毕! \n"); save(N); } 4具体代码实现 #include #include #defineN2 structemployee/*定义一个职工信息结构体*/ { intnumbe;/*职工号*/ intage;/*年龄*/ intwage;/*工资*/ charname[20];/*姓名*/ charsex[10];/*性别*/ charaddress[30];/*家庭地址*/ charxueli[10];/*学历*/ longinttelephone;/*联系电话*/ }em[N]; voidsearch();/*查询*/ voidsearch_name();/*按名字查询*/ voidsearch_xueli();/*按学历查询*/ voidsearch_number();/*按工号查询*/ voidload();/*装载信息文件*/ voiddisplay();/*显示职工信息*/ voiddel();/*删除职工信息*/ voidinput();/*录入职工信息*/ voidadd();/*添加职工信息*/ voidsave();/*保存信息文件*/ inta=N; int*p=&a; main()/*主函数*/ { intn; printf("\n"); printf("******************职工信息管理****************\n"); printf("\n"); printf("1.录入职工信息\n"); printf("2.浏览职工信息\n"); printf("3.查询职工信息\n"); printf("4.删除职工信息\n"); printf("5.添加职工信息\n"); printf("6.退出\n"); printf("\n"); scanf("%d",&n); switch(n) { case1: printf("输入职工信息\n");printf("\n");input();main();break; case2: printf("浏览职工信息\n");printf("\n");display(*p);main();break; case3: printf("查询职工信息\n");printf("\n");search();break; case4: printf("删除职工信息\n");printf("\n");del(p);break; case5: printf("添加职工信息\n");printf("\n");add(p);break; case6: exit(0);break; default: break; } } voidinput()/*录入函数*/ { inti; for(i=0;i { printf("请输入职工号: "); scanf("%3d",&em[i].number);getchar();/*输入职工工号*/ printf("请输入姓名: "); scanf("%s",em[i].name);/*输入职工姓名*/ printf("请输入性别: "); scanf("%s",em[i].sex);getchar();/*输入职工性别*/ printf("请输入年龄: "); scanf("%d",&em[i].age);getchar();/*输入职工年龄*/ printf("请输入学历: "); scanf("%s",em[i].xueli);/*输入职工学历*/ printf("请输入工资: "); scanf("%d",&em[i].wage);getchar();/*输入职工工资*/ printf("请输入住址: "); scanf("%s",em[i].address);/*输入职工家庭地址*/ printf("请输入电话: "); scanf("%d",&em[i].telephone);getchar();/*输入职工联系号码*/ printf("\n"); } printf("\n创建完毕! \n"); save(N); } voidsave(intm)/*保存文件函数*/ { inti; FILE*fp;/*指向文件指针*/ if(! (fp=fopen("c: //bbb.txt","w")))/*写方式打开文件bbb,指针变量fp指向该文件*/ { printf("打开失败"); exit(0);/正常退出程序/ } for(i=0;i fprintf(fp,"%d%8s%s%d%8s%d%s%d\n",em[i].number,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].address,em[i].telephone); fclose(fp);/*fp是用fopen函数打开文件时所带回的指针*/ } voidload(intb)/*导入函数*/ { inti; FILE*fp; if(! (fp=fopen("c: //bbb.txt","r")))/*读方式打开文件bbb,指针变量fp指向该文件*/ { printf("打开失败"); exit(0); } else for(i=0;i fscanf(fp,"%3d%8s%s%2d%8s%4d%s%8d\n",&em[i].number,em[i].name,em[i].sex,&em[i].age,em[i].xueli,&em[i].wage,em[i].address,&em[i].telephone); fclose(fp);/*关闭文件*/ } voiddisplay(inta)/*浏览函数*/ { inti,b=a; load(b); printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 信息管理 系统 语言