员工信息管理系统含附源代码.doc_第1页
员工信息管理系统含附源代码.doc_第2页
员工信息管理系统含附源代码.doc_第3页
员工信息管理系统含附源代码.doc_第4页
员工信息管理系统含附源代码.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安郵電學院高级语言课程设计报告题 目: 员 工 信 息 管 理 系 统 系部名称:电信系专业名称:电子科学与技术班 级:科技0701班内序号:33学生姓名 :贾 春 阳指导教师:黄茹时间:2008年6月10日 至2008年6月20日实验题目:员工信息管理系统一、 实验目的1. 熟悉c语言的编译连接和运行过程。2. 掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。3. 掌握if语句及switch语句的运用方法及嵌套应用方法。4. 掌握实现循环结构的三种语句while、 do-while.、for 的使用。5. 掌握函数的定义方法和调用方法。6. 能够采用模块化思想调试程序。二实验内容1. 编写程序并进行调试运行。2. 输入员工资料,并保存于文件。每个员工包含信息如:号码、姓名、性别、部门,工龄,出生日期,工资,奖金,籍贯等。3. 对已存入的员工信息进行更新操作,包括添加一个员工信息、删除某个员工信息和修改某个员工信息。4. 通过输入姓名、号码的方式查询与员工信息。5. 可以按照工资,奖金等信息对员工进行排序。6. 最后输出员工信息,供需要时打印。 二、 需求分析1. 该程序可用于对员工情况基本信息的存储、更新、查询、输出等操作,以实现对员工信息的管理。2. 其中更新功能包括:添加信息、删除信息、修改信息,也可对个别员工信息进行适当的删除或修改。以便随时更新员工信息。3. 程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据不同的方法查询:按号码查询和按姓名查询等。以满足不同的需要。四、概要设计1、方案设计对系统进行分析,给出结构图 分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计 结构图如下:员工信息管理系统 排序模块统计模块退出系统查询模块更新模块输出模块输入模块按部门查询按姓名查询按工资统计按奖金排序按工资排序按工龄排序按工龄查询修改员工信息删除员工信息添加员工信息 2.模块功能说明对各个模块进行功能的描述(1).输入模块:录入需要管理的员工信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。(2)添加模块:可添加一个或多个员工信息,并将所添加员工信息保存,方便查找。(3)删除模块:可对退休或离休的员工信息做删除处理。(4)修改模块:可根据需要对多个员工信息进行修改,也可随时对个别项进行修改。(5)查询模块:可对已建立的员工信息进行查询,并且可根据需要选择按姓名查询或按号码查询。 (6)保存模块:用于对信息进行保存。 (7)输出模块:将所有员工信息或想要查询的员工信息显示于屏幕,用于打印员工信息或查找某些员工信息。(8)退出系统:选择该项,自动退出该系统。五、详细设计及运行结果流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。修 改 密 码密 码 主 界 面 输入i的值判断i的值统计模块退出系统更新模块查询模块排序模块输入模块输出模块输入i的值输入i的的得知的输入I的 值判断i判断i判断i统计 工资按部门查询按工龄查询按姓名查询按奖金排序按工资排序按工龄排序添加信息修改信息删除信息 六 调试情况及运行结果1、 对自己设计进行评价,指出合理和不足之处,提出改进的方案。此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,运行的结果也没有预想中的好,数据的输出格式不太规范,而且各模块也出现了一些小问题,在同学们的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。可着毕竟是第一次独立完成这样的大程序,结果还不是太理想。由于时间很短,在选题报告中设想到的好多功能都没有实现。已有的那些功能虽已能基本上满足用户的需要,但如果还有更多的功能程序就会更加完美。如:在录入数据后,进行排序如果两个值相等没有提示,这就给运用上带来一些不便。2、在设计过程中的感受。 本次C 语言的实习课让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。在同学的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。七参考文献C语言程序设计 王曙燕 曹锰 科学出版社 2005年2月C语言程序设计 谭浩强 清华大学出版社 1999年12月 八。附录: #define MAX 1#include #include #define PAGE 2#define PRINT1 printf(-n)#define PRINT2 printf(员工号-员工姓名-员工性别-所在部门-员工工龄-出生年月-工资-奖金-籍贯n);#define PRINT3 printf(%3d%10s%10s%10s%10s %4d-%2d-%2d%6d%6s%6sn,workersi.num,,workersi.sex,workersi.department,workersi.workage,workersi.born.year,workersi.born.month,workersi.born.date,workersi.wage,workersi.bonus,workersi.bornplace)int sum;int a=12345;struct ymdint year; int month; int date;struct workers_type /*员工结构体*/ int num; char name10; char sex4; char department10; char workage4; struct ymd born; int wage; char bonus4; char bornplace10;workersMAX; save_message(int sum) int i; FILE *fp; if(fp=fopen(workers.txt,wb)=NULL) printf(文件读取错误,请重新打开!n); return; for(i=0;isum;i+) if(fwrite(&workersi,sizeof(struct workers_type),1,fp)!=1)printf(写文件错误,请再试!n); fclose(fp); input_message() /*录入员工信息*/int i=0,s=MAX; clrscr(); printf(nn 录入员工信息(最多%d人!)n,s); printf(-n); do printf(n 第%d名员工,i+1); printf(n 员工号(必须为正数):);scanf(%d,&workersi.num); printf(n 员工姓名:);scanf(%s,&);printf(n 性别(m/w):);scanf(%s,workersi.sex);printf(n 部门:);scanf(%s,&workersi.department);printf(n 工龄:);scanf(%s,workersi.workage);printf(n 出生日期(例:1980-12-05):);scanf(%d-%d-%d, &workersi.born.year, &workersi.born.month, &workersi.born.date); printf(n 员工工资:);scanf(%d,&workersi.wage);printf(n 员工奖金:);scanf(%s,&workersi.bonus);printf(n 籍贯:);scanf(%s,&workersi.bornplace);i+; while(iMAX); printf(n -%d个员工信息输入完毕!-n,i); sum=i; printf(n 按任意键返回主菜单!); bioskey(0);/*读取信息*/int read_message()FILE *fp; int i=0; if(fp=fopen(yuangong.txt,rb)=NULL) printf(nn*暂时还没有任何信息,按任意键进入主菜单选择员工信息的录入!*n); return 0; while(feof(fp)!=1)fread(&workersi,sizeof(struct workers_type),1,fp);if(workersi.num=0) break; else i+;fclose(fp);return(i);output_message() /*打印员工信息*/ int i=0,j=0,count,page=1; clrscr(); printf(nn -员工信息表-n 第 %d 页nn,page); PRINT2; PRINT1;do if(workersi.num!=0) j+; if(j%PAGE!=0) PRINT3; PRINT1; elsePRINT3;PRINT1;if(workersi+1.num!=0) printf(按任意键继续); bioskey(0);clrscr();printf(nn -员工信息表-n 第%d页nn,+page);PRINT2;PRINT1;i+;while(workersi.num!=0);printf(按任意键返回主菜单!);bioskey(0); /*更新(添加员工信息)*/insert_message() int i=sum,j,flag=0; char choice; i=sum; clrscr(); printf(nn 添加员工信息n); printf( -n); do workersi.num=+sum; printf(n 新员工号:%d,workersi.num); printf(n 员工姓名:); scanf(%s,&); printf(n 员工性别:(1代表女/2代表男):); scanf(%s,&workersi.sex); printf(n 员工部门:); scanf(%s,&workersi.department); printf(n 工龄:); scanf(%s,&workersi.workage); printf(n 出生日期(例:1950-01-12):); scanf(%d-%d-%d, &workersi.born.year, &workersi.born.month, &workersi.born.date); printf(n 员工工资:); scanf(%d,&workersi.wage); printf(n 员工奖金:); scanf(%s,&workersi.bonus); printf(n 员工籍贯:); scanf(%s,&workersi.bornplace); printf(n 要继续吗?(y/n); choice=getch(); if(choice=y) printf(n 继续!n); i+;flag=1; else flag=0; while(flag=1); printf(n 按任意键返回主菜单!); bioskey(0); /*按姓名删除*/del_name() int i,j,flag; char del_name10; char choice; do clrscr(); printf(n 输入要删除的员工姓名:); scanf(%12s,&del_name); for(i=0;isum;i+) if(strcmp(,del_name)=0&!=0) for(j=i;jsum;j+) workersj=workersj+1; break; if(i=sum) printf(n 该员工不存在); bioskey(0); printf(nn 要继续修改吗?(Y/N); choice=getch(); if (choice=Y|choice=y) printf(n 继续!n); i+; flag=1; else flag=0; while(flag=1); printf(n 按任意键返回主菜单!); bioskey(0);/*按号码删除*/ del_number() int i,j,flag; char del_num8; char choice; do clrscr(); printf(n 输入要删除的员工号码:); scanf(%10s,&del_num); for(i=0;isum;i+) if(strcmp(workersi.num,del_num)=0&workersi.num!=0) for(j=i;jsum;j+) workersj=workersj+1; break; if(i=sum) printf(n 该员工不存在); bioskey(0); printf(nn 要继续修改吗?(Y/N); choice=getch(); if (choice=Y|choice=y) printf(n 继续!n);i+;flag=1; else flag=0; while(flag=1); printf(n 按任意键返回主菜单!); bioskey(0); /*删除员工信息*/ del_message() int choice; do clrscr(); printf(nn *删除员工信息* nn); printf( 1、按员工姓名删除n); printf( 2、按员工号码删除n); printf( 0、返回主菜单 n); printf( 请选择(0-2): n); scanf(%d,&choice); switch(choice) case 1: del_name(); break; case 2: del_number(); break; case 0: break; while(choice!=0); /*修改员工信息*/ revise_message() int i=0,choice,revise_num,flag; do clrscr(); printf(n 输入要修改的员工号码:);scanf(%d,&revise_num);for(i=0;isum;i+)if(workersi.num=revise_num) printf(n -员工信息-n); PRINT1; PRINT2; PRINT3; printf(n 您要修改哪一项?); printf(n 1.姓名;); printf(n 2.工龄:); printf(n 3.工资:); printf(n 4.奖金:); printf(n 5.部门:); scanf(%d,&choice);switch(choice) case 1:printf(n 输入修改后的名称:); scanf(%s,&);break;case 2:printf(n 输入修改后工龄:); scanf(%s,&workersi.workage);break;case 3:printf(n 输入修改后的工资:); scanf(%d,&workersi.wage);break;case 4:printf(n 输入修改后的奖金:); scanf(%s,&workersi.bonus);break;case 5:printf(n 输入修改后的部门:); scanf(%s,&workersi.department);break; PRINT1; PRINT2; PRINT3; break; if(i=sum) printf(n 该员工信息不存在!按任意键返回); bioskey(0); printf(nn 要继续修改吗?(Y/N); choice=getch(); if (choice=Y|choice=y)flag=1; printf(n 继续!); else flag=0; while(flag=1); printf(n 按任意键返回主菜单!); bioskey(0);renew_message() int choice; do clrscr(); printf( *更新员工信息*n); printf(nn 1.添加员工信息;); printf(nn 2.删除员工信息:); printf(nn 3.修改员工信息;); printf(nn 0.返回主菜单;n); scanf(%d,&choice); switch(choice) case 1: insert_message();break; case 2:del_message();break; case 3:revise_message();break; case 0: break; while(choice!=0);/*按姓名查询*/inquire_name()int i,j=0; char inquire_name10; clrscr(); printf(n 请输入要查询的员工姓名:); scanf(%s,inquire_name); for(i=0;isum;i+) if(strcmp(,inquire_name)=0&workersi.num!=0) printf(n -查询结果-n); PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf(n 该员工号不存在!按任意键返回); bioskey(0);/*按工龄查询*/inquire_workage()int i,j=0; char inquire_workage10; clrscr(); printf(n 请输入要查询的工龄:); scanf(%s,inquire_workage); for(i=0;isum;i+) if(strcmp(workersi.workage,inquire_workage)=0&workersi.workage!=0) printf(n -查询结果-n); PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf(n 没有符合要求的员工的信息!按任意键返回。); bioskey(0);/*按部门查询*/inquire_department()int i,j=0; char inquire_department10; clrscr(); printf(n 请输入要查询的部门:); scanf(%s,inquire_department); for(i=0;isum;i+) if(strcmp(workersi.department,inquire_department)=0&workersi.department!=0) printf(n -查询结果-n); PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf(n 没有符合要求的信息!按任意键返回。); bioskey(0);/*查询模块*/inquire_message() int choice; do clrscr(); printf(n *查询员工信息*); printf(n 1.按员工姓名查询); printf(n 2.工龄查询); printf(n 3.按部门查询); printf(n 0.返回主菜单); printf(n 请选择(0-3):); scanf(%d,&choice); switch(choice) case 1: inquire_name();break; case 2: inquire_workage();break; case 3: inquire_department();break; case 0:break; while(choice!=0);sort_wage() /*按工资排序*/ struct workers_type *p,*qMAX; int i,j,k; clrscr(); printf(n 工资排行 ); printf(n -n); printf(n 排名 员工号 姓名 部门 工资 工龄); p=workers; for(i=0;isum;i+)qi=p+; for(i=0;isum;i+) k=i; for(j=i+1;jwagewage) k=j; if (k!=i) p=qi;qi=qk;qk=p; for(i=0;inum,qi-name,qi-department, qi-wage,qi-workage); bioskey(0);/*奖金排行*/sort_bonus()struct workers_type *p,*qMAX; int i,j,k; clrscr(); printf(n 奖金排行 ); printf(n -n); printf(n 排名 员工号 姓名 部门 奖金 工龄); p=workers; for(i=0;isum;i+)qi=p+; for(i=0;isum;i+) k=i; for(j=i+1;jbonusbonus) k=j; if (k!=i) p=qi;qi=qk;qk=p; for(i=0;inum,qi-name,qi-department, qi-bonus,qi-workage); bioskey(0);/*工龄排行*/sort_workage()struct workers_type *p,*qMAX; int i,j,k; clrscr(); printf(n 工龄排行 ); printf(n -n); printf(n 排名 员工号 姓名 部门 工资 工龄); p=workers; for(i=0;isum;i+)qi=p+; for(i=0;isum;i+) k=i; for(j=i+1;jworkageworkage) k=j; if (k!=i) p=qi;qi=qk;qk=p; for(i=0;inum,qi-name,qi-department, qi-wage,qi-workage); bioskey(0);/*排序模块*/sort_message()int choice; do clrscr(); printf(nnn*员工排行信息*nn); printf( 1.工资排行nn); printf( 2.奖金排行nn); printf( 3.工龄排行nn); printf( 0.返回主菜单nn); printf( 请选择(0-3):nn); scanf(%d,&choice); switch(choice) case 1:sort_wage();break; case 2:sort_bonus();break; case 3:sort_workage();break; case 0:break; while(choice!=0);/*统计工资模块*/ count_wage() int i; int m1,m2,m3,m4; m1=m2=m3=m4=0; clrscr(); for(i=0;i=2000) m1+; else if(workersi.wage=1500&workersi.wage=1000&workersi.wage=0&workersi.wage1000) m4+; printf(n 工资大于2000元的人数:%dn,m1); printf(n 工资在1500-2000元间的人数:%dn,m2); printf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论