C语言实验5(结构体)

合集下载

结构体编程实验报告

结构体编程实验报告

一、实验目的1. 理解结构体的概念和作用。

2. 掌握结构体的定义、声明和使用方法。

3. 学会通过结构体实现复杂数据的组织和管理。

4. 提高编程实践能力。

二、实验环境1. 编程语言:C/C++2. 操作系统:Windows/Linux3. 编译器:GCC三、实验内容1. 定义一个学生结构体,包含姓名、年龄、性别、学号、成绩等信息。

2. 实现一个函数,用于创建学生结构体实例。

3. 实现一个函数,用于打印学生信息。

4. 实现一个函数,用于计算学生的平均成绩。

5. 实现一个函数,用于查找特定学号的学生信息。

四、实验步骤1. 定义学生结构体```c#include <stdio.h>typedef struct {char name[50];int age;char gender;int id;float score;} Student;```2. 创建学生结构体实例的函数```cStudent createStudent(char name, int age, char gender, int id, float score) {Student stu; = name;stu.age = age;stu.gender = gender;stu.id = id;stu.score = score;return stu;}```3. 打印学生信息的函数```cvoid printStudentInfo(Student stu) {printf("Name: %s\n", );printf("Age: %d\n", stu.age);printf("Gender: %c\n", stu.gender);printf("ID: %d\n", stu.id);printf("Score: %.2f\n", stu.score);}```4. 计算学生平均成绩的函数```cfloat calculateAverageScore(Student stu, int n) {float sum = 0;for (int i = 0; i < n; i++) {sum += stu[i].score;}return sum / n;}```5. 查找特定学号的学生信息的函数```cStudent findStudentById(Student stu, int n, int id) { for (int i = 0; i < n; i++) {if (stu[i].id == id) {return &stu[i];}}return NULL;}```五、实验结果1. 创建一个学生结构体实例```cStudent stu1 = createStudent("Alice", 20, 'F', 1001, 85.5); ```2. 打印学生信息```cprintStudentInfo(stu1);```输出结果:```Name: AliceAge: 20Gender: FID: 1001Score: 85.50```3. 计算平均成绩```cStudent stu2 = createStudent("Bob", 21, 'M', 1002, 90.0); Student stu3 = createStudent("Charlie", 22, 'M', 1003, 92.0); float averageScore = calculateAverageScore(&stu1, 3);printf("Average Score: %.2f\n", averageScore);```输出结果:```Average Score: 88.50```4. 查找特定学号的学生信息```cStudent stuFound = findStudentById(&stu1, 3, 1002); if (stuFound != NULL) {printStudentInfo(stuFound);} else {printf("Student with ID 1002 not found.\n");}```输出结果:```Name: BobAge: 21Gender: MID: 1002Score: 90.00```六、实验总结通过本次实验,我们学习了结构体的概念和作用,掌握了结构体的定义、声明和使用方法。

c语言结构的实验报告

c语言结构的实验报告

c语言结构的实验报告C语言结构的实验报告引言:C语言是一种广泛应用于软件开发和嵌入式系统的高级编程语言。

其简洁、高效和灵活的特性使其成为许多程序员的首选。

本实验报告将介绍C语言结构的相关概念和实验结果,旨在帮助读者更好地理解和运用C语言。

一、基本概念1.1 结构的定义在C语言中,结构是一种自定义的数据类型,可以将不同类型的数据组合在一起,形成一个新的数据类型。

结构由多个成员组成,每个成员可以是不同的数据类型,如整型、字符型、浮点型等。

1.2 结构的声明在使用结构之前,需要先声明结构的类型。

声明结构的语法格式为:struct 结构名 {成员1; 成员2; ...};通过这种方式,我们可以定义一个结构类型,以便在程序中使用。

1.3 结构的访问通过结构名和成员运算符(.)可以访问结构的各个成员。

例如,如果有一个名为student的结构,其中包含学生的姓名和年龄两个成员,可以使用和student.age来访问这两个成员。

二、实验过程2.1 定义结构类型在本次实验中,我们以学生信息为例,定义了一个名为Student的结构类型,其中包含姓名(name)、年龄(age)和成绩(score)三个成员。

2.2 输入学生信息通过使用scanf函数,我们可以在程序中输入学生的姓名、年龄和成绩,并将其保存在定义的结构类型变量中。

2.3 输出学生信息使用printf函数,我们可以将学生的姓名、年龄和成绩从结构类型变量中提取出来,并在屏幕上显示出来。

2.4 结构的嵌套C语言中的结构还支持嵌套,即在一个结构中定义另一个结构。

例如,我们可以在Student结构中定义一个名为Address的结构,用于存储学生的地址信息。

三、实验结果与分析通过实验,我们可以发现结构在C语言中的重要性和灵活性。

通过定义结构类型,我们可以将不同类型的数据组合在一起,形成一个新的数据类型,更好地组织和管理数据。

结构的嵌套使得数据的层次结构更加清晰,提高了程序的可读性和可维护性。

c语言结构体实验报告

c语言结构体实验报告

实验目的(1) 掌握结构体的定义和使用方式;(2) 掌握结构体数组的使用方法;(3) 理解结构体指针作为函数参数的方法。

实验任务(1)编写程序:定义一个结构类型,可以存储一个学生的姓名、数学和计算机两门课的成绩,输入一个学生的姓名和两门课的成绩到结构体变量中,然后计算并输出其平均成绩及姓名。

(2)编写程序:定义一个结构类型, 可以存储一个学生的平时、实习、测验、期末成绩和总评成绩。

1)编程完成输入4个学生的平时、实习、测验和期末成绩。

封装成函数。

2)计算这4个学生的总评成绩,封装成函数。

其中平时、实习、测验和期末分别占10%、20%、20%、50%。

3)找到总评成绩最高的学生,封装成函数。

4)输出总评成绩最高的学生的成绩信息(平时、实习、测验、期末成绩和总评成绩)。

5)要求用结构体数组流程图见白纸源程序1.#include<stdio.h>struct student{int name[20];float a;float b;};int main(){struct student stu1;printf("请输入学生姓名、数学成绩、计算机成绩:\n");scanf("%s%f%f",&, &stu1.a, &stu1.b);float sum;sum = (stu1.a + stu1.b) / 2;printf("%s平均成绩为%f", , sum);return 0;}2.#include<stdio.h>struct student{float a;float b;float c;float d;float average;};int max(int a[4]){int i,t,m=a[0],max=0;for (i = 0; i < 4; i++){if (m < a[i]){a[i] = t;a[i] = m;m = t;max = i;}}return max;}int main(){int sum[4];int m,n;struct student stu[4];printf("请输入4个学生的平时、实习、测验、期末\n");int i;for (i = 0; i < 4; i++){scanf("%f%f%f%f", &stu[i].a, &stu[i].b, &stu[i].c, &stu[i].d);sum[i] = stu[i].average = stu[i].a*0.1 + stu[i].b*0.2 + stu[i].c*0.2 + stu[i].d*0.3;}m = max(sum);n = m + 1;printf("成绩最高的第%d个学生\n平时成绩为%f\n实习趁机为%f\n测验成绩为%f\n期末成绩为%f\n总评成绩为%f", n, stu[m].a, stu[m].b, stu[m].c, stu[m].d, stu[m].average);return 0;}运行结果实验总结基本掌握结构体的定义和使用方式;基本掌握结构体数组的使用方法;能理解结构体指针作为函数参数的方法。

函数结构体实验报告

函数结构体实验报告

一、实验目的1. 理解结构体的概念及其在C语言中的应用。

2. 掌握结构体函数的设计与实现。

3. 通过实例加深对结构体在函数中的应用理解。

二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编程语言:C语言三、实验内容1. 结构体定义2. 结构体函数设计3. 结构体函数调用4. 结构体数组应用四、实验步骤1. 结构体定义```c#include <stdio.h>// 定义一个学生结构体struct Student {char name[50]; // 学生姓名int age; // 学生年龄float score; // 学生成绩};```2. 结构体函数设计```c// 函数声明void printStudent(struct Student stu); struct Student inputStudent();```3. 结构体函数实现```c// 打印学生信息void printStudent(struct Student stu) { printf("姓名:%s\n", );printf("年龄:%d\n", stu.age);printf("成绩:%.2f\n", stu.score); }// 输入学生信息struct Student inputStudent() {struct Student stu;printf("请输入学生姓名:");scanf("%s", );printf("请输入学生年龄:");scanf("%d", &stu.age);printf("请输入学生成绩:");scanf("%f", &stu.score); return stu;}```4. 结构体函数调用```cint main() {struct Student stu1, stu2; // 输入两个学生的信息stu1 = inputStudent();stu2 = inputStudent();// 打印两个学生的信息printStudent(stu1);printStudent(stu2);return 0;}```5. 结构体数组应用```c// 定义一个学生结构体数组struct Student stuArray[3];// 输入学生信息for (int i = 0; i < 3; i++) {stuArray[i] = inputStudent();}// 打印学生信息for (int i = 0; i < 3; i++) {printStudent(stuArray[i]);}```五、实验结果通过以上实验步骤,我们成功实现了以下功能:1. 定义了一个学生结构体,包含姓名、年龄和成绩三个字段。

实验5 指针与结构体

实验5 指针与结构体

注意:
1、请大家每次上机都要带上c教材及上机指导书。

2、请认真按照实验要求做好实验预习工作,编好相关程序,有目的的上机!
实验5 指针与结构体
实验预习理论基础知识:
1.int a[10] , i , *p ; p=a; 则p++; p指向谁?p+i指向谁?、*p++ 、*(++p) 、
(*p)++的作用分别是什么?
2.对int *p1 , (*p2)[3] , *p3[3] , a[4][3]; p1=a ; p2=a ; p3[0]=a ; p3[1]=a+1 ;
p3[2]=a+2 ; p3[3]=a+3 ; 请分别用p1、p2、p3和数组名a描述数组a的第i行第j列的元素。

3.字符指针变量与字符数组的区别
4.函数的指针的含意?如何定义一个指向函数的指针变量?
5.指向指针的指针的含意?如何定义指向指针的指针变量?
6.写出定义一个结构体类型的语法和结构体类型定义变量的方法。

(可举例实现)
实验目的:
1.实验指导书P247实验9目的与P248实验10的实验目的。

实验内容
教材习题:
1.实验指导书实验9第2题:请把函数的形参指针分别定义成int (*p)[3 ]实现函数。

(可不写主函数)2.实验指导书实验9第2题:请把函数的形参指针分别定义成int *p[3 ]实现函数。

(要写主函数)。

C语言结构体(Struct)详解及示例代码

C语言结构体(Struct)详解及示例代码

C语⾔结构体(Struct)详解及⽰例代码前⾯的教程中我们讲解了数组(Array),它是⼀组具有相同类型的数据的集合。

但在实际的编程过程中,我们往往还需要⼀组类型不同的数据,例如对于学⽣信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习⼩组为字符,成绩为⼩数,因为数据类型不同,显然不能⽤⼀个数组来存放。

在C语⾔中,可以使⽤结构体(Struct)来存放⼀组不同类型的数据。

结构体的定义形式为:struct 结构体名{结构体所包含的变量或数组};结构体是⼀种集合,它⾥⾯包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。

请看下⾯的⼀个例⼦:struct stu{char *name; //姓名int num; //学号int age; //年龄char group; //所在学习⼩组float score; //成绩};stu 为结构体名,它包含了 5 个成员,分别是 name、num、age、group、score。

结构体成员的定义⽅式与变量和数组的定义⽅式相同,只是不能初始化。

注意⼤括号后⾯的分号;不能少,这是⼀条完整的语句。

结构体也是⼀种数据类型,它由程序员⾃⼰定义,可以包含多个其他类型的数据。

像 int、float、char 等是由C语⾔本⾝提供的数据类型,不能再进⾏分拆,我们称之为基本数据类型;⽽结构体可以包含多个基本类型的数据,也可以包含其他的结构体,我们将它称为复杂数据类型或构造数据类型。

结构体变量既然结构体是⼀种数据类型,那么就可以⽤它来定义变量。

例如:struct stu stu1, stu2;定义了两个变量 stu1 和 stu2,它们都是 stu 类型,都由 5 个成员组成。

注意关键字struct不能少。

stu 就像⼀个“模板”,定义出来的变量都具有相同的性质。

也可以将结构体⽐作“图纸”,将结构体变量⽐作“零件”,根据同⼀张图纸⽣产出来的零件的特性都是⼀样的。

c语言程序设计—结构体—实验报告

c语言程序设计—结构体—实验报告

c语言程序设计—结构体—实验报告
实验报告
一、实验背景
随着计算机科学的发展,数据的处理和存储已经发生了巨大的变化,变得更加结构化和更有效率。

考虑到这一点,结构体在计算机程序设计中尤其重要。

因此,本实验的目的是练习使用C语言编程,设计并实现相应的结构体,来实现一定的功能。

二、实验目标
设计一个结构体struct book,包含书名、作者名、出版社、价格等字段,并实现以下功能:
(1)按照书名查找图书;
(2)将书籍信息以字符串格式输出;
(3)将书籍信息保存到文件中;
三、实验内容
1. 用C语言定义结构体struct book,包含书名字段name(char类型)、作者author(char类型)、出版社publisher(char类型)、价格price(float类型)等信息。

2. 创建一个函数findBook,输入参数为书名字符串,输出参数为书籍信息struct book。

该函数实现按照书名查找图书功能,若查找成功返回书籍信息,否则返回null。

四、实验结果
经过上述步骤,已经编写了相应的C语言程序实现了按照书名查找图书、将书籍信息以字符串格式输出、将书籍信息保存到文件中、从文件中读取书籍信息等功能。

五、总结
本实验中,使用C语言实现了结构体struct book的定义及四个功能的程序,理解并大致掌握了结构体的使用,学会用程序实现数据的存取。

因此,我们可以看到,结构体的使用可以使数据的存取更加有效率和简单,对于程序设计是很重要的一个概念。

实验报告_结构体

实验报告_结构体

一、实验目的1. 理解结构体的概念和作用。

2. 掌握结构体的定义、声明和初始化方法。

3. 熟悉结构体成员的访问和修改。

4. 学会结构体数组的定义、初始化和访问。

二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编程语言:C++三、实验内容1. 结构体的定义和声明2. 结构体的初始化3. 结构体成员的访问和修改4. 结构体数组的定义、初始化和访问四、实验步骤1. 结构体的定义和声明```cppstruct Student {char name[50];int age;float score;};```2. 结构体的初始化```cppStudent stu1 = {"张三", 20, 90.5};```3. 结构体成员的访问和修改```cpp// 访问cout << "姓名:" << << endl; cout << "年龄:" << stu1.age << endl; cout << "成绩:" << stu1.score << endl; // 修改stu1.age = 21;stu1.score = 95.5;```4. 结构体数组的定义、初始化和访问```cpp// 定义结构体数组Student stuArray[3];// 初始化结构体数组stuArray[0] = {"李四", 19, 85.5}; stuArray[1] = {"王五", 20, 92.0}; stuArray[2] = {"赵六", 21, 88.5};// 访问结构体数组cout << "第一个学生的姓名:" << stuArray[0].name << endl;cout << "第一个学生的年龄:" << stuArray[0].age << endl;cout << "第一个学生的成绩:" << stuArray[0].score << endl;```五、实验结果1. 定义了一个名为Student的结构体,包含姓名、年龄和成绩三个成员变量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五结构体
一、实验目的
1.掌握结构体类型变量的定义和使用。

2.掌握结构体类型数组的概念和使用。

二、实验内容
编写一个程序实现下面的功能:
A.建立一个数组用于存储学生的学号、姓名和三门课程的成绩和平均成绩
B.输入学号后输出该学生的学号、姓名和三门课程的成绩
C.输入学号后删除该学生的数据
D.插入学生的数据
E.输出平均成绩在80分及以上的记录
F.退出
要求用循环语句实现B--E的多次操作
三、实验具体实验程序代码(要有注释)、测试结果(最好截图)和实验总结
1、实验代码
建立一个数组用于存储学生的学号、姓名和三门课程的成绩和平均成绩
输入学号后输出该学生的学号、姓名和三门课程的成绩
um,&stud[i].name,&stud[i].yingyu,&stud[i].shuxue,&stud[i].cc);
stud[i].avg=(stud[i].yingyu+stud[i].shuxue+stud[i].cc)/3;
}
for(i=0;i<n;i++)
{
printf("输入你要查询的学号:");
scanf("%d",&k);
if(k==stud[i].num)
{
printf("---------------------------\n");
printf("-----你要查询的学生信息----\n");
printf(" 学号姓名英语数学C++ \n");
printf("%d\t%s\t%f\t%f\t%f
\n",stud[i].num,stud[i].name,stud[i].yingyu,stud[i].shuxue,stud[i].cc);
printf("---------------------------\n");
printf("***输入你要删除的学号信息***");
scanf("%d",&k);
printf("***输入你要插入的数据:***\n");
scanf("%d\t%s\t%f\t%f\t%f",&stud[i].num,&stud[i].name,&stud[i].yingyu,&stud[i].shuxu e,&stud[i].cc);
}
for(j=0;j<n;j++)
{
if(stud[j].avg>=80)
{
printf("####输出平均分在80分以上的同学:####\n");
printf(" 学号姓名英语数学C++ \n");
printf("%d\t%s\t%f\t%f\t%f
\n",stud[j].num,stud[j].name,stud[j].yingyu,stud[j].shuxue,stud[j].cc);
printf("###################################\n");
}
}
}
return 0;
}
2、运行结果截图
总结:
对于数组的引用,分为数组元素和数组本身的引用。

对于数组元素的引用,其实质为简单变量的引用。

对于数组本身的引用实质是数组首地址的引用。

1.先声明结构体类型再定义变量名
如上面已经定义了一个结构体类型struct student,可以用它来定义变量。

如:
struct student student1,student2;
2.在声明类型的同时定义变量
一般形式:
struct 结构体名称
{
成员列表
}变量名列表;
答销网真情提供:::
文章出处:
&tid=1523&page=1&extra=#pid2387。

相关文档
最新文档