实时监控报警系统 源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#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<<" "<
{
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<
}
cout<
void main()
{
LinkList L;
char * x;
x=new char[50];
int j,n;
int i;
InitList_L(L);
cout<<"****************************************************************************"<
cin>>n;
cout<<"【初始化报警系统】:"<
cout<<"【报警系统】:"<
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<<"【出警信息显示】:"<
}
else cout<<"【出警信息不存在】."<
case 2:
visit_L(L);
break;
case 3:
cout<<"【插入报警信息】:";
cin>>i>>x;
if(ListInsert_L(L,i,x)) visit_L(L);
else cout<<"【插入错误】"<
case 4:
exit(0);
break;
default:
cout<<
"【输入错误】"<
}
}