C语言课程设计 职工信息管理系统.doc_第1页
C语言课程设计 职工信息管理系统.doc_第2页
C语言课程设计 职工信息管理系统.doc_第3页
C语言课程设计 职工信息管理系统.doc_第4页
C语言课程设计 职工信息管理系统.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

.中国地质大学课 程 设 计 报 告 书所属课程名称 C程序设计 题 目 职工信息管理系统 院 (系) 班 级 学号 学生姓名 指导教师 辅导教师 中国地质大学2010年9月6日 .课 程 设 计( 论 文 )任 务 书工程学院 专 业 052081 班一、课程设计(论文)题目 职工信息管理系统 二、课程设计(论文)工作:自 2010年 08月 28 日起至 2010年 09月 08 日止。三、课程设计(论文)的内容要求:1、设计内容: 制作职工信息管理系统,职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等(职工号不重复),并实现数据录入、数据删除和数据浏览以及数据查询等一些功能。 2、课程设计的要求: A.系统以菜单方式工作 B.职工信息录入功能(职工信息用文件保存)-输入 C.职工信息浏览功能 -输出 D.查询和排序功能:(至少一种查询方式) -算法 E.按工资查询 F.按学历查询等 G.职工信息删除,修改功能(任选项) 2010 年 9月 6 日一、需求分析1.能够对职工的基本情况进行输入、修改、增加以及删除和存盘。2.能够对职工信息的浏览。3.能够实现对职工的查询。4.能够对职工的基本工资情况进行设定。5.能够将职工信息和基本工资信息以文档形式保存6.程序能够以菜单形式出现 .二、概要分析职工信息管理系统设计职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等(职工号不重复),试设计一职工信息管理系统,使之能提供以下功能: 系统以菜单方式工作 职工信息录入功能(职工信息用文件保存)-输入 职工信息浏览功能 -输出 查询和排序功能:(至少一种查询方式) -算法 按工资查询 按学历查询等 职工信息删除,修改功能(任选项)下面是功能框架图:三、详细设计以及调试分析A.详细设计1,创建了一个结构体employee,它包含num(工号),name(姓名),sex(性别),age(年龄),xueli(学历),wage(工资),addr(住址),tel(电话)8个基类,即为员工的基本信息。2,创建了主函数main(),用它调用子函数menu(),add(),del(),display(),Input(),load(),modify(),save(),search(),search num(),search xueli()。通过主函数对子函数的调用实现程序的各项功能。 B.调试分析 void main() menu(); int n,flag; char a; -Configuration: 1 - Win32 Debug-Compiling.1.cg:1.c(55) : error C2143: syntax error : missing ; before typeg:1.c(56) : error C2143: syntax error : missing ; before typeg:1.c(61) : error C2065: n : undeclared identifierg:1.c(64) : error C2065: flag : undeclared identifierg:1.c(90) : error C2065: a : undeclared identifierError executing cl.exe.1.obj - 5 error(s), 0 warning(s)开始由于在主函数的调用过程中把子函数的调用放在了变量的定义之前,导致程序无法运行,后来改正错误,程序可以正常运行。另外在程序中还出现各种小错误,这里不一一列举。通过调试我发现调试是一个漫长而枯燥的过程 ,很锻炼人的耐心。 四、程序使用指南1打开程序出现菜单选项2,选择录入职工信息,按提示录入3.通过选项依次实现对职工信息的浏览,查询,删除,增加和修改。五.源代码#include #include #include #include #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();void search_tel();void modify(); void menu() printf( *欢迎使用查询系统*n); printf(n); printf(n);printf( *职工信息管理*n);printf( 1.录入职工信息);printf( 2.浏览职工信息n);printf( 3.查询职工信息);printf( 4.删除职工信息n); printf( 5.增加职工信息);printf( 6.修改职工信息n);printf( 7.退出n);printf( *谢谢使用*n); printf(n); printf(n); void main() int n,flag; char a; menu();do printf(请选择你需要操作的步骤(1-7):n); scanf(%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();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; case 7:exit(0);break; default :break; getchar(); printf(n); printf(是否继续进行(y or n):n); scanf(%c,&a); if(a=y) flag=1; system(cls); menu(); printf(请再次选择你需要操作的步骤(1-7):n); scanf(%d,&n); printf(n); else exit(0);void input() int i,m; printf(请输入需要创建信息的职工人数(1-100):n); scanf(%d,&m); for (i=0;im;i+) printf(职工号: ); srand(int)time(0); emi.num=rand()%10000+20000000; if(emi.num!=emi-1.num) printf(%8d ,emi.num); printf(n); printf(请输入姓名: ); scanf(%s,); getchar(); printf(请输入性别(f-女 m-男): ); 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(请输入电话: ); 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 filen); exit(0);for (i=0;im;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); 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;im;i+) 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;printf(n 原来的职工信息:n); display(); printf(n);printf(请输入要删除的职工的姓名:n);scanf(%s,name);for(flag=1,i=0;flag&im;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(%d,&n); if(n=1) for(j=i;jm-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对不起,查无此人!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(); printf(n 原来的职工信息:n); display(); printf(n); fp=fopen(emploee_list,a); printf(请输入想增加的职工数:n);scanf(%d,&n); for (i=m;i=1&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: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;im;i+) if(num=emi.num) 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); 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 search_xueli() char xueli30; int i,t; int m=load(); printf(请输入要查找的学历:n); scanf(%s,xueli); for(i=0;im;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,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); if(i=m) 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 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);scanf(%s,name);for(flag=1,i=0;flag&i8|c1) printf(n选择错误,请重新选择!n); flag=0; if(flag=1)printf(n对不起,查无此人!n); do switch(c) 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(年龄改为: ); scanf(%d,&age); emi-1.age=age; break; case 5:printf(学历改为

温馨提示

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

评论

0/150

提交评论