单链表实现图书管理系统_第1页
单链表实现图书管理系统_第2页
单链表实现图书管理系统_第3页
单链表实现图书管理系统_第4页
单链表实现图书管理系统_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单链表 typedef struct char num 20 char name 50 float pri Book typedef struct LNode 线性表的单链表存储 Book book 数据域 struct LNode next 指针域 LNode LinkList void Input LinkList L new LNode L next NULL 初始化单链表 ifstream inFile book txt if inFile cerr Cannot open this file book head1 book head2 book head3 读取文件中的标题 while inFile eof 到达文件尾部前逐行依次读取所有图书数据 p new LNode 生成新结点 inFile p book num p book name p book pri p next L next 插入到表头 L next p h inFile close cout 读取完毕 next while p cout left setw 15 book num t left setw 50 book name t left setw 5 book pri next cout n 信息显示完毕 n next char name1 20 cout name1 while p if strcmp name1 p book name 0 cout left setw 15 book num t left setw 50 book name t left setw 5 book pri next void Searchnum LinkList int j 0 LinkList p p L next p 指向第一个结点 cout i while p if p j i 第 i 个元素不存在 cout 错误 endl cout 第 i 本书信息如下 endl cout left setw 15 book num t left setw 50 book name t left setw 5 book pri next p L next next while p if p book pri pmax book pri pmax p p p next cout left setw 15 book num t left setw 50 book name t left setw 5 book pri endl void Sort LinkList L cout 此功能还未实现 研究中 next L next NULL 初始化链表 ofstream outFile bookinverse 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 cout setw 15 book num t setw 50 book name t setw 5 book pri endl outFile left setw 15 book num t left setw 50 book name t left setw 5 book pri next cout 信息已写入 bookinverse txt 中 next while p i p p next cout 当前的图书总数为 i endl 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 if p j i 1 cout 错误 book bk 将结点 s 的数据域置为 bk s next p next 将结点 s 插入 L 中 p next s 重新写入 book txt 文件 ofstream outFile book txt p L next while p outFile left setw 15 book num t left setw 50 book name t left setw 5 book pri next cout 插入新的书籍后的书籍信息已重新写入 book txt 文件 endl void Delete LinkList L Book bk1 LinkList p L 初始化 LinkList q 临时保存被删除结点的地址以备释放 int i int j 0 cout 请输入待删除书籍的位置 i while p next if p next j i 1 cout 错误 next p next q next bk1 q book delete q 重新写入 book txt 文件 ofstream outFile book txt p L next while p outFile left setw 15 book num t left setw 50 book name t left setw 5 book pri next cout 删除所选书籍后的书籍信息已重新写入 book txt 文件 endl 顺序表 typedef struct Book book int length 图书表的图书记录个数 SqList void Input SqList char book head1 10 book head2 10 book head3 10 定义文件中标题 L book new Book MAXSIZE ifstream inFile book txt 打开文件 if inFile cerr Cannot open this file book head1 book head2 book head3 读取文件中的标题 L length 0 while inFile eof 逐行依次读取所有图书数据 inFile L book i num L book i name L book i pri i 记录图书个数 L length i inFile close cout n 读取 book txt 信息完毕 endl void Output SqList L for int i 0 i L length i cout left setw 15 L book i num t left setw 50 L book i name t left setw 5 L book i pri endl cout n 信息显示完毕 n endl void Searchname SqList char name1 20 cout name1 for y 0 y L length y 比较输入的 name1 与结构体数组中 name 是否相同 if strcmp name1 L book y name 0 cout left setw 15 L book y num t left setw 50 L book y name t left setw 5 L book y pri endl break void Searchnum SqList cout 请输入要查找的书的位置 i cout left setw 15 L book i 1 num left setw 50 L book i 1 name left setw 5 L book i 1 pri endl void Max SqList L int max 0 cout 价格最高的书是 endl cout 书号 t 书名 t 价格 endl for int i 0 iL book max pri max i cout left setw 15 L book max num t left setw 50 L book max name t left setw 5 L book max pri endl for int j 0 j L length 1 j if j max if L book j pri L book max pri cout left setw 15 L book j num t left setw 50 L book j name t left setw 5 L book j pri endl cout endl void Sort SqList L 冒泡排序 Book book1 重新定义一个结构体变量 for int m 0 m L length 1 m for int n 0 n L length m 1 n if L book n pri L book n 1 pri 交换结构体数组的值 book1 L book n L book n L book n 1 L book n 1 book1 写入 booksort txt 文件 ofstream outFile booksort txt ios out for m 0 m L length 1 m outFile left setw 15 L book m num t left setw 50 L book m nam e t left setw 5 L book m pri endl outFile close cout 排序后书籍信息已写入 booksort txt 文件 endl void Inverse SqList L Input L Book book2 int i j k k L length 2 for i 0 i k i j L length 1 i book2 L book i L book i L book j L book j book2 写入 bookinverse txt 文件 ofstream outFile bookinverse txt for i 0 i L length i outFile left setw 15 L book i num t left setw 50 L book i name t left setw 5 L book i pri endl outFile close cout 排序后书籍信息已写入 bookinverse txt 文件 endl void Count SqList L cout 当前的图书总数为 L length endl endl void Insert SqList L Book book3 int i int j cout 请输入待插入书籍的位置 i cout 请输入待插入的书籍的信息 endl cout 书号 book3 num cout 书名 book3 name cout 价格 book3 pri if iL length 1 i 值不合法 cout 输入的位置错误 请重新输入 endl cout 请输入待插入书籍的位置 i for j L length 1 j i 1 j L book j 1 L book j 输入位置及之后的元素位置后移 L book i 1 book3 将新元素 book3 放入第 i 个位置 L length 表长增加 1 重新写入 book txt 文件 ofstream outFile book txt for i 0 i L length i outFile left setw 15 L book i num t left setw 50 L book i name t left setw 5 L book i pri endl outFile close cout 插入新的书籍后的书籍信息已重新写入 book txt 文件 endl void Delete SqList L Book book4 int i int j cout 请输入待删除书籍的位置 i if iL length cout 输入的位置错误 请重新输入 endl cout 请输入待删除书籍的位置 i book4 L book i 1 将要删除的元素保存在 book4 中 for j i j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论