#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct node {//定义结构体存储图书信息
//成员列表
int isexsit;//数量
char name[20];//书名
int no;//编号
char author[20];//作者
float price;//价格
}book[5];//结构体数组
//创建函数
void creat()//信息录入五本书
{
printf("please input five books' isexsie,name,no,author and price\n");
for (int i = 0; i < 5; i++)
scanf("%d %s %d %s %f", &book[i].isexsit, book[i].name, &book[i].no, book[i].author, &book[i].price);
}
//查询函数
void search1(struct node book[])//按编号查询
{
int i;
int no1;//定义查询编号
printf("please input a number you want to search:");
scanf("%d", &no1);//输入查询编号
//查找
for ( i = 0; i < 5; i++)//遍历结构体数组
if (no1 == book[i].no)//编号相同
{//输出
printf("the book's message\n");
printf("数量\t书名\t编号\t作者\t价格\n");
printf("%d\t%s\t%d\t%s\t%.2f\n", book[i].isexsit, book[i].name, book[i].no, book[i].author, book[i].price);
break;
}
if (i == 5)
printf("no found\n");
}
void search2(struct node book[])//按书名查询
{
int i;
char name1[20];//定义查询书名
printf("please input a name you want to search:");
scanf("%s", name1);//输入查询书名
for (i = 0; i<5; i++)//遍历结构体数组
if (strcmp(name1, book[i].name) == 0)//书名相同
{//输出
printf("the books's message\n");
printf("数量\t书名\t编号\t作者\t价格\n");
printf("%d\t%s\t%d\t%s\t%.2f\n", book[i].isexsit, book[i].name, book[i].no, book[i].author, book[i].price);
break;
}
if (i == 5)
printf("no found\n");
}
void maxprice(struct node book[])
{
int max = 0;//记录下表,初始为0
for (int i = 0; i < 5; i++)//遍历结构体
{
if (book[i].price > book[max].price)//
max = i;//更换下标
}
//打印最贵的数
printf("最贵的书的信息\n");
printf("数量\t书名\t编号\t作者\t价格\n");
printf("%d\t%s\t%d\t%s\t%.2f\n", book[max].isexsit, book[max].name, book[max].no, book[max].author, book[max].price);
}
void mod(struct node book[])
{
int i;
int id;
int no1;//定义查询编号
int isexsit1;//数量
char name1[20];//书名
int no2;//编号
char author1[20];//作者
float price1;//价格
printf("please input a number you want to mod:");
scanf("%d", &no1);//输入修改编号
//查找
for (i = 0; i < 5; i++)//遍历结构体数组
if (no1 == book[i].no)//编号相同
{
printf("please input the book's isexsie,name,no,author and price again\n");
scanf("%d %s %d %s %f", &isexsit1, name1, &no2, author1, &price1);
//信息修改
book[i].isexsit = isexsit1;
strcpy(book[i].name, name1);
book[i].no = no2;
strcpy(book[i].author, author1);
book[i].price = price1;
}
}
//输出函数
void print()
{
printf("all books' message\n");
printf("数量\t书名\t编号\t作者\t价格\n");
for (int i = 0; i < 5; i++)
printf("%d\t%s\t%d\t%s\t%.2f\n", book[i].isexsit, book[i].name, book[i].no, book[i].author, book[i].price);
}
int main()
{
int n;//操作数
creat();//信息录入
print();//信息输出
printf("please choose\n1.number search\n2.name search\n3.output maxprice\n4.mod\n");
while (1)
{
scanf("%d", &n);//输入操作数
if (n == 1)//编号查找
search1(book);
else if (n == 2)//书名查找
search2(book);
else if (n == 3)//输出最贵的
maxprice(book);
else if (n == 4)//修改
{
mod(book);
printf("修改后图书信息为\n");
print();
}
else
printf("error input,please input again!\n");
}
}