用结构体练习 考生信息录入

机试题目:1.输入3个学生的信息:学号,姓名,五门课成绩(语文,数学,英语,化学,物理),要求输出学生成绩的最高分最低分总分和平均分,若有不及格的成绩,输出其科目及成绩。 2.编写程序实现某大奖赛现场打分。共有10位评委打分,最高分为100分,去掉一个最高分和一个最低分后的平均分是最终得分。请用户输入评委姓名和该评委给出的分数,然后提示哪个评委的分数最高,最高分是多少;哪个评委的分数最低,最低分是多少;最后去掉最高分和最低分计算最终平均得分。3.按如下要求编程: 一、语言和环境A、实现技术:C#B、环境要求:MicrosoftVisual Studio 2012 。二、要求:具体要求:A.从控制台循环录入10个同学的信息跟成绩(学号,姓名,C语言分数)使用结构体。

B.在控制台打印本班的总分和平均分,并打印本班最高分、最低分的学生信息

C.按成绩高低打印本班成绩册并排出名次

代码:

namespace www
{
    class Program
    {
        struct student
        {
            public string code;
            public string name;
            public decimal degree;
        }
        static void Main(string[] args)
        {
            Console.Write("请输入人数:");
            int n = int.Parse(Console.ReadLine().ToString());

            decimal sumfen = 0, avg = 0, max = 0, min = 0;
            student[]sumstu=new student[n];
            //根据所输入人数进行循环录入
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("请输入第"+(i+1)+"个学生的信息");
                Console.WriteLine("学号   姓名  c语言分数,以tab键分隔");
                string s = Console.ReadLine();
                string[] sarr = s.Split(new char[]{‘\t‘});//使用split按照分隔符进行分隔

                sumstu[i].code=sarr[0];
                sumstu[i].name=sarr[1];
                sumstu[i].degree=decimal.Parse(sarr[2]);

                sumfen += sumstu[i].degree;

            }
            Console.WriteLine("*****************************************************");
            Console.WriteLine("总分:"+sumfen.ToString());
            avg = sumfen / n;
            Console.WriteLine("平均分:"+avg.ToString());

            //冒泡排序
            for (int i = 0; i < n - 1; i++)
            {
                for (int j = i + 1; j < n; j++)
                {
                    if (sumstu[i].degree < sumstu[j].degree)
                    {
                        student zhong = new student();
                        zhong =sumstu[i];
                        sumstu[i] = sumstu[j];
                        sumstu[j] = zhong;
                    }
                }
            }
            Console.WriteLine("最高分:"+sumstu[0].degree.ToString());
            Console.WriteLine("最低分:"+sumstu[n-1].degree.ToString());

            Console.WriteLine("本班成绩列表如下:");
            Console.WriteLine("*************************************************");
            Console.WriteLine("名次"+"\t"+"学号"+"\t"+"姓名"+"\t"+"成绩");
            for (int i = 1; i <= n; i++)
            {
                Console.WriteLine(i+"\t"+sumstu[i-1].code+"\t"+sumstu[i-1].name+"\t"+sumstu[i-1].degree);
            }
            Console.ReadLine();
        }
    }
}
时间: 2024-08-29 06:35:11

用结构体练习 考生信息录入的相关文章

利用动态排序,对学生结构体的各类信息进行排序

#import <Foundation/Foundation.h> //创建一个学生变量 typedef struct student{ char name[20];  //姓名 int  age;       //年龄 float  weight;  //体重 float  height;  //身高 float  score;   //分数 }Stu; //为什么使用动态排序,动态排序的好处:所有的排序函数if语句之后的比较条件不一样,其余的所有代码都是相同的,把相同的内容放在一个函数里,

C# 结构体 枚举类型

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

C结构体与Json字符串自动转换

我们知道在Java中利用Gson这个包可以很方便地将Object和Json进行自动转换(串行化/反串行化).其原理是利用了Java的反射机制. 最近我的项目中需要将C结构体与Json自动互转.项目背景其实是一个类似protobuf的json协议生成与解析,协议很多,所以我们肯定是希望从一个C结构体的对象自动转成Json,不然协议一条一条自己写,手筋要累断. 要实现这个需求,首先就要给C结构体加入反射机制.我的处理方法是让用户在定义结构体时,额外再定义一个metainfo,用于保存这个结构体的反射

C语言:SWUST OJ,程序设计C 实验六 结构体 题目三 学生结构体链表(0068)

Description: 用结构体建立学生信息,学生信息包括学号.姓名.成绩,建立一个有 n 名学生的链表, 并将链表输出. Input: 一次输入学生信息包括学号.姓名.0 0 0结束程序. Sample Input: C1001 Li 70 M1002 He 89 E1003 Xie 83 M1004 Wu 92 E1005 Bao 80 Sample Output: C1001 Li 70 M1002 He 89 E1003 Xie 83 M1004 Wu 92 E1005 Bao 80

Go的结构体

Go的结构体 结构体 Go语言提供了一种自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体,英文名称struct 结构体的定义 type 类型名 struct { 字段名 字段类型 字段名 字段类型 - } 类型名:自定义结构体的名称,在同一个包内不能重复 字段名:结构体中的字段名必须惟一 字段类型:表示结构体字段的具体类型 例子一 type persion struct { name string city string age int8 } 结构体实例化 只有当结构体实例化时,才

9.Go语言基础之结构体

Go语言中没有类的概念,也不支持"类"的继承等面向对象的概念. Go语言中通过结构体的内嵌再配合接口,比面向对象具有更高的扩展性和灵活性. 1.类型别名和自定义类型 1.1自定义类型 在Go语言中有一些基本的数据类型,如string,整型,浮点型,布尔等数据类型,Go语言中可以使用type关键字来定义自定义类型. 自定义类型是定义了一个全新的类型.我们可以基于内置的基本类型定义,也可以通过struct定义. //将MyInt定义为int类型 type MyInt int 通过Type关

Go语言基础之结构体

Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 类型别名和自定义类型 自定义类型 在Go语言中有一些基本的数据类型,如string.整型.浮点型.布尔等数据类型, Go语言中可以使用type关键字来定义自定义类型. 自定义类型是定义了一个全新的类型.我们可以基于内置的基本类型定义,也可以通过struct定义.例如: //将MyInt定义为int类型 type MyInt int 通过Type关键字的定义,

定义一个学生的结构体,学号,姓名,身高,输入学生信息。按身高排序输出

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace ConsoleApplication1 { class Program { struct student { public int code;//pu修饰符blic public string name;//结构体成员 public int shengao

【C语言】用结构体数组完成:有5个学生(包括学号,姓名,成绩),要求按照成绩高低输出学生信息

//用结构体数组完成:有5个学生(包括学号,姓名,成绩),要求按照成绩高低输出学生信息 #include <stdio.h> struct Stu { int num; char name[20]; int score; }; int main() { int i,j; struct Stu student[5]={{317,"han",89},{318,"hu",50},{319,"kang",84},{320,"li&q