資源簡介
1、基本要求
1.根據ID號查詢員工信息;
2.根據姓名查詢員工信息(姓名重復時,顯示所有同名者信息);
3.顯示通訊錄中所有員工信息;
4.往系統中添加一個員工;
5.從系統中刪除一個員工;
6.程序退出時將系統中所有員工信息保存到文件中;
7.程序啟動時將文件中所有員工信息讀入程序中。
2、擴展要求
1.系統中所有成員按ID號排序;
2.系統中所有成員按姓名排序;
3.按部門分類顯示系統中的成員;
4.自己設計一些合理的附加功能。

代碼片段和文件信息
#include??
#include??
#include??
#include??“list.h“
//初始化鏈表
STATUS?InitList(linkList?&L?)
{
//申請一個結點的內存作為頭結點
L?=?(linkList)malloc(sizeof(LNode)?);
if(!L?)?exit(OVERFLOW?);
L->next?=?NULL;
return?OK;
}
//銷毀鏈表
?//釋放包括頭結點的所有結點
STATUS?DestroyList(linkList?&L?)
{
LNode?*p;
while(L?)
{
p?=?L;
L?=?L->next;
free(p?);
}
return?OK;
}
//清空鏈表
?//釋放頭結點之外的所有結點
STATUS?ClearList(linkList?L?)
{
LNode?*p;
while(L->next?)
{
p?=?L->next;
L->next?=?p->next;
free(p?);
}
return?OK;
}
//判斷鏈表是否為空,
?//返回值,空:TRUE;不空:FALSE
STATUS?ListEmpty(linkList?L?)
{
if(!L->next?)
return?TRUE;
return?FALSE;
}
//求鏈表的長度,即鏈表中數據結點的個數
int?ListLength(linkList?L?)
{
int?length;
LNode?*p;
length?=?0;
p?=?L->next;
while(p?)
{
length++;
p=p->next;
}
return?length;
}
//從鏈表中取位序為i的結點數據,并用e返回該值
STATUS?GetElem(linkList?L?int?i?ElemType?&e?)
{
int?j=1;
LNode?*p?=?L->next;
//找到元素所在的位置
while(p?&&?j {
p?=?p->next;
j++;
}
if(!p?||?j>i?)
return?FALSE;?????//找不到位序為i的結點
//找到位序為i的結點,用e把其數據返回
e?=?p->data;
return?OK;
}
//判斷元素e是否在鏈表中,如果在返回其在鏈表中的位序,否則返回0
int????LocateElem(linkList?L?ElemType?e?
?STATUS?(*compare)(ElemType?e1?ElemType?e2)?)
{
int?pos?=?1;
LNode??*p?=?L->next;
while(p?)
{
if(?(*compare)(e?p->data)?)
return?pos;???????????????//元素e在鏈表中,返回其位置
pos++;
p?=?p->next;
}
return?0;????//元素e不在鏈表中,返回0
}
//往鏈表中添加一個結點,結點數據為e
STATUS?ListInsert(linkList?L?int?i?ElemType?e?)
{
LNode?*p?*s;
int?j;
//查找插入位置
j?=?0;
p?=?L;
while(p?&&?j {
p=p->next;
j++;
}
if(!p?||?j>i-1?)
return?ERROR;
//申請結點存儲空間,并放到鏈表中
s?=?(LNode*)malloc(sizeof(LNode)?);
if(!s?)?exit(OVERFLOW?);
s->data?=?e;
s->next?=?p->next;
p->next?=?s;
return?OK;
}
//刪除位序為i的結點,并用e返回結點數據
STATUS?ListDelete(linkList?L?int?i?ElemType?&e?)
{
int?j=1;
LNode?*p?=?L;
LNode?*q;
//找到元素所在的位置
while(p->next?&&?j {
p?=?p->next;
j++;
}
if(!p->next?||?j>i?)
return?FALSE;?????//找不到位序為i的結點
//找到結點,用e返回結點數據,并刪除該結點
q?=?p->next;
p->next?=?q->next;
e?=?q->data;
free(q?);
return?OK;
}
//遍歷鏈表中的每個結點,并調用visit()對結點數據處理
STATUS?ListTraverse(linkList?L?STATUS?(*visit)(ElemType?e)?)
{
LNode?*p;
for(p=L->next;?p;?p=p->next?)
{
if(?!(*visit)(p->data)?)
return?ERROR;
}
return?OK;
}
//修改位序為i的結點數據
STATUS?ListModify(linkList?L?int?i?ElemType?e?)
{
int?j=1;
LNode?*p?=?L->next;
//找到元素所在的位置
while(p?&&?j {
p?=?p->next;
j++;
}
if(!p?||?j>i?)
return?FALSE;?????//找不到位序為i的結點
//找到位序為i的結點,修改其結點數據
p->data?=?e;
return?OK;
}
//從文件中將學生信息導入內存,每個學生信息用一個鏈表節點保存,從文件
?//中順序讀學生信息的同時,將節點插入鏈表中
?//文件內部數據存儲格式如下
/************************************************************************************
???|?存儲第一個學生的信?|?緊跟著存儲第二個學生??|?緊跟著存儲第三個學生?|
???|?息,占的字節數為???|?的信息,占的字節數為??|
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????541??2007-03-26?21:21??員工管理系統程序完成\li
?????文件?????230400??2010-07-12?09:14??員工管理系統程序完成\li
?????文件????????921??2010-07-12?08:59??員工管理系統程序完成\li
?????文件???????5812??2008-06-16?15:02??員工管理系統程序完成\list.cpp
?????文件????????972??2010-07-12?08:45??員工管理系統程序完成\stuscore.dat
?????文件???????4534??2010-07-06?10:25??員工管理系統程序完成\li
?????文件???????1478??2010-07-08?09:46??員工管理系統程序完成\list.h
?????文件????????447??2010-07-08?10:51??員工管理系統程序完成\鏈表的冒泡排序.txt
?????文件????????543??2010-07-09?11:43??員工管理系統程序完成\main.cpp
?????文件???????2353??2010-07-09?16:56??員工管理系統程序完成\ui.h
?????文件?????189440??2010-07-12?08:59??員工管理系統程序完成\Debug\vc60.idb
?????文件??????61440??2010-07-12?08:59??員工管理系統程序完成\Debug\vc60.pdb
?????文件?????574464??2010-07-12?08:59??員工管理系統程序完成\Debug\li
?????文件???????4824??2008-06-02?09:04??員工管理系統程序完成\Debug\data.obj
?????文件??????11493??2008-06-16?14:56??員工管理系統程序完成\Debug\list_l.obj
?????文件?????685104??2010-07-12?08:59??員工管理系統程序完成\Debug\li
?????文件?????200800??2010-07-12?08:59??員工管理系統程序完成\Debug\li
?????文件??????12010??2010-07-09?11:35??員工管理系統程序完成\Debug\list.obj
?????文件???????2873??2010-07-09?17:00??員工管理系統程序完成\Debug\main.obj
?????文件?????231708??2010-07-12?08:44??員工管理系統程序完成\Debug\li
?????文件??????42915??2010-07-12?08:59??員工管理系統程序完成\Debug\ui.obj
?????目錄??????????0??2010-07-12?08:43??員工管理系統程序完成\Debug
?????文件??????18346??2010-07-12?08:59??員工管理系統程序完成\ui.cpp
?????文件??????54784??2010-07-12?09:14??員工管理系統程序完成\li
?????目錄??????????0??2010-07-12?08:43??員工管理系統程序完成
-----------?---------??----------?-----??----
??????????????2338202????????????????????25
- 上一篇:模擬衛星旋轉和地球自轉
- 下一篇:game.cpp
評論
共有 條評論