|

楼主 |
发表于 2020-4-6 12:34:11
|
显示全部楼层
麻烦帮忙复制看一下问题在哪 谢谢
- #include<stdio.h>
- #include"string.h"
- int j = 1;
- int how_many_book = 0; //用于 1.新书入库 统计库内有多少本书
- int i = 0; //用于 2.查询书籍信息 循环
- char bookname[32]; //被查询书的名字
- int letter; //用于switch循环判断
- struct Years
- {
- int year;
- int month;
- int day;
- }years;
- struct Book //定义图书馆结构体
- {
- char name[32];
- char writer[16];
- float money;
- struct Years years;
- char home[16];
- }bookshop[100];
-
- void printbook(struct Book); // 打印书籍函数
- struct Book writebook(struct Book book); // 录入书籍函数
- void import(); //主循环函数
-
- int main()
- {
- printf("欢迎进入图书馆程序!\n");
- while(j)
- {
- import();
- }
- return 0;
- }
-
-
- struct Book writebook(struct Book book)
- {
- printf("请输入书名:");
- scanf("%s",book.name);
- printf("请输入作者:");
- scanf("%s",book.writer);
- printf("请输入价格:");
- scanf("%f",&book.money);
- printf("请输入出版日期:");
- scanf("%d-%d-%d",&book.years.year,&book.years.month,&book.years.day);
- printf("请输入出版社:");
- scanf("%s",book.home);
- return book;
- }
-
- void printbook(struct Book b1)
- {
- printf("书的名称是:%s\n",b1.name);
- printf("书的作者是:%s\n",b1.writer);
- printf("书的价格是:%.2f\n",b1.money);
- printf("书的出版日期是:%d-%d-%d\n",b1.years.year,b1.years.month,b1.years.day);
- printf("书的出版社是:%s\n",b1.home);
-
- }
- void import() //主循环函数
- {
- printf("1.新书入库\n");
- printf("2.查询书籍信息\n");
- printf("3.删除书籍\n");
- printf("4.书籍借记\n");
- printf("5.退出程序\n");
- scanf("%d",&letter);
- switch(int(letter))
- {
- case 1: printf("请输入第%d本书的信息\n",how_many_book + 1);
- bookshop[i] = writebook(bookshop[i]);
- printbook(bookshop[i]);
- how_many_book ++ ;
- break;
-
- case 2:
- printf("请输入书籍的名字:\n");
- scanf("%s",bookname);
-
- for(i = 0 ; strcmp(bookname,bookshop[i].name) == 0 || (i == how_many_book) ; i++) //名字对上或循环次数等于储存书量就退出
- {
- ;
- }
- if(i == how_many_book && strcmp(bookname,bookshop[i].name) ==0 ) //循环到头且最后一个名字也不一样
- {
- printf("抱歉,库内暂无此书信息\n");
- }
- else // 除去以上情况就是找到了
- {
-
- printf("此书已经找到,下面开始打印书籍信息\n");
- printbook(bookshop[i]); //调用打印书籍函数
- }
- case 5:
- j = 0;
- break;
- }
- }
复制代码 |
|