1、場景: hr需要做⼀個員工管理,每當新員工入職,他需要新建該員工的資料,將其新增到員工管理資料庫中,隨後老闆向hr了解該員工詳細資訊時, hr要能從系統中調出資料供老闆查閱。此外,如果有員工離職, hr為其辦理離職⼿續後要將他的資料從系統中刪除。
2、員工資料報括:工號(不超過16個字元)、姓名、性別、年齡、崗位名稱。
3、實現上述場景。並支援按照工號或姓名查詢員工資訊。
4、本次作業主要考察佇列的使用,無需實現外部動態新增、刪除、查詢員工。各位同學可在**中使用全域性變數定義一組員工資料,然後實現新增、查詢和刪除。請使用printf將每一步結果列印出來。
5、使用c語言程式設計,並在linux下編譯和執行。請使用gdb除錯你的程式。
6、給定以下結構定義:
typedefstruct __node__ node;
struct__node__
node *next;
node *prev;
typedefstruct
node head;
} dlist;
**如下:
#include
#include
#include
#define position_len (int)64
#define user_name_len (int)32
#define work_number_len (int)32
#define ***_len (int)32
typedef struct __node__ node;
struct __node__
;typedef struct
dlist;
/*定義員工資訊資料結構*/
typedef struct member_info
t_member_info;
/*待錄入員工資訊*/
t_member_info g_companymember1 = ;
t_member_info g_companymember2 = ;
t_member_info g_companymember3 = ;
t_member_info g_companymember4 = ;
t_member_info g_companymember5 = ;
t_member_info g_companymember6 = ;
t_member_info g_companymember7 = ;
t_member_info g_companymember8 = ;
dlist companymemlist;
void meminfoprintf(node *listpoint) /*員工資訊列印*/
void memlistinit() /*員工資訊表初始化*/
t_member_info *nodecreat(t_member_info *memaddr) /*建立鍊錶節點*/
void meminfoadd(t_member_info *memaddr) /*新增員工資訊*/
else
p->next = (node*)memaddr;
p = p->next;
p->next = null;}}
void meminfoquery(char*name, char*worknum) /*根據工號或姓名查詢員工資訊*/
else
}else if (null != worknum) /*姓名為空,工號不為空,則以工號進行查詢*/
else}}
if ((null==p) &&(0==findflag)) /*未查找到員工資訊*/
}void meminfodel(char*name, char*worknum) /*根據輸入的工號或姓名刪除員工資訊*/
else if ((0 != strcmp(meminfo->name, name)) && (0 == strcmp(nextmeminfo->name, name)))
else
}else if (null != worknum) /*姓名為空,工號不為空,則以工號進行查詢*/
else if ((0 != strcmp(meminfo->worknumber, worknum)) && (0 == strcmp(nextmeminfo->worknumber, worknum)))
else
}} else if ((null ==q) && (0 == delflag)) /*鍊錶中只有乙個成員*/
else
}}}void main()
meminfoquery(null,"l117");/*用工號查詢成員*/
/*刪除成員zhang*/
meminfodel("zhang", null);
/*列印刪除操作後員工資訊列表*/
printf("-------------------------------------------\n");
printf("the member list after deleting operation:\n");
p = companymemlist.head.next;
while (null != p)
printf("--------------------------------------------\n");
}
員工資訊表
有以下員工資訊表 staff id name agephone dept enroll date 1alex li 2213651054608 it2013 04 01 2jack wang 3013304320533 hr2015 05 03 3rain liu 251383235322 sale...
員工資訊表作業
檔案儲存格式如下 id,name,age,phone,job 1,alex,22,13651054608,it 2,egon,23,13304320533,tearcher 3,nezha,25,1333235322,it 現在需要對這個員工資訊檔案進行增刪改查。基礎必做 a.可以進行查詢,支援三種...
員工資訊表作業
dic defadd info filename user info with open filename,r encoding utf 8 as f lines f.readlines last line lines 1 id max last line dic id ifid max.isdig...