《C语言》课内实验报告7

时间:2025-04-21

一、实验题目:

结构体的应用

二、实验目的:

1.进一步掌握结构体变量、数组的定义和使用方法,掌握结构体与指针的应用。

2.学习共用体的概念和使用。

3.学习链表的概念和使用。

三、实验内容:

1.有6个学生,每个学生的数据包括学号、姓名、性别、4门课的成绩、总成绩、平均成绩。从键盘输入每个学生信息及4门课成绩,总成绩及平均成绩要通过4门课算出。然后用选择排序法按照总成绩由高到低对6个学生数据进行排序并输出排序结果。要求输入、排序、输出用3个自定义函数实现。编写源程序,给出注释及运行结果。(提示,请参阅教材上292页例11.5及例11.6的程序)。

#include<stdio.h> /*包含stdio.h库函数*/ #include<string.h> /*包含string.h 库函数*/ #define N 6 /*宏定义用N表示6*/ struct student /*定义一个长度为6的student结构体数组stu[N]*/ {

char name[10]; /*结构体中包含长度为10的字符型数组name*/

char num[10]; /*结构体中包含长度为10的字符型数组num*/ float math_score; /*结构体中包含浮点型数据math_score */ float english_score; /*结构体中包含浮点型数据english_score */ float computer_score; /*结构体中包含浮点型数据computer_score */

float C_program_score; /*结构体中包含浮点型数据C_program_score */

float sum_score; /*结构体中包含浮点型数据sum_score */

float average_score; /*结构体中包含浮点型数据average_score */

}stu[N];

void main() /*空类型主函数*/ {

void show(struct student stu[]);

/*声明空类型函数show函数包含形参struct student stu[]*/

void sort(struct student stu[],int n);

/*声明空类型函数sort函数包含形参struct student stu[]和int n */

int i; /*定义整型变量i*/ printf("学生的个数:%d",N); /*标准输出函数 以整型输出N的结果*/

for(i=0;i<N;i++) /*当 i=0且i<N时i自加一*/ {

stu[i].sum_score=0; /*把0赋值给stu[i].sum_score */ printf("\n输入学生成绩 %d:\n",i+1); /*以整形输出i+1结果*/

printf("姓名:"); /*输出"姓名:"*/ scanf("%s",stu[i].name); /*以字符型输入数据存到stu[i].name*/

printf("学号:"); /*输出"学号:"*/ scanf("%s",stu[i].num); /*以字符型输出stu[i].num */

printf("数学成绩:"); /*输出"数学成绩:"*/ scanf("%f",&stu[i].math_score);

/*以浮点型输入数据存到stu[i].math_score */

printf("英语成绩:"); /*输出"英语成绩:"*/ scanf("%f",&stu[i].english_score);

/*以浮点型输入数据存到stu[i].english_score */

printf("计算机成绩:"); /*输出"计算机成绩"*/ scanf("%f",&stu[i].C_program_score);

/*以浮点型输入数据存到stu[i].C_program_score */

printf("c语言成绩:"); /*输出"computer_score:"*/ scanf("%f",&stu[i].computer_score);

/*以浮点型输入数据存到stu[i].computer_score */

printf("\n"); /*换行*/

stu[i].sum_score=stu[i].math_score+stu[i].english_score+stu[i].co

mputer_score+stu[i].C_program_score; /*把stu[i].math_score加stu[i].english_score加

stu[i].computer_score加stu[i].C_program_score 的结果赋给

stu[i].sum_score */

stu[i].average_score=stu[i].sum_score/4.0;

/*把stu[i].sum_score除以4.0的结果赋给stu[i].average_score */

}

sort(stu,N); /*调用函数sort(stu,N)*/ show(stu); /*调用函数show(stu)*/ }

void sort(struct student stu[],int n)

/*定义空类型函数sort其形参为struct student stu[]和int n */

{

int i,j,k; /*定义整型变量i,j,k */

char g[10]; /*定义有十个长度的字符型的数组g*/ float t; /*定义浮点型变量t*/ for(i=0;i<n-1;i++) /*当i=0且i<n-1时i自加一*/ {

k=i; /*把i赋值给k*/ for(j=i+1;j<n;j++) /* 当j=i+1且j<n时j自加一*/ if(stu[j].sum_score>stu[k].sum_score)

/*如果stu[j].sum_score>stu[k].sum_score */

k=j; /*把j赋值给k*/ t=stu[k].sum_score; /*把stu[k].sum_score 赋值给t*/ stu[k].sum_score=stu[i].sum_score;

/*把stu[i].sum_score 赋值给stu[k].sum_score */ stu[i].sum_score=t; /*把t赋值给stu[i].sum_score */ t=stu[k].math_score; /*把stu[k].math_score 赋值给t*/ stu[k].math_score=stu[i].math_score;

/*把stu[i].math_score 赋值给stu[k].math_score */

stu[i].math_score=t; /*把t赋值给stu[i].math_score */ strcpy(g,stu[k].name); /*把stu[k].name 赋值给g*/ strcpy(stu[k].name,stu[i].name);

/*把stu[i].name 赋值给stu[k].name */

strcpy(stu[i].nam …… 此处隐藏:7581字,全部文档内容请下载后查看。喜欢就下载吧 ……

《C语言》课内实验报告7.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219