C语言程序设计基础-实验7 (广西财大卢守东)

实验课程名称

程序设计基础

实验项目名称

构造类型及其应用

实验时间

2022年6月2日—6月2日

实验

地点

明实1-302

实验课时合计: 2 节

学生班级

计科2141

指导老师

卢守东

学生姓名

学号

学生成绩

(分数)

实验目的和要求:

参考教材的有关内容与示例,按要求编写并调试相应的程序,理解并掌握C语言结构体、联合体与枚举类型的使用方法。

实验内容:

1.试编一程序,建立一个包括学生与教师的登记表,内容包括姓名、性别(男、女)、类别(学生、教师)、年级(1、2、3、4)或职称(助教、讲师、副教授、教授等)。要求先输入各记录的有关数据,然后再一起将其输出。

2.试编一程序,列出从红、黄、蓝三种颜色中任取两种的所有方案。要求用枚举类型表示颜色。

实验过程、程序代码、运行结果及分析说明:

1.登记表

#include<stdio.h>
#include <stdio.h>                    //标准的输入输出
#include <string.h>                   //调用字符串函数
#include <stdlib.h>                   //包含system函数

#define N 10                        //定义程序录入10条个人信息
struct persontype                   //结构体:录入成员信息
{
       char Name[20];                  //姓名
       char Gender[20];                 //性别
       char Category[20];                //类别
    
       union                          //联合体
       {
              int Grade;                   //年级
              char Position[10];             //职称
              }leve1;            
       }person[N];

main()
{
       system("color fc");   //调整程序编译运行显示的颜色
       int i;
       printf(" **本程序作用为录入10位师生的信息**\n\n");    //提示信息   
       printf ("\n请输入以下信息:\n\n姓  名\t性  别\t类  别\t年级或职称:\n");

//提示输入
       for (i=0;i<N;i++)     //输入数据
       {
                     scanf("%s%s%s",&person[i].Name,person[i].Gender,person[i].Category);
              if (strcmp(person[i].Category,"学生")==0)        //判断师生
                     scanf("%d",&person[i].leve1.Grade);
              else if (strcmp(person[i].Category,"教师")==0)
                     scanf("%s",person[i].leve1.Position);
              else
                     printf("输入错误!\n");
              }
       printf("\n\n录入完毕!\n结果如下所示:\n\n\t姓  名\t性  别\t类  别    \t年级或职称:\n ");
       for (i=0;i<N;i++)     //输出数据
       {
              if (strcmp(person[i].Category,"学生")==0)
                     printf("\t%s    %s     %s       %d\n",person[i].Name,person[i].Gender, person[i].Category,person[i].leve1.Grade);

              else if (strcmp(person[i].Category,"教师")==0)

                     printf("\t%s    %s     %s   %s\n",person[i].Name,person[i].Gender,person[i].Category,person[i].leve1.Position);

              }

       }

2.枚举三色球

#include<stdio.h>

main()

{

       enum color {red,yellow,blue};       //枚举颜色类型

       int i,j,k,X1,X2;                   //其中有定义传入switch语句的变量

       int n=0;                        //初始化

       printf("\n**本程序作用为列出三色球中两两组合方案**\n\n");

      

       for(i=red;i<=blue;i++)            //赋值

              for(j=red;j<=blue;j++)

              {

                     if(j!=i)                   //两个球的颜色不同

                     {

                            for(k=red;k<=blue;k++)

                                   if((k!=i)&&(k!=j))

                                   {

                                          n=n+1;

                                          printf("\t%d\t",n);

                                          for(loop=1;loop<=2;loop++)

                     {switch(loop)

                        { case 1:

                              pri=i;
                              break;

                           case 2:

                              pri=j;

                              break;

                           default:

                              break;

                              }

                        switch(pri)

                        {

                           case red:

                              printf("%s\t","red");

                              break;

                           case yellow:

                              printf("%s\t","yellow");

                              break;

                           case blue:

                              printf("%s\t","blue");

                              break;

                           default:

                              break;

                           }}

            printf("\n");

      }}}}

实验结论和体会(包括思政感悟):

        通过本次实验课程,我对构造类型的应用有了更深的理解。通过实验过程,我明白了结构体与联合体一起使用时需要注意的事项;我学会了使用switch语句和循环语句的嵌套;头文件、数组、system函数等工具是使整个程序变得简介、美观的工具。为了能够灵活地使用枚举,我是通过一遍又一遍地学习知识,打牢知识底子后再去针对性练习。往往学习得透彻到底之后,我的编程能力就会大大提高,并且提高设计程序完成实验的效率。通过这一次的练习,我也发觉自己的一些短板、缺点。完成实验之后我将其总结、改正,争取日后编写的程序变得更人性化、完整化。

学生签名:     

2022年6月4日

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值