1、设计一个职工信息管理系统,使之能提供职工信息录入功能、职工信息浏览功能、查询功能:按姓名查询,职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等。实现菜单设计,使用数据文件保存和修改, 应用结构体和指针等内容。1、 查阅相关文献资料;2、 按时完成系统的设计并且能够运行;3、 要求程序正确,功能可靠;操作简单,使用方便;4、 课程设计交流:认真写课程设计日志,每2天指导老师审查,通过邮件、电话,或者面谈与导师沟通汇报情况。5、 按课程设计(论文)要求,写课程设计论文。2.3 设计环境(1)WINDOWS 2000/2003/XP/7/Vista系统(2)Visual C+或TC集成
2、开发环境2.4 开发语言C语言3分析设计职工信息管理系统编程的作用是将职工的信息存放在文件中,然后在程序中可以浏览、查询、删除、添加职工的信息,好方便了解职工信息,同时能够及时刷新职工信息。职工信息管理系统可以按功能进行以下划分,如下图所示:1. 菜单选择是职工信息管理的入口,进行的各种操作均需要这里进行选择。2. 信息输入是将职工的信息输入到文件中,包括工号、姓名、性别、年龄、学历、工资、住址、电话等。3. 信息浏览是将已经输入的职工信息的显示出来。4. 信息查询是用来查询职工的信息,查询方式有按工号查询和姓名查询还有按学历查询三种方式。5. 信息删除是删除职工一些信息。6. 信息添加是增加
3、一些职工信息。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(),用来把结构体数组中的信息写入文件bb
4、b.txt中。在save函数中先用写的方式保存到文件bbb.txt,然后以读的方式打开文件bbb,指针变量fp,打开文件bbb失败就退出。定义函数search(),用来在文件中查找某职工的信息。定义函数display(),用来显示某职工的信息。定义函数del(),用来删除某职工的信息。定义函数add(),用来添加某职工的信息。3.2 系统流程图系统流程图如下:图3.1系统流程图3.3 主要模块的流程图主函数模块流程图如下:图3.2 主函数流程图1、主函数 显示程序中所有功能和所有会调用到的函数名。再运用选择函数switch根据所输入的数字进入对应的功能程序。具体程序如下:main() /*主函
5、数*/ int n; printf(n); *职工信息管理*n 1.录入职工信息n 2.浏览职工信息n 3.查询职工信息n 4.删除职工信息n 5.添加职工信息n 6.退出n scanf(%d,&n); switch(n) case 1:printf( 输入职工信息ninput();main();break; case 2: 浏览职工信息ndisplay(*p); case 3: 查询职工信息nsearch(); case 4: 删除职工信息ndel(p); case 5: 添加职工信息nadd(p); case 6:exit(0); default : 输入函数模块流程图如下:图3.3 录入
6、函数流程图2、输入函数定义一个结构体struct employee和数组emN用来存储N个职工信(职工号emi.number、姓名emi.name、性别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(请输入职工号: sca
7、nf(%3demi.number);getchar(); /*输入职工工号*/请输入姓名:%s,emi.name); /*输入职工姓名*/请输入性别:,emi.sex); /*输入职工性别*/请输入年龄:emi.age); /*输入职工年龄*/请输入学历:,emi.xueli); /*输入职工学历*/请输入工资:emi.wage); /*输入职工工资*/请输入住址:,emi.address); /*输入职工家庭地址*/请输入电话:emi.telephone); /*输入职工联系号码*/n创建完毕! save(N);4 具体代码实现#include /*标准I/Q函数*/#include #de
8、fine N 2struct employee /*定义一个职工信息结构体*/int numbe; /*职工号*/ /*年龄*/ /*工资*/ /*姓名*/ /*性别*/char address30; /*家庭地址*/char xueli10; /*学历*/ /*联系电话* /emN; void search(); /*查询*/ void search_name(); /*按名字查询*/ void search_xueli(); /*按学历查询*/ void search_number(); /*按工号查询*/ void load(); /*装载信息文件*/ void display(); /
9、*显示职工信息*/ void del(); /*删除职工信息*/ void input(); /*录入职工信息*/ void add(); /*添加职工信息*/ void save(); /*保存信息文件*/ int a=N; int *p=&a; main() /*主函数*/void input() /*录入函数*/ void save(int m) /*保存文件函数*/ FILE*fp; /*指向文件指针*/ if(!(fp=fopen(c:/bbb.txt,w) /*写方式打开文件bbb,指针变量fp指向该文件*/打开失败 exit(0); /正常退出程序/m;i+) fprintf(f
10、p,%d %8s %s %d %8s %d %s %dn,emi.number,emi.name,emi.sex,emi.age,emi.xueli,emi.wage,emi.address,emi.telephone); fclose(fp); /*fp是用fopen函数打开文件时所带回的指针*/void load(int b) /*导入函数*/ r) /*读方式打开文件bbb,指针变量fp指向该文件*/ else for(i=0;b; fscanf(fp,%3d %8s %s %2d %8s %4d %s %8dnemi.number,emi.name,emi.sex,&emi.age,e
11、mi.xueli,&emi.wage,emi.address,& /*关闭文件*/void display(int a) /*浏览函数*/ int i,b=a; load(b);n职工号t 姓名t性别t年龄t 学历t 工资t 住址t 电话n%dt%8st%st%dt%8s %dt%st%dnvoid search() int t;n按职工号查询按1n按姓名查询请按2n按学历查询请按3n返回主菜单请按4nt); switch(t)n按职工号查询n search_number(); break;n按姓名查询n search_name();n按学历查询n search_xueli();输入错误,请重
12、新输入! search();void search_number() /*按工号查找职工信息*/ int i,number; load(*p);n请输入要查询的职工号:number);*p; if(number=emi.number) printf(n该职工信息如下:n职工号t 姓名t性别t年龄t 学历t 工资t 住址t电话nn%dt%8st%st %dt%8s %dt%st%dn break; if(i=*p)n查无此人n search();void search_name() /*按姓名查找职工信息*/ char name20;n请输入要查询的姓名:,name); if(!strcmp(e
13、mi.name,name) printf(n职工号t 姓名t性别t年龄t 学历t 工资t 住址t电话n break; if(i=*p)void search_xueli() /*按学历查找职工信息*/ int i,k=0; char xueli20;n请输入要查询的学历:,xueli);strcmp(emi.xueli,xueli)n职工号t 姓名t性别t年龄t 学历t 工资t 住址t电话n%dt%8st%st %dt%8s %dt%st%dni+) if(! else k+; if(k=*p)void del(int *b) /*删除函数*/ int i,t,j,m; int a=*b;n所
14、有职工信息: display(a);n请输入要删除职工的名字:n确认删除请按1n取消请按2n scanf( 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.name,emj+1.name); strcpy(emj.address,emj+1.address); strcpy(emj.sex,emj+1.sex); a-; save(j); if(t=2) if(i=a)n输入错误,无此人n *b=a;n继续删除请按1n浏览信息请按2n返回主菜单请按3nm); switch(m)display(*b); default:void add(int *a) /*添加函数*/ int i,n,m;a)n请输入想添加的人数: for(i=*a;n+(*a);请输
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1