单链表实现图书管理系统(共9页).doc
《单链表实现图书管理系统(共9页).doc》由会员分享,可在线阅读,更多相关《单链表实现图书管理系统(共9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上单链表:typedef struct char num20; char name50; float pri; Book;typedef struct LNode /线性表的单链表存储 Book book; /数据域struct LNode *next; /指针域LNode,*LinkList;void Input(LinkList &L) /前插法创建图书链表 LinkList p; L=new LNode; L-next=NULL;/初始化单链表 ifstream inFile(book.txt); if(!inFile)cerrCannot open this f
2、ile!book_head1book_head2book_head3;/读取文件中的标题 while(!inFile.eof()/到达文件尾部前逐行依次读取所有图书数据 p=new LNode; /生成新结点 inFilep-book.nump-book.namep-book.pri; p-next=L-next; /插入到表头 L-next=p;h inFile.close(); cout读取完毕!next; while(p) coutleftsetw(15)book.numtleftsetw(50)book.nametleftsetw(5)book.prinext; coutn信息显示完毕
3、nnext; char name120; coutname1; while(p) if(strcmp(name1,p-book.name)=0) coutleftsetw(15)book.numtleftsetw(50)book.nametleftsetw(5)book.prinext; void Searchnum(LinkList &L) int i; int j=0; LinkList p; p=L-next; /p指向第一个结点 couti; while(p&jnext; if(!p|ji) /第i个元素不存在 cout错误!endl; cout第i本书信息如下:endl; coutl
4、eftsetw(15)book.numtleftsetw(50)book.nametleftsetw(5)book.prinext; p=L-next-next; while(p) if(p-book.pripmax-book.pri)pmax=p; p=p-next; coutleftsetw(15)book.numtleftsetw(50)book.nametleftsetw(5)book.priendl;void Sort(LinkList L)cout此功能还未实现,研究中next; L-next = NULL; /初始化链表 ofstream outFile(bookinverse.
5、txt);/每一次将p插入到L(头结点)与L-next(链表的第一个结点之间) while (p) q = p-next; p-next = L-next; L-next = p; p = q; p=L-next;/循环完后,p指向的是链表末尾,需要重置回首元结点,否则无法写入文件 while(p) coutsetw(15)book.numtsetw(50)book.nametsetw(5)book.priendl; outFileleftsetw(15)book.numtleftsetw(50)book.nametleftsetw(5)book.prinext; cout信息已写入booki
6、nverse.txt中!next; while(p) i+; p=p-next; cout当前的图书总数为:iendl;void Insert(LinkList L) Book bk; LinkList p=L; /初始化 LinkList s=new LNode; /新结点s int i; int j=0; cout请输入待插入书籍的位置i; cout请输入待插入的书籍的信息endl; cout书号: bk.num; cout书名: bk.name; cout价格: bk.pri; while(p&jnext; if(!p|ji-1) cout错误!book=bk; /将结点s的数据域置为b
7、k s-next=p-next; /将结点s插入L中 p-next=s; /重新写入book.txt文件 ofstream outFile(book.txt); p=L-next; while(p) outFileleftsetw(15)book.numtleftsetw(50)book.nametleftsetw(5)book.prinext; cout插入新的书籍后的书籍信息已重新写入book.txt文件endl;void Delete(LinkList L) Book bk1; LinkList p=L; /初始化 LinkList q; /临时保存被删除结点的地址以备释放 int i;
8、 int j=0; cout请输入待删除书籍的位置i; while(p-next&jnext; if(!(p-next)|ji-1) cout错误!next; p-next=q-next; bk1=q-book; delete q; /重新写入book.txt文件 ofstream outFile(book.txt); p=L-next; while(p) outFileleftsetw(15)book.numtleftsetw(50)book.nametleftsetw(5)book.prinext; cout删除所选书籍后的书籍信息已重新写入book.txt文件endl;顺序表typede
9、f struct Book *book; int length;/图书表的图书记录个数SqList;void Input(SqList &L) int i=0;char book_head110,book_head210,book_head310; /定义文件中标题 L.book=new BookMAXSIZE; ifstream inFile(book.txt); /打开文件if(!inFile)cerrCannot open this file!book_head1book_head2book_head3;/读取文件中的标题L.length=0;while(!inFile.eof() /逐
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单链表 实现 图书 管理 系统
限制150内