版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计课程设计报告(2011)程序设计课程设计报告职工信息管理系统设计专业计算机科学与技术(软件工程(NIIT)学生姓名班级学号指导教师完成日期2011年7月1目 录1 课程设计目的12 课程设计内容13设计流程图14源程序清单15 小结73职工信息管理系统的设计1 课程设计目的 1.加深对C语言程序设计课程知识的理解,掌握C语言应用程序的开发方法和步骤;2.进一步掌握和利用C语言进行程序设计的能力;3.进一步理解和运用结构化程序设计的思想和方法;4.初步掌握开发一个小型实用系统的基本方法;5.学会跳是一个较长程序的基本方法;6.学会利用流程图火N-S图表示算法;7.掌握书写长须设计开发文档
2、的能力(书写课程设计报告)2 课程设计内容设计职工信息管理系统,要求职工心想包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。设计一职工信息管理系统,使之能提供以下功能:(6)系统以菜单方式工作(7)职工信息录入功能(职工信息用文件保存)-输入(8)职工信息浏览功能-输出(9)查询和排序功能(至少一种查询方式)-算法(10)按工资查询(11)按学历查询等(12)职工信息删除、修改功能(任选项) 3设计流程图 开始菜单根据菜单输入的n选择程序录入职工信息浏览职工信息查询职工信息删除职工信息添加职工信息修改职工信息退出保存是否继续进行结束(1) 菜单函数void menu()
3、 /*菜单函数*/ printf(" 计算机科学与技术 软件技术n");printf("n"); printf(" 1010704422 杨婷婷n"); printf("n"); printf(" *职工信息管理*n"); printf(" 1.录入职工信息"); printf(" 2.浏览职工信息n"); printf(" 3.查询职工信息"); printf(" 4.删除职工信息n"); printf("
4、; 5.添加职工信息"); printf(" 6.修改职工信息n"); printf(" 7.退出n"); printf(" *谢谢使用*n"); printf("n"); printf("n");(2)录入职工信息void append()
5、0; if(fp=fopen("worker.xls","a")=NULL) printf("n不能打开该文件!");exit();printf("n请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、工资、电话、地址)n");scanf("%s%s%s%s%s%s%s%s%s",,one.num,one.sex,one.age,one.record,one.position,o
6、ne.wanges,one.tel,one.addr);fprintf(fp,"%-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);fclose(fp);
7、160; (3) 查询职工信息 数据查找共分为职工号、姓名等方式查找void search() int l;printf("tttt姓名查找按:1n");printf("tttt学历查找按:2n");printf(&quo
8、t;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 nameway()int k=0;char nam8;printf("n请输入您要查找的职工姓名:&quo
9、t;);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.position,one.wanges,one.tel,on
10、e.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()int j=0;cha
11、r 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,on
12、e.record,one.position,one.wanges,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对不起,查无此人!。&quo
13、t;);fclose(fp); void numway() int i=0; char numb10;printf("tttt输入你要查询的职工号n");scanf("%s",numb);if(fp=fopen("worker.xls","rb")=NULL) printf("n不能打开文件!&
14、quot;);exit();while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.record,one.position,one.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,o
15、ne.age,one.record,one.position,one.wanges,one.tel,one.addr);i=1;if(!i)printf("nn对不起,查无此人!。");fclose(fp);(4)修改职工信息void modify() int m,k=0;lon
16、g a;char namekey8;printf("n请输入您要修改的职工的姓名:");scanf("%s",namekey);if(fp=fopen("worker.xls","r+")=NULL) printf("n不能打开该文件!");exit();while(!feof(fp)a=ftell(fp);
17、; fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);if(!strcmp(namekey,)k=1;break;if(k)printf("n已查到,记录为:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8
18、s%-10s%-15sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);printf("n请输入信息(按照姓名、工号、性别、年龄、学历、职位、工资、电话、地址的顺序输入):");scanf("%s%s%s%s%s%s%s%s%s",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);fseek(fp,
19、a,0);fprintf(fp,"%-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);elseprintf("n对不起,查无此人,无法进行修改。");fclose(fp); &
20、#160; (5)删除职工信息void delete() int m,k=0;long a,b;char namekey8, valid4;printf("n请输入您要删除的职工姓名:"
21、);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&qu
22、ot;,,one.num,one.sex,one.age,one.record,one.position,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%-15sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.
23、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(&quo
24、t;n对不起,查无此人。");fclose(fp); (6)数据输出void output()
25、160; 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,o
26、ne.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);printf("%-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);fclose(fp);4源程序清单#include <stdio.h>#include <windows.h>#include <time.
27、h>#include <string.h>#define N 100struct 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();voi
28、d search_tel();void modify(); /*定义各函数*/void menu() /*菜单函数*/ printf(" 计算机科学与技术 软件技术n"); printf("n"); printf(" 1010704422 杨婷婷n"); printf("n"); printf(" *职工信息管理*n"); printf(" 1.录入职工信息"); printf(" 2.浏览职工信息n"); printf(" 3.查询职工信息&q
29、uot;); printf(" 4.删除职工信息n"); printf(" 5.添加职工信息"); printf(" 6.修改职工信息n"); printf(" 7.退出n"); printf(" *谢谢使用*n"); printf("n"); printf("n");void main() menu(); /*调用菜单函数*/ int n,flag; char a; do printf("请选择你需要操作的步骤(1-7):n"); s
30、canf("%d",&n); if(n>=1&&n<=7) flag=1; break; else flag=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();
31、break; case 3:printf(" 按职工号查询职工信息n");printf("n");search();break; case 4:printf(" 删除职工信息n");printf("n");del();break; case 5:printf(" 添加职工信息n");printf("n");add();break; case 6:printf(" 修改职工信息n");printf("n");modify();break;
32、 case 7:exit(0);break; default :break; getchar(); printf("n"); printf("是否继续进行(y or n):n"); scanf("%c",&a); if(a='y') flag=1; menu(); /*调用菜单函数*/ printf("请再次选择你需要操作的步骤(1-6):n"); scanf("%d",&n); printf("n"); else exit(0); void
33、input() /*录入函数*/ int i,m; printf("请输入需要创建信息的职工人数(1-100):n"); scanf("%d",&m); for (i=0;i<m;i+) printf("职工号: "); if(emi.num!=emi-1.num) printf("%8d ",emi.num); printf("n"); printf("请输入姓名: "); scanf("%s",); getchar();
34、printf("请输入性别(f-女 m-男): "); scanf("%c",&emi.sex); printf("请输入年龄: "); scanf("%d",&emi.age); printf("请输入学历: "); scanf("%s",emi.xueli); printf("请输入工资: "); scanf("%d",&emi.wage); printf("请输入住址: "); scan
35、f("%s",emi.addr); printf("请输入电话: "); scanf("%d",&emi.tel); printf("n"); printf("n创建完毕!n"); save(m);void save(int m) /*保存文件函数*/ int i; FILE*fp; if (fp=fopen("employee_list","wb")=NULL) /*创建文件并判断是否能打开*/ printf ("cannot open
36、 filen"); exit(0); for (i=0;i<m;i+) /*将内存中职工的信息输出到磁盘文件中去*/ if (fwrite(&emi,sizeof(struct employee),1,fp)!=1) printf("file write errorn"); fclose(fp);int load() /*导入函数*/ FILE*fp; int i=0; if(fp=fopen("employee_list","rb")=NULL) printf ("cannot open filen
37、"); exit(0); else do fread(&emi,sizeof(struct employee),1,fp); i+; while(feof(fp)=0); fclose(fp); return(i-1);void display() /*浏览函数*/ 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.
38、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; printf("n 原来的职工信息:n"); display(); /* 调用浏览函数*/ printf("n"); printf("请输入要删除的职工的姓名:n"); scanf("%s",name); for(flag=1,i=0;flag&&a
39、mp;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,emi.tel); printf("n确实要删除此人信息请按1,不删除请按0n"); scanf("%
40、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; 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; else printf("n对不
41、起,查无此人!n"); printf("n 浏览删除后的所有职工信息:n"); save(m); /*调用保存函数*/ display(); /*调用浏览函数*/ printf("n继续删除请按1,不再删除请按0n"); scanf("%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(); print
42、f("n 原来的职工信息:n"); display(); /* 调用浏览函数*/ printf("n"); fp=fopen("emploee_list","a"); printf("请输入想增加的职工数:n"); scanf("%d",&n); for (i=m;i<(m+n);i+) printf("n 请输入新增加职工的信息:n"); printf("请输入职工号: "); if(emi.num!=emi-1.num
43、) printf("%8d ",emi.num); printf("n"); printf("请输入姓名: "); scanf("%s",); getchar(); printf("请输入性别(f-女 m-男): "); scanf("%c",&emi.sex); printf("请输入年龄: "); scanf("%d",&emi.age); printf("请输入学历: "); s
44、canf("%s",emi.xueli); printf("请输入工资: "); scanf("%d",&emi.wage); printf("请输入住址: "); scanf("%s",emi.addr); printf("请输入电话: "); scanf("%d",&emi.tel); printf("n"); count=count+1; printf("已增加的人数:n"); printf(&
45、quot;%dn",count); printf("n添加完毕!n"); m=m+count; printf("n浏览增加后的所有职工信息:n"); printf("n"); save(m); display(); fclose(fp);void search()/*查询函数*/ int t,flag; do printf("n按职工号查询请按1 ; 按学历查询请按2 ; 按电话号码查询请按3,进入主函数按4n"); scanf("%d",&t); if(t>=1&
46、;&t<=4) flag=1; break; else flag=0; printf("您输入有误,请重新选择!"); while(flag=0); while(flag=1) switch(t) case 1:printf("按职工号查询n");search_num();break; case 2:printf("按学历查询n");search_xueli();break; case 3:printf("按电话号码查询n");search_tel();break; case 4:main();bre
47、ak; 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("n已找到此人,其记录为:n"); printf("n职工号t姓名t性别t年龄t学历t工资t住址t电话 n"); printf("n%dt%st%ct%dt%
48、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();break; case 2: break; default:break; void
49、 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"); printf("n职工号t姓名t性别t年龄t学历t工资t住址t电话 n"); printf("n%dt%st%ct%dt%st%dt%st%ldn",emi.num,
50、,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",&t); switch(t) case 1:search();break; case 2:break; default :break; void search_tel() long int tel; int i,
51、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工资t住址t电话 n"); printf("n%dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wag
52、e,emi.addr,emi.tel); break; if(i=m) printf("n对不起,查无此人n"); printf("n"); printf("返回查询函数请按1,继续查询电话号码请按2n"); scanf("%d",&t); switch(t) case 1:search();break; case 2:break; default :break; void modify() /*修改函数*/ int num; char name10; char sex; int age; char xue
53、li30; 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"); 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,emi.tel); printf("n确实要修改此人信息请按1 ; 不修改请按0n"); scanf(&q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购买篮球护臂合同范本
- 监理合作加盟合同范本
- 租房到期续租合同范本
- 物业公司续聘合同范本
- 美术兼职老师合同范本
- 酒店借用协议合同范本
- 物业人员聘用合同范本
- 灯具订购销售合同范本
- 小学苏教版八 小数的初步认识第一课时教学设计及反思
- 物业人员劳动合同范本
- 大学生数字媒体艺术职业规划
- 湖南省长沙市雅礼实验中学-主题班会-《阳光心态美丽青春》【课件】
- 微电影演员选角协议
- 电路(2)知到智慧树章节测试课后答案2024年秋山东大学
- 燃料廉洁风险防控培训
- 课件:《中华民族共同体概论》第八讲 共奉中国与中华民族聚力发展
- 杭州云栖产融科技(杭州)有限公司招聘笔试题库2024
- 弱点(TheBlindSide)中英对白剧本
- 生猪屠宰兽医卫生检验人员理论考试题及答案
- 2024年全国网络安全行业职业技能大赛(数据安全管理员)考试题库-下(多选、判断题)
- 实验室CMA认证程序文件
评论
0/150
提交评论