C语言如何改进这段代码void id(){ int sID; printf("请输入要查找的学生学号: \n"); scanf("%d",&sID); Node* p=g_head; while(p!=NULL){ if(p->stu1.ID==sID){ printf("\t%d\t,%s\t,%s\t,%s\t,%s\t,%s\t,%s\t\n",p->stu1.ID,p->stu1.name,p->stu1.sex,p->stu1.Class,p->stu1.date,p->stu1.Tel,p->stu1.home); } p=p->pNext; } if(p==NULL){ printf("无该学生信息"); } } void Name(){ char sName[20]; printf("请输入要查找的学生姓名: \n"); scanf("%s",&sName); Node* p=g_head; while(p!=NULL){ if(strcmp(p->stu1.name,sName)==0){ printf("\t%d\t,%s\t,%s\t,%s\t,%s\t,%s\t,%s\t\n",p->stu1.ID,p->stu1.name,p->stu1.sex,p->stu1.Class,p->stu1.date,p->stu1.Tel,p->stu1.home); } p=p->pNext; } if(p==NULL){ printf("无该学生信息"); } } void tel(){ char sTel[20]; printf("请输入要查找的学生联系方式: \n"); scanf("%s",&sTel); Node* p=g_head; while(p!=NULL){ if(strcmp(p->stu1.Tel,sTel)==0){ printf("\t%d\t,%s\t,%s\t,%s\t,%s\t,%s\t,%s\t\n",p->stu1.ID,p->stu1.name,p->stu1.sex,p->stu1.Class,p->stu1.date,p->stu1.Tel,p->stu1.home); } p=p->pNext; } if(p==NULL){ printf("无该学生信息"); } } void find() { printf("按学号查询请按1\n"); printf("按姓名查询请按2\n"); printf("按联系方式查询请按3\n"); int i; scanf("%d",&i); switch(i) { case 1: id(); break; case 2: Name(); break; case 3: tel(); break; } }使其能在学生信息管理系统中运行
时间: 2024-02-28 19:54:28 浏览: 99
这段代码看起来是在学生信息管理系统中实现了按学号、姓名、联系方式查询学生信息的功能。为了使其能在学生信息管理系统中运行,你需要在该系统的主函数中调用find()函数。具体来说,在主函数中添加如下代码即可:
```c
int main()
{
// 其他代码
find(); // 调用查询函数
// 其他代码
return 0;
}
```
这样,在运行学生信息管理系统时,程序会提示用户按照不同的查询方式进行查询,用户输入相应的数字后,程序会调用相应的查询函数进行查询。注意,为了使查询函数能正确地读取学生信息,你需要在查询函数的开头添加如下代码:
```c
extern Node* g_head; // 声明全局变量g_head
```
这样,查询函数就能正确地读取g_head指向的链表了。
阅读全文