3.用定义结构类型的方法,编写程序建立一个具有学生学号、姓名、总分和联系电话的记录文件。编写程序,从键盘上输入一个学号,可以查寻到此人其他信息。c语言程序
时间: 2024-02-26 11:53:11 浏览: 82
034 用“结构”统计学生成绩C语言
下面是一个简单的C语言程序,可以实现建立学生记录文件,并通过学号查询学生信息:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NUM 100 // 最大学生数
#define MAX_NAME 20 // 最大姓名长度
#define MAX_PHONE 20 // 最大电话号码长度
// 学生记录结构体类型
typedef struct {
int id; // 学号
char name[MAX_NAME + 1]; // 姓名,+1 是为了留出字符串末尾的 '\0' 空字符
int score; // 总分
char phone[MAX_PHONE + 1];// 联系电话
} student_t;
// 学生记录数组
student_t students[MAX_NUM];
// 当前学生数
int num_students = 0;
// 添加一个学生记录
void add_student(int id, char *name, int score, char *phone) {
// 判断学生数是否已达到最大值
if (num_students >= MAX_NUM) {
printf("Error: too many students!\n");
return;
}
// 初始化新学生记录
student_t new_student;
new_student.id = id;
strcpy(new_student.name, name);
new_student.score = score;
strcpy(new_student.phone, phone);
// 将新学生记录添加到学生记录数组中
students[num_students++] = new_student;
}
// 根据学号查找学生记录,并返回该学生记录的下标
int find_student(int id) {
int i;
for (i = 0; i < num_students; i++) {
if (students[i].id == id) {
return i;
}
}
return -1;
}
// 打印学生记录
void print_student(student_t student) {
printf("%d\t%s\t%d\t%s\n", student.id, student.name, student.score, student.phone);
}
int main() {
// 添加一些学生记录
add_student(1001, "Alice", 90, "1234567890");
add_student(1002, "Bob", 85, "2345678901");
add_student(1003, "Charlie", 95, "3456789012");
// 从键盘上输入一个学号,查找学生记录并打印
int id;
printf("Enter a student id to search: ");
scanf("%d", &id);
int index = find_student(id);
if (index == -1) {
printf("Student not found.\n");
} else {
print_student(students[index]);
}
return 0;
}
```
在这个程序中,我们首先定义了一个学生记录结构体类型 `student_t`,包含了学号、姓名、总分和联系电话等信息。然后,我们定义了一个学生记录数组 `students`,用于存储所有学生的记录。
程序中提供了三个函数:`add_student` 用于添加学生记录,`find_student` 用于根据学号查找学生记录,`print_student` 用于打印学生记录。
在 `main` 函数中,我们首先添加了一些学生记录,然后从键盘上输入一个学号,查找该学号对应的学生记录并打印。
阅读全文