单链表: 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){ // 前插法创建图书链表
LinkList p;
L=new LNode;
L->next=NULL;// 初始化单链表
ifstream inFile(""); if(!inFile){
cerr<<"Cannot open this file!"<<endl; exit(1);
}
char book_head1[10],book_head2[10],book_head3[10]; // 定义文件中标题
inFile>>book_head1>>book_head2>>book_head3;// 读取文件中的标题
while(!()){// 到达文件尾部前逐行依次读取所有图书数据
p=new LNode; // 生成新结点
inFile>>p->>>p->>>p->; p->next=L->next; // 插入到表头
L->next=p;h
}
();
cout<<" 读取完毕 !"<<endl;
}
void Output(LinkList &L){// 输出
LinkList p;
p=L->next; while(p){
cout<<left<<setw(15)<<p-><<"\t"<<left<<setw(50)<<p->
<<"\t"<<left<<setw(5)<<p-><<endl;
p=p->next;
}
cout<<"\n 信息显示完毕 \n"<<endl;
}
void Searchname(LinkList &L){
LinkList p; p=L->next;
char name1[20];
cout<<" 请输入要查找的书名: "; cin>>name1;
while(p){
if(strcmp(name1,p->)==0){
cout<<left<<setw(15)<<p-><<"\t"<<left<<setw(50)<<p->
<<"\t"<<left<<setw(5)<<p-><<endl;
}
p=p->next;
}
}
void Searchnum(LinkList &L){ int i;
int j=0;
LinkList p;
p=L->next; //p 指向第一个结点cout<<" 请输入要查找的书籍的位置 "; cin>>i;
while(p&&j<i-1){ // 顺着链表向后扫描,直到 p 指向第 i 个元素或 p 为空
j++;
p=p->next;
}
if(!p||j>i){ // 第 i 个元素不存在
cout<<" 错误 !"<<endl;
}
cout<<" 第"<<i<<" 本书信息如下 :"<<endl;
cout<<left<<setw(15)<<p-><<"\t"<<left<<setw(50)<<p->
<<"\t"<<left<<setw(5)<<p-><<endl;
}
void Max(LinkList &L){ LinkList pmax,p; pmax=L->next; p=L->next->next;
while(p){
if(p->>pmax->) pmax=p;
p=p->next;
}
cout<<left<<setw(15)<<pmax-><<"\t"<<left<<setw(50)<<
单链表实现图书管理系统 来自淘豆网www.taodocs.com转载请标明出处.