按学号查找学生信息: 结构体类型定义如下: struct stu{ char name[20]; in num; int score; struct stu *next; }; 要求实现如下功能: (1)写函数create()实现建立单链表来存放学生的信息,如果输入大写‘Y’字符则继续创建结点存储学生信息,否则按任意键结束输入。 (2)写自定义函数输出链表中学生信息。 (3)写自定义函数按学号查询学生的信息。 (4)写自定义函数释放链表所占内存。 (在主函数依次调用各函数即可) 输入提示:"请输入学生姓名,学号,成绩: \n" 输入格式:"%s %d %d" 输入提示:"是否继续输入,按Y键继续输入,其他键就结束.\n" 输入提示:"请输入要查找学生的学号:\n" 输入格式:%d 查找输出格式:找到了则输出:"该学生的姓名:%s 学号:%d 成绩:%d \n" 找不到则输出提示:"不存在此学生\n" 输出提示:"所有学生信息为:\n姓名,学号,成绩\n" 输出格式:"%s %d %d\n" 程序运行示例1: 请输入学生姓名,学号,成绩: ↙ li 101 90 是否继续输入,按Y键继续输入,其他键就结束.↙ Y 请输入学生姓名,学号,成绩: ↙ zhang 102 88 是否继续输入,按Y键继续输入,其他键就结束.↙ Y 请输入学生姓名,学号,成绩: ↙ wang 103 70 是否继续输入,按Y键继续输入,其他键就结束.↙ N 请输入要查找学生的学号:↙ 103 该学生的姓名:wang 学号:103 成绩:70 ↙ 所有学生信息为:↙ 姓名,学号,成绩↙ li 101 90↙ zhang 102 88↙ wang 103 70↙ 程序运行示例2: 请输入学生姓名,学号,成绩: ↙ li 101 90 是否继续输入,按Y键继续输入,其他键就结束.↙ Y 请输入学生姓名,学号,成绩: ↙ zhang 102 88 是否继续输入,按Y键继续输入,其他键就结束.↙ Y 请输入学生姓名,学号,成绩: ↙ wang 103 70 是否继续输入,按Y键继续输入,其他键就结束.↙ N 请输入要查找学生的学号:↙ 100 不存在此学生 ↙ 所有学生信息为:↙ 姓名,学号,成绩↙ li 101 90↙ zhang 102 88↙ wang 103 70↙
时间: 2024-04-06 08:34:45 浏览: 85
以下是C++代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
struct stu{
char name[20];
int num;
int score;
struct stu *next;
};
stu *create(); //建立单链表
void output(stu *head); //输出链表
void find(stu *head); //按学号查询学生信息
void release(stu *head); //释放链表所占内存
int main(){
stu *head;
head=create(); //建立单链表
output(head); //输出链表
find(head); //按学号查询学生信息
release(head); //释放链表所占内存
return 0;
}
stu *create(){
stu *p, *q, *head;
char flag;
head=new stu;
head->next=NULL;
q=head;
do{
p=new stu;
cout<<"请输入学生姓名,学号,成绩:"<<endl;
cin>>p->name>>p->num>>p->score;
q->next=p;
q=p;
cout<<"是否继续输入,按Y键继续输入,其他键就结束."<<endl;
cin>>flag;
}while(flag=='Y'||flag=='y');
q->next=NULL;
return head;
}
void output(stu *head){
cout<<"所有学生信息为:"<<endl;
cout<<"姓名,学号,成绩"<<endl;
stu *p=head->next;
while(p!=NULL){
cout<<p->name<<" "<<p->num<<" "<<p->score<<endl;
p=p->next;
}
}
void find(stu *head){
int num;
cout<<"请输入要查找学生的学号:"<<endl;
cin>>num;
stu *p=head->next;
while(p!=NULL){
if(p->num==num){
cout<<"该学生的姓名:"<<p->name<<" 学号:"<<p->num<<" 成绩:"<<p->score<<endl;
return;
}
p=p->next;
}
cout<<"不存在此学生"<<endl;
}
void release(stu *head){
stu *p=head->next;
while(p!=NULL){
head->next=p->next;
delete p;
p=head->next;
}
delete head;
}
```
阅读全文