职工信息管理系统(C语言).doc_第1页
职工信息管理系统(C语言).doc_第2页
职工信息管理系统(C语言).doc_第3页
职工信息管理系统(C语言).doc_第4页
职工信息管理系统(C语言).doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

课程设计(论文)题 目 名 称 职工信息管理系统 课 程 名 称 C语言程序课程设计 学 生 姓 名 刘 丹 学 号 1241302028 系 、专 业 信息工程系、计算机科学与技术专业 指 导 教 师 黄 磊 2013年 6月 6 日目 录1 前言12 需求分析12.1 课程设计目的12.2 课程设计任务22.3 设计环境22.4 开发语言23 分析和设计33.1 模块设计43.2 系统流程图43.3 主要模块的流程图54 具体代码实现75 课程设计总结95.1 程序运行结果 / 预期运行结果95.2 课程设计体会13参考文献14致 谢141 前言编写一个程序来处理职工信息管理系统。通过结构体数组来存放输入的每一位职工的记录(包括工号、姓名、性别、年龄、学历、工资、住址、电话等),然后将其录入的职工信息以文件形式保存。然后输入名字、工号、学历查询该同学的信息,并且对其进行浏览、查询、修改、删除等基本操作,建立职工信息管理的文件。 2 需求分析1、程序结构合理2、界面比较美观3、最好使用结构、体指针4、输入时有提示,输出美观,整齐职工信息由工号、姓名、性别、年龄、学历、工资、住址、电话等构成。功能要求:(1)系统以菜单方式工作(2)职工信息录入功能(职工信息用文件保存)输入(3)职工信息浏览功能输出(4)查询和排序功能:(至少一种查询方式)算法(5)按职工号查询(6)按学历查询等(7)职工信息删除、添加功能2.1 课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),将课本上的理论知识和实际有机结合起来,提高学生的分析解决实际问题的能力;加强学生适应实际,实践编程的能力;锻炼使用文献资料及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。2.2 课程设计任务设计一个职工信息管理系统,使之能提供职工信息录入功能、职工信息浏览功能、查询功能:按姓名查询,职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等。实现菜单设计,使用数据文件保存和修改, 应用结构体和指针等内容。1、 查阅相关文献资料;2、 按时完成系统的设计并且能够运行;3、 要求程序正确,功能可靠;操作简单,使用方便;4、 课程设计交流:认真写课程设计日志,每2天指导老师审查,通过邮件、电话,或者面谈与导师沟通汇报情况。5、 按课程设计(论文)要求,写课程设计论文。2.3 设计环境(1)WINDOWS 2000/2003/XP/7/Vista系统(2)Visual C+或TC集成开发环境2.4 开发语言C语言3分析设计职工信息管理系统编程的作用是将职工的信息存放在文件中,然后在程序中可以浏览、查询、删除、添加职工的信息,好方便了解职工信息,同时能够及时刷新职工信息。职工信息管理系统可以按功能进行以下划分,如下图所示:1. 菜单选择是职工信息管理的入口,进行的各种操作均需要这里进行选择。2. 信息输入是将职工的信息输入到文件中,包括工号、姓名、性别、年龄、学历、工资、住址、电话等。3. 信息浏览是将已经输入的职工信息的显示出来。4. 信息查询是用来查询职工的信息,查询方式有按工号查询和姓名查询还有按学历查询三种方式。5. 信息删除是删除职工一些信息。6. 信息添加是增加一些职工信息。职工信息管理系统菜单选择信息输入信息浏览信息查询信息添加信息删除按工号查询按姓名查询按学历查询3.1 模块设计定义结构体类型struct employee 表示职工信息(包括:工号、姓名、联系电话、性别、工资、学历、年龄、地址),定义一个结构体数组emN,用来存放N个学生的信息,假设N为3。如下所示:#define N struct employee int number;int age;int wage;char name20;char sex10; char address30;char xuelil20;long int telephone;emN;定义函数input(),用来输入若干职工信息存入em数组中。定义函数save(),用来把结构体数组中的信息写入文件bbb.txt中。在save函数中先用写的方式保存到文件bbb.txt,然后以读的方式打开文件bbb,指针变量fp,打开文件bbb失败就退出。定义函数search(),用来在文件中查找某职工的信息。定义函数display(),用来显示某职工的信息。定义函数del(),用来删除某职工的信息。定义函数add(),用来添加某职工的信息。3.2 系统流程图系统流程图如下:是是是是是否否否否否开始菜单选择输入?浏览?删除?添加?查询?信息删除信息添加信息查询信息浏览信息输入结束图3.1系统流程图3.3 主要模块的流程图主函数模块流程图如下:defaultswitch(n)n=5n=4n=3n=2n=1开始显示菜单调用输入函数input()输入功能代码调用查询函数search()调用删除函数del()调用添加函数add()退出exit(0)调用浏览函数display()结束图3.2 主函数流程图1、主函数 显示程序中所有功能和所有会调用到的函数名。再运用选择函数switch根据所输入的数字进入对应的功能程序。具体程序如下:main() /*主函数*/ int n;printf(n);printf( *职工信息管理*n);printf(n);printf( 1.录入职工信息n);printf( 2.浏览职工信息n);printf( 3.查询职工信息n);printf( 4.删除职工信息n);printf( 5.添加职工信息n);printf( 6.退出n);printf(n);scanf(%d,&n);switch(n)case 1:printf( 输入职工信息n);printf(n);input();main();break; case 2:printf( 浏览职工信息n);printf(n);display(*p);main();break; case 3:printf( 查询职工信息n);printf(n);search();break; case 4:printf( 删除职工信息n);printf(n);del(p);break; case 5:printf( 添加职工信息n);printf(n);add(p);break; case 6:exit(0);break; default :break;输入函数模块流程图如下:=00i=0iNprintf(“提示需要输入的内容”)scanf(”输入信息”)i+printf(“创建完毕”)开始结束图3.3 录入函数流程图2、输入函数定义一个结构体struct employee和数组emN用来存储N个职工信(职工号emi.number、姓名、性别emi.sex、年龄emi.age、学历emi.xueli、学历工资emi.wage、住址emi.address、电话emi.telephone)。通过for循环输入所有职工信息。用printf语句提示需要输入的内容,接着用scanf语句输入相应的内容。输入完毕后套用保存saveN将所输入的信息写入指定文件。具体程序如下:void input() /*录入函数*/int i;for(i=0;iN;i+) /*输入*/printf(请输入职工号: );scanf(%3d,&emi.number);getchar(); /*输入职工工号*/printf(请输入姓名: );scanf(%s,); /*输入职工姓名*/printf(请输入性别: );scanf(%s,emi.sex);getchar(); /*输入职工性别*/printf(请输入年龄: );scanf(%d,&emi.age);getchar(); /*输入职工年龄*/printf(请输入学历: );scanf(%s,emi.xueli); /*输入职工学历*/printf(请输入工资: );scanf(%d,&emi.wage);getchar(); /*输入职工工资*/printf(请输入住址: );scanf(%s,emi.address); /*输入职工家庭地址*/printf(请输入电话: );scanf(%d,&emi.telephone);getchar(); /*输入职工联系号码*/printf(n);printf(n创建完毕!n);save(N);4 具体代码实现#include /*标准I/Q函数*/#include #define N 2struct employee /*定义一个职工信息结构体*/int numbe; /*职工号*/int age; /*年龄*/int wage; /*工资*/char name20; /*姓名*/char sex10; /*性别*/char address30; /*家庭地址*/char xueli10; /*学历*/long int telephone; /*联系电话* /emN; void search(); /*查询*/ void search_name(); /*按名字查询*/ void search_xueli(); /*按学历查询*/ void search_number(); /*按工号查询*/ void load(); /*装载信息文件*/ void display(); /*显示职工信息*/ void del(); /*删除职工信息*/void input(); /*录入职工信息*/ void add(); /*添加职工信息*/ void save(); /*保存信息文件*/ int a=N; int *p=&a; main() /*主函数*/ int n;printf(n);printf( *职工信息管理*n);printf(n);printf( 1.录入职工信息n);printf( 2.浏览职工信息n);printf( 3.查询职工信息n);printf( 4.删除职工信息n);printf( 5.添加职工信息n);printf( 6.退出n);printf(n);scanf(%d,&n);switch(n)case 1:printf( 输入职工信息n);printf(n);input();main();break; case 2:printf( 浏览职工信息n);printf(n);display(*p);main();break; case 3:printf( 查询职工信息n);printf(n);search();break; case 4:printf( 删除职工信息n);printf(n);del(p);break; case 5:printf( 添加职工信息n);printf(n);add(p);break; case 6:exit(0);break; default :break;void input() /*录入函数*/ int i;for(i=0;iN;i+) /*输入*/printf(请输入职工号: );scanf(%3d,&emi.number);getchar(); /*输入职工工号*/printf(请输入姓名: );scanf(%s,); /*输入职工姓名*/printf(请输入性别: );scanf(%s,emi.sex);getchar(); /*输入职工性别*/printf(请输入年龄: );scanf(%d,&emi.age);getchar(); /*输入职工年龄*/printf(请输入学历: );scanf(%s,emi.xueli); /*输入职工学历*/printf(请输入工资: );scanf(%d,&emi.wage);getchar(); /*输入职工工资*/printf(请输入住址: );scanf(%s,emi.address); /*输入职工家庭地址*/printf(请输入电话: );scanf(%d,&emi.telephone);getchar(); /*输入职工联系号码*/printf(n);printf(n创建完毕!n);save(N);void save(int m) /*保存文件函数*/ int i;FILE*fp; /*指向文件指针*/if(!(fp=fopen(c:/bbb.txt,w) /*写方式打开文件bbb,指针变量fp指向该文件*/printf(打开失败);exit(0); /正常退出程序/for(i=0;im;i+)fprintf(fp,%d %8s %s %d %8s %d %s %dn,emi.number,,emi.sex,emi.age,emi.xueli,emi.wage,emi.address,emi.telephone);fclose(fp); /*fp是用fopen函数打开文件时所带回的指针*/void load(int b) /*导入函数*/ int i;FILE*fp;if(!(fp=fopen(c:/bbb.txt,r) /*读方式打开文件bbb,指针变量fp指向该文件*/printf(打开失败);exit(0); elsefor(i=0;ib;i+)fscanf(fp,%3d %8s %s %2d %8s %4d %s %8dn,&emi.number,,emi.sex,&emi.age,emi.xueli,&emi.wage,emi.address,&emi.telephone); fclose(fp); /*关闭文件*/void display(int a) /*浏览函数*/ int i,b=a; load(b); printf(n职工号t 姓名t性别t年龄t 学历t 工资t 住址t 电话n);for(i=0;ia;i+)printf(%dt%8st%st%dt%8s %dt%st%dn,emi.number,,emi.sex,emi.age,emi.xueli,emi.wage,emi.address,emi.telephone);printf(n);void search() int t;printf(n按职工号查询按1n按姓名查询请按2);printf(n按学历查询请按3n返回主菜单请按4n);scanf(%d,&t);switch(t)case 1:printf(n按职工号查询n); search_number(); break;case 2:printf(n按姓名查询n);search_name(); break;case 3:printf(n按学历查询n);search_xueli(); break;case 4:main();break; default :printf(输入错误,请重新输入!n);search(); break;void search_number() /*按工号查找职工信息*/ int i,number;load(*p); printf(n请输入要查询的职工号:);scanf(%d,&number);for(i=0;i*p;i+)if(number=emi.number)printf(n该职工信息如下:n);printf(n职工号t 姓名t性别t年龄t 学历t 工资t 住址t电话n);printf(n%dt%8st%st %dt%8s %dt%st%dn,emi.number,,emi.sex,emi.age,emi.xueli,emi.wage,emi.address,emi.telephone);printf(n);break;if(i=*p)printf(n查无此人n);search();void search_name() /*按姓名查找职工信息*/ int i;char name20;load(*p); printf(n请输入要查询的姓名:);scanf(%s,name);for(i=0;i*p;i+)if(!strcmp(,name)printf(n该职工信息如下:n);printf(n职工号t 姓名t性别t年龄t 学历t 工资t 住址t电话n);printf(n%dt%8st%st %dt%8s %dt%st%dn,emi.number,,emi.sex,emi.age,emi.xueli,emi.wage,emi.address,emi.telephone);printf(n);break;if(i=*p)printf(n查无此人n);search();void search_xueli() /*按学历查找职工信息*/ int i,k=0;char xueli20;load(*p); printf(n请输入要查询的学历:);scanf(%s,xueli);for(i=0;i*p;i+)if(!strcmp(emi.xueli,xueli)printf(n职工号t 姓名t性别t年龄t 学历t 工资t 住址t电话n);printf(%dt%8st%st %dt%8s %dt%st%dn,emi.number,,emi.sex,emi.age,emi.xueli,emi.wage,emi.address,emi.telephone);for(i=0;i*p;i+) if(!strcmp(emi.xueli,xueli)break;else k+;if(k=*p)printf(n查无此人n);search();void del(int *b) /*删除函数*/int i,t,j,m;int a=*b;char name20;printf(n所有职工信息:n);display(a); printf(n请输入要删除职工的名字:);scanf(%s,name);for(i=0;ia;i+)if(!strcmp(,name)printf(n确认删除请按1n取消请按2n);scanf(%d,&t);if(t=1) for(j=i;ja-1;j+)emj.age=emj+1.age;emj.wage=emj+1.wage;emj.number=emj+1.number;emj.telephone=emj+1.telephone;strcpy(emj.xueli,emj+1.xueli);strcpy(,emj+1.name);strcpy(emj.address,emj+1.address);strcpy(emj.sex,emj+1.sex);a-;save(j); break;if(t=2)break;if(i=a)printf(n输入错误,无此人n);*b=a;printf(n继续删除请按1n浏览信息请按2n返回主菜单请按3n);scanf(%d,&m);switch(m)case 1:del(p);break; case 2:display(*b);main();break; case 3:main();break;default:break;void add(int *a) /*添加函数*/ int i,n,m;FILE*fp;if(!(fp=fopen(c:/bbb.txt,a)printf(打开失败);exit(0);printf(n请输入想添加的人数:n);scanf(%d,&n);for(i=*a;in+(*a);i+) printf(请输入职工号: );scanf(%d,&emi.number);printf(请输入姓名: );scanf(%s,);printf(请输入性别: );scanf(%s,emi.sex);printf(请输入年龄: );scanf(%d,&emi.age);printf(请输入学历: );scanf(%s,emi.xueli);printf(请输入工资: );scanf(%d,&emi.wage);printf(请输入住址: );scanf(%s,emi.address);printf(请输入电话: );scanf(%d,&emi.telephone);printf(n);printf(n添加完毕n);for(i=*a;in+(*a);i+)fprintf(fp,%d %8s %s %d %8s %d %s %dn,emi.number,,emi.sex,emi.age,emi.xueli,emi.wage,emi.address,emi.telephone);fclose(fp);*a=*a+n; printf(n浏览新信息请按1n返回主菜单请按2n);scanf(%d,&m);switch(m)case 1:display(*a);main();break;case 2:main();break;default:break;5 课程设计总结5.1 程序运行结果 / 预期运行结果运行与测试结果如下:1.运行程序进入职工信息管理系统的主菜单。2.输入数字1录入所有的职工信息3.输入数字2浏览所有的职工信息4.输入数字3查询所有的职工信息,可以通过3种途径查询。5.输入数字4,可以删除某职工信息6.输入数字5,可以添加

温馨提示

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

评论

0/150

提交评论