c语言职工信息管理系统设计.docx
《c语言职工信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《c语言职工信息管理系统设计.docx(15页珍藏版)》请在冰豆网上搜索。
![c语言职工信息管理系统设计.docx](https://file1.bdocx.com/fileroot1/2022-10/13/e78956d1-df45-4724-be5c-b8ddd3e549b6/e78956d1-df45-4724-be5c-b8ddd3e549b61.gif)
c语言职工信息管理系统设计
课程设计(大作业)报告
课程名称:
C语言课程设计
设计题目:
职工信息管理系统设计
院系:
xxx
班级:
xxxx
设计者:
xx
学号:
xxxx
指导教师:
xxx
设计时间xxxx
信息技术学院
昆明学院课程设计(大作业)任务书
姓名:
x院(系):
x
专业:
x学号:
x
任务起止日期:
x
课程设计题目:
职工信息管理系统
课程设计要求:
职工信息包括职工号、姓名、性别、年龄、学历(研究生\本科\专科)、工资、住址、电话等。
试设计一职工信息管理系统,使之能提供以下功能:
1.系统以菜单方式工作
2.职工信息录入功能(职工信息用文件保存)
3.职工信息浏览功能
4.职工信息查询功能
查询方式:
按学历查询等;
按职工号查询等.
5.职工信息删除、修改功能
工作计划及安排:
2011年6月18日,拿到题目后,分析题目,并且到网上下载相关的参考资料。
2011年6月19日,画出系统总设计图和程序总流程图,并且以小组成员的形式,对所有函数进行分析,分工合作。
2011年6月20日,小组成员各自编写各自的函数,并实现相应的功能。
2011年6月21日,对各自缩写函数的程序进行调试与测试,并根据相应的运行结果,对错误的运行结果进行相应的调试并修改其程序代码,以真正实现其功能。
2011年6月22日,小组成员将各自写的函数进行讨论分析后,把各自的函数合并在一起,并把程序的完整代码写出来,进行调试与测试,运行其结果。
最后,完成课程设计报告。
指导教师签字
年月日
课程设计(大作业)成绩
学号:
x姓名:
x指导教师:
x
课程设计题目:
职工信息管理系统
总结:
通过这五天的C程序实训,我们小组既发现了许多不足,也学到了许多以前不懂的知道。
使我们对这门课程有了更深一步的理解,对我们以后的学习有了重要的作用。
其中,通过网络我查询了system这个函数的功能,system(“cls”)功能是实现“清除屏幕”,system(“pause”)功能是实现“暂停批文件的的处理并显示信息”。
通过对这两个函数的使用,使我对“菜单的使用”有了更深一步的认识与理解。
并且我们小组通过老师对我们的帮助,对一些“缓冲区中垃圾的处理”也有了进一步的认识,其中对fflush(stdin),getch()等函数的应用,使程序运行起来更加地顺畅,使程序更加的简练。
而在我所编程的“查询函数”,“删除函数”,“修改函数”中大量的运用到了switch函数,使我对该函数的作用有了深刻地认识,并且对其中运用到的字符的复制,比较,用flag作标记,函数的调用,结构体数组等知识进行了巩固和更深一步的学习。
以后我们还将对此进行深入了解,进一步提升自己的综合知识的运用,在次我们小组成员对老师给予我们的帮助表示感谢!
指导教师评语:
成绩:
填表时间:
2012年6月22日指导教师签名:
昆明学院
C语言课程设计报告
设计题目:
职工信息管理系统设计
小组成员:
x
指导教师:
x
所在院系:
x
年级班级:
x
x
一、课程设计目的与要求
1.课程设计目的
(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。
(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。
2.课程设计要求
职工信息包括职工号、姓名、性别、年龄、学历(研究生\本科\专科)、工资、住址、电话等。
试设计一职工信息管理系统,使之能提供以下功能:
1、系统以菜单方式工作
2、职工信息录入功能(职工信息用文件保存)
3、职工信息浏览功能
4、职工信息查询功能
查询方式
(1)按学历查询等
(2)按职工号查询等
5、职工信息删除、修改功能
二、总体设计
根据系统的要求,系统总体设计如图1所示。
图表1系统总设计
三、详细设计
1.结构体设计
结构体structemployee用于存放存放员工的资料,包括员工的基本信息:
工号,姓名,年龄,学历,工资,住址,电话号码。
structemployee
{
intnum;//工号
charname[15];//姓名
charsex;//性别
intage;//年龄
charedu[6];//学历
intwage;//工资
charaddr[20];//住址
chartel[12];//电话号码
};
2.函数设计
(1)主函数
main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。
(2)其他各功能函数
函数名
功能
voidmenu();
菜单选择
voidentry();
职工信息录入
voidbrowse();
职工信息浏览
voidquery();
职工信息查询
voidmodify();
职工信息修改
voiddelete();
职工信息删除
voidsave(intn);
记录保存为文件
intload();
从文件中读记录
图表2各功能函数表
3.程序流程
系统的执行应从功能菜单选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。
系统的流程图如图3所示:
图表3程序流程图
四、程序清单和执行结果
1.头文件
#include
#include
#include
structemployee
{
intnum;
charname[10];
charsex;
intage;
charedu[30];
intwage;
charaddr[30];
longinttel;
}em[100];/*定义一个结构体*/
/******以下是函数原型*******/
voidmenu();/*菜单选择函数*/
voidentry();/*录入职工信息函数*/
voidbrowse();/*浏览职工信息函数*/
voiddel();./*删除函数*/
voidquery();/*查询函数*/
voidquery_num();/*按职工号查询职工函数*/
voidquery_edu();/*按学历查询职工函数*/
voidmodify();/*定义各函数*/
voidsave(int)/*保存文件函数*/
intload()/*导入函数*/
2.源程序代码与运行结果
(1)查询函数
voidquery()
{intt,flag;
system("cls");
do
{printf("\n按职工号查询请按1;按学历查询请按2;,进入主函数按3\n");
scanf("%d",&t);
if(t>=1&&t<=4)
{flag=1;
break;
}
else
{flag=0;
printf("您输入有误,请重新选择!
");
}
}
while(flag==0);
while(flag==1)
{switch(t)
{case1:
printf("按职工号查询\n");query_num();break;
case2:
printf("按学历查询\n");query_edu();break;
case3:
main();break;
default:
break;
}
}
图表4运行结果一查询函数1
(2)删除函数
voiddel()
{
inti,j,n,t,flag;
system("cls");
intm=load();
charname[20];
printf("\n原来的职工信息:
\n");
browse();/*调用浏览函数*/
printf("\n");
printf("请输入要删除的职工的姓名:
\n");
scanf("%s",name);
for(flag=1,i=0;flag&&i{
if(strcmp(em[i].name,name)==0)
{
printf("\n已找到此人,原始记录为:
\n");
printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].edu,em[i].wage,em[i].addr,em[i].tel);
printf("\n确实要删除此人信息请按1,不删除请按0\n");
scanf("%d",&n);
if(n==1)/*如果删除,则其他的信息都往上移一行*/
{
for(j=i;j{
strcpy(em[j].name,em[j+1].name);
em[j].num=em[j+1].num;
em[j].sex=em[j+1].sex;
em[j].age=em[j+1].age;
strcpy(em[j].edu,em[j+1].edu);
em[j].wage=em[j+1].wage;
strcpy(em[j].addr,em[j+1].addr);
em[j].tel=em[j+1].tel;
}
flag=0;
}
}
}
if(!
flag)
m=m-1;
else
printf("\n对不起,查无此人!
\n");
printf("\n浏览删除后的所有职工信息:
\n");
save(m);/*调用保存函数*/
browse();/*调用浏览函数*/
printf("\n继续删除请按1,不再删除请按0\n");
scanf("%d",&t);
switch(t)
{
case1:
del();break;
case0:
break;
default:
break;
}
}
图表5运行结果二删除函数1
图表5运行结果二删除函数2
(3)修改函数
voidmodify()
{
intnum;
charname[10];
charsex;
intage;
charedu[30];
intwage;
charaddr[30];
longinttel;
intb,c,i,n,t,flag;
system("cls");
intm=load();/*导入文件内的信息*/
printf("\n原来的职工信息:
\n");
browse();/*调用浏览函数*/
printf("\n");
printf("请输入要修改的职工的姓名:
\n");
scanf("%s",name);
for(flag=1,i=0;flag&&i{
if(strcmp(em[i].name,name)==0)
{
printf("\n已找到此人,原始记录为:
\n");
printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].n