索引查询图书(C语言程序)

合集下载

c语言最全的图书管理系统程序

c语言最全的图书管理系统程序

题目名称:图书管理系统算法分析:1用结构体标出信息系统的成员:图书书号,书名,作者姓名,出版社,价格2 利用c语言的文件知识将系统的信息存放在c盘下的“project choose.txt”的文件夹下3 定义各个子函数(1)定义输入信息函数,将图书信息按一定格式用scanf函数输入(统计M本的信息);(2)定义输出函数,每3个表一页直到最后一个;(3)定义信息查询函数。

a,定义按书号查询函数,如果输入的数字等于图书编号则输出要查询的信息;b,定义按姓名查询函数,如果输入的姓名字符串等于其中一个作者姓名字符串则输出信息;c,定义按出版社名称查找函数,如果输入的字符串等于其中出版社名称,则输出该信息; e,定义查找总函数,输入一个数选择查找方式,1-4分别对应调用abc四个函数。

(4)定义删除信息函数。

输入的数字作为要删除的图书编号,输出要删除的图书信息后选择是否删除,删除后将第g+1个的信息赋给第g个,输出删除后的信息表。

(5)定义信息修改函数。

输入的数字等于要修改的图书编号,输出要修改的图书信息后选择是否修改,用switch,case语句选择要修改的项目,输入n,y决定是否继续直到不继续修改,输出图书信息。

(6)定义信息统计函数。

输入一个字符串作为出版社,比较M 本书的出版社字符串是否等于输入的字符串,统计相等的个数n输出。

(7)定义图书编号排序函数。

用冒泡排序法将M本的书的图书编号按从大到小的顺序排列后输出。

4 定义主函数。

调用读取文件函数,输入数字1-5分别对应调用修改图书信息函数,删除图书信息函数,查找图书信息函数,统计图书信息函数,图书排行信息函数,0表示退出系统。

最后调用保存文件函数。

结束程序。

流程设计:代码设计:#include<stdio.h>#include<stdlib.h>#include<string.h>#define M 2#define PAGE 3/*图书结构体类型*/typedef struct{int num; /*图书号*/char name[20]; /*书名*/char zuozhe[20]; /*作者姓名*/char chubanshe[20]; /*出版社*/int price; /*价格*/}BOOKS;int read_file(BOOKS books[]){ FILE *fp;int i=0;if((fp=fopen("project choose.txt","rt"))==NULL){ printf("\n\n*****库存文件不存在!请创建");return 0;}while(feof(fp)!=1){ fread(&books[i],sizeof(BOOKS),1,fp);if(books[i].num==0)break;elsei++;}fclose(fp);return i;}void save_file(BOOKS books[],int sum){ FILE *fp;int i;if((fp=fopen("project choose.txt","wb"))==NULL){ printf("读文件错误!\n");return;}for(i=0;i<sum;i++)if(fwrite(&books[i],sizeof(BOOKS),1,fp)!=1)printf("写文件错误!\n");fclose(fp);}/*输入模块*/int input(BOOKS books[]){ int i=0;printf("\n\n 录入图书信息(最多%d 种)\n",M);printf("----------------------------------------------------\n");do{ printf("\n 第%d本图书",i+1);printf("\n 图书编号:");scanf("%d",&books[i].num); if(books[i].num==0) break;printf("\n 图书名称:");scanf("%s",books[i].name);printf("\n 作者:");scanf("%s",books[i].zuozhe);printf("\n 出版社:");scanf("%s",&books[i].chubanshe);printf("\n 图书价格:");scanf("%d",&books[i].price);i++;}while(i<M);printf("\n --%d种图书信息输入完毕!--\n",i);printf("\n 按任意键返回主菜单!");getchar();return i;}/*输出模块*/void output(BOOKS books[]){int i=0,j=0,page=1;printf("\n\n --图书信息表-- 第%d页\n\n",page);printf("图书编号----图书名称-----作者----- 出版社-----图书价格\n");printf("-------------------------------------------------------\n");do{ if(books[i].num!=0){ j++;if(j%PAGE!=0){ printf("%4d %10s %10s %10s %8d \n",books[i].num,books[i].name,books[i].zuozhe, books[i].chubanshe,books[i].price);printf("------------------------------------------------------\n");}else{ printf("按任意键继续!");getchar();printf("\n\n --图书信息表-- 第%d页\n\n",++page);printf("图书编号--图书名称--作者-- 出版社--图书价格\n");printf("------------------------------------------\n");printf("%4d %10s %10s %10s %8d \n",books[i].num,books[i].name,books[i].zuozhe, books[i].chubanshe,books[i].price);printf("---------------------------------------------\n");}}i++;}while(books[i].num!=0);printf("按任意键返回主菜单!");getchar( );}/*给定编号,作者,出版社查找信息模块*/void find_by_num(BOOKS books[],int sum){ int i,find_num;printf("\n 请输入要查找的图书编号:");scanf("%d",&find_num);for(i=0;i<sum;i++)if(books[i].num==find_num){printf("这是您所查找到的图书:\n");printf("图书编号----图书名称----作者---- 出版社---图书价格\n");printf("------------------------------------------\n");printf("%4d %10s %10s %10s %8d \n",books[i].num,books[i].name,books[i].zuozhe,books[i].chubanshe,books[i].price);printf("---------------------------------------------\n");break;}else{printf("\n 未找到要查找的图书信息,按任意键返回!");getchar();}}void find_by_zuozhe(BOOKS books[],int sum){int i;char find_zuozhe[20];printf("\n 请输入要查找的作者姓名:");scanf("%s",find_zuozhe);for(i=0;i<sum-1;i++)if(strcmp(books[i].zuozhe,find_zuozhe)==0){printf("这是您所查找到属于该作者的图书:");printf("图书编号--图书名称--作者-- 出版社--图书价格\n");printf("------------------------------------------\n");printf("%8d %10s %10s %10s %8d \n",books[i].num,books[i].name,books[i].zuozhe, books[i].chubanshe,books[i].price);printf("---------------------------------------------\n");}else{printf("\n 未找到要查找的图书信息,按任意键返回!");}}void find_by_chubanshe(BOOKS books[],int sum){int i;char find_chubanshe[20];printf("\n 请输入要查找的出版社名称:");scanf("%s",find_chubanshe);for(i=0;i<sum;i++)if(strcmp(books[i].chubanshe,find_chubanshe)==0){printf("这是您所查找到属于该出版社的图书:");printf("图书编号--图书名称--作者-- 出版社--图书价格\n");printf("------------------------------------------\n");printf("%8d %10s %10s %10s %8d \n",books[i].num,books[i].name,books[i].zuozhe, books[i].chubanshe,books[i].price);printf("---------------------------------------------\n");}else{printf("\n 未找到要查找的图书信息,按任意键返回!");getchar();}}void find(BOOKS books[],int sum){ int choice;printf("\n 您要按照哪种方式查找? \n");printf("\n 1.按图书编号查找\n");printf("\n 2.按图书作者查找\n");printf("\n 3.按出版社查找\n");printf("\n 0. 退出\n");printf("\n 请选择(0-3): \n");scanf("%d",&choice);switch(choice){ case 1: find_by_num(books,sum); break;case 2: find_by_zuozhe(books,sum); break;case 3: find_by_chubanshe(books,sum); break;case 0: break;}}/*删除信息模块*/void del(BOOKS books[]){ int i,sum;int del_num;printf("\n 请输入要删除的图书编号:");scanf("%d",&del_num);for(i=0;i<sum;i++)if(books[i].num==del_num){printf("这是您所要删除图书信息:\n");printf("图书编号----图书名称----作者---- 出版社----图书价格\n");printf("----------------------------------------------------\n");printf("%8d %10s %10s %10s %8d \n",books[i].num,books[i].name,books[i].zuozhe, books[i].chubanshe,books[i].price);printf("-----------------------------------------------------\n");printf("您确认要删除吗?");printf("按任意键继续!");getchar();printf("已成功删除图书信息!");}}/*信息修改模块*/void modify(BOOKS books[],int sum){int i=0,choice,modify_num,flag;do{printf("请输入要修改的图书编号:");scanf("%d",&modify_num);for(i=0;i<sum;i++)if(books[i].num==modify_num){ printf("\n\n --图书信息-- \n\n");printf("图书编号----图书名称----作者---- 出版社----图书价格\n");printf("------------------------------------------\n");printf("%8d %10s %10s %10s %8d \n",books[i].num,books[i].name,books[i].zuozhe, books[i].chubanshe,books[i].price);printf("---------------------------------------------\n");printf("\n 您要修改哪一项?\n");printf("\n 1.图书名称\n");printf("\n 2.作者\n");printf("\n 3.出版社\n");printf("\n 4.图书价格\n");printf("\n 请选择(1-4):\n");scanf("%d",&choice);switch(choice){ case 1: printf("\n 请输入修改后的图书名称:");scanf("%s",books[i].name); break;case 2: printf("\n 请输入修改后的作者姓名:");scanf("%s",books[i].zuozhe); break;case 3: printf("\n 请输入修改后的出版社名称:");scanf("%s",books[i].chubanshe); break;case 4: printf("\n 请输入修改后的图书价格:");scanf("%d",&books[i].price); break;}printf("\n\n --图书信息-- \n\n");printf("图书编号----图书名称----作者---- 出版社----图书价格\n"); printf("--------------------------------------------\n");printf("%8d %10s %10s %10s %8d \n",books[i].num,books[i].name, books[i].zuozhe, books[i].chubanshe,books[i].price); printf("---------------------------------------------\n");break;}else{printf("\n 该书不存在!");getchar();}printf("\n 修改成功!\n");printf("您要继续修改吗?(Y/N)");if (choice=='Y'||choice=='y'){ flag=1;printf("\n 继续!\n");}else flag=0;}while( flag==1);printf("\n 按任意键返回主菜单!");getchar();}/*图书信息统计模块*/void count(BOOKS books[],int sum) /*统计某个出版社的图书数*/ { int i;char count_chubanshe[20];int n=0;printf("请输入一个出版社名称:\n");scanf("%s",count_chubanshe);for(i=0;i<sum;i++){if( strcmp(books[i].chubanshe,count_chubanshe)==0)n++;break;}printf("统计出属于该出版社一共有%d本书\n",n);}/*排序模块*/void sort(BOOKS books[],int sum) /*按图书编号排序模块*/{BOOKS t;int i,j;printf("\n --图书信息-- \n");printf("\n 排名图书编号图书名称作者出版社图书价格\n");for(i=1;i<sum-1;i++)for(j=i+1;j<sum;j++)if(books[j].num>books[i].num){t=books[j];books[j]=books[i];books[i]=t;}for(i=0;i<sum;i++){ printf("%2d %8d %12s %12s %12s %6d \n",i+1,books[i].num,books[i].name,books[i].zuozhe, books[i].chubanshe,books[i].price);}}void main(){ BOOKS books[M];int choice,sum;sum=read_file(books);if (sum==0){printf("请录入基本图书信息!*******\n");sum=input(books);}do{printf("\n\n\n *******图书馆理系统******* \n\n");printf(" 1.修改图书信息\n\n");printf(" 2.删除图书信息\n\n");printf(" 3.查找图书信息\n\n");printf(" 4.统计图书信息\n\n");printf(" 5.图书排行信息\n\n");printf(" 0.退出系统\n\n");printf(" 请选择\n\n");scanf("%d",&choice);switch(choice){ case 1 : modify(books,sum); break;case 2 : del(books); break;case 3 : find(books,sum); break;case 4 : count(books,sum); break;case 5 : sort(books,sum); break;case 0 : break;}}while(choice!=0);save_file(books,sum);}运行结果:。

原创c语言图书馆管理系统源代码

原创c语言图书馆管理系统源代码

原创C语言图书馆管理系统源代码介绍图书馆作为一个重要的知识储备和学习场所,必须进行有效的管理和组织。

使用C语言编写的图书馆管理系统可以帮助图书馆实现自动化的借阅、归还和管理功能。

本文将介绍一个原创的C语言图书馆管理系统的源代码。

功能概述这个图书馆管理系统具有以下核心功能: - 图书管理:包括添加图书、删除图书、查询图书等操作。

- 借阅管理:可以进行借阅操作,记录借阅者和借阅时间。

- 归还管理:可以进行归还操作,并更新图书的可借状态。

- 用户管理:管理借阅者的信息,包括添加用户、删除用户、查询用户等操作。

数据结构设计该图书馆管理系统使用了以下几种数据结构: 1. 图书(Book)结构体:包含图书的ID、书名、作者、可借状态等字段。

2. 用户(User)结构体:包含用户的ID、姓名、地址等字段。

3. 借阅记录(BorrowRecord)结构体:包含借阅者ID、图书ID、借阅时间等字段。

系统流程整个系统的流程可以分为以下几个步骤: 1. 用户打开系统,进入主菜单。

2. 用户选择不同的功能选项(如图书管理、借阅管理、用户管理等)。

3. 根据用户选择的功能,进入相应的功能界面。

4. 用户可以根据提示,输入相应的信息进行图书管理、借阅管理或用户管理操作。

5. 用户完成操作后,可以选择返回主菜单或退出系统。

代码实现以下是一个简化版的C语言图书馆管理系统的源代码:```c #include <stdio.h>// 定义结构体 struct Book { int id; char name[50]; char author[50]; int isAvailable; };struct User { int id; char name[50]; char address[100]; };struct BorrowRecord { int userId; int bookId; char borrowDate[20]; };// 函数声明 void addBook(); void deleteBook(); void searchBook(); void borrowBook(); void returnBook(); void addUser(); void deleteUser(); void searchUser();int main() { int choice;do {// 显示主菜单printf(\。

c语言最全的图书管理系统程序

c语言最全的图书管理系统程序

题目名称:图书管理系统算法分析:1用结构体标出信息系统的成员:图书书号,书名,作者姓名,出版社,价格2 利用c语言的文件知识将系统的信息存放在c盘下的“project choose.txt”的文件夹下3 定义各个子函数(1)定义输入信息函数,将图书信息按一定格式用scanf函数输入(统计M本的信息);(2)定义输出函数,每3个表一页直到最后一个;(3)定义信息查询函数。

a,定义按书号查询函数,如果输入的数字等于图书编号则输出要查询的信息;b,定义按姓名查询函数,如果输入的姓名字符串等于其中一个作者姓名字符串则输出信息;c,定义按出版社名称查找函数,如果输入的字符串等于其中出版社名称,则输出该信息; e,定义查找总函数,输入一个数选择查找方式,1-4分别对应调用abc四个函数.(4)定义删除信息函数.输入的数字作为要删除的图书编号,输出要删除的图书信息后选择是否删除,删除后将第g+1个的信息赋给第g个,输出删除后的信息表。

(5)定义信息修改函数。

输入的数字等于要修改的图书编号,输出要修改的图书信息后选择是否修改,用switch,case语句选择要修改的项目,输入n,y决定是否继续直到不继续修改,输出图书信息.(6)定义信息统计函数.输入一个字符串作为出版社,比较M本书的出版社字符串是否等于输入的字符串,统计相等的个数n输出.(7)定义图书编号排序函数。

用冒泡排序法将M本的书的图书编号按从大到小的顺序排列后输出.4 定义主函数。

调用读取文件函数,输入数字1—5分别对应调用修改图书信息函数,删除图书信息函数,查找图书信息函数,统计图书信息函数,图书排行信息函数,0表示退出系统.最后调用保存文件函数.结束程序。

流程设计:代码设计:#include〈stdio。

h>#include〈stdlib.h〉#include<string。

h>#define M 2#define PAGE 3/*图书结构体类型*/typedef struct{int num;/*图书号*/char name[20]; /*书名*/char zuozhe[20];/*作者姓名*/char chubanshe[20]; /*出版社*/int price;/*价格*/}BOOKS;int read_file(BOOKS books[]){ FILE *fp;int i=0;if((fp=fopen(”project choose.txt”,"rt”))==NULL){printf(”\n\n*****库存文件不存在!请创建”);return 0;}while(feof(fp)!=1){fread(&books[i],sizeof(BOOKS),1,fp);if(books[i]。

C语言图书管理系统代码

C语言图书管理系统代码

#include<stdio.h>#include<stdlib.h>#include<string.h>struct book{int num;char bname[50];char wname[20];char press[50];char sort[50];int time;float price;struct book *next;};struct book *creatbook(); //创建链表struct book *addbook(struct book *head); //添加图书int yanzheng(struct book *head,int m); //验证新添加的图书编码是否已存在void deletebook(struct book *head); //删除图书void fprint(struct book *head); //将链表写入文件struct book *load(); //从文件中读取信息并建成链表void print_book(struct book *head); //将链表信息输出void chaxun(struct book *head); //查询图书信息void num_chaxun(struct book *head); //按图书编号查询图书void wname_chaxun(struct book *head); //按作者名查询图书void sort_chaxun(struct book *head); //按类别查询图书void time_chaxun(struct book *head); //按出版时间查询图书void bname_chaxun(struct book *head); //按图书名查询图书void xiugai(struct book *head); //修改图书信息void paixu(struct book *head); //对图书进行排序void num_paixu(struct book *head); //按图书编号排序void time_paixu(struct book *head); //按图书出版时间排序void price_paixu(struct book *head); //按图书价格排序void bname_paixu(struct book *head); //按图书名排序void wname_paixu(struct book *head); //按作者名排序int main(){int choice,n,x,y=1,c,c1=1234;char a,d,b[10],b1[10]="yjk";struct book *head=NULL;while(y){system("cls");printf("\n\n\n\n\n\n\n");printf(" ********** 欢迎光临**********\n\n");printf(" ********************** 图书信息管理系统************************\n\n\n");printf("\n\n");printf(" ============1-用户登录===========\n");printf(" ============0-退出系统===========\n");printf(" 请输入您的选择:");scanf("%d",&n);printf("\n");getchar();switch(n){case 0:y=0;break;case 1:printf(" 请输入您的用户名:");gets(b);printf("\n");printf(" 请输入您的密码:");scanf("%d",&c);printf("\n");if(strcmp(b,b1)!=0||c!=c1){printf(" 验证失败,请重新输入!\n");scanf("%c",&d);getchar();system("cls");}else{printf(" 验证通过!请按Enter键进入!\n");scanf("%c",&d);getchar();x=1;while(x){system("cls");printf(" ------------------\n");printf(" *图书信息管理系统*\n");printf(" ------------------\n\n");printf("**********************************************\n\n");printf("**********************************************\n\n");printf(" || 1-添加图书2-删除图书||\n\n");printf(" || 3-图书列表4-图书排序||\n\n");printf(" || 5-查询图书6-修改图书||\n\n");printf(" || 7-录入数据0-退出系统||\n\n");printf("**********************************************\n\n");printf("**********************************************\n\n");printf("请输入所选择的序号:");scanf("%d",&choice);getchar();system("cls");switch(choice){case 0:x=0;break;case 1:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{head=addbook(head);printf("添加成功!\n");printf("是否将新信息保存到文件?(y/n)\n");scanf("%c",&a);getchar();switch(a){case 'n':break;case 'y':fprint(head);printf("保存成功!\n");getchar();break;}break;}case 2:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{deletebook(head);getchar();break;}break;case 3:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{print_book(head);getchar();break;}case 4:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{paixu(head);getchar();}break;case 5:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{chaxun(head);getchar();}break;case 6:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{xiugai(head);getchar();break;}break;case 7:printf("注意:输入图书编码为0时结束!\n");head=creatbook();printf("是否将输入的信息保存到文件以覆盖文件中已存在的信息?(y/n)\n");getchar();scanf("%c",&a);getchar();switch(a){case 'n':break;case 'y':fprint(head);printf("保存成功!\n");getchar();break;}break;default:printf("您的输入有误,请重新输入!\n");getchar();break;}}}break;default:printf(" 您的输入有误! 请重新输入!\n");getchar();break;}}}//录入数据并形成链表struct book *creatbook(){struct book *head,*tail,*p;int num,time,n;char bname[50],wname[20],press[50],sort[50];float price;int size=sizeof(struct book);head=tail=NULL;printf("请输入图书编号:");scanf("%d",&num);printf("请输入图书名:");scanf("%s",bname);getchar();printf("请输入作者名:");scanf("%s",wname);getchar();printf("请输入出版社:");scanf("%s",press);getchar();printf("请输入类别:");scanf("%s",sort);getchar();printf("请输入出版时间:");scanf("%d",&time);getchar();printf("请输入价格:");scanf("%f",&price);getchar();while(1){p=(struct book *)malloc(size);p->num=num;strcpy(p->bname,bname);strcpy(p->wname,wname);strcpy(p->press,press);strcpy(p->sort,sort);p->time=time;p->price=price;p->next=NULL;if(head==NULL)head=p;elsetail->next=p;tail=p;do{printf("请输入图书编号:");scanf("%d",&num);n=yanzheng(head,num);if(n==0)break;elseprintf("您输入的编号已存在,请重新输入!\n");}while(1);if(num==0)break;else{printf("请输入图书名:");scanf("%s",bname);getchar();printf("请输入作者名:");scanf("%s",wname);getchar();printf("请输入出版社:");scanf("%s",press);getchar();printf("请输入类别:");scanf("%s",sort);getchar();printf("请输入出版时间:");scanf("%d",&time);getchar();printf("请输入价格:");scanf("%f",&price);getchar();}}return head;}//插入结点,并且插入后仍按一定顺序struct book *addbook(struct book *head){struct book *ptr,*p1,*p2,*p;char bname[50],wname[20],press[50],sort[50];int size=sizeof(struct book);int num,time,n=1;float price;do{printf("请输入图书编号:");scanf("%d",&num);n=yanzheng(head,num);if(n==0)break;elseprintf("您输入的编号已存在,请重新输入!\n");}while(1);printf("请输入图书名:");scanf("%s",bname);getchar();printf("请输入作者名:");scanf("%s",wname);getchar();printf("请输入出版社:");scanf("%s",press);getchar();printf("请输入类别:");scanf("%s",sort);getchar();printf("请输入出版时间:");scanf("%d",&time);getchar();printf("请输入价格:");scanf("%f",&price);getchar();p=(struct book *)malloc(size);p->num=num;strcpy(p->bname,bname);strcpy(p->wname,wname);strcpy(p->press,press);strcpy(p->sort,sort);p->time=time;p->price=price;p2=head;ptr=p;while((ptr->num>p2->num)&&(p2->next!=NULL)){ p1=p2;p2=p2->next;}if(ptr->num<=p2->num){if(head==p2)head=ptr;else{p1->next=ptr;p->next=p2;}}else{p2->next=ptr;p->next=NULL;}return head;}//验证添加的图书编号是否已存在int yanzheng(struct book *head,int m){struct book *p;p=head;while(p!=NULL){if(p->num==m)break;p=p->next;}if(p==NULL)return 0;elsereturn 1;}//将新链表写入文件中void fprint(struct book *head){FILE *fp;char ch='1';struct book *p1;if((fp=fopen("f1.txt","w"))==NULL){printf("File open error!\n");exit(0);}fputc(ch,fp);for(p1=head;p1;p1=p1->next){fprintf(fp,"%d %s %s %s %s %d %f\n",p1->num,p1->bname,p1->wname,p1->press,p1->sort ,p1->time,p1->price);}fclose(fp);}//从文件中读取图书信息struct book *load(){FILE *fp;char ch;struct book *head,*tail,*p1;head=tail=NULL;if((fp=fopen("f1.txt","r"))==NULL){printf("File open error!\n");exit(0);}ch=fgetc(fp);if(ch=='1'){while(!feof(fp)){p1=(struct book *)malloc(sizeof(struct book));fscanf(fp,"%d%s%s%s%s%d%f\n",&p1->num,p1->bname,p1->wname,p1->press,p1->sort,&p1-> time,&p1->price);if(head==NULL)head=p1;elsetail->next=p1;tail=p1;}tail->next=NULL;fclose(fp);return head;}elsereturn NULL;}//将整个链表的信息输出void print_book(struct book *head){struct book *ptr;if(head==NULL){printf("\n没有信息!\n");return;}printf(" 图书信息列表如下\n");printf("==========================================================\n");printf(" 编号图书名作者名出版社类别出版时间价格\n");for(ptr=head;ptr;ptr=ptr->next)printf(" %d %s %s %s %s %d %.2f\n",ptr->num,ptr->bname,ptr->wname,ptr->press,ptr->sort,ptr->time,ptr->price);printf("==========================================================\n");}//删除图书信息void deletebook(struct book *head){int a;char b,ch='1';struct book *p1,*p2;FILE *fp;printf("请输入要删除的图书编号:");scanf("%d",&a);p1=head;if(p1->num==a&&p1->next==NULL){ //对于文件中只有一组数据printf("是否清空文件!(y/n)\n");getchar();scanf("%c",&b);getchar();switch(b){case 'n':break;case 'y':if((fp=fopen("f1.txt","w"))==NULL){printf("File open error!\n");exit(0);}fclose(fp);printf("文件已清空!\n");}}else{while(p1->num!=a&&p1->next!=NULL){p2=p1;p1=p1->next;}if(p1->next==NULL){if(p1->num==a){p2->next=NULL;printf("是否确定从文件中彻底删除该图书?(y/n)\n");getchar();scanf("%c",&b);switch(b){case 'n':break;case 'y':fprint(head);printf("删除成功!\n");getchar();break;}}else{printf("没有找到要删除的数据!\n");getchar();}}else if(p1==head){head=p1->next;printf("是否确定从文件中彻底删除该图书?(y/n)\n");getchar();scanf("%c",&b);switch(b){case 'n':break;case 'y':fprint(head);printf("删除成功!\n");getchar();break;}}else{p2->next=p1->next;printf("是否确定从文件中彻底删除该图书?(y/n)\n");getchar();scanf("%c",&b);switch(b){case 'n':break;case 'y':fprint(head);printf("删除成功!\n");getchar();break;}}}}//图书查询void chaxun(struct book *head){int a;printf("==========================================================\n");printf(" ** 1-按图书编号查询2-按图书名查询**\n");printf(" ** 3-按图书类别查询4-按作者名查询**\n");printf(" ** 5-按出版时间查询0-退出查询**\n");printf("==========================================================\n");printf("请输入所选择的编号:");scanf("%d",&a);getchar();switch(a){case 0:break;case 1:num_chaxun(head);break;case 2:bname_chaxun(head);break;case 3:sort_chaxun(head);break;case 4:wname_chaxun(head);break;case 5:time_chaxun(head);break;default:printf("您的输入有误!\n");break;}}//按编号查询图书信息void num_chaxun(struct book *head){int a;struct book *p;printf("请选择您要查询的图书编号:");scanf("%d",&a);getchar();p=head;while(p!=NULL){if(p->num==a)break;p=p->next;}if(p==NULL){printf("没有找到该编号的图书!\n");}else{printf(" 你所查询的图书信息如下\n");printf("====================================================================== ===\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");printf("** %d %s %s %s %s %d %.2f **\n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);printf("====================================================================== ===\n");}}//按图书名查询图书信息void bname_chaxun(struct book *head){char a[50];int flag=0;struct book *p;printf("请选择您要查询的图书名:");gets(a);p=head;while(p!=NULL){if(strcmp(p->bname,a)==0){flag=1;break;}p=p->next;}if(flag==0){printf("没有找到该图书名的图书!\n");}else{printf(" 你所查询的图书信息如下\n");printf("====================================================================== ===\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");while(p!=NULL){if(strcmp(p->bname,a)==0){printf("** %d %s %s %s %s %d %.2f **\n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);}p=p->next;}printf("====================================================================== ===\n");}}//按作者名查询图书信息void wname_chaxun(struct book *head){char a[50];int flag=0;struct book *p;printf("请选择您要查询的图书作者名:");gets(a);p=head;while(p!=NULL){if(strcmp(p->wname,a)==0){flag=1;break;}p=p->next;}if(flag==0){printf("没有找到该图书名的图书!\n");}else{printf(" 你所查询的图书信息如下\n");printf("====================================================================== ===\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");while(p!=NULL){if(strcmp(p->wname,a)==0){printf("** %d %s %s %s %s %d %.2f **\n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);flag=1;}p=p->next;}printf("====================================================================== ===\n");}}//按图书类别查询图书信息void sort_chaxun(struct book *head){char a[50];int flag=0;struct book *p;printf("请选择您要查询的图书类别:");gets(a);p=head;while(p!=NULL){if(strcmp(p->sort,a)==0){flag=1;break;}p=p->next;}if(flag==0){printf("没有找到该图书名的图书!\n");}else{printf(" 你所查询的图书信息如下\n");printf("====================================================================== ===\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");while(p!=NULL){if(strcmp(p->sort,a)==0){printf("** %d %s %s %s %s %d %.2f **\n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);flag=1;}p=p->next;}printf("====================================================================== ===\n");}}//按图书出版时间查询图书信息void time_chaxun(struct book *head){int a,flag=0;struct book *p;printf("请选择您要查询的图书出版时间:");scanf("%d",&a);getchar();p=head;while(p!=NULL){if(p->time==a){flag=1;break;}p=p->next;}if(flag==0){printf("没有找到该图书名的图书!\n");}else{printf(" 你所查询的图书信息如下\n");printf("====================================================================== ===\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");while(p!=NULL){if(p->time==a){printf("** %d %s %s %s %s %d %.2f **\n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);flag=1;}p=p->next;}printf("====================================================================== ===\n");}}//修改图书信息void xiugai(struct book *head){int a,b;char c;struct book *p;printf("请输入要修改的图书编号:");scanf("%d",&a);p=head;while(p!=NULL){if(p->num==a)break;p=p->next;}if(p==NULL){printf("没有找到该编号的图书!\n");getchar();}else{printf("============================================================\n");printf(" ** 1-编号2-图书名3-作者名**\n");printf(" ** 4-出版社5-类别6-出版时间**\n");printf(" ** 7-价格8-修改全部0-放弃修改**\n");printf("============================================================\n");printf("请选择你要修改的信息编号:");scanf("%d",&b);getchar();switch(b){case 1:printf("请输入新编号:");scanf("%d",&p->num);printf("修改成功!\n");getchar();break;case 2:printf("请输入新图书名:");gets(p->bname);printf("修改成功!\n");break;case 3:printf("请输入新作者名:");gets(p->wname);printf("修改成功!\n");break;case 4:printf("请输入新出版社:");gets(p->press);printf("修改成功!\n");break;case 5:printf("请输入新类别:");gets(p->sort);printf("修改成功!\n");break;case 6:printf("请输入新出版时间:");scanf("%d",&p->time);printf("修改成功!\n");getchar();break;case 7:printf("请输入新价格:");scanf("%f",&p->price);printf("修改成功!\n");getchar();break;case 8:printf("请输入新图书编号:");scanf("%d",&p->num);printf("请输入新图书名:");scanf("%s",p->bname);getchar();printf("请输入新作者名:");scanf("%s",p->wname);getchar();printf("请输入新出版社:");scanf("%s",p->press);getchar();printf("请输入新类别:");scanf("%s",p->sort);getchar();printf("请输入新出版时间:");scanf("%d",&p->time);getchar();printf("请输入新价格:");scanf("%f",&p->price);getchar();printf("修改成功!\n");getchar();break;case 0:break;default :printf("您的输入有误!\n");break;}printf("是否将修改后的信息保存到文件中?(y/n)\n");scanf("%c",&c);getchar();switch(c){case 'n':break;case 'y':fprint(head);printf("保存成功!\n");getchar();break;}}}//图书排序void paixu(struct book *head){int a;printf("================================================================\n");printf(" ** 1-按图书编号排序2-按出版时间排序**\n");printf(" ** 3-按图书价格排序4-按图书名排序**\n");printf(" ** 5-按作者名排序0-取消排序操作**\n");printf("================================================================\n");printf("请输入您选择的编号:");scanf("%d",&a);getchar();switch(a){case 0:break;case 1:num_paixu(head);break;time_paixu(head);break;case 3:price_paixu(head);break;case 4:bname_paixu(head);break;case 5:wname_paixu(head);break;default:printf("您的输入有误!\n");break;}}//按图书编号排序void num_paixu(struct book *head){struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n++;for(i=0;i<n;i++){a[i]=p1;p1=p1->next;}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++){if(a[i]->num<a[index]->num)index=i;}temp=a[index];a[index]=a[k];a[k]=temp;}printf("排序成功!\n");printf("是否显示排序结果?(y/n)\n");scanf("%s",&b);switch(b){case 'n':break;case 'y':printf("================================================================\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");for(i=0;i<n;i++){printf("** %d %s %s %s %s %d %.2f **\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);}printf("================================================================\n");break;default:printf("您的输入有误!\n");break;}}//按出版时间排序void time_paixu(struct book *head){struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n++;for(i=0;i<n;i++){a[i]=p1;p1=p1->next;}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++){if(a[i]->time<a[index]->time)index=i;}temp=a[index];a[index]=a[k];a[k]=temp;}printf("排序成功!\n");printf("是否显示排序结果?(y/n)\n");scanf("%s",&b);getchar();switch(b){case 'n':break;case 'y':printf("===============================================================\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");for(i=0;i<n;i++){printf("** %d %s %s %s %s %d %.2f **\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);}printf("===============================================================\n");break;default:printf("您的输入有误!\n");break;}}//按图书价格排序void price_paixu(struct book *head){struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n++;for(i=0;i<n;i++){a[i]=p1;p1=p1->next;}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++){if(a[i]->price<a[index]->price)index=i;}temp=a[index];a[index]=a[k];a[k]=temp;}printf("排序成功!\n");printf("是否显示排序结果?(y/n)\n");scanf("%s",&b);getchar();switch(b){case 'n':break;case 'y':printf("===============================================================\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");for(i=0;i<n;i++){printf("** %d %s %s %s %s %d %.2f **\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);}printf("===============================================================\n");break;default:printf("您的输入有误!\n");break;}}//按图书名排序void bname_paixu(struct book *head){struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n++;for(i=0;i<n;i++){a[i]=p1;p1=p1->next;}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++){if(strcmp(a[index]->bname,a[i]->bname)>0)index=i;}temp=a[index];a[index]=a[k];a[k]=temp;}printf("排序成功!\n");printf("是否显示排序结果?(y/n)\n");scanf("%s",&b);getchar();switch(b){case 'n':break;case 'y':printf("===============================================================\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");for(i=0;i<n;i++){printf("** %d %s %s %s %s %d %.2f **\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);}printf("===============================================================\n");break;default:printf("您的输入有误!\n");break;}}//按作者名排序void wname_paixu(struct book *head){struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n++;for(i=0;i<n;i++){a[i]=p1;p1=p1->next;}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++){if(strcmp(a[index]->wname,a[i]->wname)>0)index=i;}temp=a[index];a[index]=a[k];a[k]=temp;}printf("排序成功!\n");printf("是否显示排序结果?(y/n)\n");scanf("%s",&b);getchar();switch(b){case 'n':break;case 'y':printf("===============================================================\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");for(i=0;i<n;i++){printf("** %d %s %s %s %s %d %.2f **\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);}printf("===============================================================\n");break;default:printf("您的输入有误!\n");break;}}。

pC语言编程题查找书籍

pC语言编程题查找书籍

Pta编程题——查找书籍给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。

输入格式:输入第一行给出正整数n(<<10),随后给出n本书的信息。

每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。

题目保证没有同样价格的书。

输出格式:在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。

价格保留2位小数。

#include <stdio.h>#include <stdlib.h>struct book{char name[30];double price;};int order(struct book b[],int n,double[]);int main(){struct book b[9];int i,n=0;double x[9];scanf("%d",&n);for(i=0;i<n;i++){//scanf("%[^\n]", b[i].name);getchar();gets(b[i].name);scanf("%lf",&b[i].price);}order(b,n,x);printf("%.2f, %s\n",b[(int)x[0]].price,b[(int)x[0]].name);printf("%.2f, %s\n",b[(int)x[n-1]].price,b[(int)x[n-1]].name);return 0;}int order(struct book b[],int n,double x[]){int i,j,flag,tp;for(i=0;i<n;i++){x[i]=b[i].price;}flag=1;while(flag==1){flag=0;for(i=0;i<n-1;i++){if(x[i+1]>x[i]){tp=x[i+1];x[i+1]=x[i];x[i]=tp;flag=1;}}}for(i=0;i<n;i++){for(j=0;j<n;j++){if(x[i]==b[j].price){x[i]=j;break;}}}}。

c语言图书信息管理系统c语言

c语言图书信息管理系统c语言

图书管理系统目录一、问题描述这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。

通过这些信息使之提供以下功能:(1)图书信息创建功能。

其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。

(图书信息用文件保存)。

(2)图书信息查看功能。

用来查看各项图书信息。

(3)图书信息查找功能。

通过已知信息来查找想要的图书。

(4)图书信息的删除。

可以删除特定图书。

(5)图书信息的修改。

可以修改图书的各项信息。

(6)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能二、概要设计1 数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。

struct book{int num;//编号char name[20];//书名char author[20];//作者char publisher[20];//出版社int price;//价格int store;//库存};//图书信息结构体2 模块划分本系统主要有创建新的图书、查找图书、删除图书、修改图书、查看图书和图书排序几个基本功能。

void setup(struct book bo[]);//新建图书void search(struct book bo[]);//查找图书void modify(struct book bo[]);//查看图书void del(struct book bo);//删除图书void allbook(struct book bo[]);显示所有图书3 程序流程图否开始菜单新建图书修改信息查询图书删除图书所有图书退出是结束三、详细设计1 主函数int main()//主{struct book bo[100];char c;while(1){system("color 1A");printf("\n");printf("\n\t\t\t >>>欢迎进入图书管理系统<<<\n\n");printf("===================================== ===========================================\ n\n");printf("\t\t\t\t 1 录入新书\n\t\t\t\t 2 查询图书\n");printf("\t\t\t\t 3 修改信息\n\t\t\t\t 4 删除图书\n");printf("\t\t\t\t 5 所有图书\n");printf("\t\t\t\t 0 退出系统\n\n");printf("===================================== ===========================================\ n");printf("请选择:");c=getchar();switch(c){case'1':{setup(bo); getchar();break;}case'2':{search(bo);getchar();break;}case'3':{modify(bo);getchar();break;}case'4':{del(bo);getchar();break;}case'5':{allbook(bo);getchar;break;}case'0':{printf("\n感谢使用本系统");return 0;break;}default:{printf("\n输入有误,请重新输入:" );c=getchar();} }}}2 新建图书void setup(struct book bo[])打开文件或者新建一个文件,键盘输入新建的图书信息,然后把数据全部保存在数组bo数组中,最后存入文件。

C语言-图书管理系统

C语言-图书管理系统

图书借阅管理系统1.课程设计的目的我这次做的系统是图书借阅管理系统,主要目的是利用本系统来管理图书的借阅问题,以实现图书借阅的快捷化、规范化、自动化来提高工作效率。

系统以实用性,通用、开放和安全的原则。

使用数据库开发软件开发制作,实现了图书借阅信息的管理,借阅图书的信息自动化添加,借阅者的个人基本信息,借阅的基本信息,对各种图书的分类管理以及各种新书的添加等一些繁琐事项。

更好的管理好图书的借阅问题。

大大的减少了人工的工作量,比以往很大程度上提高了工作人员的工作效率。

使之成为图书馆的一个平台,成为真正的现代化科技。

为了充分利用学院现有的计算机硬件资源,做好图书借阅管理工作,提高办事效率, 实现全面的、相对集中的办公自动化,开发本系统就成了当务之急,其目的主要为了彻底改变这种繁杂的管理模式,实现全面的、相对集中的、智能化的信息综合管理,为图书馆的管理工作带来方便。

我想借本次课程设计之际,开发一个适用于通用大规模图书馆的管理系统,采用现学习的C++6. 0开发工具开发出来的基于Windows系列的图书借阅管理系统。

该系统面向所有的在校学生,实现对学生个人的借书、学生的基本信息情况等的计算机管理。

系统支持工作人员对学生图书借阅信息、图书馆新书的添加、旧书的信息修改、删除等操作,确保了数据库的安全性快捷性和一致性。

2.设计方案论证2.1主界面设计思路本次设计这个系统利用于图书馆的图书借阅管理,该系统相比以往人工的记录方式减少了很多不比要得麻烦,大大的提高了图书馆工作人员的工作效率。

这次系统的开发制作主要包括以下几个方面。

书籍统计可以查询图书的名称、作者、序号等信息,以及是否借出去了。

书籍管理可以把新书添加到系统当中,修改书籍的详细资料等。

注册会员功能,借阅书籍的学生必须注册会员才可以借书,通过注册会员来添加该学生的基本信息。

通过系统来办理借书手续以记录该学生的借书信息。

学生借书模块能够查询借阅学生的信息和该学生的借书的信息。

图书管理系统c语言

图书管理系统c语言

图书管理系统C语言1. 简介图书管理系统是一种用于管理图书馆藏书和借阅记录的软件系统。

它通常包括图书的录入、借阅、归还、查询等功能,能够提高图书馆的工作效率和服务质量。

本文将使用C语言编写一个简单的图书管理系统,实现基本的图书信息录入、修改、查询、借阅、归还等功能。

2. 功能实现2.1 数据结构我们首先需要定义合适的数据结构来存储图书信息和借阅记录。

以下是一个简单的数据结构示例:struct Book {int id; // 图书编号char title[100]; // 图书标题char author[50]; // 图书作者char category[50]; // 图书分类int isBorrowed; // 图书是否已借阅,0表示未借阅,1表示已借阅char borrowerName[100]; // 借阅者姓名// 可根据需求扩展其他字段};struct BorrowRecord {int bookId; // 图书编号char borrowerName[100]; // 借阅者姓名char borrowDate[20]; // 借阅日期char returnDate[20]; // 归还日期// 可根据需求扩展其他字段};2.2 图书信息录入和修改我们可以通过实现相应的函数来实现图书信息的录入和修改。

以下是一个简单的示例:void addBook(struct Book *library, int *count) {// 输入图书信息,将其存入library数组中,同时更新count}void updateBook(struct Book *library, int count, int bookId) { // 根据图书编号bookId,更新library数组中对应图书的信息}2.3 图书查询我们可以根据图书的不同字段来实现不同的查询功能,比如根据图书标题、作者、分类等进行模糊查询,或根据图书编号进行精确查询。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

// algo4-5.cpp 根据algo4-4.cpp产生的文件,索引查询图书
#include"c1.h"
typedef int ElemType;
#include"c2-5.h"
#include"bo2-6.cpp"
#include"c4-2.h"
#include"bo4-2.cpp"
#define MaxBookNum 10 // 假设只对10本书建索引表
#define MaxKeyNum 25 // 索引表的最大容量(关键词的最大数) #define MaxLineLen 51 // 书目串(书名+书号)buf的最大长度
struct IdxTermType // 索引项类型
{
HString key; // 关键词(堆分配类型,c4-2.h)
LinkList bnolist; // 存放书号索引的链表(c2-5.h)
};
struct IdxListType // 索引表类型(有序表)
{
IdxTermType item[MaxKeyNum+1];
int last; // 关键词的个数
};
struct BookTermType // 书目项类型
{
char bookname[MaxLineLen]; // 书目串
int bookno; // 书号
};
struct BookListType // 书目表类型(有序表)
{
BookTermType item[MaxBookNum];
int last; // 书目的数量
};
int main()
{
FILE *f; // 任何时间最多打开一个文件
IdxListType idxlist; // 索引表
BookListType booklist; // 书目表
char buf[MaxLineLen+1]; // 当前书目串(包括'\0')
HString ch; // 索引字符串
int BookNo; // 书号变量
int i,k,l;
Link p;
InitString(ch); // 初始化HString类型的变量
f=fopen("BookIdx.txt","r"); // 打开书名关键词索引表文件
if(!f)
exit(OVERFLOW);
fscanf(f,"%d",&st); // 书名关键词个数
for(k=0;k<st;k++) // 把关键词文件的内容拷到idxlist中
{
fscanf(f,"%s",buf);
i=0;
while(buf[i])
buf[i++]=tolower(buf[i]); // 字母转为小写
InitString(idxlist.item[k].key);
StrAssign(idxlist.item[k].key,buf);
InitList(idxlist.item[k].bnolist); // 初始化书号链表 bo2-6.cpp
fscanf(f,"%d",&i);
for(l=0;l<i;l++)
{
fscanf(f,"%d",&BookNo);
if(!MakeNode(p,BookNo)) // 分配失败 bo2-6.cpp
exit(OVERFLOW);
p->next=NULL;
Append(idxlist.item[k].bnolist,p); // 插入新的书号索引 bo2-6.cpp
}
}
fclose(f);
f=fopen("BookInfo.txt","r"); // 打开书目文件
if(!f)
exit(FALSE);
i=0;
while(!feof(f)) // 把书目文件的内容拷到booklist中
{
fgets(buf,MaxLineLen,f);
booklist.item[i].bookno=(buf[0]-'0')*100+(buf[1]-'0')*10+(buf[2]-'0'); // 前三位为书号
strcpy(booklist.item[i].bookname,buf);
i++;
}
st=i;
printf("请输入书目的关键词(一个)");
scanf("%s",buf);
i=0;
while(buf[i])
buf[i++]=tolower(buf[i]); // 字母转为小写
StrAssign(ch,buf);
i=0;
do
{
k=StrCompare(ch,idxlist.item[i].key); // bo4-2.cpp
i++;
}while(k&&i<=st);
if(!k) // 索引表中有此关键词
{
p=idxlist.item[i-1].bnolist.head->next;
while(p)
{
l=0;
while(l<st&&p->data!=booklist.item[l].bookno) l++;
if(l<st)
printf("%s",booklist.item[l].bookname);
p=p->next;
}
}
else
printf("没找到\n");
}。

相关文档
最新文档