#include
#include
#include
#define N 100
typedef struct Books {
char num[20];
char name[20];
char author[20];
int price;
int total;
char introduce[50];
}ppz;
ppz ppz[N];
void Addppz(ppz *p, int i);
void deleteppz(char ppzNum[]);
void judge(int jdg);
void paixu(ppz ppz[], int n);
void swapmessage(ppz *p, ppz *q);
void outputInfo(ppz *p);
void updatebook(char ppzNum[]);
void Searchbook(char ppzNum[]);
int i, tmp=0, flag = 1, menu;
int main() {
while (flag) {
do {
printf("------------------------------------------------------------------------------------------\n");
printf("| Hello |\n");
printf("| 请输入想要实现的功能选项 |\n");
printf("| 1、录入新书籍 |\n");
printf("| 2、删除指定书籍 |\n");
printf("| 3、价格从小到大排序书籍 |\n");
printf("| 4、修改指定书籍 |\n");
printf("| 5、查询指定书籍 |\n");
printf("| 6、退出 |\n");
printf("------------------------------------------------------------------------------------------\n");
printf("\n");
printf("请输入选项:");
scanf("%d", &menu);
} while (menu>6 || menu<1);
judge(menu);
}
getchar(); getchar(); getchar();
}
void judge(int jdg) {
int n;
char ppzNum[20];
switch (jdg) {
case 1:
printf("请输入要录入书籍的个数:");
scanf("%d", &n);
for (i = tmp; i<n + tmp; i++) {
Addppz(&ppz[i], i);
}
tmp = n + tmp;
break;
case 2:
printf("请输入要删除的书号:");
scanf("%s", ppzNum);
deleteppz(ppzNum);
break;
case 3:
paixu(ppz,tmp);
printf("排序后:\n");
for (i = 0; i < tmp; i++) {
outputInfo(&ppz[i]);
}
break;
case 4:
printf("请输入要修改的书号:");
scanf("%s", ppzNum);
updatebook(ppzNum);
break;
case 5:
printf("请输入要查询的书号:");
scanf("%s", ppzNum);
Searchbook(ppzNum);
break;
case 6:
flag = 0;
break;
}
}
void Addppz(ppz *p, int i) {
printf("请录入第%d本书:\n",i+1);
printf("请输入书号:");
scanf("%s",p->num);
printf("请输入书名:");
scanf("%s", p->name);
printf("请输入作者:");
scanf("%s", p->author);
printf("请输入单价:");
scanf("%d", &(p->price));
printf("请输入数量:");
scanf("%d", &(p->total));
printf("请输入简介:");
scanf("%s", p->introduce);
}
void deleteppz(char ppzNum[]) {
int index=0;
for (i = 0; i<tmp; i++) {
if (strcmp(ppzNum, ppz[i].num) == 0) {
for (int j = i; j<tmp - 1; j++) {
strcpy(ppz[j].num ,ppz[j + 1].num);
strcpy(ppz[j].name, ppz[j + 1].name);
strcpy(ppz[j].author, ppz[j + 1].author);
strcpy(ppz[j].introduce, ppz[j + 1].introduce);
ppz[j].price = ppz[j].price;
ppz[j].total = ppz[j].total;
tmp = tmp - 1;
index = 1;
break;
}
}
}
if (index) {
printf("已经删除该书籍信息\n");
}else {
printf("没有找到该书籍\n");
}
}
void paixu(ppz ppz[],int n) {
int i, j;
for (i = 0; i < n - 1;i++) {
for (j = 0; j < n - 1-i;j++) {
if (ppz[j].price > ppz[j+1].price) {
swapmessage(&ppz[j],&ppz[j+1]);
}
}
}
}
void swapmessage(ppz *p,ppz *q) {
ppz trmp;
trmp = *p; *p = *q; *q = trmp;
}
void outputInfo(ppz *p) {
printf("%s\t%s\t%s\t%d\t%d\t%s\n", p->num, p->name, p->author, p->price, p->total, p->introduce);
}
void updatebook(char ppzNum[]) {
int index = 0;
for (i = 0; i<tmp; i++) {
if (strcmp(ppzNum, ppz[i].num) == 0) {
printf("请修改图书馆第%d本书:\n", i + 1);
printf("请修改书号:");
scanf("%s", ppz[i].num);
printf("请修改书名:");
scanf("%s", ppz[i].name);
printf("请修改作者:");
scanf("%s", ppz[i].author);
printf("请修改单价:");
scanf("%d", &(ppz[i].price));
printf("请修改数量:");
scanf("%d", &(ppz[i].total));
printf("请修改简介:");
scanf("%s", ppz[i].introduce);
index = 1;
break;
}
}
if (index==1) {
printf("已经修改该书籍信息\n");
}
else {
printf("没有找到该名称书籍\n");
}
}
void Searchbook(char ppzNum[]) {
int index = 0;
for (i = 0; i<tmp; i++) {
if (strcmp(ppzNum, ppz[i].num) == 0) {
outputInfo(&ppz[i]);
index = 1;
break;
}
}
if (index==1) {
printf("已经查询到该书籍信息\n");
}
else {
printf("没有找到该名称的书籍\n");
}
}