练习:结构体、枚举类型——8月3日

练习一:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;

namespace 练习题
{
    class Program
    {
        //练习1:结构体
        struct Student
        {
            public int no;
            public string name;
            public string sex;
            public double score;
        }

        static void Main(string[] args)
        {
            //练习1:将结构体添加到集合中,取出某个索引位置的信息进行查看
            Console.Write("请输入班级人数:");
            int n = int.Parse(Console.ReadLine());
            //定义一个集合,并初始化
            ArrayList al = new ArrayList();
            for (int i = 0; i < n; i++)
            {
                //初始化结构体,每放一个人的信息时都要进行初始化,所以放在循环内部
                Student st = new Student();
                Console.Write("请输入第{0}个人的学号:", (i + 1));
                st.no = int.Parse(Console.ReadLine());
                Console.Write("请输入第{0}个人的姓名:", (i + 1));
                st.name = Console.ReadLine();
                Console.Write("请输入第{0}个人的性别:", (i + 1));
                st.sex = Console.ReadLine();
                Console.Write("请输入第{0}个人的分数:", (i + 1));
                st.score = double.Parse(Console.ReadLine());
                al.Add(st);
            }
            //重新定义一个结构体,
            Student st1 = new Student();
            //取出某个索引号位置的信息进行查看
            Console.WriteLine("按回车键查看第二个学生的信息!");
            Console.ReadLine();
            st1 = (Student)al[1];
            Console.WriteLine("该学生的学号是:{0},姓名是:{1},性别是:{2},分数是:{3}", st1.no, st1.name, st1.sex, st1.score);
            Console.ReadLine();
        }
    }
}

练习2:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;

namespace 练习题
{
    class Program
    {       //练习2:结构体
        struct student
        {
            public string name;
            public double yu;
            public double shu;
            public double ying;
        }

        static void Main(string[] args)
        {
            //练习2:定义一个结构体,里面具有姓名,语数英成绩
            //将,每个人的信息放入结构体中
            //将所有人的信息添加进集合中
            //求语文分数的总分
            //求数学分数的平均分
            //查看英语分数的两个最高分的人的全部信息(姓名、语文成绩,数学成绩,英语成绩)
            //使用冒泡排序,
            Console.Write("请输入班级人数:");
            int n = int.Parse(Console.ReadLine());
            //集合初始化,初始化首先要在上面引用:using System.Collections;
            ArrayList al = new ArrayList();
            double a = 0;
            double b = 0;
            for (int i = 0; i < n; i++)
            {
                //结构体初始化,每放一个人的信息就要重新初始化
                student st = new student();
                Console.Write("请输入第{0}个人的姓名:", (i + 1));
                st.name = Console.ReadLine();
                Console.Write("请输入第{0}个人的语文成绩:", (i + 1));
                st.yu = double.Parse(Console.ReadLine());
                a += st.yu;
                Console.Write("请输入第{0}个人的数学成绩:", (i + 1));
                st.shu = double.Parse(Console.ReadLine());
                b += st.shu;
                Console.Write("请输入第{0}个人的英语成绩:", (i + 1));
                st.ying = double.Parse(Console.ReadLine());
                al.Add(st);
            }
            Console.WriteLine("所有人的信息输入完毕,请按回车键继续!");
            Console.ReadLine();
            Console.WriteLine("语文成绩的总分数是:" + a);
            Console.WriteLine("数学成绩的平均分数是:" + b / n);
            //冒泡排序,英语两个最高分
            for (int i = 0; i < n; i++)
            {
                student s1 = new student();
                s1 = (student)al[i];
                for (int j = i + 1; j < n; j++)
                {
                    student s2 = new student();
                    s2 = (student)al[j];
                    if (s1.ying < s2.ying)
                    {
                        object zhong = al[i];
                        al[i] = al[j];
                        al[j] = zhong;
                    }
                }
            }
            student st1 = new student();
            st1 = (student)al[0];
            student st2 = new student();
            st2 = (student)al[1];
            Console.WriteLine("英语分数最高的第一个同学是:{0},语文分数为:{1},数学分数为:{2},英语分数为:{3}", st1.name, st1.yu, st1.shu, st1.ying);
            Console.WriteLine("英语分数最高的第二个同学是:{0},语文分数为:{1},数学分数为:{2},英语分数为:{3}", st2.name, st2.yu, st2.shu, st2.ying);
            Console.ReadLine();

        }
    }
}

练习3:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;

namespace 练习题
{
    class Program
    {

        static void Main(string[] args)
        {
            //练习3:三个候选班长,张三,李四,王五,20个人投票,
            //1,2,3分别对应张三,李四,王五,其他均视为废票,
            //要求20个人输入的全部放进数组中,查看谁的票数最高

            int[] array = new int[20];
            for (int i = 0; i < 20; i++)
            {
                Console.Write("请输入第{0}个人的投票数:", (i + 1));
                array[i] = int.Parse(Console.ReadLine());
            }
            int sum1 = 0;
            int sum2 = 0;
            int sum3 = 0;
            int sum4 = 0;
            for (int i = 0; i < 20; i++)
            {
                if (array[i] == 1)
                {
                    sum1++;
                }
                else if (array[i] == 2)
                {
                    sum2++;
                }
                else if (array[i] == 3)
                {
                    sum3++;
                }
                else
                {
                    sum4++;
                }
            }
            Console.WriteLine("作废票数为:" + sum4);
            Console.WriteLine("张三的得票数为:" + sum1);
            Console.WriteLine("李四的得票数为:" + sum2);
            Console.WriteLine("王五的得票数为:" + sum3);
            if (sum1 > sum2 && sum1 > sum3)
            {
                Console.WriteLine("当选班长的是:张三!");
            }
            else if (sum2 > sum1 && sum2 > sum3)
            {
                Console.WriteLine("当选班长的是:李四!");
            }
            else if (sum3 > sum1 && sum3 > sum2)
            {
                Console.WriteLine("当选班长的是:王五!");
            }
            else
            {
                Console.WriteLine("有相同票数,请重新投票!");
            }
            Console.ReadLine();

        }
    }
}

时间: 2024-11-06 07:32:36

练习:结构体、枚举类型——8月3日的相关文章

结构体、枚举类型——8月3日

一.结构体.美剧类型都是属于值类型 (一)结构体 就是一个自定义集合,里面可以放各种类型的元素,用法大体跟集合一样. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections;//下面要用到ArrayList集合,就要先引用这个 namespace 结构体_枚举类型 { cl

C# 结构体 枚举类型

结构体主要用于创建小型对象,例如   对象:学生  他包含:学号 姓名  性别  生日 班级   成绩等多个再小的对象 当我们有成千上万个对象组合起来   容易会自己造成混乱 而且占一定的内存 结构体就是把一个对象分支多个对象  组合起来进行计算 运行  并且不会重复运用同一个程序  把内存节省 定义: 它一般定义在Main函数外面,类Class program里面 格式: struct+结构体名称 { public   int 变量名; public   string   变量名; publi

结构体 枚举类型

结构体 class Program { struct student { public int num; public string name; public string sex; public one oone; public int[] qq; } struct one { public string aa; public int bb; } static void Main(string[] args) { ////struct ////初始化结构体 //student stu = ne

C#基础 结构体 枚举类型

结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 一.定义的例子: struct student { public int nianling; public int fenshu; public string name; public string sex; public int sum; } 以上的语句就是定义一个名称为student的结构体,其中包含int类型的年龄.分数.总和,和string类型的姓名.性别. 二.用法: 在main主函数外面定义了一个名称为st

结构体枚举类型

结构体 结构体类型是用户自己定义的一种类型,它是由其他类型组合而成的,可包含构造函数.常数.字段.方法.属性.索引器.运算符.事件和嵌套类型的值类型.结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承. 用结构的主要思想是创建小型的对象,如Point和FileInfo等等.这可以节省内存,因为没有如类对象所需的那样有额外的引用产生.例如,当声明汉语成千上万个对象的数组时,这会引起极大的差异. 结构体是一个变量组,将一组变量放在一起,其实就是一个自定义的集合,里面可以包含各

OC基础--结构体 枚举做类成员属性

结构体  枚举作类的成员属性: 定义一个学生类 性别 -- 枚举 生日 入学日期  毕业日期  --  结构体 代码示例: 声明文件 Student.h: #import <Foundation/Foundation.h> typedef struct { int year; int month; int day; } Date; typedef enum { kGenderGirl = 0, kGenderBoy = 1, kGenderChunGe = 2 } Gender; @inter

关于C/C++结构体参数类型定义冲突

1.对于纯C程序调用纯C编译的动态库: 可直接在纯C程序包含的头文件中修改结构体参数类型名称.编译器不会有任何警告或者错误,并且可正常调用. 2.对于C++程序调用C++编译的动态库: 必须C++程序和C++动态库都使用extern "C"包含,方可以任意修改结构体参数类型名称.编译器不会有任何警告或者错误,并且可正常调用. 总结:只有当使用C语言方式编译相互调用时,可以任意修改结构体参数类型名称.

C++ 共用体 枚举类型 所有

一.共用体类型 1.共用体的概念. 有时候需要将几种不同类型的变量存放到同一段内存单元中.例如有三个变量,他们的字节数不同,但是都从同一个地址开始存放.也就是用了覆盖技术,几个变量互相覆盖.这种使几个不同变量共占同一个内存的结构,称为共用体类型结构. 其一般形式: union 共用体类型名 { 成员列表 }; 定义共用体变量的一般形式: 共用体类型名    共用体变量名; 例如: union  data { int a; char ch; double  d; } 注意:结构体变量所占内存长度是

9.3 结构体 枚举 typedef

对结构体内存清零: #include <stdio.h> #include <string.h> struct STU { int id; char sex; }; int main() { struct STU s1; memset(&s1 , 0 , sizeof(s1)); } 结构体内存对齐: 以结构体最长的类型对齐 #include <stdio.h> #include <string.h> struct STU { char sex; i