这是图书信息测试txt文件,由于是oj搞过来的代码,只是简单复制粘贴了一下oj里面的代码段,然后我又自己加了一些逻辑是之成为一个完整的图书管理系统。录入信息的方式一共有3种,具体怎么录入信息看提示。
可能部分逻辑并不是很完美,只是实现了基本的功能,之后有时间还会优化一下逻辑结构
8
9787302257646 Data-Structure 35.00
9787302164340 Operating-System 50.00
9787302219972 Software-Engineer 32.00
9787302203513 Database-Principles 36.00
9787810827430 Discrete-Mathematics 36.00
9787302257800 Data-Structure 62.00
9787811234923 Compiler-Principles 62.00
9787822234110 The-C-Programming-Language 38.00
0 0 0
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <fstream>
#include <iomanip>
#include <ctype.h>
#define OK 1
using namespace std;
typedef struct//定义图书结构体
{
string IBNS;
string NAME;
float PRICE;
}Book;
typedef struct LNode
{
int length;
Book data;
struct LNode* next;
}LNode, * LinkList;
int Init(LinkList& L);//初始化链表
int Tail_Insert(LinkList& L);//尾插法储存图书信息,结束条件是0,0,0
int Tail_Insert_n(LinkList& L);//尾插,先输入图书数目再存入
int Head_Insert(LinkList& L);//头插法,逆序存储
int Traverse(LinkList& L);//遍历图书,求表长
int Print(LinkList L);//打印所有图书
int Sort(LinkList& L);//按照价格从大到小排序,并输出平均价格
int Modify(LinkList& L);//修改图书价格信息函数
void Find(LinkList& L);
int Find_expensivest(LinkList L);//查找最贵图书
int Find_byname(LinkList L);//根据书名查找图书详细信息
int Find_n(LinkList L);//查找第n本图书的信息
int Insert_Pos(LinkList& L);//插入新图书信息
int Delete(LinkList& L);//删除第n本图书的信息
int Delete_re(LinkList L);//IBNS号重复的图书的信息
int Insert(LinkList L);
void Clear();//清屏
void Index(LinkList L);
void Instruct(LinkList L);//指令集合函数
void Print_sum(LinkList L);
void Index(LinkList L)
{
int Chioce=12;
int flag = 1;
while (flag) {
cout << "\n***************************************Welcome to the Books Management System (BMS)*************************************\n";
cout << "1.查询图书数量\n2.输出所有图书信息\n3.在指定位置插入图书\n4.根据位置删除图书信息\n5.根据输入信息的查找\n6.查看图书的总数\n7.修改价格信息并将生成的信息导入新文件\n8.排序并将排序后的信息导入新的文件\n9、查重(对于IBSN号相同的图书只保留一本\n10、退出" << endl;
cout << "请选择" << endl;
cin >> Chioce;
Clear();
switch (Chioce) {
case 1:Traverse(L); flag = 0; break;
case 2:Print(L); flag = 0; break;//输出所有图书信息
case 3:Insert_Pos(L); flag = 0; break;//插入图书信息
case 4:Delete(L); flag = 0; break;//删除图书信息
case 5:Find(L); flag = 0; break;//根据书名查找图书
case 6:Print_sum(L); flag = 0; break;
case 7:Modify(L); flag = 0; break;//修改图书价格
case 8:Sort(L); flag = 0; break;//冒泡排序
case 9:Delete_re(L); flag = 0; break;
case 10:cout << "\t成功退出,谢谢使用!"; exit(0);
default:
printf("输错啦! 请输入1 ~ 9之间的整数\n");
bre