void Search_name(Pointer Head) { //按书名查找函数 int flag = 0; //标记变量的初值 char name[10]; Pointer p; printf("\n请输入需要查询的书名:"); scanf("%s", name); printf("\n\t\t************* 以下是您查找的信息 ***************"); p = Head; while(p != NULL) { if(strcmp(p->name, name) == 0) { //查找符合的图书 printf("\n\t登录号: %-10s", p->loginNo); printf("\n\t书名: %-20s", p->name); printf("\n\t作者名: %-20s", p->author); printf("\n\t分类号: %-10s", p->classNo); printf("\n\t出版单位:%-20s", p->company); printf("\n\t出版时间:%-20s", p->date); printf("\n\t价格: ¥%-10s", p->price); flag = 1; //找到标记变量设为1 p = p->next; //指针走到下一个节点 } else p = p->next; } if(flag == 0) printf("\n\t\t没有相同书名纪录"); printf("\n\t\t请按任意键返回主菜单"); getchar(); }
时间: 2024-01-30 18:09:10 浏览: 21
这段代码是一个按书名查找的函数,它会要求用户输入需要查询的书名。函数会遍历链表中的每个节点,查找是否有书名与用户输入相同的图书信息。如果找到符合条件的图书信息,则会将该图书信息输出到屏幕上,并将标记变量flag设为1。函数执行完毕后,会提示用户按任意键返回主菜单。如果没有找到符合条件的图书信息,则会输出“没有相同书名记录”的提示。
相关问题
/*声明函数*/ int menu_select(); /*主菜单函数*/ void Insert(Pointer * Head); /*录入函数*/ void Scan(Pointer Head); /*显示函数*/ void Search_name(Pointer Head); /*按书名查找函数*/ void Search_author(Pointer Head); /*按作者名查找函数*/ void Listbyname(Pointer *Head); /*按书名排序函数*/ void Delete(Pointer * Head); //删除函数 void Update(Pointer Head); //修改函数 void Save(); //用文本文件形式保存函数 void Read(); //读入文本文件函数 void Exit(); //退出函数 int main() { //主函数 system("cls"); /*运行前清屏*/ for(;;) { switch(menu_select()) { case 1:Insert(& Head); break; case 2:Scan(Head); break; case 3:Search_name(Head); break; case 4:Search_author(Head); break; case 5:Listbyname(&Head); break; case 6:Delete(&Head); break; case 7:Update(Head); break; case 8:Save(); break; case 9:Read(); break; case 0:Exit(); default: putchar('\a'); } } return 0; }
这是一个图书管理系统的主函数,其中包括了主菜单函数、录入函数、显示函数、按书名查找函数、按作者名查找函数、按书名排序函数、删除函数、修改函数、用文本文件形式保存函数、读入文本文件函数和退出函数。主函数通过不断调用menu_select()函数,根据用户输入的选项来执行对应的操作。整个程序的功能是将图书信息存储在链表中,实现对图书的增删改查和排序等操作。
#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 sort_by_name(struct Student students[], int num);//按姓名的字典顺序排出成绩表 void search_by_number(struct Student students[], int num);//按学号查询学生排名极其考试成绩 void search_by_name(struct Student students[], int num);//按姓名查询学生排名极其考试成绩 请用c语言分别补充函数内容
好的,下面是三个函数的补充内容:
1. 按姓名的字典顺序排出成绩表
```
void sort_by_name(struct Student students[], int num)
{
int i, j;
for (i = 0; i < num - 1; i++) {
for (j = 0; j < num - i - 1; j++) {
if (strcmp(students[j].name, students[j+1].name) > 0) {
struct Student temp = students[j];
students[j] = students[j+1];
students[j+1] = temp;
}
}
}
}
```
2. 按学号查询学生排名及其考试成绩
```
void search_by_number(struct Student students[], int num)
{
char id[10];
printf("请输入学生学号:");
scanf("%s", id);
int i, rank = -1;
for (i = 0; i < num; i++) {
if (strcmp(students[i].id, id) == 0) {
rank = i + 1;
printf("学号:%s, 姓名:%s, 总分:%d, 平均分:%.2f, 名次:%d\n",
students[i].id, students[i].name, students[i].total_score, students[i].avg_score, rank);
break;
}
}
if (rank == -1) {
printf("未找到该学号对应的学生。\n");
}
}
```
3. 按姓名查询学生排名及其考试成绩
```
void search_by_name(struct Student students[], int num)
{
char name[NAME_LEN];
printf("请输入学生姓名:");
scanf("%s", name);
int i, rank = -1;
for (i = 0; i < num; i++) {
if (strcmp(students[i].name, name) == 0) {
rank = i + 1;
printf("学号:%s, 姓名:%s, 总分:%d, 平均分:%.2f, 名次:%d\n",
students[i].id, students[i].name, students[i].total_score, students[i].avg_score, rank);
break;
}
}
if (rank == -1) {
printf("未找到该姓名对应的学生。\n");
}
}
```
这些函数的实现也可能需要根据具体的需求进行修改和优化。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)