zoukankan      html  css  js  c++  java
  • 嵌入式培训学习历程第十一天

    1、创建结构体struct person并编写程序,从终端上输入5
    个人的年龄、性别和姓名,然后输出。
    struct man{
    char name[20];
    int age;
    char gender[7];
    };

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 typedef struct man 
     5 {
     6     char name[20];    
     7     int age;
     8     char gender[7];
     9 }person_t;
    10 
    11 void input_data(person_t input_data[1024], int);
    12 void output_data(person_t output_data[1024], int);
    13 
    14 int main(int argc, char *argv[])
    15 {
    16     int num;
    17     person_t data[1024];
    18     
    19     printf("Enter you want input's numbers : ");
    20     scanf("%d", &num);
    21 
    22     input_data(data, num);
    23     output_data(data, num);
    24 
    25     printf("
    ");
    26 
    27     return 0;
    28 }
    29 
    30 void output_data(person_t output_data[1024], int output_num)
    31 {
    32     int i;
    33     for(i = 0; i != output_num; i ++)
    34     {
    35         printf("The person's name , age, gender is : %s	%d	%s.
    ", output_data[i].name, output_data[i].age, output_data[i].gender);
    36     }
    37     
    38     return ;
    39 }
    40 
    41 void input_data(person_t input_data[1024], int input_num)
    42 {
    43     int i;    
    44     for(i = 0; i != input_num; i ++)
    45     {
    46         printf("Enter name age gender : ");
    47         scanf("%s %d %s", input_data[i].name, &input_data[i].age, input_data[i].gender);
    48     }
    49 
    50     return ;
    51 }

    2、使用结构体知识,实现在屏幕上模拟一个数字时钟。

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <unistd.h>
     4 
     5 typedef struct clock
     6 {
     7     int hour;
     8     int minute;
     9     int second;
    10 }time__t;
    11 
    12 int main(int argc, char *argv[])
    13 {
    14     time__t time = {0, 0 ,0};
    15     for( ; ; )
    16     {
    17         printf("The time is : %d:%d:%d.
    ", time.hour, time.minute, time.second);
    18         sleep(1);
    19         ++ time.second;
    20         if(60 == time.second)
    21         {
    22             ++ time.minute;
    23             time.second = 0;
    24             if(60 == time.minute)
    25             {
    26                 ++ time.hour;
    27                 time.minute = 0;
    28                 if(24 == time.hour)
    29                 {
    30                     time.hour = 0;
    31                 }
    32             }
    33         }
    34     }
    35 
    36     return 0;
    37 }

    3、用结构体数组实现10个学生的成绩统计。功能包括
     输入学生学号、姓名、成绩
     按成绩由高到低进行排序并打印结果并且前70%的学生
    打印出标志”pass”,后30%的学员打印出标志”fail”
    结构体为:struct student{
    unsigned short id;
    char name[10];
    int score;
    };

     1 #include <stdio.h>
     2 
     3 typedef struct student
     4 {
     5     unsigned short id;
     6     char name[10];
     7     int score;
     8 }stu;
     9 
    10 void input_data(stu [], int);
    11 void sort_data(stu [], int);
    12 void output_data(stu [], int);
    13 
    14 int main(int argc, char *argv[])
    15 {
    16     stu stu_data[1024];
    17     int num;
    18 
    19     printf("Enter student's numbers : ");
    20     scanf("%d", &num);
    21 
    22     input_data(stu_data, num);
    23     sort_data(stu_data, num);
    24     printf("After sort!--------------------------------------
    ");
    25     output_data(stu_data, num);
    26 
    27     return 0;
    28 }
    29 
    30 void output_data(stu output_data[1024], int output_num)
    31 {
    32     int i,itemp = 0;
    33     itemp = output_num * 0.7;
    34     for(i = 0; i != output_num; i ++)
    35     {
    36         if(i < itemp) {
    37             printf("The students's data is : %hu	%s	%d.		pass
    ", output_data[i].id, output_data[i].name, output_data[i].score);
    38         }
    39         else {
    40             printf("The students's data is : %hu	%s	%d.		fail
    ", output_data[i].id, output_data[i].name, output_data[i].score);
    41         }
    42     }
    43 }
    44 
    45 void sort_data(stu sort_data[1024], int sort_num)
    46 {
    47     int i,j;
    48     stu itemp;
    49 
    50     for(i = 0; i != sort_num - 1; i ++)
    51     {
    52         for(j = 0; j != sort_num; j ++)
    53         {
    54             if(sort_data[j].score < sort_data[j + 1].score)
    55             {
    56                 itemp = sort_data[j];
    57                 sort_data[j] = sort_data[j + 1];
    58                 sort_data[j + 1] = itemp;
    59             }
    60 
    61         }
    62     }
    63 
    64     return ;
    65 }
    66 
    67 void input_data(stu input_data[1024], int input_num)
    68 {
    69     int i;
    70     for(i = 0; i != input_num; i ++)
    71     {
    72         printf("The sutdents's id name score : ");
    73         scanf("%hu %s %d", &input_data[i].id, input_data[i].name, &input_data[i].score);
    74     }
    75 
    76     return ;
    77 }

    4、用结构体数组实现10个学生的成绩统计。功能包括
    struct stud{
    unsigned short id;
    char name[10];
    int s[4];
    double ave;
    };
    编写:1、(函数readrec把10个学生的学号、姓名、四项成绩以及平
    均分放在一个结构体数组中,学生的学号、姓名和四项成绩由键盘
    输入,然后计算出平均分放在结构体对应域中。
    2、(函数writerec输出10名学生的记录。
    3、(main函数调用readrec函数和writerec函数,实现全部程序
    功能(不允许使用全局变量,函数之间的数据全部使用参数传递)

     1 #include <stdio.h>
     2 #include <unistd.h>
     3 #include <time.h>
     4 
     5 typedef struct stud
     6 {
     7     unsigned short id;
     8     char name[10];
     9     int s[4];
    10     double ave;
    11 }stu;
    12 
    13 void readrec(stu [], int);
    14 void writerec(stu [], int);
    15 
    16 int main(int argc, char *argv[])
    17 {
    18     stu stu_data[1024];
    19     int num;
    20 
    21     printf("Enter students's numbers : ");
    22     scanf("%d", &num);
    23 
    24     readrec(stu_data, num);
    25     printf("After --------------------------=---------------
    ");
    26     writerec(stu_data, num);
    27     
    28     return 0;
    29 }
    30 
    31 void writerec(stu write_data[1024], int write_num)
    32 {
    33     int i, j;
    34     for(i = 0; i != write_num; i ++)
    35     {
    36         printf("The students data is : %hu	%s	", write_data[i].id, write_data[i].name);
    37         for(j = 0; j != 4; j ++)
    38         {
    39             printf("%d	", write_data[i].s[j]);
    40         }
    41         printf("%.2lf", write_data[i].ave);
    42         printf("
    ");
    43     }
    44 
    45     return ;
    46 }
    47 
    48 void readrec(stu read_data[1024], int read_num)
    49 {
    50     srand(time(NULL));
    51     int i,j;
    52     int sum;
    53     for(i = 0; i != read_num; i ++)
    54     {
    55         sum = 0;
    56         printf("Enter id name :");
    57         scanf("%hu %s", &read_data[i].id, read_data[i].name);
    58         printf("The student's score jisuanzhong .....
    ");
    59         sleep(1);
    60         printf("The score jisuan success-------------
    ");
    61         for(j = 0; j != 4; j ++)
    62         {
    63             read_data[i].s[j] = rand() % 100;
    64             sum += read_data[i].s[j];
    65         }
    66         printf("sum = %d.
    ", sum);
    67         read_data[i].ave = (double)sum / 4;
    68     }
    69 
    70     return ;
    71 }

       老规矩,今天的笔记:

      加油站 : unsigned short   使用%hu匹配符

      1. 结构体:不同类型数据的集合

          (1)定义 : 根据程序的需要把若干种数据描述为一个整体

          (2)struct 关键字 

          typedef struct {      typedef struct record {

            int a;            int a;

            char b;           char b;

            float c;           float c;

            char s[10];         struct record *p;

          }record_t;            char s[10];

                         }record_t;

          注意 : 指针类型不决定指针的大小  指针大小遵循ILP32标准

          (3). 不允许在定义时对成员变量提供初值 

          (4). 能够对结构体数据进行整体初始化,不能够对数组进行整体赋值

          (5). 相同类型的结构体变量可以整体赋值

          (6). 结构体大小遵循结构体对齐原则。(以空间换取时间)大小取整 

      2. 大端系统 : 高位存低地址,地位存高地址

        小端系统 : 高位存高地址, 地位存低地址

        今天的英语 : Compound type (数据类型)   primitive(原始) abstraction(抽象化) 

                                      。。。。。。。。

  • 相关阅读:
    自我介绍
    自动生成小学生四则运算(C语言)
    黄金点游戏
    7/5linux命令(整理中)
    第二章内容及作业
    第三章笔记
    第一章作业
    第一阶段笔记整理7.23
    第三章课后作业
    7/6linux命令
  • 原文地址:https://www.cnblogs.com/cxw825873709/p/3224137.html
Copyright © 2011-2022 走看看