单链表实现图书管理系统Word格式.docx

上传人:b****3 文档编号:14338970 上传时间:2022-10-22 格式:DOCX 页数:13 大小:18.02KB
下载 相关 举报
单链表实现图书管理系统Word格式.docx_第1页
第1页 / 共13页
单链表实现图书管理系统Word格式.docx_第2页
第2页 / 共13页
单链表实现图书管理系统Word格式.docx_第3页
第3页 / 共13页
单链表实现图书管理系统Word格式.docx_第4页
第4页 / 共13页
单链表实现图书管理系统Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

单链表实现图书管理系统Word格式.docx

《单链表实现图书管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《单链表实现图书管理系统Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

单链表实现图书管理系统Word格式.docx

ifstreaminFile("

book.txt"

);

if(!

inFile){

cerr<

<

"

Cannotopenthisfile!

endl;

exit

(1);

}

charbook_head1[10],book_head2[10],book_head3[10];

//定义文件中标题

inFile>

>

book_head1>

book_head2>

book_head3;

//读取文件中的标题

while(!

inFile.eof()){//到达文件尾部前逐行依次读取所有图书数据

p=newLNode;

//生成新结点

inFile>

p->

book.num>

book.name>

book.pri;

p->

next=L->

next;

//插入到表头

L->

next=p;

h

}

inFile.close();

cout<

读取完毕!

}

voidOutput(LinkList&

L){//输出

p=L->

while(p){

cout<

left<

setw(15)<

book.num<

\t"

setw(50)<

book.name<

setw(5)<

book.pri<

p=p->

\n信息显示完毕\n"

voidSearchname(LinkList&

L){

charname1[20];

请输入要查找的书名:

;

cin>

name1;

if(strcmp(name1,p->

book.name)==0){

}

p=p->

voidSearchnum(LinkList&

inti;

intj=0;

//p指向第一个结点

请输入要查找的书籍的位置"

i;

while(p&

&

j<

i-1){//顺着链表向后扫描,直到p指向第i个元素或p为空

j++;

p||j>

i){//第i个元素不存在

错误!

第"

i<

本书信息如下:

voidMax(LinkList&

LinkListpmax,p;

pmax=L->

next->

if(p->

book.pri>

pmax->

book.pri)

pmax=p;

voidSort(LinkListL){

此功能还未实现,研究中"

voidInverse(LinkList&

//待插入到链表的节点

LinkListq;

p=L->

next=NULL;

//初始化链表

ofstreamoutFile("

bookinverse.txt"

//每一次将p插入到L(头结点)与L->

next(链表的第一个结点之间)

while(p){

q=p->

p->

next=L->

next=p;

p=q;

//循环完后,p指向的是链表末尾,需要重置回首元结点,否则无法写入文件

outFile<

信息已写入bookinverse.txt中!

voidCount(LinkListL){

inti=0;

i++;

当前的图书总数为:

voidInsert(LinkListL){

Bookbk;

LinkListp=L;

//初始化

LinkLists=newLNode;

//新结点s

请输入待插入书籍的位置"

请输入待插入的书籍的信息"

书号:

"

bk.num;

书名:

bk.name;

价格:

bk.pri;

i-1){//寻找第i-1个结点

i-1){

s->

book=bk;

//将结点s的数据域置为bk

next=p->

//将结点s插入L中

next=s;

//重新写入book.txt文件

插入新的书籍后的书籍信息已重新写入book.txt文件"

voidDelete(LinkListL){

Bookbk1;

//临时保存被删除结点的地址以备释放

请输入待删除书籍的位置"

while(p->

next&

(p->

next)||j>

q=p->

next=q->

bk1=q->

book;

deleteq;

删除所选书籍后的书籍信息已重新写入book.txt文件"

顺序表

typedefstruct{

Book*book;

intlength;

//图书表的图书记录个数

}SqList;

voidInput(SqList&

L.book=newBook[MAXSIZE];

//打开文件

inFile){

L.length=0;

inFile.eof()){//逐行依次读取所有图书数据

L.book[i].num>

L.book[i].name>

L.book[i].pri;

i++;

//记录图书个数

L.length=i;

\n读取book.txt信息完毕!

voidOutput(SqListL){

for(inti=0;

L.length;

i++){

L.book[i].num<

L.book[i].name<

L.book[i].pri<

voidSearchname(SqList&

inty;

for(y=0;

y<

y++){

//比较输入的name1与结构体数组中name是否相同;

if(strcmp(name1,L.book[y].name)==0){

l

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 英语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1