• 大小: 350KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: C/C++
  • 标签:

资源简介

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  员工管理系统程序完成\linklist.dsw

     文件     230400  2010-07-12 09:14  员工管理系统程序完成\linklist.ncb

     文件        921  2010-07-12 08:59  员工管理系统程序完成\linklist.plg

     文件       5812  2008-06-16 15:02  员工管理系统程序完成\list.cpp

     文件        972  2010-07-12 08:45  员工管理系统程序完成\stuscore.dat

     文件       4534  2010-07-06 10:25  员工管理系统程序完成\linklist.dsp

     文件       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\linklist.pdb

     文件       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\linklist.ilk

     文件     200800  2010-07-12 08:59  员工管理系统程序完成\Debug\linklist.exe

     文件      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\linklist.pch

     文件      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  员工管理系统程序完成\linklist.opt

     目录          0  2010-07-12 08:43  员工管理系统程序完成

----------- ---------  ---------- -----  ----

              2338202                    25


评论

共有 条评论

相关资源