C语言结构体案例
1. 什么是结构体
结构体是C语言中一种自定义数据类型,它允许我们将不同类型的数据组合在一起,形成一个新的数据类型。结构体可以包含多个成员变量,每个成员变量可以是不同的数据类型,如整型、字符型、浮点型等。
结构体的定义使用关键字struct,后面是结构体的名称,然后是一对大括号{},在大括号中定义结构体的成员变量。
2. 结构体的基本用法
2.1 定义结构体
下面是一个简单的结构体定义的例子:
struct Student {
int id;
char name[20];
int age;
float score;
};
上面的代码定义了一个名为Student的结构体,它包含了4个成员变量:id、name、age和score。
2.2 声明结构体变量
定义结构体只是定义了一个新的数据类型,并没有分配内存空间。要使用结构体,需要声明结构体变量,然后分配内存空间。
struct Student stu;
上面的代码声明了一个名为stu的结构体变量,它的类型是struct Student。
2.3 访问结构体成员
可以使用.运算符来访问结构体的成员变量。
stu.id = 1001;
strcpy(stu.name, "Tom");
stu.age = 18;
stu.score = 90.5;
上面的代码给结构体变量的成员变量赋值。
3. 结构体案例:学生信息管理系统
3.1 需求分析
我们要设计一个学生信息管理系统,该系统可以记录学生的学号、姓名、年龄和成绩,并对学生信息进行增加、删除、修改和查操作。
3.2 数据结构设计
为了实现上述功能,我们可以定义一个结构体Student来表示学生信息。
struct Student {
int id;
char name[20];
int age;
float score;
};
3.3 增加学生信息
可以定义一个函数addStudent来实现增加学生信息的功能。
void addStudent(struct Student *students, int *count) {
printf("请输入学生学号:");
scanf("%d", &students[*count].id);
printf("请输入学生姓名:");
scanf("%s", students[*count].name);
printf("请输入学生年龄:");
scanf("%d", &students[*count].age);
printf("请输入学生成绩:");
scanf("%f", &students[*count].score);
(*count)++;
printf("添加成功!\n");
}
3.4 删除学生信息
可以定义一个函数deleteStudent来实现删除学生信息的功能。
void deleteStudent(struct Student *students, int *count, int id) {
int i, j;
for (i = 0; i < *count; i++) {
if (students[i].id == id) {
for (j = i; j < *count - 1; j++) {
students[j] = students[j + 1];
}
(*count)--;
printf("删除成功!\n");
return;
}
}
printf("未到该学生!\n");
}
3.5 修改学生信息
可以定义一个函数modifyStudent来实现修改学生信息的功能。
void modifyStudent(struct Student *students, int count, int id) {
int i;
for (i = 0; i < count; i++) {
if (students[i].id == id) {
printf("请输入学生学号:");
scanf("%d", &students[i].id);
printf("请输入学生姓名:");
scanf("%s", students[i].name);
printf("请输入学生年龄:");
scanf("%d", &students[i].age);
printf("请输入学生成绩:");
scanf("%f", &students[i].score);
printf("修改成功!\n");
return;
}
}
printf("未到该学生!\n");
}
3.6 查学生信息
可以定义一个函数findStudent来实现查学生信息的功能。
void findStudent(struct Student *students, int count, int id) {
int i;
for (i = 0; i < count; i++) {
if (students[i].id == id) {
printf("学生学号:%d\n", students[i].id);
printf("学生姓名:%s\n", students[i].name);
printf("学生年龄:%d\n", students[i].age);
printf("学生成绩:%.2f\n", students[i].score);
return;
}
}
printf("未到该学生!\n");
}
3.7 主函数
int main() {
struct Student students[100];
int count = 0;
int choice;
int id;
while (1) {
printf("学生信息管理系统\n");
printf("1. 增加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 查学生信息\n");
printf("5. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
addStudent(students, &count);
break;
case 2:
switch的用法c语言 printf("请输入要删除的学生学号:");
scanf("%d", &id);
deleteStudent(students, &count, id);
break;
case 3:
printf("请输入要修改的学生学号:");
scanf("%d", &id);
modifyStudent(students, count, id);
break;
case 4:
printf("请输入要查的学生学号:");
scanf("%d", &id);
findStudent(students, count, id);
break;
case 5:
printf("谢谢使用!\n");
return 0;
default:
printf("无效的操作!\n");
break;
}
}
}
4. 总结
通过以上的案例,我们学习了C语言中结构体的基本用法,并实现了一个简单的学生信息管理系统。结构体是C语言中非常重要的概念,它可以帮助我们更好地组织和管理数据。在实际开发中,我们经常会用到结构体来表示复杂的数据结构,如链表、树等。掌握了结构体的使用,对于C语言程序的编写将会更加灵活和高效。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论