void showbook_name() { int i,k=0,n;/*k用来标记是否存在该书*/ char book_name[20]; printf("\t\t ===================== \n"); printf("\t\t 按书名查看 \n"); printf("\t\t ===================== \n"); printf("\n\t\t请输入您要查看的图书名称:"); scanf("%s",book_name); for(i=0;i<N;i++) if(strcmp(book_name,bk[i].name)==0) { n=i; if(k==0)/* "项目"只输出一次*/ printf("\t编号 图书名称 出版社 出版时间 状态\n"); printf("\t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[n].num,bk[n].name,bk[n].publish,bk[n].t.year,bk[n].t.month,bk[n].t.day); if(bk[n].jie==1) printf("已被借阅\n"); else printf("可以借阅\n"); printf("按任意键返回..."); k++; /*k值不为零则表示找到图书*/ } if(k==0) /*k值为零则表示未找到图书*/ printf("\t不存在该书!按任意键返回..."); }解释这段代码
时间: 2024-04-28 22:19:10 浏览: 75
这段代码是一个函数,函数名为showbook_name,用于按照书名查找图书信息。下面是该函数的具体解释:
1. 定义变量:定义了整型变量i、k、n,其中i用于遍历图书馆中的所有书籍,k用于标记是否找到对应书籍,n用于记录找到的书籍在数组中的下标位置;还定义了一个字符数组book_name,用于存储用户输入的书名。
2. 输出提示信息:输出了一个界面美化的提示信息,让用户输入要查询的书名。
3. 获取用户输入:使用scanf函数获取用户输入的书名,并存储在book_name数组中。
4. 遍历图书馆:使用for循环遍历整个图书馆中的书籍信息,对于每本书,使用strcmp函数比较书名是否与用户输入的书名相同。如果相同,则记录该书在数组中的下标位置n,并输出该书的详细信息(包括编号、名称、出版社、出版时间以及借阅状态);同时将k值设为1,表示已经找到对应书籍。
5. 输出提示信息:在找到对应书籍的情况下,输出“按任意键返回...”提示用户按任意键返回上一级菜单。
6. 判断是否找到:如果遍历完整个图书馆后,k值仍为0,则说明未找到对应书籍,输出“不存在该书”的提示信息。
需要注意的是,该函数只能查找书名与用户输入完全一致的书籍,无法进行模糊查询。另外,该函数没有实现借阅功能,如果需要借阅图书,则需要在其他函数中实现。
相关问题
void showbook_name() { int i,k=0,n;/*k用来标记是否存在该书*/ char book_name[20]; printf("\t\t ===================== \n"); printf("\t\t 按书名查看 \n"); printf("\t\t ===================== \n"); printf("\n\t\t请输入您要查看的图书名称:"); scanf("%s",book_name); for(i=0;i<N;i++) if(strcmp(book_name,bk[i].name)==0) { n=i; if(k==0)/* "项目"只输出一次*/ printf("\t编号 图书名称 出版社 出版时间 状态\n"); printf("\t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[n].num,bk[n].name,bk[n].publish,bk[n].t.year,bk[n].t.month,bk[n].t.day); if(bk[n].jie==1) printf("已被借阅\n"); else printf("可以借阅\n"); printf("按任意键返回..."); k++; /*k值不为零则表示找到图书*/ } if(k==0) /*k值为零则表示未找到图书*/ printf("\t不存在该书!按任意键返回..."); }
这段代码是用来实现一个图书馆的系统,通过输入书名来查找对应的图书信息。其中,N代表图书馆中书籍的数量,bk数组存储了每本书的编号、名称、出版社、出版时间以及借阅状态(0表示未借出,1表示已借出)。函数会遍历整个图书馆的书籍信息,如果找到了对应的书籍,则输出该书的信息;如果没有找到,则输出“不存在该书”的提示信息。
需要注意的是,该函数的输入参数是book_name,是一个字符数组,表示用户输入的书名。如果书名包含空格等特殊字符,则需要使用fgets函数来获取输入。此外,该函数没有实现借阅功能,如果需要借阅图书,则需要在其他函数中实现。
void showbook_num() { int n,book_num,i,k=0;/*k用来标记是否存在该书*/ printf("\t\t ===================== \n"); printf("\t\t 按书号查看 \n"); printf("\t\t ===================== \n"); printf("\n\t\t请输入您要查看的图书编号:"); scanf("%d",&book_num); for(i=0;i<N;i++) if(book_num==bk[i].num) { n=i; if(k==0)/*项目只输出一次*/ printf("\t编号 图书名称 出版社 出版时间 状态\n"); printf("\t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[n].num,bk[n].name,bk[n].publish,bk[n].t.year,bk[n].t.month,bk[n].t.day); if(bk[n].jie==1) printf("已被借阅\n"); else printf("可以借阅\n"); k++; printf("\t按任意键返回..."); } if(k==0) /*k为零则表示未找到图书*/ printf("\t不存在该书!按任意键返回..."); }的代码解释
这段代码是一个函数,函数名为showbook_num,用于按照书号查找图书信息。下面是该函数的具体解释:
1. 定义变量:定义了整型变量n、book_num、i、k,其中n用于记录找到的书籍在数组中的下标位置,book_num用于存储用户输入的书号,i用于遍历图书馆中的所有书籍,k用于标记是否找到对应书籍。
2. 输出提示信息:输出了一个界面美化的提示信息,让用户输入要查询的书号。
3. 获取用户输入:使用scanf函数获取用户输入的书号,并存储在book_num变量中。
4. 遍历图书馆:使用for循环遍历整个图书馆中的书籍信息,对于每本书,判断书号是否与用户输入的书号相同。如果相同,则记录该书在数组中的下标位置n,并输出该书的详细信息(包括编号、名称、出版社、出版时间以及借阅状态);同时将k值设为1,表示已经找到对应书籍。
5. 输出提示信息:在找到对应书籍的情况下,输出“按任意键返回...”提示用户按任意键返回上一级菜单。
6. 判断是否找到:如果遍历完整个图书馆后,k值仍为0,则说明未找到对应书籍,输出“不存在该书”的提示信息。
需要注意的是,该函数只能查找与用户输入完全相同的书号,无法进行模糊查询。另外,该函数没有实现借阅功能,如果需要借阅图书,则需要在其他函数中实现。
阅读全文