录写入文件“word”中,并fclose关闭文件。在查询职工信息时,按职工号查询,首先是以只读(二进制)的方式打开文件“word”, 然后输入要查询的职工号,用一个for循环来控制查询的人数,之后在显示器上显示某一个职工信息,然后关闭文件。在修改职工信息时,按职工号修改,首先是以读写的方式打开文件“word”。输入要修改的职工号,用一个for循环来控制输入的数量。然后对职工的信息进行修改,就可获得新的职工记录。之后文件指针指向该修改的记录开头,此时用fwrite覆盖当前记录,修改完成时系统会显示修改后的文件数据:姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金然后关闭文件。在显示职工信息时,运用void browse()调用函数对文件的使用。首先以只读的方式打开一个文本文件”word”。操作无误则用for循环输出正在查询职工的:记录号 职工号 姓名 性别 年龄 工资。这些完成后用fclose(fp)函数关闭文件。 2.2.2数据结构设计及用法说明
数据结构:定义结构体people,用于存放职工的基本信息和工资信息.使用struct结构体编辑主菜单,定义全局变量,用于存放结构体数组。使用一维数组。用for语句编辑输入模块,用switch、for语句编辑查找职工数据,用if,for语句编辑修改职工信息。
用法说明:启动后屏幕上会显示下面菜单: 1 录入信息 2 修改信息 3 显示所有 4 查询信息
5
5 退出
执行者若要执行某一功能,就按下该功能所对应的数字即可。 输入职工信息:在主菜单中输入1则系统会进入新界面并自动提示你输入职工号,输入完成后按回车键系统会逐一提示输入姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金,输入完成后会继续提示输入下一个职工的职工号。
修改职工信息:在主菜单中输2,系统会自动提示你输入要修改的职工号,然后进行修改。修改成功显示已修改后的文件数据;输入错职工号显示查无此人。
显示职工信息:在主菜单中输入3系统界面是输出菜单界面,按照输入格式:姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金,逐个的输出职工的信息,输出所有职工信息后系统自动退出。
查询职工信息:主菜单中输入4 则进入查询子菜单界面,输入职工号后会出现该职工的信息。输入错误职工号,显示查无此人。
退出:在主菜单中输入5则退出系统。并显示 “ 退出成功 请关闭 ”。
2.2.3各模块的功能及程序说明
首先是定义了一个输入输出头文件,接着是一个宏定义,下面是函数声明部分,用结构体存储和录入该程序的所有数据,主函数部分包括设计的全部信息,之后是输出主菜单和调用函数,退出程序。此程序中包括:输入模块、查询模块、修改模块、显示模块。
输入模块:该模块先是对姓名、ID号、基本工资、职务工资、岗位津贴、医
6
疗保险、公积金的录入并保存到文件“word ”中。
查询模块:实现按职工号查询每个职工的信息,查询显示姓名、ID号、基本 工资、职务工资、岗位津贴、医疗保险、公积金 修改模块:该模块实现按职工号对职工所有信息的修改。 显示模块: 该模块实现按职工号输出职工的所有信息。 退出模块:保存并且关闭,用来退出while(1)的死循环 2.2.4程序结果展示 录入模块:
修改模块:
7
查询模块:
显示模块:
退出模块:
8
2.3程序源代码及注释
/*每一个职工的工资信息包含姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金。编写程序实现对职工工资的录入、显示、修改、查询、保存等功能。 参考数据
ID号 姓名 基本工资 职务工资 津贴 医疗保险- 公积金- 总工资 01 张望 1286 794 198 109 135 2034 02 李明 1185 628 135 94 114 1740 03 王小民 895 438 98 64 73 1294 04 张效章 1350 868 210 116 150 2162 05 彭山 745 398 84 61 68 1098 */
源码:
#include
#define max 30 //定义 void menu();//菜单 void import();
void browse();//显示所有 void search_num();//查询信息 void revise();//修改信息
struct people { //定义个人信息结构体 char no[5]; //编号 char name[max]; //名字 int basepay;//基本工资 int wage; //职务工资 int subsidy;//津贴 int surance;//医疗保险
9