C++数据结构 二叉树 单链表建一个图书管理系统 删除图书操作有问题,怎么也改不出来<<endl;
#include <iostream>
#include<string>
using namespace std;
typedef string ElemType;
typedef int Status;
string anything;
#define TRUE 1;
#define FALSE 0;
#define OK 1;
#define ERROR 0;
#define MAXSIZE 999999;
typedef struct Book {
string bookID; //书号
string bookName; //书名
string writerName; //作者
int booknumnow; //现库存量
string biglei; //大类
string smalllei; //小类
}Book, * Bookk; //书本类型
typedef struct LNode //链表
{
Book* book;
struct LNode* next;
}LNode, * LinkList;
typedef struct FiveTNode//每一层有五类
{
ElemType data;
struct FiveTNode* child1, * child2, * child3, * child4, * child5;
LNode* lnode;
}FiveTNode, * FiveTree;
Status CreateFiveTree(FiveTree& T, FiveTree& A, FiveTree& B, FiveTree& C, FiveTree& D, FiveTree& E)//创建树
{
T = new FiveTNode;//生成根结点
T->data = "图书";
T->child1 = new FiveTNode;
T->child2 = new FiveTNode;
T->child3 = new FiveTNode;
T->child4 = new FiveTNode;
T->child5 = new FiveTNode;
A = T->child1;
B = T->child2;
C = T->child3;
D = T->child4;
E = T->child5;
A->data = "文化";
B->data = "自然科学";
C->data = "中国名著";
D->data = "外国名著";
E->data = "综合类书籍";
A->child1 = new FiveTNode;
A->child2 = new FiveTNode;
A->child3 = new FiveTNode;
A->child4 = new FiveTNode;
A->child5 = new FiveTNode;
A->child1->data = "哲学";
A->child2->data = "历史";
A->child3->data = "政治";
A->child4->data = "国学";
A->child5->data = "民族";
B->child1 = new FiveTNode;
B->child2 = new FiveTNode;
B->child3 = new FiveTNode;
B->child4 = new FiveTNode;
B->child5 = new FiveTNode;
B->child1->data = "生物";
B->child2->data = "物种";
B->child3->data = "地理";
B->child4->data = "基因";
B->child5->data = "生命";
C->child1 = new FiveTNode;
C->child2 = new FiveTNode;
C->child3 = new FiveTNode;
C->child4 = new FiveTNode;
C->child5 = new FiveTNode;
C->child1->data = "古代神话";
C->child2->data = "古代奇幻";
C->child3->data = "现代小说";
C->child4->data = "古代小说";
C->child5->data = "现代散文";
D->child1 = new FiveTNode;
D->child2 = new FiveTNode;
D->child3 = new FiveTNode;
D->child4 = new FiveTNode;
D->child5 = new FiveTNode;
D->child1->data = "古代小说";
D->child2->data = "现代小说";
D->child3->data = "现代散文";
D->child4->data = "古代散文";
D->child5->data = "童话";
E->child1 = new FiveTNode;
E->child2 = new FiveTNode;
E->child3 = new FiveTNode;
E->child4 = new FiveTNode;
E->child5 = new FiveTNode;
E->child1->data = "交通运输";
E->child2->data = "工业技术";
E->child3->data = "航空航天";
E->child4->data = "环境科学";
E->child5->data = "安全科学";
A->child1->lnode = new LNode;
A->child1->lnode->book = new Book;
A->child2->lnode = new LNode;
A->child2->lnode->book = new Book;
A->child3->lnode = new LNode;
A->child3->lnode->book = new Book;
A->child4->lnode = new LNode;
A->child4->lnode->book = new Book;
A->child5->lnode = new LNode;
A->child5->lnode->book = new Book;
B->child1->lnode = new LNode;
B->child1->lnode->book = new Book;
B->child2->lnode = new LNode;
B->child2->lnode->book = new Book;
B->child3->lnode = new LNode;
B->child3->lnode->book = new Book;
B->child4->lnode = new LNode;
B->child4->lnode->book = new Book;
B->child5->lnode = new LNode;
B->child5->lnode->book = new Book;
C->child1->lnode = new LNode;
C->child1->lnode->book = new Book;
C->child2->lnode = new LNode;
C->child2->lnode->book = new Book;
C->child3->lnode = new LNode;
C->child3->lnode->book = new Book;
C->child4->lnode = new LNode;
C->child4->lnode->book = new Book;
C->child5->lnode = new LNode;
C->child5->lnode->book = new Book;
D->child1->lnode = new LNode;
D->child1->lnode->book = new Book;
D->child2->lnode = new LNode;
D->child2->lnode->book = new Book;
D->child3->lnode = new LNode;
D->child3->lnode->book = new Book;
D->child4->lnode = new LNode;
D->child4->lnode->book = new Book;
D->child5->lnode = new LNode;
D->child5->lnode->book = new Book;
E->child1->lnode = new LNode;
E->child1->lnode->book = new Book;
E->child2->lnode = new LNode;
E->child2->lnode->book = new Book;
E->child3->lnode = new LNode;
E->child3->lnode->book = new Book;
E->child4->lnode = new LNode;
E->child4->lnode->book = new Book;
E->child5->lnode = new LNode;
E->child5->lnode->book = new Book;
A->child1->lnode->book->bookName = "《哲学起步》";
A->child1->lnode->book->bookID = "1";
A->child1->lnode->book->writerName = "邓晓芒";
A->child1->lnode->book->booknumnow = 11;
A->child1->lnode->next = NULL;
A->child2->lnode->book->bookName = "《中国历史文化课》";
A->child2->lnode->book->bookID = "2";
A->child2->lnode->book->writerName = "余秋雨";
A->child2->lnode->book->booknumnow = 11;
A->child2->lnode->next = NULL;
A->child3->lnode->book->bookName = "《万古江河》";
A->child3->lnode->book->bookID = "3";
A->child3->lnode->book->writerName = "朱卓文";
A->child3->lnode->book->booknumnow = 23;
A->child3->lnode->next = NULL;
A->child4->lnode->book->bookName = "《国学知识大全》";
A->child4->lnode->book->bookID = "4";
A->child4->lnode->book->writerName = "吕思勉";
A->child4->lnode->book->booknumnow = 34;
A->child4->lnode->next = NULL;
A->child5->lnode->book->bookName = "《民族文化史》";
A->child5->lnode->book->bookID = "5";
A->child5->lnode->book->writerName = "季玉春";
A->child4->lnode->book->booknumnow = 26;
A->child5->lnode->next = NULL;
B->child1->lnode->book->bookName = "《万物简史》";
B->child1->lnode->book->bookID = "6";
B->child1->lnode->book->writerName = "达尔文";
B->child1->lnode->book->booknumnow = 34;
B->child1->lnode->next = NULL;
B->child2->lnode->book->bookName = "《物种起源》";
B->child2->lnode->book->bookID = "7";
B->child2->lnode->book->writerName = "萨根";
B->child2->lnode->book->booknumnow = 34;
B->child2->lnode->next = NULL;
B->child3->lnode->book->bookName = "《神秘的宇宙》";
B->child3->lnode->book->bookID = "8";
B->child3->lnode->book->writerName = "理查德";
B->child3->lnode->book->booknumnow = 18;
B->child3->lnode->next = NULL;
B->child4->lnode->book->bookName = "《自私的基因》";
B->child4->lnode->book->bookID = "9";
B->child4->lnode->book->writerName = "吉姆";
B->child4->lnode->book->booknumnow = 27;
B->child4->lnode->next = NULL;
B->child5->lnode->book->bookName = "《神奇的量子力量》";
B->child5->lnode->book->bookID = "10";
B->child5->lnode->book->writerName = "萨利";
B->child5->lnode->book->booknumnow = 27;
B->child5->lnode->next = NULL;
C->child1->lnode->book->bookName = "《山海经》";
C->child1->lnode->book->bookID = "11";
C->child1->lnode->book->writerName = "邹衍";
C->child1->lnode->book->booknumnow = 54;
C->child1->lnode->next = NULL;
C->child2->lnode->book->bookName = "《西游记》";
C->child2->lnode->book->bookID = "12";
C->child2->lnode->book->writerName = "吴承恩";
C->child2->lnode->book->booknumnow = 32;
C->child2->lnode->next = NULL;
C->child3->lnode->book->bookName = "《团圆》";
C->child3->lnode->book->bookID = "13";
C->child3->lnode->book->writerName = "张爱玲";
C->child3->lnode->book->booknumnow = 23;
C->child3->lnode->next = NULL;
C->child4->lnode->book->bookName = "《三国演义》";
C->child4->lnode->book->bookID = "14";
C->child4->lnode->book->writerName = "罗贯中";
C->child4->lnode->book->booknumnow = 56;
C->child4->lnode->next = NULL;
C->child5->lnode->book->bookName = "《朝花夕拾》";
C->child5->lnode->book->bookID = "15";
C->child5->lnode->book->writerName = "鲁迅";
C->child5->lnode->book->booknumnow = 32;
C->child5->lnode->next = NULL;
D->child1->lnode->book->bookName = "《神圣的罗马帝国》";
D->child1->lnode->book->bookID = "16";
D->child1->lnode->book->writerName = "新海月";
D->child1->lnode->book->booknumnow = 24;
D->child1->lnode->next = NULL;
D->child2->lnode->book->bookName = "《追风筝的人》";
D->child2->lnode->book->bookID = "17";
D->child2->lnode->book->writerName = "卡勒得";
D->child2->lnode->book->booknumnow = 46;
D->child2->lnode->next = NULL;
D->child3->lnode->book->bookName = "《论时机》";
D->child3->lnode->book->bookID = "18";
D->child3->lnode->book->writerName = "培根";
D->child3->lnode->book->booknumnow = 23;
D->child3->lnode->next = NULL;
D->child4->lnode->book->bookName = "《诗学》";
D->child4->lnode->book->bookID = "19";
D->child4->lnode->book->writerName = "亚里士多德";
D->child4->lnode->book->booknumnow = 35;
D->child4->lnode->next = NULL;
D->child5->lnode->book->bookName = "《安徒生童话》";
D->child5->lnode->book->bookID = "20";
D->child5->lnode->book->writerName = "安徒生";
D->child5->lnode->book->booknumnow = 41;
D->child5->lnode->next = NULL;
E->child1->lnode->book->bookName = "《道路交通安全法》";
E->child1->lnode->book->bookID = "21";
E->child1->lnode->book->writerName = "郑彩城";
E->child1->lnode->book->booknumnow = 12;
E->child1->lnode->next = NULL;
E->child2->lnode->book->bookName = "《大国重工》";
E->child2->lnode->book->bookID = "22";
E->child2->lnode->book->writerName = "吴国忠";
E->child2->lnode->book->booknumnow = 27;
E->child2->lnode->next = NULL;
E->child3->lnode->book->bookName = "《中国航空》";
E->child3->lnode->book->bookID = "23";
E->child3->lnode->book->writerName = "沈海军";
E->child3->lnode->book->booknumnow = 30;
E->child3->lnode->next = NULL;
E->child4->lnode->book->bookName = "《环境科学与工程》";
E->child4->lnode->book->bookID = "24";
E->child4->lnode->book->writerName = "李思雨";
E->child4->lnode->book->booknumnow = 21;
E->child4->lnode->next = NULL;
E->child5->lnode->book->bookName = "《安全科学你我需知》";
E->child5->lnode->book->bookID = "25";
E->child5->lnode->book->writerName = "刘俊";
E->child5->lnode->book->booknumnow = 58;
E->child5->lnode->next = NULL;
return OK;
}
void OutputP(LNode *pa1, LNode *pa2, LNode *pa3, LNode * pa4, LNode * pa5)
{
//pa1->book = new Book;
//pa2->book = new Book;
//pa3->book = new Book;
//pa4->book = new Book;
//pa5->book = new Book;
while (pa1)
{
cout << pa1->book->bookID << " " << pa1->book->bookName << " " << pa1->book->writerName << endl;
pa1 = pa1->next;
}
while (pa2)
{
cout << pa2->book->bookID << " " << pa2->book->bookName << " " << pa2->book->writerName << endl;
pa2 = pa2->next;
}
while (pa3)
{
cout << pa3->book->bookID << " " << pa3->book->bookName << " " << pa3->book->writerName << endl;
pa3 = pa3->next;
}
while (pa4)
{
cout << pa4->book->bookID << " " << pa4->book->bookName << " " << pa4->book->writerName << endl;
pa4 = pa4->next;
}
while (pa5)
{
cout << pa5->book->bookID << " " << pa5->book->bookName << " " << pa5->book->writerName << endl;
pa5 = pa5->next;
}
}
//显示所有图书
void showbook(FiveTree& T, FiveTree& A, FiveTree& B, FiveTree& C, FiveTree& D, FiveTree& E)
{
system("cls"); //清屏
LNode *pa1, *pa2, *pa3,* pa4,* pa5,* pb1,* pb2,* pb3, *pb4, *pb5, *pc1, *pc2, *pc3, *pc4, *pc5, *pd1, *pd2, *pd3, *pd4, *pd5, *pe1, *pe2, *pe3, *pe4, *pe5 = new LNode;
pa1 = A->child1->lnode;
pa2 = A->child2->lnode;
pa3 = A->child3->lnode;
pa4 = A->child4->lnode;
pa5 = A->child5->lnode;
pb1 = B->child1->lnode;
pb2 = B->child2->lnode;
pb3 = B->child3->lnode;
pb4 = B->child4->lnode;
pb5 = B->child5->lnode;
pc1 = C->child1->lnode;
pc2 = C->child2->lnode;
pc3 = C->child3->lnode;
pc4 = C->child4->lnode;
pc5 = C->child5->lnode;
pd1 = D->child1->lnode;
pd2 = D->child2->lnode;
pd3 = D->child3->lnode;
pd4 = D->child4->lnode;
pd5 = D->child5->lnode;
pe1 = E->child1->lnode;
pe2 = E->child2->lnode;
pe3 = E->child3->lnode;
pe4 = E->child4->lnode;
pe5 = E->child5->lnode;
cout << " ***************************************" << endl;
OutputP(pa1, pa2, pa3, pa4, pa5);
OutputP(pb1, pb2, pb3, pb4, pb5);
OutputP(pc1, pc2, pc3, pc4, pc5);
OutputP(pd1, pd2, pd3, pd4, pd5);
OutputP(pe1, pe2, pe3, pe4, pe5);
cout << " ***************************************" << endl;
cout << "输入任意字符返回!" << endl;
cin >> anything;
return;
}
void delete_(LNode* p, string book_delete_name)
{
while (p->next)
{
if (p->next->book->bookName == book_delete_name)
{
cout << "删除的具体信息如下" << endl;
cout << "ID:" << p->next->book->bookID << "书名: " << p->next->book->bookName << "作者: " << p->next->book->writerName << endl;
p->next = p->next->next;
delete (p->next);
cout << "删除成功" << endl;
}
p = p->next;
}
}
void delete_findID(FiveTree& T, FiveTree& A, FiveTree& B, FiveTree& C, FiveTree& D, FiveTree& E, string book_delete_name)//查找ID
{
string book_delete_ID;
LNode* pa1, * pa2, * pa3, * pa4, * pa5, * pb1, * pb2, * pb3, * pb4, * pb5, * pc1, * pc2, * pc3, * pc4, * pc5, * pd1, * pd2, * pd3, * pd4, * pd5, * pe1, * pe2, * pe3, * pe4, * pe5 = new LNode;
pa1 = A->child1->lnode;
pa2 = A->child2->lnode;
pa3 = A->child3->lnode;
pa4 = A->child4->lnode;
pa5 = A->child5->lnode;
pb1 = B->child1->lnode;
pb2 = B->child2->lnode;
pb3 = B->child3->lnode;
pb4 = B->child4->lnode;
pb5 = B->child5->lnode;
pc1 = C->child1->lnode;
pc2 = C->child2->lnode;
pc3 = C->child3->lnode;
pc4 = C->child4->lnode;
pc5 = C->child5->lnode;
pd1 = D->child1->lnode;
pd2 = D->child2->lnode;
pd3 = D->child3->lnode;
pd4 = D->child4->lnode;
pd5 = D->child5->lnode;
pe1 = E->child1->lnode;
pe2 = E->child2->lnode;
pe3 = E->child3->lnode;
pe4 = E->child4->lnode;
pe5 = E->child5->lnode;
delete_(pa1, book_delete_name);
delete_(pa2, book_delete_name);
delete_(pa3, book_delete_name);
delete_(pa4, book_delete_name);
delete_(pa5, book_delete_name);
delete_(pb1, book_delete_name);
delete_(pb2, book_delete_name);
delete_(pb3, book_delete_name);
delete_(pb4, book_delete_name);
delete_(pb5, book_delete_name);
delete_(pc1, book_delete_name);
delete_(pc2, book_delete_name);
delete_(pc3, book_delete_name);
delete_(pc4, book_delete_name);
delete_(pc5, book_delete_name);
delete_(pd1, book_delete_name);
delete_(pd2, book_delete_name);
delete_(pd3, book_delete_name);
delete_(pd4, book_delete_name);
delete_(pd5, book_delete_name);
delete_(pe1, book_delete_name);
delete_(pe2, book_delete_name);
delete_(pe3, book_delete_name);
delete_(pe4, book_delete_name);
delete_(pe5, book_delete_name);
}
Status ListDelete(FiveTree& T, FiveTree& A, FiveTree& B, FiveTree& C, FiveTree& D, FiveTree& E)//删除
{
system("cls"); //清屏
int password;//输入密码验证身份
cout << "************************************" << endl;
cout << "*为证明身份,请输入密码: *" << endl;
cout << "************************************" << endl;
cin >> password;
if (password == 1379)//密码输入正确
{
system("cls"); //清屏
showbook(T, A, B, C, D, E);
system("cls"); //清屏
cout << "请输入删除书籍的书名" << endl;
string book_delete_name;
cin >> book_delete_name;
delete_findID(T, A, B, C, D, E, book_delete_name);
}
else
{
//输入了其他的字符
system("cls"); //清屏
cout << " ***************************************" << endl;
cout << "密码错误!请返回!若非管理员请勿操作此功能!" << endl;
cout << " ***************************************" << endl;
}
return OK;
}
int main()
{
FiveTree T, A, B, C, D, E;
CreateFiveTree(T, A, B, C, D, E);
cout << "请在显示的菜单里复制书名!" << endl;
showbook(T, A, B,C,D,E);
ListDelete(T,A,B,C,D,E);
showbook(T, A, B, C, D, E);
}