结构体实验报告





题目:结构体实验报告:XXXXX
学号:XXXXXXXXXXXX 班级:XXXXXXXXXXXXXXXX 专业:XXXXXXXXX
成绩:
一、实验目的
掌握结构类型的定义和使用,学会使用结构数组编程解决问题。

二、实验容、要求与安排方式
1、实验容:
编程解决如下问题:谁的年龄最小、奖学金统计、猴子选大王、选票统计(二)、数星星(二),任选四道题,其中选票统计(二)、数星星(二)必选。

2、要求:能够上机编辑、调试程序并通过OJ测试。

3、实验安排方式:每组1人,独立完成上机实验;
4、注意事项:结构的嵌套定义和引用方法、用指针访问结构。

三、代码及调试结果
1.数星星代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct shiquan
{
int x;
int y;
} S; //定义结构体
int main()
{
S s[216];
int n,i,j;
int sum=0;
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d %d",&s[i].x,&s[i].y);
}
sum=n;
for(i=0; i<n; i++)
for(j=0; j<i; j++)
{
if(s[i].x==s[j].x&&s[i].y==s[j].y)
sum--;
}
printf("%d\n",sum);
return 0;
}
调试结果:
图1 数星星调试结果
2.奖学金代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
char name[20];
int Last_Score;
int Class_Score;
char Stu_leader;
char w_stu;
int article;
int sum;
} STU;
int main()
{
int n;
STU p[11];
int flag=0;
int sum=0;
int max=0;
scanf("%d",&n);
int i;
for(i=0; i<n; i++)
{
scanf("%s%d%d %c %c %d",p[i].name, &p[i].Last_Score, &p[i].Class_Score,
&p[i].Stu_leader, &p[i].w_stu, &p[i].article); p[i].sum=0;
}
for(i=0; i<n; i++)
{
if( p[i].Last_Score>80&& p[i].article>=1)
p[i].sum+=8000;
if( p[i].Last_Score>85&& p[i].Class_Score>80)
p[i].sum+=4000;
if( p[i].Last_Score>90)
p[i].sum+=2000;
if( p[i].Last_Score>85&& p[i].w_stu=='Y')
p[i].sum+=1000;
if( p[i].Class_Score>80&& p[i].Stu_leader == 'Y') p[i].sum+=850;
sum+=p[i].sum;
}
for(i=0; i<n; i++)
{
if( p[i].sum>max)
{
max= p[i].sum;
flag=i;
}
}
printf("%s\n",p[flag].name);
printf("%d\n",p[flag].sum);
printf("%d\n",sum);
return 0;
}
调试结果:
3.谁的年龄最小代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
int y;
char n[60];
int m;
int d;
}STU;
int main()
{
int n;
STU stu,min;
scanf("%d",&n);
min.y=-1;
min.m=-1;
min.d=-1;
while(n--)
{
scanf("%s",stu.n);
scanf("%d",&stu.y);
scanf("%d",&stu.m);
scanf("%d",&stu.d);
if(stu.y>min.y)
min=stu;
else if(stu.y==min.y)
{
if(stu.m>min.m)
stu=min;
else if(stu.m==min.m)
{
if(stu.d>min.d)
stu=min;
}
}
}
printf("%s",min.n);
printf("%d",min.y);
printf("-%0.2d",min.m);
printf("-%0.2d\n",min.d);
return 0;
}
调试结果:
4.成绩统计代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
char id[20];
char name[60];
int a,b,c;
} STU;
int main()
{
STU stu,max;
int n;
max.a=0;
max.b=0;
max.c=-1;
scanf("%d",&n);
while(n--)
{
scanf("%s",stu.id);
scanf("%s",);
scanf("%d%d%d",&stu.a,&stu.b,&stu.c);
if((stu.a+stu.b+stu.c)>(max.a+max.b+max.c)) {
max=stu;
}
}
printf("%s",max.id);
printf(" %s",);
printf(" %d",max.a);
printf(" %d",max.b);
printf(" %d\n",max.c);
return 0;
}
调试结果:。

合集下载

结构体编程实验报告

结构体编程实验报告

一、实验目的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语言结构体实验报告

实验目的(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;}运行结果实验总结基本掌握结构体的定义和使用方式;基本掌握结构体数组的使用方法;能理解结构体指针作为函数参数的方法。

实验结构体实验报告

实验结构体实验报告
}
}
cout<<"姓名"<<'\t'<<"生日"<<'\t'<<"电话"<<endl;
for(i=0;i<n;i++)
{
cout<<a[i].name<<'\t'
<<a[i].bir.year<<"/"<<a[i].bir.month<<"/"<<a[i].bir.day<<"/"<<'\t'
<<a[i].tel<<endl;
{
i=1;
}
else
i=0;
for(j=0;j<p->month;j++)
{
n=n+b[i][j];
}
n=n+p->day;
return n;
}
主要标识符说明:(源程序中主要标识符含义说明)
声明结构体类型nian,包括年(整型)、月份(整型)、天(整型)
struct nian
{
int year;
int month;
cin>>a.month ;
cout<<"请输入第几日"<<endl;
cin>>a.day;
n=find(p);
cout<<"你输入的日期为"<<a.year <<"/"<<a.month<<"/"<<a.day<<endl;

学生成绩管理系统(c语言结构体以及文件操作)实验报告

学生成绩管理系统(c语言结构体以及文件操作)实验报告
char x[10],ch;//定义一个十个字节的字符数组用来存放要查找的姓名
printf(" ***************欢迎进入学生成绩管理系统****************\n");
printf(" *********programmed by Menglingxin 131110412***********\n");
if (choice==1)
{
n = InputScore(stu,3);//调用录入函数
printf("分数录入完毕!\n");
break;//如果用户正确的先录入了学生成绩则跳出该错误处理循环
** 7、将每个学生的信息写入文件!**
** 8、从文件读取信息并显示! **
** 9、退出程序!**
*******************************************************
三、退出界面
***************************************
熟悉文件的基本操作以及增量的测试方法
实验内容(问题,思路,程序,结果)
得分
一、设计思路:
仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)
1、输入初始的学生信息:其中包括学生的学号、姓名、数学、物理、英语成绩等相关信息;使用for循环,以及结构体成员调用一次录入每个学生的成绩等学生信息
2、计算平均和总分模块:利用两层for循环,计数变量i累加一次循环一个学生、计数变量j进行与科目次数相同的累加循环每个科目的成绩进行累加。
#include "lab2.h"
#include "lab3.h"

数据结构实习总结报告

数据结构实习总结报告

数据结构实习总结【篇一:数据结构实训总结】这次课程设计的心得体会通过实习我的收获如下1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。

2、培养了我选用参考书,查阅手册及文献资料的能力。

培养独立思考,深入研究,分析问题、解决问题的能力。

3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。

4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。

从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。

编程时要认真仔细,出现错误要及时找出并改正,(其中对英语的要求也体现出来了,因为它说明错误的时候都是英语)遇到问题要去查相关的资料。

反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面做一些建议,正所谓当局者迷旁观者清,把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格,从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。

另外,要注意符号的使用,注意对字符处理,特别是对指针的使用很容易出错且调试过程是不会报错的,那么我们要始终注意指针的初始化不管它怎么用以免不必要麻烦。

通过近两周的学习与实践,体验了一下离开课堂的学习,也可以理解为一次实践与理论的很好的连接。

特别是本组所做的题目都是课堂上所讲的例子,在实行之的过程中并不是那么容易事让人有一种纸上谈兵的体会,正所谓纸上得来终觉浅绝知此事要躬行。

实训过程中让我们对懂得的知识做了进一步深入了解,让我们的理解与记忆更深刻,对不懂的知识与不清楚的东西也做了一定的了解,也形成了一定的个人做事风格。

通过这次课程设计,让我对一个程序的数据结构有更全面更进一步的认识,根据不同的需求,采用不同的数据存储方式,不一定要用栈,二叉树等高级类型,有时用基本的一维数组,只要运用得当,也能达到相同的效果,甚至更佳,就如这次的课程设计,通过用for 的多重循环,舍弃多余的循环,提高了程序的运行效率。

结构体实验总结

结构体实验总结

结构体实验总结结构体是一种用户自定义的数据类型,可以将不同类型的数据组合在一起,形成一个新的数据类型。

在编程中,结构体非常有用,因为它使得数据的组织和存储更加灵活,方便进行操作和管理。

在本次实验中,我对结构体的使用进行了实验,并总结以下内容。

首先,在实验中,我学会了如何定义和声明一个结构体。

结构体的定义使用关键字“struct”,之后是结构体的名称和一对花括号,花括号中是结构体的成员。

每个成员有一个类型和一个名称,中间用逗号隔开。

通过这种方式,我可以定义具有不同成员的结构体,并使用它们来组织和管理数据。

其次,在实验中,我深入理解了结构体的作用和优点。

结构体的主要作用是将相关的数据组合在一起,形成一个逻辑上的整体。

这样可以方便地对这些数据进行处理,比如传递给函数或者进行操作。

另外,结构体还可以通过使用指针的方式来传递,以提高程序的效率。

结构体的优点在于可以使程序的逻辑更加清晰,代码更加简洁,提高了程序的可读性和可维护性。

然后,在实验中,我学习了如何使用结构体的成员。

在使用结构体的成员时,可以使用“.”操作符来访问成员。

需要注意的是,访问结构体成员需要通过结构体的实例来进行,所以要先创建一个结构体的实例,然后使用“.”操作符来访问成员。

这样,通过访问结构体的成员,我可以实现对结构体中数据的操作和处理。

此外,在实验中,我还了解了结构体的嵌套和指向结构体的指针。

结构体的嵌套是指一个结构体中可以包含另一个结构体作为成员。

通过结构体的嵌套,可以实现更复杂的数据组织和管理。

指向结构体的指针是指指针变量可以指向一个结构体的实例,通过指针可以直接操作和修改结构体中的数据。

结构体的嵌套和指向结构体的指针使得结构体的使用更加灵活和强大。

最后,在实验中,我通过多个实例的练习,巩固了对结构体的理解和应用。

练习包括定义和声明结构体,创建结构体的实例,访问和修改结构体的成员,以及使用结构体的嵌套和指针。

通过这些练习,我掌握了结构体的使用技巧,能够灵活地运用结构体来组织和管理数据。

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.求建筑构造实训心得我觉得实习主要是为了我们今后在工作及业务上能力的提高起到促进的作用,增强了我们今后的竞争力,为我们以后立足增添了一块基石。

老师也给了我很多机会和甲方交流,使我懂得了很多将来从事设计工作所要面对的问题。

这次实习丰富了我在这方面的知识,使我向更深的层次迈进,对我在今后的社会中立足有一定的促进作用,但我也认识到,要想做好这方面的工作单靠这几天的实习是不行的,还需要我们在平时的学习和工作中一点一点的积累,不断丰富自己的经验才行。

我们面前的路还是很漫长的,需要不断的努力和奋斗才能真正地走好。

通过这次实习,我还有一个感悟就是建筑行业是一个非常具有挑战性的职业,没有真本事是不行的。

为了以后能够胜任这项工作,现在就必须踏踏实实的学好每一门功课。

建筑行业也是一个涉及人非常多的行业,你将会接触到各种各样的人。

面对这样一个复杂的交际圈,你可以从他们身上学习到很多优秀的多西,去除自身的一些不好行为,同时也可以通过接触不同的对象,增强自己的交际能力,让自己在以后的生活中更加自信,更加坚强!实习结束了,我相信在以后的生活中我将体会到更多的东西,也相信自己在下一次实习中将会更好。

我坚信通过这一段时间的实习,所获得的实践经验对我终身受益,在我毕业后的实际工作中将不断的得到验证,我会不断的理解和体会实习中所学到的知识,在未来的工作中我将把我所学到的理论知识和实践经验不断的应用到实际工作来,充分展示自我的个人价值和人生价值。

为实现我的理想和光明的前程努力。

2.《建筑结构试验》学习心得《建筑结构试验》学习心得本学期系内开设了一门《建筑结构试验》的专业选修课,根据自身今后的目标工作定位和实际情况,我有幸选择了这门课程进行修读。

通过一个学期课程的学习与现场试验的认知,感觉自己受益匪浅。

通过课程学习,明白了结构试验的原理及不同情况下试验的基本方法和对试验数据的处理、分析。

通过现场试验的了解与认知,更加清晰的了解了建筑结构试验的大致实际操作、分析方法。

c语言结构体实验报告

c语言结构体实验报告实验目的:掌握C语言结构体的基本知识,能够使用结构体对多个变量进行分类管理。

实验内容:1.理解结构体的基本概念结构体是一种用户自定义的数据类型,它由多个不同类型的变量组成,每个变量称为结构体的成员。

2.定义结构体类型定义结构体类型需要使用struct关键字,格式如下:struct 结构体类型名{数据类型成员1;数据类型成员2;...};3.结构体变量的定义与初始化定义结构体变量时,可以像定义简单变量一样使用结构体类型名进行声明,然后使用“.”运算符来访问结构体成员。

结构体变量的初始化方式和普通变量一样,可以用赋值语句或者在定义时用大括号括起来的成员值列表进行初始化。

4.结构体作为函数参数结构体变量可以作为函数参数进行传递,当传递结构体变量时,实际上传递的是结构体变量的拷贝,因此函数在对结构体进行改变时不会影响原来的结构体变量。

5.结构体数组和普通数组一样,结构体数组也是一组相同类型的变量的集合,用于存储多个结构体变量。

在定义结构体数组时,可以使用类似普通数组的方式进行定义。

实验过程:我们按照上述内容进行C语言结构体的实验,具体过程如下:1.定义一个结构体类型,包括两个成员,分别为学生姓名和学生的成绩。

struct student{char name[20];float score;};2.定义并初始化一个学生结构体变量。

struct student s={"Tom",88.5};3.定义一个函数,用于输出学生的姓名和成绩。

void output(struct student s){printf("Name:%s Score:%.2f\n",,s.score);}4.定义一个结构体数组,用于存储多个学生的信息。

struct student stu[3]={{"Tom",88.5},{"Jerry",76},{"Tony",90}};5.调用output函数,输出学生的姓名和成绩。

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