计算机C语言课程设计人员管理.docx
- 文档编号:25114288
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:13
- 大小:42.19KB
计算机C语言课程设计人员管理.docx
《计算机C语言课程设计人员管理.docx》由会员分享,可在线阅读,更多相关《计算机C语言课程设计人员管理.docx(13页珍藏版)》请在冰豆网上搜索。
计算机C语言课程设计人员管理
计算机技术基础课程设计
C语言
设计报告
题目:
人员管理程序
学院:
工商管理
专业:
信息管理与信息系统
班级:
*******
姓名:
###
指导教师:
####
设计日期:
2011-12-29
一、选题背景:
技术观念:
通过对函数的调用、选择结构的使用以及文件方式的保存实现对人员信息的管理。
二、设计思路:
对单位人员的信息进行管理,人员信息包括姓名、性别、年龄、学历、职位、工资、健康状况等。
可对人员信息进行插入、删除、查找、修改等功能。
三、流程图:
N
Y
四、程序清单:
#include
#include
#include
#include
#defineN100
typedefstructemployee
{
intnum;
intposition;
charname[20];
charsex[2];
intcult;
intsalary;
intstate;
}ro;
roem[N];
voidmanage();
voidquery();
voidinput();
voiddisplay();
voidchange();
voiddel();
intchangeposition();
intchangecult();
intchangesalary();
intchangestate();
inttotal;
intp;
charpassword[10]="05180104";
voidmain()
{
intchoice;
chars[10];
intflag=0;
intn=3;
do
{
printf("Pleaseenterthepassword:
\n");
scanf("%s",s);
if(!
strcmp(s,password))
{
printf("WELCOME!
!
!
\n\n\n");
flag=1;
break;
}
else
{
printf("Entererror!
Pleaseenteragain:
\n");
n--;
}
}while(n>0);
if(!
flag)
{
printf("Byebye!
!
!
\n");return;
}
do
{
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\tWelcometothestaffmanagesystem!
\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\tPleasechooseyouroperatetype:
\n");
printf("======================================================\n");
printf(" \t\t1ManageSystem\n");
printf(" \t\t2QuerySystem\n");
printf(" \t\t0Quit\n");
printf("======================================================\n");
scanf("%d",&choice);
switch(choice)
{
case1:
manage();
break;
case2:
query();
break;
case0:
{
printf("Thankyou!
Byebye!
\n");
exit(0);
}
default:
{
printf("Entererror!
Pleaseenteragain!
:
\n");
return;
}
}
}while
(1);
}
voidmanage()
{
intchoicemanage;
charchoice='y';
while(choice=='y'||choice=='Y')
{
printf("\t\tWelcometothemanagesystem!
\n");
printf("======================================================\n");
printf("\t\tPleasechooseyouroperatetype:
\n");
printf("\t\t1Inputstaffinformation\n");
printf("\t\t2Displaystaffinformation\n");
printf("\t\t3Changestaffinformation\n");
printf("\t\t4Delstaffinformation\n");
printf("\t\t0Return\n");
printf("======================================================\n");
scanf("%d",&choicemanage);
switch(choicemanage)
{
case1:
input();
break;
case2:
display();
break;
case3:
change();
break;
case4:
del();
break;
case0:
printf("Thankyou!
Byebye!
\n");
return;
default:
printf("Entererror!
Pleaseenteragain!
\n");
}
printf("Goon?
(y/n)");
scanf("%s",&choice);
}
if(toupper(choice)=='N'||(choice)=='n')
{
printf(“Enterend!
Anykeytoreturn!
\n");
getch();
return;
}
}
voidinput()
{
FILE*fp;
inti=0;
charchoiceinput='y';
if((fp=fopen("employee.txt","w"))==NULL)
return;
while(choiceinput=='y'||choiceinput=='Y')
{
i++;
total++;
printf("The%dthstaff:
\n",i);
printf("\n");
printf("Pleaseenternumber:
\n");
scanf("%d",&em[i].num);
printf("\n");
printf("Pleaseenterposition:
\n");
printf("1boardchairman 2generalmanager 3deputymanager\n");
printf("4departmentmanager 5engineer 6assisstant\n");
printf("7technologicalman 8leader 9staff\n");
scanf("%d",&em[i].position);
printf("\n");
printf("Pleaseentername:
\n");
scanf("%s",em[i].name);
printf("\n");
printf("Pleaseentersex:
\n");
scanf("%s",em[i].sex);
printf("\n");
printf("Pleaseentercult:
\n");
printf("1expert 2doctor 3master 4bachelor 5other\n");
scanf("%d",&em[i].cult);
printf("\n");
printf("Pleaseentersalary:
\n");
scanf("%d",&em[i].salary);
printf("\n");
printf("Pleaseenterbodystate:
\n");
printf("1good 2general 3bad\n");
scanf("%d",&em[i].state);
printf("\n");
printf("Goon?
(y/n)\n");
scanf("%s",&choiceinput);
fwrite(&em[i],sizeof(structemployee),1,fp);
}
if(toupper(choiceinput)=='N')
{
fclose(fp);
printf("Enterend!
Anykeytoreturn!
\n");
getch();
return;
}
}
voiddisplay()
{
FILE*fp;
inti;
if((fp=fopen("employee.txt","r"))==NULL)
return;
printf("Outputresult:
\n");
printf("\n");
for(i=0;fread(&em[i],sizeof(structemployee),1,fp)!
=0;i++)
{
printf("\n");
printf("Number:
%d\n",em[i].num);
printf("Position:
%d\n",em[i].position);
printf("Name:
%s\n",em[i].name);
printf("Sex:
%s\n",em[i].sex);
printf("Cult:
%d\n",em[i].cult);
printf("Salary:
%d\n",em[i].salary);
printf("Bodystate:
%d\n",em[i].state);
printf("\n");
}
printf("\n");
printf("Enterend!
Anykeytoreturn!
\n");
getch();
fclose(fp);
return;
}
voidchange()
{
FILE*fp;
inti;
charchname[8];
intchoicechange;
roa[N];
printf("Pleaseenterdelname:
\n");
scanf("%s",&chname);
if((fp=fopen("employee.txt","w+"))==NULL)
{
printf("Thefilecouldnotbeenopen!
\n");
return;
}
for(i=0;i { if(strcmp(chname,em[i].name)==0) { printf("Informationoftheman: \n"); printf("Number: %dPosition: %dName: %sSex: %sCult: %dSalary: %dBodystate: %d\n",em[i].num,em[i].position,em[i].name,em[i].sex,em[i].cult,em[i].salary,em[i].state); printf("--------------------------------------------------------\n"); printf("Whichpartdoyouwanttochange: \n"); printf("========================================================\n"); printf("1ChangePosition\n"); printf("2ChangeCult\n"); printf("3ChangeSalary\n"); printf("4ChangeBodystate\n"); printf("0Quit\n"); printf("========================================================\n"); printf("Pleasechoose\n"); scanf("%d",&choicechange); switch(choicechange) { case1: em[i].position=changeposition(); break; case2: em[i].cult=changecult(); break; case3: em[i].salary=changesalary(); break; case4: em[i].state=changestate(); break; case0: return; default: printf("Entererror! "); } a[i]=em[i]; } else { a[i]=em[i]; } } for(i=0;i { em[i]=a[i]; } i=0; fwrite(&em[i],sizeof(structemployee),total,fp); fclose(fp); printf("End! Anykeytoreturn! \n"); getch(); return; } intchangeposition() { intnewposition; printf("Pleaseenternewposition: \n"); printf("1boardchairman 2gneralmanager 3deputymanager\n"); printf("4departmentmanager 5engineer 6assisstant\n"); printf("7technologicalman 8leader 9staff\n"); scanf("%d",&newposition); return(newposition); } intchangecult() { intnewcult; printf("Pleaseentercult: \n"); printf("1expert 2doctor 3master 4bachelor 5other\n"); scanf("%d",&newcult); return(newcult); } intchangesalary() { intnewsalary; printf("Pleaseenternewsalary: \n"); scanf("%d",&newsalary); return(newsalary); } intchangestate() { intnewstate; printf("Pleaseenternewbodystate: \n"); printf("1Good 2General 3Bad\n"); scanf("%d",&newstate); return(newstate); } voiddel() { inti=0; chardelname[8]; FILE*fp; if((fp=fopen("employee.txt","w"))==NULL) { printf("Thefilecouldnotbeenopen! \n"); printf("Anykeytoreturn! \n"); getch(); return; } printf("Pleaseenterthedelname: \n"); scanf("%s",delname); for(i=0;i { if(strcmp(em[i].name,delname)==0) { total--; for(;i { em[i]=em[i+1]; } } } i=0; fwrite(&em[i],sizeof(structemployee),total,fp); fclose(fp); } voidquery() { FILE*fp; inti=0; charquename[8]; if((fp=fopen("employee.txt","r"))==NULL) { printf("Thefilecouldnotbeenopen! Anykeytoreturn! \n"); getch(); return; } printf("Pleaseenterthequename: \n"); scanf("%s",quename); for(i=0;fread(&em[i],sizeof(structemployee),1,fp)! =0;i++) { if(strcmp(em[i].name,quename)==0) { printf("Information\n"); printf("Number: %d\n",em[i].num); printf("Position: %d\n",em[i].position); printf("Name: %s\n",em[i].name); printf("Sex: %s\n",em[i].sex); printf("Cult: %d\n",em[i].cult); printf("Salary: %d\n",em[i].salary); printf("Bodystate: %d\n",em[i].state); printf("\n"); printf("End! Anykeytoreturn! \n"); getch(); fclose(fp); return; } } printf("Couldnotfindtheperson! Anykeytoreturn! \n"); getch(); fclose(fp); return; } 五.技术关键 数据判断函数intjudge(void),祝贺函数 voidcongratulate(void) ,循环函数dowhile,选择函数switch(choice)case,修改密码函数change_password(),系统暂停函数system(“pause”). 六.设计结果说明: 优点: 1.人员对象数不多,便于一次读入内存,所有操作不经过内外存交换; 2.由键盘输入人员对象,以文件方式保存,程序执行时先将文件读入内存; 3.程序的函数调用及定义清楚明了。 不足: 1.输入、输出语句过多使程序显得过于冗长; 2.程序所实现功能较少;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 语言 课程设计 人员 管理