单链表实现图书管理系统Word格式.docx
- 文档编号:14338970
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:13
- 大小:18.02KB
单链表实现图书管理系统Word格式.docx
《单链表实现图书管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《单链表实现图书管理系统Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单链表 实现 图书 管理 系统