员工信息管理系统含附源代码.doc

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安郵電學院

高级语言课程设计报告题目:员工信息管理系统

系部名称:电子与信息工程

专业名称:电子科学与技术

班级:科技 0701

班内序号:03

学生姓名:刘力源

指导教师:黄茹

时间:2008年6月9日至2008年6月20日

实验题目: 员工信息管理系统

一、实验目的

1.熟悉c语言的编译连接和运行过程。

2.掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。

3.掌握if语句及switch语句的运用方法及嵌套应用方法。

4.掌握实现循环结构的三种语句while、 do-while.、for 的使用。

5.掌握函数的定义方法和调用方法。

6.能够采用模块化思想调试程序。

二.实验内容

1.编写程序并进行调试运行。

2.输入员工资料,并保存于文件。每个员工包含信息:工作证号、姓名、性别、年龄、担任职务,工资等信

息。

3.对已存入的员工信息进行更新操作,包括添加一个员工信息、删除某个员工信息和修改某个员工信息。

4.通过输入姓名、工作证号,年龄的方式查询员工信息。

5.最后输出学生信息,供需要时打印。

二、需求分析

1.该程序可用于对员工的雇佣情况基本信息的存储、更新、查询、输出等操作,以实现对员工的管理。

2.其中更新功能包括:添加信息、删除信息、修改信息,可根据需要添加一个或多个员工信息,也可对个别

员工信息进行适当的删除或修改,以便随时更新员工信息。

3.程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据三种不同的方法查询:

按工作证号查询,按年龄查询和按姓名查询。以满足不同的需要。

四、概要设计

1.模块功能说明

对各个模块进行功能的描述

(1).输入模块:

录入需要管理的学生信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。

(2).添加模块:

可添加一个或多个员工信息,并将所添加员工信息保存,方便查找。

(3).删除模块:

可对辞职或被解雇的员工信息做删除处理。

(4).修改模块:

可根据需要对多个员工信息进行修改,也可随时对个别项进行修改。

(5).查询模块:

可对已建立的员工信息进行查询,并且可根据需要选择按姓名查询,年龄查询或按工作证号查询。

(6).保存模块:

用于对信息进行保存。

(7).输出模块:

将所有员工信息或想要查询的员工信息显示于屏幕,用于打印员工信息或查找某些员工信息。

(8).退出系统:

选择该项,自动退出该系统。

2、方案设计

对系统进行分析,给出结构图

分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计

结构图如下:

五、详细设计及运行结果

流程图,函数之间相互调用的图示

,程序设计及编码, 运行结果。

统计函数:排序函数:

主函数:输入函数:

输出函数:

更新函数:查询函数:

删除函数: 年龄统计函数:

身份证排序:修改信息函数:

修改密码函数:

六.调试情况及运行结果

1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,开始时,数据的输出格式不太规范,而且各模块也出现了一些小问题,在老师和同学的帮助下,通过自己一次又一次的进行调试和修改,最后运行的结果基本上达到了预期的目的。

由于时间问题和考虑得不够周全,可能在某些功能上不是很完善,不过已有的功能已能基本满足一般企业的需求。不过总的来说,对于自己首次能够自主完成一个这样大的程序来说,还是比较满意。

2、在设计过程中的感受。

本次C 语言的实习课让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。

本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。

七.参考文献

《C语言程序设计》王曙燕曹锰科学出版社 2005年2月

八。附录:

#include"stdio.h"

#include"string.h"

#define max 100

#define PRINT1 printf("*****************************************************************************\n");

#define PRINT2 printf("工作证号--姓名--身份证号--性别--出生日期");

#define PRINT3 printf("--年龄--职务--部门--工资--电话\n");

#define PRINT4 printf("%s%10s%10s%6s%6d-%2d-%2d",work[i].worknum,work[i].name,work[i].ID,work[i].sex,work[i]. birthday.year,work[i].birthday.month,work[i].birthday.day);

#define PRINT5 printf("%7d%6s%8s%6d%10s\n",work[i].old,work[i].duty,work[i].branch,work[i].salary,work[i].tel );

int sum; /*用来记录员工人数*/

/*日期结构体*/

struct date

{int year;

int month;

int day;

};

/*员工基本信息*/

struct worker

{char worknum[10];

char name[10];

char ID[10];

char sex[10];

struct date birthday;

int old; /*年龄*/

char duty[10]; /*职务*/

char branch[10]; /*部门*/

int salary;

char tel[10];

char pw[10]; /*用来存放用户修改后的密码,不进行输出*/

}t,work[max];

/*信息的保存*/

savemessage(int sum)

{FILE *fp;

int i;

if((fp=fopen("workman.txt","wt"))==NULL)

{printf("读文件错误!\n");

getch();

return;

}

for(i=0;i

{if(fwrite(&work[i],sizeof(struct worker),1,fp)!=1)

相关文档
最新文档