自定义一个结构体类型student,元素信息包含学号、姓名、一门课的成绩;用改结构体创建一个数组,输入4个学生的信息;编写主函数,通过输入学号查询学生的姓名和成绩,显示查到学生的姓名和成绩。
时间: 2023-05-31 20:18:15 浏览: 170
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
### 回答1:
题目要求我们自定义一个结构体类型student,包含学号、姓名、一门课的成绩;用改结构体创建一个数组,输入4个学生的信息;编写主函数,通过输入学号查询学生的姓名和成绩,并显示查到的学生的姓名和成绩。
实现代码如下:
```python
class student:
def __init__(self, num, name, score):
self.num = num
self.name = name
self.score = score
def main():
stu_list = []
for i in range(4):
num = int(input("请输入第%d个学生的学号:" % (i+1)))
name = input("请输入第%d个学生的姓名:" % (i+1))
score = int(input("请输入第%d个学生的成绩:" % (i+1)))
stu_list.append(student(num, name, score))
query_num = int(input("请输入要查询的学生的学号:"))
for stu in stu_list:
if stu.num == query_num:
print("姓名:%s,成绩:%d" % (stu.name, stu.score))
break
else:
print("没有找到该学生。")
if __name__ == "__main__":
main()
```
运行结果:
```
请输入第1个学生的学号:1
请输入第1个学生的姓名:张三
请输入第1个学生的成绩:90
请输入第2个学生的学号:2
请输入第2个学生的姓名:李四
请输入第2个学生的成绩:85
请输入第3个学生的学号:3
请输入第3个学生的姓名:王五
请输入第3个学生的成绩:95
请输入第4个学生的学号:4
请输入第4个学生的姓名:赵六
请输入第4个学生的成绩:80
请输入要查询的学生的学号:3
姓名:王五,成绩:95
```
### 回答2:
在该问题中,我们需要自定义一个结构体类型来保存学生的信息,然后使用该结构体类型来创建一个数组,输入4个学生的信息。接着,编写主函数来查询学生的信息(姓名和成绩),并将它们显示出来。
首先,我们需要定义结构体类型student:
```
struct student {
int id;
char name[20];
float score;
};
```
该结构体包含了三个元素,分别是学号(id)、姓名(name)和成绩(score)。
接下来,我们可以使用该结构体类型来创建一个数组,输入4个学生的信息:
```
struct student s[4];
int i;
for (i = 0; i < 4; i++) {
printf("请输入第%d个学生的学号、姓名和成绩:", i+1);
scanf("%d %s %f", &s[i].id, s[i].name, &s[i].score);
}
```
上述代码中,我们使用for循环来依次输入每个学生的信息,并将其保存在数组s中。
最后,我们编写主函数来查询一个指定学号的学生,并将其姓名和成绩显示出来:
```
int id, j;
printf("请输入要查询的学生的学号:");
scanf("%d", &id);
for (j = 0; j < 4; j++) {
if (s[j].id == id) {
printf("学生姓名:%s,成绩:%.2f\n", s[j].name, s[j].score);
break;
}
}
if (j == 4) {
printf("找不到该学生\n");
}
```
上述代码中,我们输入要查询的学生的学号,然后使用for循环来查找该学号对应的学生。如果找到了该学生,则将该学生的姓名和成绩显示出来;如果未找到该学生,则输出“找不到该学生”。需要注意的是,在查找学生时,我们使用了一个计数变量j来判断是否找到了该学生。
以上就是通过使用自定义的结构体类型来创建数组,并编写主函数来查询学生信息的方法。该方法可以方便地管理多个学生的信息,并快速地查询指定学生的信息。
### 回答3:
首先,我们需要定义一个结构体类型student,包括学号、姓名、一门课的成绩:
```
struct Student{
string ID; // 学号
string name; // 姓名
double grade; // 一门课的成绩
};
```
接下来,我们创建一个包含4个学生信息的数组:
```
Student students[4];
for(int i=0;i<4;i++){
cout << "请输入第" << i+1 << "个学生的信息(学号、姓名、成绩):" << endl;
cin >> students[i].ID >> students[i].name >> students[i].grade;
}
```
然后,我们在主函数中,通过输入学号来查询学生的姓名和成绩:
```
string searchID;
cout << "请输入要查询的学生学号:" << endl;
cin >> searchID;
bool found = false; // 标记是否找到学号
for(int i=0;i<4;i++){
if(students[i].ID == searchID){ // 找到学号
cout << "姓名:" << students[i].name << ",成绩:" << students[i].grade << endl;
found = true;
break;
}
}
if(!found){ // 没有找到学号
cout << "没有找到该学生的信息!" << endl;
}
```
综上所述,完整的代码如下:
```
#include <iostream>
#include <string>
using namespace std;
struct Student{
string ID; // 学号
string name; // 姓名
double grade; // 一门课的成绩
};
int main(){
Student students[4];
for(int i=0;i<4;i++){
cout << "请输入第" << i+1 << "个学生的信息(学号、姓名、成绩):" << endl;
cin >> students[i].ID >> students[i].name >> students[i].grade;
}
string searchID;
cout << "请输入要查询的学生学号:" << endl;
cin >> searchID;
bool found = false; // 标记是否找到学号
for(int i=0;i<4;i++){
if(students[i].ID == searchID){ // 找到学号
cout << "姓名:" << students[i].name << ",成绩:" << students[i].grade << endl;
found = true;
break;
}
}
if(!found){ // 没有找到学号
cout << "没有找到该学生的信息!" << endl;
}
return 0;
}
```
阅读全文