




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计课程设计报告职工信息管理系统设计计算机科学与技术专业(软件工程(NIIT)学生姓名 班级学号指导教师完成日期2011年7月1 课程设计目的 12 课程设计内容 13 设计流程图 14 源程序清单 25 小结 21职工信息管理系统的设计1 课程设计目的1. 加深对 C 语言程序设计课程知识的理解,掌握C 语言应用程序的开发方法和步骤;2. 进一步掌握和利用C语言进行程序设计的能力;3. 进一步理解和运用结构化程序设计的思想和方法;4. 初步掌握开发一个小型实用系统的基本方法;5. 学会跳是一个较长程序的基本方法;6. 学会利用流程图火N-S图表示算法;7. 掌握书写长须设计开发文档的能力
2、(书写课程设计报告)2 课程设计内容设计职工信息管理系统,要求职工心想包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。设计一职工信息管理系统,使之能提供以下功能:( 6)系统以菜单方式工作( 7)职工信息录入功能(职工信息用文件保存)- 输入( 8)职工信息浏览功能- 输出( 9)查询和排序功能(至少一种查询方式)- 算法( 10)按工资查询( 11)按学历查询等( 12)职工信息删除、修改功能(任选项)3 设计流程图1 ) 菜单函数void menu() /* 菜单函数*/printf("计算机科学与技术软件技术 n");printf("
3、n");职工信息管理*n");printf("1010704422 杨婷婷 n");printf("1.录入职工信息");printf("2.浏览职工信息n");printf("3.查询职工信息");printf("4.删除职工信息n");printf("5.添加职工信息");printf("6.修改职工信息n");printf("7.退出 n");printf("*谢谢使用printf("n&q
4、uot;);printf("*printf("n");printf("n");*n");( 2)录入职工信息void append()if(fp=fopen("worker.xls","a")=NULL)printf("n 不能打开该文件!");exit();printf("n 请输入添加职工信息(姓名、 职工号、 性别、 年龄、 学历、 职位、 工资、 电话、 地址 )n");scanf("%s%s%s%s%s%s%s%s%s",on
5、,one.num,one.sex,one.age,one.record,one.positio n,one.wanges,one.tel,one.addr);fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,o ne.age,one.record,one.position,one.wanges,one.tel,one.addr);fclose(fp);( 3)查询职工信息数据查找共分为职工号、姓名等方式查找void search()int l;print
6、f("tttt姓名查找按:1n");printf("tttt学历查找按:2n");printf("tttt职工号查按:3n");scanf("%d",&l);if(l>0&&l<4)switch(l)case 1:nameway();break;case 2:xueliway();break;case 3:numway();break;printf("nn 操作完毕!");else printf("tttt输入有误!");void name
7、way()int k=0;char nam8;printf("n 请输入您要查找的职工姓名:");scanf("%s",nam);if(fp=fopen("worker.xls","rb")=NULL)printf("n 不能打开文件!");exit();while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.record,one.p osition,one.wan
8、ges,one.tel,one.addr);if(strcmp(nam,)=0)printf("nn 已查到,记录为:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one .age,one.record,one.position,one.wanges,one.tel,one.addr);k=1;if(k=0)printf("nn 对不起,查无此人!。 ");fclose(fp);void xueliway(
9、)int j=0;char xueli10;printf("tttt 输入你要查询的学历n");scanf("%s",xueli);if(fp=fopen("worker.xls","rb")=NULL)printf("n 不能打开文件!");exit();while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.record,one.p osition,one.wa
10、nges,one.tel,one.addr);if(strcmp(xueli,one.record)=0)printf("nn 已查到,记录为:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one .age,one.record,one.position,one.wanges,one.tel,one.addr);j=1;if(j=0)printf("nn 对不起,查无此人!。 ");fclose(fp);void numw
11、ay()int i=0;char numb10;printf("tttt 输入你要查询的职工号n");scanf("%s",numb);if(fp=fopen("worker.xls","rb")=NULL)printf("n 不能打开文件!");exit();while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.record,one.p osition,one.
12、wanges,one.tel,one.addr);if(!strcmp(numb,one.num)printf("nn 已查到,记录为:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one .age,one.record,one.position,one.wanges,one.tel,one.addr);i=1;if(!i)printf("nn 对不起,查无此人!。 ");fclose(fp);( 4)修改职工信息void
13、 modify()int m,k=0;long a;char namekey8;printf("n 请输入您要修改的职工的姓名:");scanf("%s",namekey);if(fp=fopen("worker.xls","r+")=NULL)printf("n 不能打开该文件!");exit();while(!feof(fp)a=ftell(fp);fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.a
14、ge,one.record,one.p osition,one.wanges,one.tel,one.addr);if(!strcmp(namekey,)k=1;break;if(k)printf("n 已查到,记录为:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one .age,one.record,one.position,one.wanges,one.tel,one.addr);printf("n 请输入信息
15、( 按照姓名、工号、性别、年龄、学历、职位、工资、电话、地址的顺序输入 ) : ");scanf("%s%s%s%s%s%s%s%s%s",,one.num,one.sex,one.age,one.record,one.positio n,one.wanges,one.tel,one.addr);fseek(fp,a,0);fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,o ne.age,one.record,one.
16、position,one.wanges,one.tel,one.addr);elseprintf("n 对不起,查无此人, 无法进行修改。");fclose(fp);( 5)删除职工信息void delete()int m,k=0;long a,b;char namekey8, valid4;printf("n 请输入您要删除的职工姓名:");scanf("%s",namekey);if(fp=fopen("worker.xls","r+")=NULL)printf("n 不能打开该文
17、件!");exit();while(!feof(fp)a=ftell(fp);fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.record,one.p osition,one.wanges,one.tel,one.addr);if(strcmp(namekey,)=0)k=1;break;if(k=1)printf("n 已查到,记录为");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%
18、-15sn",,one.num,one.sex,one .age,one.record,one.position,one.wanges,one.tel,one.addr);printf("n 确实要删除, 按 1 ;不删除,按0: ");scanf("%d",&m);if(m=1)fseek(fp,a,0);fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn");,);elseprintf("n 对不起,查无此人。");fcl
19、ose(fp);( 6)数据输出void output()if(fp=fopen("worker.xls","r")=NULL)printf("n 不能打开该文件!");exit();printf("nn%20sn"," 职工信息管理系统");while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.record,one.p osition,one.wanges,on
20、e.tel,one.addr);printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one.a ge,one.record,one.position,one.wanges,one.tel,one.addr);fclose(fp);4 源程序清单#include <stdio.h>#include <windows.h>#include <time.h> #include <string.h>#define N 100 struc
21、t employee int num;char name10;char sex;int age;char xueli30;int wage;char addr30;long int tel;定义一个结构体*/em100;/* void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify(); /* 定义各函数*/void menu() /*
22、printf("printf("n");printf(" printf("n");菜单函数*/计算机科学与技术软件技术 n");1 1010704422 杨婷婷 n");printf(" printf(" printf(" printf(" printf("printf(" printf(" printf(" printf("*.5.6.7.录入职工信息 浏览职工信息 查询职工信息 删除职工信息职工信息管理*n&
23、quot;);");n");");n");添加职工信息");修改职工信息n");退出 n");*谢谢使用*n");printf("n");printf("n");void main()menu(); /* 调用菜单函数*/int n,flag;char a;doprintf(" 请选择你需要操作的步骤(1-7):n");scanf("%d",&n);if(n>=1&&n<=7)flag=1;break
24、;elseflag=0;printf(" 您输入有误,请重新选择!");while(flag=0);while(flag=1)switch(n)case 1:printf("n");printf("n");input();break;case 2:printf("n");printf("n");display();break;case3:printf("n");printf("n");search();break;case4:printf("n&
25、quot;);printf("n");del();break;case 5:printf("n");printf("n");add();break;case 6:printf("n");printf("n");modify();break;case 7:exit(0);break;default :break;getchar();printf("n");printf(" 是否继续进行(y or n):n");scanf("%c",&am
26、p;a); 输入职工信息 浏览职工信息 按 职工号查询职 工信息 删除职工信息 添加职工信息 修改职工信息 if(a='y')flag=1;menu(); /*调用菜单函数*/printf(" 请再次选择你需要操作的步骤(1-6):n");scanf("%d",&n);printf("n");elseexit(0);void input() /* 录入函数*/int i,m;(1-100):n");printf(" 请输入需要创建信息的职工人数scanf("%d",&am
27、p;m);for (i=0;i<m;i+)printf(" 职工号:");if(emi.num!=emi-1.num)printf("%8d ",emi.num);printf("n");printf(" 请输入姓名: ");scanf("%s",);getchar();printf(" 请输入性别(f- 女 m- 男 ): ");scanf("%c",&emi.sex);printf("请输入年龄: ")
28、;scanf("%d",&emi.age);printf("请输入学历: ");scanf("%s",emi.xueli);printf("请输入工资: ");scanf("%d",&emi.wage);printf("请输入住址: ");scanf("%s",emi.addr);printf(" 请输入电话: ");scanf("%d",&emi.tel);printf("n&qu
29、ot;);printf("n 创建完毕!n");save(m);void save(int m) /* 保存文件函数*/int i;FILE*fp;if (fp=fopen("employee_list","wb")=NULL) /*printf ("cannot open filen");exit(0);for (i=0;i<m;i+) /* 将内存中职工的信息输出到磁盘文件中去*/if (fwrite(&emi,sizeof(struct employee),1,fp)!=1)printf(&qu
30、ot;file write errorn");fclose(fp);int load() /* 导入函数*/FILE*fp;int i=0;if(fp=fopen("employee_list","rb")=NULL)printf ("cannot open filen");exit(0);elsedofread(&emi,sizeof(struct employee),1,fp); i+;while(feof(fp)=0);fclose(fp);return(i-1);void display() /* 浏览函数*
31、/int i;int m=load();printf("n 职工号 t 姓名 t 性别 t 年龄 t 学历 t 工资 t 住址 t 电话 n");for(i=0;i<m;i+) /*m 为输入部分的职工人数*/printf("n %dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi .age,emi.xueli,emi.wage,emi.addr,emi.tel);void del() /* 删除函数*/int m=load();int i,j,n,t,flag;char name20;pr
32、intf("n 原来的职工信息:n");display(); /*调用浏览函数*/printf("n");printf(" 请输入要删除的职工的姓名:n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i+)if(strcmp(,name)=0)printf("n 已找到此人,原始记录为:n");printf("n职工号 t 姓名 t 性别 t 年龄 t 学历 t 工资 t 住址 t 电话 n");
33、printf("n%dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);printf("n确实要删除此人信息请按1, 不删除请按0n");scanf("%d",&n);if(n=1) /*如果删除,则其他的信息都往上移一行*/for(j=i;j<m-1;j+)strcpy(,emj+1.name);emj.num=emj+1.num;emj.sex=emj+1.sex
34、;emj.age=emj+1.age;strcpy(emj.xueli,emj+1.xueli);emj.wage=emj+1.wage;strcpy(emj.addr,emj+1.addr);emj.tel=emj+1.tel;flag=0;if(!flag)m=m-1;elseprintf("n 对不起,查无此人!n");printf("n 浏览删除后的所有职工信息:n");save(m); /* 调用保存函数*/display(); /* 调用浏览函数*/printf("n 继续删除请按1 ,不再删除请按0n");scanf(&
35、quot;%d",&t);switch(t)case 1:del();break;case 0:break;default :break;void add()/* 添加函数*/FILE*fp;int n;int count=0;int i;int m=load();printf("n 原来的职工信息:n");display(); /*调用浏览函数*/printf("n");fp=fopen("emploee_list","a");printf(" 请输入想增加的职工数:n");
36、scanf("%d",&n);for (i=m;i<(m+n);i+)printf("n 请输入新增加职工的信息:n");printf(" 请输入职工号: ");if(emi.num!=emi-1.num)printf("%8d ",emi.num);printf("n");printf(" 请输入姓名: ");scanf("%s",);getchar();printf("请输入性别(f- 女 m- 男 ): &qu
37、ot;);scanf("%c",&emi.sex);printf("请输入年龄: ");scanf("%d",&emi.age);printf("请输入学历: ");scanf("%s",emi.xueli);printf("请输入工资: ");scanf("%d",&emi.wage);printf(" 请输入住址: ");scanf("%s",emi.addr);printf("
38、 请输入电话: ");scanf("%d",&emi.tel);printf("n");count=count+1;printf(" 已增加的人数:n");printf("%dn",count);printf("n 添加完毕!n");m=m+count;printf("n 浏览增加后的所有职工信息:n");printf("n");save(m);display();fclose(fp);void search()/* 查询函数*/int
39、t,flag;do3, 进入主函数printf("n 按职工号查询请按1 ; 按学历查询请按2 ; 按电话号码查询请按按 4n");scanf("%d",&t);if(t>=1&&t<=4)flag=1;break;elseflag=0;printf(" 您输入有误,请重新选择!");while(flag=0);while(flag=1)switch(t)case 1:printf(" 按职工号查询n");search_num();break;case 2:printf(&quo
40、t; 按学历查询n");search_xueli();break;case 3:printf(" 按电话号码查询n");search_tel();break;case 4:main();break;default:break;void search_num()int num;int i,t;int m=load();printf(" 请输入要查找的职工号(20001111-20009999):n");scanf("%d",&num);for(i=0;i<m;i+)if(num=emi.num)printf(&q
41、uot;n 已找到此人,其记录为:n");printf("n 职工号 t 姓名 t 性别 t 年龄 t 学历 t 工资 t 住址 t 电话 n")printf("n%dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi. age,emi.xueli,emi.wage,emi.addr,emi.tel);break;if(i=m)printf("n 对不起,查无此人n");printf("n");printf(" 返回查询函数请按1, 继续查
42、询职工号请按2n");scanf("%d",&t);switch(t)case 1:search();break;case 2: break;default:break; void search_xueli()char xueli30;int i,t;int m=load();printf(" 请输入要查找的学历:n");scanf("%s",xueli);for(i=0;i<m;i+)if(strcmp(emi.xueli,xueli)=0)printf("n 已找到,其记录为:n");p
43、rintf("n 职工号 t 姓名 t 性别 t 年龄 t 学历 t 工资 t 住址 t 电话 n");printf("n%dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi. age,emi.xueli,emi.wage,emi.addr,emi.tel);if(i=m)printf("n 对不起,查无此人n");printf("n");printf(" 返回查询函数请按1, 继续查询学历请按2n");scanf("%d&qu
44、ot;,&t);switch(t)case 1:search();break;case 2:break;default :break;void search_tel()long int tel;int i, t;int m=load();printf(" 请输入要查找的电话号码:n");scanf("%ld",&tel);for(i=0;i<m;i+)if(tel=emi.tel)printf("n 已找到此人,其记录为:n");printf("n 职工号 t 姓名 t 性别 t 年龄 t 学历 t 工
45、资 t 住址 t 电话 n");printf("n%dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);break;if(i=m)printf("n 对不起,查无此人n");printf("n");printf(" 返回查询函数请按1, 继续查询电话号码请按2n");scanf("%d",&t);switch(t)case 1:search
46、();break;case 2:break;default :break;void modify() /* 修改函数*/int num;char name10;char sex;int age;char xueli30;int wage;char addr30;long int tel;int b,c,i,n,t,flag;int m=load(); /* 导入文件内的信息*/printf("n 原来的职工信息:n");display(); /*调用浏览函数*/printf("n");printf(" 请输入要修改的职工的姓名:n")
47、;scanf("%s",name);for(flag=1,i=0;flag&&i<m;i+)if(strcmp(,name)=0)printf("n 已找到此人,原始记录为:n");printf("n职工号 t 姓名 t 性别 t 年龄 t 学历 t 工资 t 住址 t 电话 n");printf("n%dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,e
48、mi.tel);printf("n确实要修改此人信息请按1 ; 不修改请按0n");scanf("%d",&n);if(n=1)printf("n需要进行修改的选项n 1. 职工号 2. 姓名 3. 性别 4. 年龄 5. 学历6. 工资 7. 住址 8. 电话 n");printf("请输入你想修改的那一项序号:n");scanf("%d",&c);if(c>8|c<1)printf("n选择错误,请重新选择!n");flag=0;if(flag
49、=1)printf("n 对不起,查无此人!n");doswitch(c) /* 因为当找到第i 个职工时,for 语句后 i 自加了 1, 所以下面的应该把改后的信息赋值给第i-1 个人 */case 1:printf("职工号改为: ");scanf("%d",&num);emi-1.num=num;break;case 2:printf("姓名改为: ");scanf("%s",name);strcpy(,name);break;case 3:printf("性别改为: ");getchar();scanf("%c",&sex);emi-1.sex=sex;break;case 4:printf(&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国鸡肉制品加工项目创业计划书
- 中国伞花蔷薇项目创业计划书
- 中国C2C项目创业计划书
- 中国计算机软件咨询项目创业计划书
- 中国观赏林项目创业计划书
- 中国尿液沉渣分析仪项目创业计划书
- 中国多煤体学习系统项目创业计划书
- 食品生产合作合同
- 多模态数据的深度神经记忆整合方法-洞察阐释
- 科大讯飞AI数字员工解决方案
- GB/T 45475.2-2025塑料聚苯醚(PPE)模塑和挤出材料第2部分:试样制备和性能测定
- 国家开放大学《园林树木学》形考任务1-4参考答案
- 三废管理培训课件
- 抖音来客合同协议
- 湖北省武汉市2025届高中毕业生四月调研考试数学试卷及答案(武汉四调)
- 演出经纪人员资格练习题有参考答案2025
- 4.2整式的加法与减法 课件 -2024-2025学年人教版数学七年级上册
- 蜜雪冰城加盟合同(2025年版)
- 接触传染病患者的注意事项
- 2025高中学业水平考试生物重点知识点归纳总结(复习必背)
- 区域业务拓展代理合同样本
评论
0/150
提交评论