实时监控报警系统 源代码

#include
#include
#include
#include
#define LIST_INIT_SIZE 20
#define OK 1
#define OVERFLOW -2
#define ERROR 0
typedef int Status;
/* 定义单链表 */
typedef struct LNode
{
char * data;
struct LNode *next;
} LNode, *LinkList;

int InitList_L(LinkList &L)
{
L=new LNode;
if(!L) exit(OVERFLOW);
L->next=NULL;
return OK;
}//InitList_L

void ListCreate_L(LinkList &L,int n)
{ //尾插法建立带头结点的单链表L
char * x;
LNode *p;
cout<<" "<for(int i=n;i>0;--i)
{
p=new LNode;
x=new char[20];
if(!p) exit(OVERFLOW);
cin>>x;
p->data=x;
p->next=L->next;
L->next=p;
}
}//ListCreate_L

int ListInsert_L(LinkList &L, int i, char * e)
{ // 在带头结点的单链线性表L的第i个元素之前插入元素e
LNode *p,*s;
int j=0;
p = L;

while ( p && j < i-1)
{
p = p->next;
++j;
}
if (!p || j > i-1) return 0;
s = new LNode;
s->data = e;
s->next = p->next;
p->next = s;
return 1;
}//ListInsert_L

int ListDelete_L(LinkList &L, int i,char e[])
{
// 删除以 L 为头指针(带头结点)的单链表中第 i 个结点
LNode *p,*q;
int j = 0;
p=L;
while (p->next && j < i-1)
{
p = p->next; ++j;
} // 寻找第 i 个结点,并令 p 指向其前趋
if (!(p->next) || j > i-1)
return ERROR; // 删除位置不合理
q = p->next; p->next = q->next; // 删除并释放结点
//e = q->data;
sprintf(e,"%s",q->data);
delete q;
return OK;
} // ListDelete_L

void visit_L( LinkList L ) /* 显示数据 */
{
LNode *p=L->next;
while(p)
{
cout<data<<" "<p=p->next;
}
cout<}
void main()
{
LinkList L;
char * x;
x=new char[50];
int j,n;
int i;
InitList_L(L);
cout<<"****************************************************************************"<cout<<"【系统中有多少个报警信息】:";
cin>>n;
cout<<"【初始化报警系统】:"<ListCreate_L(L,n);
cout<<"【报警系统】:"<visit_L(L);
while(1)
{
cout<<"1:【出警系统启动】\n";
cout<<"2:【显示报警信息】\n";
cout<<"3:【新的报警系统】\n";
cout<<"4:【结束】\n";
cin>>j;
switch(j)
{
case 1:
cout<<"【出警】:";
cin>>i;
if(ListDelete_L(L,i,x))
{
cout<<"【出警信息显示】:"<cout<<"【现存的报警信息】:"<visit_L(L);
}
else cout<<"【出警信息不存在】."<break;
case 2:
visit_L(L);
break;
case 3:
cout<<"【插入报警信息】:";
cin>>i>>x;
if(ListInsert_L(L,i,x)) visit_L(L);
else cout<<"【插入错误】"<break;
case 4:
exit(0);
break;
default:
cout<<

"【输入错误】"<}
}
}


相关文档
最新文档