#include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 128 typedef struct Book { char ID[SIZE]; char name[SIZE]; float price; } BOOK; int input(BOOK * Head); void output(BOOK * Head,int Rnum); void search(BOOK * Head,int Rnum); void MENU(void); void Modify(BOOK * Head,int Rnum); void MENU(void) { system("cls"); printf("/n/n/n/n/t***************************************************************/n"); printf("/t*********************1.输入信息********************************/n"); printf("/t*********************2.输出信息********************************/n"); printf("/t*********************3. 查询 ********************************/n"); printf("/t*********************4.修改信息********************************/n"); printf("/t*********************0. 退出 ******************************/n"); printf("/t***************************************************************/n"); } int input(BOOK * Head) { int i = 0; printf("请输入第%d个图书的信息/n请输入图书ID(exit to 0):/n",i+1); scanf("%s",Head[i].ID); while(Head[i].ID != NULL && Head[i].ID[0] != '0') { fflush(stdin); puts("请输入题目:/n"); gets(Head[i].name); fflush(stdin); puts("请输入价格:/n"); scanf("%f",&Head[i].price); fflush(stdin); i++; printf("请输入第%d个图书的信息/n请输入图书ID(exit to 0):/n",i+1); scanf("%s",Head[i].ID); } return i; } void output(BOOK * Head,int Rnum) { int i; for(i = 0;i < Rnum;i ++) { printf("第%d本图书的信息:/n/n",i + 1); printf("ID:%s/n", Head[i].ID); printf("题目:%s/n",Head[i].name); printf("价格:%f/n", Head[i].price); } while(getchar()!='/n'); getchar(); } void search(BOOK * Head,int Rnum) { int i; int nRW = 0; char szTmp[SIZE]; printf("请输入你想查询的图书的ID:/n"); scanf("%s",szTmp); for(i = 0;i < Rnum;i++) { if(strcmp(Head[i].ID,szTmp) == 0) { printf("ID:%s/n", Head[i].ID); printf("标题:%s",Head[i].name); printf("价格:%f/n", Head[i].price); nRW++; } } if(!nRW) { printf("对不起 查无此书"); } while(getchar()!='/n'); getchar(); } void Modify(BOOK * Head,int Rnum) { int i; int nRW = 0; char szTmp[SIZE]; printf("请输入你想查询的图书的ID:/n"); scanf("%s",szTmp); for(i = 0;i < Rnum;i++) { if(strcmp(Head[i].ID,szTmp) == 0) { printf("请输入图书ID(exit to 0):/n"); scanf("%s",Head[i].ID); fflush(stdin); puts("请输入题目:/n"); gets(Head[i].name); fflush(stdin); puts("请输入价格:/n"); scanf("%f",&Head[i].price); fflush(stdin); nRW++; } } if(!nRW) { printf("对不起 查无此书"); } while(getchar()!='/n'); getchar(); } int main(void) { int nChoice; int nRealnum; int nRW; BOOK Head[SIZE]; while(1) { MENU(); nRW = scanf("%d",&nChoice); if(nRW == 0) { printf("输入有误 请重新输入"); continue; } switch(nChoice) { case 1: { nRealnum = input(Head); break; } case 2: { output(Head,nRealnum); break; } case 3: { search(Head,nRealnum); break; } case 4: { Modify(Head,nRealnum); break; } case 0: { exit(0); } default: { printf("对不起 您得输入有错"); getchar(); break; } } } }