c语言人事管理系统文档格式.docx
- 文档编号:8682597
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:30
- 大小:328.53KB
c语言人事管理系统文档格式.docx
《c语言人事管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《c语言人事管理系统文档格式.docx(30页珍藏版)》请在冰点文库上搜索。
2.del()函数
3.sear_edit()函数
4.scan()函数
5.order()函数
6.exit()函数
六、程序运行效果图
0.main()函数
1.添加函数
2.浏览
3.查询编辑
4.删除
5.排序
6.删后浏览
七、总结
一星期的C语言课程设计结束了,在这八天的时间里,我自己独立完成了一个程序从构思结构,到编写代码,然后上机调试运行的过程,感觉自己收获很大。
通过解决一个又一个的问题,熟悉了C语言的应用,对计算机语言应用的理解又深了一层,在老师的指导下,学会了模块设计的方法,用流程图表示算法,掌握了用C语言进行程序设计的能力。
在设计过程中,我理解了对于一个较大的程序,不可能一次编写出一个较大的系统,通常要采取自顶向下的设计思想,先设计主函数,再通过完善一个个的功能模块来完成程序的设计过程,在设计过程中要充分理解整个程序的设计思路,采用逐步细化的方式来完成整个程序。
使各个模块能够很好地兼容在一起,并进行运行测试,程序能够无错误的运行。
之后,优化界面和显示,使人能够轻松愉悦地操作。
在在运行调试过程中,当删除或更改了信息后可进行查询操作但就不能进行浏览,可是,在文本文件中删除最后一个空格,程序就能正确无误地运行。
在这问题中,我用过在文件尾加\b等的方法,还是解决不了,最后,我想到在文件写入时先\n,再写入,这样一来,文件末的空格就不存在了,经运行测试证明,问题就此解决。
这次课程设计给我最大的启示就是解决问题要多看多思考,同时,设计并完善这个简单的程序竟然花了我这么长时间,也说明平时用功还不够,以后得加倍努力!
八、参考文献
李春葆.C语言程序设计教程(第2版).清华大学出版社,2011
九、程序清单
#include<
stdio.h>
stdlib.h>
#defineM2000
#defineN20
voidadd();
voiddel();
voidsear_edit();
voidscan();
voidorder();
voidold_order();
voidcomingtime_order();
voidmain()
{
intn;
system("
cls"
);
printf("
\n\n\t\t***********************高校人事管理*************************\n\n\n"
\t\t\t1\t添加\n\n"
\t\t\t2\t删除\n\n"
\t\t\t3\t查询与编辑\n\n"
\t\t\t4\t浏览\n\n"
\t\t\t5\t排序\n\n"
\t\t\t6\t退出\n\n"
\t\t*************************************************************\n"
选择您要的服务:
[]\b\b"
scanf("
%d"
&
n);
if(n<
1||n>
6)
{
do
{
printf("
\n对不起,您输入错误,请重新输入:
[]\b\b"
scanf("
}while(n<
6);
//确保输入正确数字。
}
switch(n)
{
case1:
add();
break;
case2:
del();
case3:
sear_edit();
case4:
scan();
case5:
order();
case6:
exit(0);
}
}
structworker
intnum;
charname[20];
charsex[10];
intold;
charzhicheng[20];
charzhiwei[20];
charmianmao[20];
charxueli[20];
intcome_time;
intwork_time;
intleibie;
}wor[N];
//添加模块
voidadd()
FILE*fp;
inti,number,n;
structworkerwor_t[N];
\n\n\t\t***************添加人员的信息****************\n\n\n"
您要添加的人的人数:
[]\b\b\b"
scanf("
number);
输入添加人的信息:
\n"
for(i=0;
i<
number;
i++)
\n\t\t\t第%d个\t\t\t\n"
i+1);
编号:
wor_t[i].num);
姓名:
%s"
wor_t[i].name);
性别:
wor_t[i].sex);
年龄:
wor_t[i].old);
职称:
wor_t[i].zhicheng);
职位:
wor_t[i].zhiwei);
政治面貌:
wor_t[i].mianmao);
学历:
wor_t[i].xueli);
来院时间:
wor_t[i].come_time);
在院工作时间:
wor_t[i].work_time);
在职与否:
\t\t1\t在\t\t2\t不在\n"
wor_t[i].leibie);
您刚才输入的人的信息\n"
%d%s%s%d%s%s%s%s%d%d%d\n"
wor_t[i].num,wor_t[i].name,
wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,
wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie);
}
if((fp=fopen("
worker.txt"
"
a"
))==NULL)//以追加方式新建或追加信息
\nCannotopenfile\n"
exit(0);
fprintf(fp,"
\n%d%s%s%d%s%s%s%s%d%d%d"
wor_t[i].num,wor_t[i].name,wor_t[i].sex,wor_t[i].old,
wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie);
fclose(fp);
您要:
\n\t\t1\t继续添加\n\t\t2\t返回\n\t\t3\t退出\n请选择:
//添加结束后,选择操作。
if(n<
3)
{
do
输入错误!
请重新输入:
while(n<
3);
//确保输入的数字正确。
case1:
case2:
main();
case3:
//删除模块
voiddel()
FILE*fp,*fp1;
inti,number,k,j,m,n;
structworkerworker1[M],worker2[M];
inta[N];
\t\t***************删除人员的信息****************\n\n\n\n\n"
您要删除的人的人数:
输入要删除的编号:
a[i]);
您刚才输入的人的信息的编号:
%d\n"
a[i]);
if((fp=fopen("
r"
))==NULL)
getchar();
exit(0);
输出公司更改前所有人员的信息:
\n编号姓名性别年龄职称职位面貌学历来院时间工作时间在职与否\n\n"
!
feof(fp);
i++)//把worker.txt的内容写入worker2
fscanf(fp,"
%d%s%s%d%s%s%s%s%d%d%d"
worker2[i].num,worker2[i].name,worker2[i].sex,&
worker2[i].old,
worker2[i].zhicheng,worker2[i].zhiwei,worker2[i].mianmao,worker2[i].xueli,&
worker2[i].come_time,&
worker2[i].work_time,&
worker2[i].leibie);
k=i;
m=0;
k;
for(j=0;
j<
j++)
if(worker2[i].num!
=a[j])
worker1[m]=worker2[i];
m++;
}
%d%s%s%d%s%s%s%s%d%d%d\n"
worker2[i].num,worker2[i].name,worker2[i].sex,worker2[i].old,
worker2[i].zhicheng,worker2[i].zhiwei,worker2[i].mianmao,worker2[i].xueli,worker2[i].come_time,worker2[i].work_time,worker2[i].leibie);
if(k==m)
printf("
\n这个人不存在"
//检查,不存在则返回主界面
输出公司更改后所有人员的信息:
\n编号姓名性别年龄职称职位面貌学历来院时间工作时间在职与否\n"
if((fp1=fopen("
w+"
m;
i++)
worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,
worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);
fprintf(fp1,"
//fprintf(fp1,"
\"
fclose(fp1);
getchar();
\n您要:
\n\t\t1\t返回\n\n\t\t2\t退出\n请选择:
2)
//确保输入正确数字
}while(n<
2);
//排序模块
voidorder()
intn,w;
do
system("
\t\t*******************排序**********************\n\n\n"
\t\t\t1\t按年龄排序\n\n"
\t\t\t2\t按来院时间排序\n\n"
\t\t\t3\t返回\n\n"
\n\n\t\t**********************************************\n\n"
\n请选择您想要的排序方式:
3)
w=1;
getchar();
elsew=0;
while(w==1);
old_order();
comingtime_order();
}
//年龄排序
voidold_order()
structworkerwor_people,worker1[M];
inti,j,k,n;
worker1[i].num,worker1[i].name,worker1[i].sex,&
worker1[i].old,
worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&
worker1[i].come_time,&
worker1[i].work_time,&
worker1[i].leibie);
for(j=i+1;
if(worker1[i].old>
worker1[j].old)
wor_people=worker1[i];
worker1[i]=worker1[j];
worker1[j]=wor_people;
//由小到大的方式对年龄排序
old_order.txt"
w"
%d%s%s%d%s%s%s%s%d%d%d\n"
worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);
fprintf(fp1,"
worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,
worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);
//来院时间排序
voidcomingtime_order()
if(worker1[i].come_time>
worker1[j].come_time)
//由先到后对人员排序
comingtime_order.txt"
fprintf(fp1,"
worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 人事管理系统