void jie_name() { char jy[2],name[20];/jy用来表示是否确定借阅/ int i,book_xb,k=0;/k用来标记是否存在该书/ printf("\t\t ====================== \n"); printf("\t\t 按书名借阅 \n"); printf("\t\t ====================== \n"); while(1) { printf("\n\t\t请输入书名:"); scanf("%s",name); for(i=0;i<N;i++) if(strcmp(bk[i].name,name)==0&&bk[i].jie!=1)/找到图书并确认图书没有被借出,记录图书下标/ { book_xb=i; k++; } if(k==0) { printf("\t不存在该书,或该书已经借出!请正确输入图书名称!\n\t\t按任意键返回..."); getch(); break; } if(k==1) printf("\t编号 图书名称 出版社 出版时间 状态\n"); printf("\t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[book_xb].num,bk[book_xb].name,bk[book_xb].publish,bk[book_xb].t.year,bk[book_xb].t.month,bk[book_xb].t.day); if(bk[book_xb].jie==1) printf("已被借阅\n"); else { printf("可以借阅\n\t是否借阅?(是:'y',否:'n'):"); scanf("%s",jy); if(strcmp(jy,"n")==0) { printf("\t借阅取消,按任意键返回...."); getch(); break; } else if(strcmp(jy,"y")==0) { printf("\t借阅成功!按任意键返回..."); bk[book_xb].jie=1; getch(); break; } else { printf
时间: 2024-04-28 15:18:45 浏览: 58
这段代码是图书借阅系统中按照书名借阅的功能实现部分。大致流程是用户输入书名,系统在图书库中查找是否有该书,如果有且未被借出,则显示该书的信息,询问用户是否借阅;如果用户确认借阅,则将该书的借阅状态标记为已借阅。
具体解释如下:
- 第1行定义了两个字符数组变量jy和name,分别用来保存用户是否确定借阅和用户输入的书名。
- 第2行定义了三个整型变量i、book_xb和k,其中i用于循环计数,book_xb用于记录找到的书的下标,k用于标记是否存在该书。
- 第3~5行是输出界面的美化,显示借阅功能的标题。
- 第6~26行是一个死循环,用户可以多次输入书名,直到输入“n”或找到了符合条件的书才会退出循环。
- 第7行提示用户输入书名。
- 第8~14行是一个for循环,用于在图书库中查找是否有用户输入的书名,并且确认该书未被借出,如果找到符合条件的书,则记录该书的下标和存在该书的标记k。
- 第15~21行判断是否找到符合条件的书,如果没找到,则提示用户重新输入;如果找到一本书,则显示该书的信息并询问用户是否借阅;如果找到多本书,则先显示所有找到的书的信息,然后提示用户输入编号选择要借阅的书。
- 第22~23行是用户选择不借阅的情况,显示取消借阅的提示信息。
- 第24~25行是用户选择借阅的情况,将该书的借阅状态标记为已借阅,并显示借阅成功的提示信息。
- 第26行是用户输入其他字符的情况,会重新进入循环,提示用户重新输入。
注意,这段代码没有包含完整的程序,它只是其中的一部分,因此可能存在一些变量或函数没有定义或声明,需要在完整程序中查找。
相关问题
#include <stdio.h> #include <string.h> #define MAX_STUDENT_NUM 30 // #define MAX_COURSE_NUM 6 // #define NAME_LEN 20 // struct Student { char id[10];//学生学号 char name[NAME_LEN];//姓名 int scores[MAX_COURSE_NUM];//各科分数 int total_score;//总分 float avg_score;//平均分 }; void input_record(struct Student students[], int num);//录入每个学生的学号、姓名和各科考试成绩 void calc_total_avg_course(struct Student students[], int num, int course_num);//计算每门课程的总分和平均分 请用c语言分别补充函数内容
补充input_record函数内容:
```
void input_record(struct Student students[], int num)
{
for (int i = 0; i < num; i++)
{
printf("请输入第%d个学生的学号:", i+1);
scanf("%s", students[i].id);
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", students[i].name);
for (int j = 0; j < MAX_COURSE_NUM; j++)
{
printf("请输入第%d个学生的第%d门课程成绩:", i+1, j+1);
scanf("%d", &students[i].scores[j]);
}
}
}
```
补充calc_total_avg_course函数内容:
```
void calc_total_avg_course(struct Student students[], int num, int course_num)
{
for (int i = 0; i < course_num; i++)
{
int total_score = 0;
for (int j = 0; j < num; j++)
{
total_score += students[j].scores[i];
}
printf("第%d门课程的总分为:%d,平均分为:%.2f\n", i+1, total_score, (float)total_score/num);
}
}
```
注:这里假设MAX_COURSE_NUM为6,NAME_LEN为20。
#include <stdio.h> #include <string.h> #define MAX_STUDENT_NUM 30 //最大学生个数 #define MAX_COURSE_NUM 6 //最大课程个数 #define NAME_LEN 20 //最大名字个数 typedef struct Student { char id[10];//学生学号 char name[NAME_LEN];//姓名 int scores[MAX_COURSE_NUM];//各科分数 int total_score;//总分 float avg_score;//平均分 } XUESHENG;//将结构体名称命名为XUESHENG void sort_by_total_score(XUESHENG students[], int num);//按每个学生的总分由高到低排出名次表 void sort_by_number(XUESHENG students[], int num);//按学号由小到大排出成绩表 void sort_by_name(XUESHENG students[], int num);//按姓名的字典顺序排出成绩表 请补充各个函数
函数1:按每个学生的总分由高到低排出名次表
```
void sort_by_total_score(XUESHENG students[], int num){
int i, j;
XUESHENG temp;
for(i = 0; i < num - 1; i++){
for(j = i + 1; j < num; j++){
if(students[i].total_score < students[j].total_score){
temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
}
```
函数2:按学号由小到大排出成绩表
```
void sort_by_number(XUESHENG students[], int num){
int i, j;
XUESHENG temp;
for(i = 0; i < num - 1; i++){
for(j = i + 1; j < num; j++){
if(strcmp(students[i].id, students[j].id) > 0){
temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
}
```
函数3:按姓名的字典顺序排出成绩表
```
void sort_by_name(XUESHENG students[], int num){
int i, j;
XUESHENG temp;
for(i = 0; i < num - 1; i++){
for(j = i + 1; j < num; j++){
if(strcmp(students[i].name, students[j].name) > 0){
temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
}
```
阅读全文