综合作业报告.docx
- 文档编号:11972589
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:18
- 大小:25.39KB
综合作业报告.docx
《综合作业报告.docx》由会员分享,可在线阅读,更多相关《综合作业报告.docx(18页珍藏版)》请在冰豆网上搜索。
综合作业报告
综合作业
word文档提交形式:
作业题目:
员工信息管理系统
开发工具:
Vc++6.0
设计组人数:
6人
班级:
工程管理13-1班
序号
学号
姓名
分工说明
百分比
1
130********9
李国帅
主函数和部分子函数
%
2
130********5
牟鹏程
子函数
%
3
130********6
王保军
子函数
%
4
130********7
廖祖富
子函数
%
5
130********8
罗世鹏
子函数
%
6
130********0
王才汤
子函数
%
说明:
序号等同于作业内部排名(即每名学生完成工作量多少排序),百分比总和为100%
函数个数:
调试总述:
序号
函数名称
功能说明
正确性
1
main
主函数
%
2
inpt
输入员工信息
%
3
show
显示员工信息
%
4
add
增加员工信息
%
5
admen
按条件修改员工信息
%
6
admena
按员工工号修改
%
7
admenb
按员工姓名修改
%
8
preside
统计员工
%
9
find
按条件查找员工
%
10
finda
按工号查找
%
11
findb
按姓名查找
%
12
save
保存员工信息
%
技术点:
□一维数组□二维数组□函数□结构体□文件□其他
算法:
程序使用到的常规算法列表,如选择法排序,最大值,二分法查找等
【项目简介】
(1)选定的题目内容:
.输入员工信息记录簿以磁盘文件保存;
.读取磁盘文件并显示所有员工的信息;
.添加员工信息;
.按条件修改员工信息;
.统计员工信息;
按条件查找员工信息;
.保存员工信息;
(2)实际完成的软件功能:
员工信息记录簿可以使用并更改已经存在的数据文档,也可以在指定数据文档不存在时自动新建空白数据文档,并提示用户添加数据。
当数据文档中无数据时,会提示用户添加数据。
.查询全部员工信息和信息输出。
添加员工信息,本程序会引导用户完成员工信息添加,并显示刚添加员工的信息让用户确认,而后选择保存或重新添加。
.修改员工信息,包括按姓名修改和按学号修改。
在修改时,会先显示数据库中原有的该员工的信息,随后引导用户修改。
.按条件查询员工信息,包括按工号查询和按姓名查询,并给予输入提示,用户按提示输入即可得到所查员工信息。
.完成员工信息的保存
【模块与算法描述】
本程序大致分为六个模块:
1.输入员工信息是通过voidinput子函数实现;
2.读取磁盘文件并显示所有员工的信息,通过voidshow子函数实现;
3.添加员工信息是通过voidadd子函数实现;
4.按条件修改员工信息是通过voidadmen子函数实现,又分为两种情况,分别是按员工工号修改voidadmena和按员工姓名修改voidadmenb;
5.统计员工信息是通过voidpreside子函数实现;
6.按条件查找员工信息是通过voidfind子函数实现,又分为两种情况,分别是按员工工号修改voidfinda和按员工姓名修改voidfindb;
7.保存员工信息是通过voidsave子函数实现;
#include
#include
#include
#include
#defineN200/*定义宏N为员工结构体的总数*/
structstudent/*定义员工结构体*/
{
longnum;
charname[20];
intc_grade;
};
structstudentstu[N];
intt=1,pl=0;/*定义两个全局变量:
员工总数变量和增加的员工变量*/
voidmain();/*以下为定义无参函数*/
voidinput();/*输入信息*/
voidshow();/*显示信息*/
voidadd();/*增加*/
voidamend();/*修改*/
voidamenda();/*按员工工号修改*/
voidamendb();/*按姓名修改*/
voidpreside();/*统计*/
voidfind();/*查找*/
voidfinda();/*工号查找*/
voidfindb();/*姓名查找*/
voidsave();/*保存*/
voidexit();/*退出*/
voidmain()/*主函数*/
{intselect,w;chark;/*定义变量*/
system("cls");
printf("---------------------------------------\n");
printf("---------好日子公司工资记录系统--------\n");/*以下显示主菜单*/
printf("---------------------------------------\n");
printf("1.输入信息:
\n2.显示信息:
\n3.增加信息:
\n4.修改信息:
\n5.统计:
\n6.查找:
\n7.保存信息:
\n8.退出系统:
\n");
scanf("%d",&select);
switch(select)
{
case1:
input();break;/*以下是选择执行菜单上的哪个函数*/
case2:
show();break;
case3:
add();break;
case4:
amend();break;
case5:
preside();break;
case6:
find();break;
case7:
save();break;
case8:
exit();break;
default:
w=1;
}
if(w==1)
{
printf("输入有误,按任意键重新选择.\n");
k=getchar();
getch();
main();
}
}
voidinput()/*该函数为输入函数,并把输入的信息读入文件,以便再恢复*/
{
FILE*fp;
intx,count=0,i;charw,o;structstudent*p;/*定义变量和指向结构体的指针变量*/
system("cls");
p=stu;
printf("\t\t\t员工信息的输入.\n");
do{
pl++;
printf("请输入第%d个员工的信息.\n\n",t);/*逐个步骤的实现员工信息的输入*/
printf("工号:
\n");scanf("%ld",&p->num);printf("\n");
printf("姓名:
\n");scanf("%s",p->name);printf("\n");
printf("10月份的绩效:
\n");scanf("%d",&p->c_grade);printf("\n");
printf("\n\n是否要继续输入员工信息(y/n)\n");
o=getchar();/*接收回车键*/
w=getchar();
if(w=='y'||w=='Y')/*选择是否输入更多的员工*/
{
t++;
x=1;
p++;
}
else
x=0;
}while(x==1);
if(w=='n'||w=='N')
{
if((fp=fopen("stulist","wb"))==NULL)
{
printf("cannotopenthefile\n");
return;
}
for(i=0;i */ if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) printf("filewriteerror.\n"); fclose(fp); printf("按任意键返回.\n"); getch(); main(); } } voidshow()/*显示函数,对员工信息的显示*/ { inti; system("cls"); printf("\t\t\t员工绩效显示.\n\n");/*以下实现显示*/ printf("%-8s%-8s%-8s%\n\n","工号","姓名","10月份绩效"); for(i=0;i { printf("%-8ld%-8s%-8d",stu[i].num,stu[i].name,stu[i].c_grade); printf("\n\n"); } printf("\n按任意键返回.\n"); getch(); main(); } voidadd()/*增加员工的信息*/ { intx;chara,w;structstudent*p; system("cls"); printf("\t\t\t你增加的信息会加到其它员工的后面.\n"); p=stu+t; do/*以下是逐个员工信息的增加*/ { printf("请输入第%d个员工的信息.\n\n",t+1); printf("工号: \n"); scanf("%ld",&p->num); printf("\n"); printf("姓名: \n"); scanf("%s",p->name); printf("\n"); printf("10月份员工的工资: \n"); scanf("%d",&p->c_grade); a=getchar(); printf("\n是否要继续输入员工信息(y/n)\n\n"); w=getchar();p++;t++;/*判断是否继续对员工信息的增加*/ if(w=='y'||w=='Y') { x=1; } if(w=='n'||w=='N') { x=0; break; } }while(x==1); if(x==0) { printf("\n"); printf("按任意键返回.\n"); getch(); main(); } } voidamend()/*对员工信息的修改*/ { inti,m;chare; system("cls"); printf("\t\t\t请选择用哪种方式进行修改.\n"); printf("1.工号.\n2.姓名.\n"); scanf("%d",&i);/*输入是用姓名修改还是用工号修改*/ switch(i) { case1: amenda();break; case2: e=getchar();amendb();break; default: m=1; } if(m==1) printf("输入有误,请按任意键返回.\n"); getch(); main(); } voidamenda()/*修改函数(用工号进行修改)*/ { intj=t; longnum_a; structstudent*p; chara,b,v; system("cls"); printf("\t\t\t请输入要修改的员工工号: \n"); scanf("%ld",&num_a);/*输入要修改员工的工号*/ for(p=stu;p { j--;if(p->num==num_a)break;/*判断该员工是否存在*/ if(j==0) { printf("不存在该员工,请按任意键返回.\n"); getch(); main(); } } printf("\n你要修改的员工为: \n"); printf("%-8ld%-8s%-8d",p->num,p->name,p->c_grade);/*将要修改的员工信息的显示。 */ printf("请输入10月份的工资: "); scanf("%d",&p->c_grade); v=getchar(); printf("\n\n修改完成,请按任意键返回."); b=getchar(); getch(); main(); } voidamendb()/*修改(用姓名修改)*/ { charname_b[20],v; intj=t,i; structstudent*p; system("cls"); printf("\t\t\t请输入要修改的员工姓名: \n\n"); gets(name_b);/*输入姓名*/ for(p=stu;p { j--;if(strcmp(p->name,name_b)==0)break;/*判断是否存在该员工*/ if(j==0) { printf("不存在该员工,请按任意键返回.\n"); getch(); main(); } } printf("请输入10月份的工资: "); scanf("%d",&p->c_grade); v=getchar(); printf("\n\n修改完成,请按任意键返回."); getch(); main(); } voidpreside()/*统计(将员工的信息全部显示出来,并判断哪个员工不合格和不合格的总人数,并将它显示出来)*/ { inti; structstudent*p; system("cls"); printf("\t\t\t员工信息统计.\n\n"); //printf("%-8s%-8s%-8s%\n\n","工号","姓名","10月份员工的绩效"); //for(p=stu;p //{ //printf("%-8ld%-8s%-8d",p->num,p->name,p->c_grade); //} printf("\n%-8s%-8s%-8s%\n\n","工号","姓名","10月份员工的绩效"); for(p=stu;p { if(p->c_grade<100) { printf("以下是显示不合格的员工信息为: \n"); printf("%-8ld%-8s%-8d",p->num,p->name,p->c_grade); printf("\n\n"); } elseif(p->c_grade>100&&p->c_grade<200) { printf("\n以下是显示100-199的员工信息为: \n\n"); printf("%-8ld%-8s%-8d",p->num,p->name,p->c_grade); printf("\n\n"); } elseif(p->c_grade>200&&p->c_grade<499) { printf("\n以下是显示200-499的员工信息为: \n\n"); printf("%-8ld%-8s%-8d",p->num,p->name,p->c_grade); printf("\n\n"); } else { printf("\n以下是显示500以上的员工信息为: \n\n"); printf("%-8ld%-8s%-8d",p->num,p->name,p->c_grade); printf("\n\n"); } } printf("\n"); printf("统计完成,请按任意键返回.\n"); getch(); main(); } voidfind()/*对员工信息的查找*/ {inti,m;chare; system("cls"); printf("\t\t\t请选择用哪种方式进行查找.\n"); printf("1.工号.\n2.姓名.\n"); scanf("%d",&i);/*输入是用姓名查找还是用员工工号查找*/ switch(i) {case1: finda();break; case2: e=getchar();findb();break; default: m=1; } if(m==1) printf("输入有误,请按任意键返回.\n"); getch(); main(); } voidfinda()/*查找函数(用工号进行查找)*/ { intj=t;longnum_a;structstudent*p;charb; system("cls"); printf("\t\t\t请输入要查找的员工工号: \n"); scanf("%ld",&num_a);/*输入要查找员工的学号*/ for(p=stu;p { j--;if(p->num==num_a)break;/*判断该员工是否存在*/ if(j==0) { printf("不存在该员工,请按任意键返回.\n"); getch(); main(); } } printf("\n你要查找的员工为: \n\n");/*显示已找出的员工*/ printf("%-8s%-8s%-8s%\n\n","工号","姓名","10月份员工的工资"); printf("%-8ld%-8s%-8d",p->num,p->name,p->c_grade); printf("\n\n查找完成,请按任意键返回."); b=getchar(); getch(); main(); } voidfindb()/*查找(用姓名查找)*/ { charname_b[20];intj=t;structstudent*p; system("cls"); printf("\t\t\t请输入要查找的员工姓名: \n\n"); gets(name_b);/*输入姓名*/ for(p=stu;p { j--;if(strcmp(p->name,name_b)==0)break;/*判断是否存在该员工*/ if(j==0) { printf("不存在该员工,请按任意键返回.\n"); getch(); main(); } } printf("\n你要查找的员工为: \n\n");/*显示已找出的员工*/ printf("%-8s%-8s%-8s%\n\n","工号","姓名","10月份员工公子工资"); printf("%-8ld%-8s%-8d",p->num,p->name,p->c_grade); printf("\n\n查找完成,请按任意键返回."); getch(); main(); } voidsave()//保存函数。 { FILE*fp;inti; system("cls"); if((fp=fopen("studentlist.txt","w"))==NULL)/*打开要写入的文件。 */ { printf("cannotopenthefile\n"); return; } for(i=0;i if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1)/*将信息写入文件,将它保存。 */ printf("filewriteerror.\n"); fclose(fp); printf("\n员工信息已保存成功,请到C文件保存的位置去核对.\n"); printf("\n按任意键返回."); getch(); main(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合 作业 报告