实现成绩表的初步想法

利用结构体可以实现我们手动输入一些学生信息,进行自动排序打印的小程序;

首先在Main函数外面定义一个名字为student的结构体,下面没一个同学的信息存储都需要用到student结构体。

struct student
        {
            public int no;
            public string name;
            public int Cshap;
            public int web;
            public int datebase;
            public int sum;
      
        }  //定义一个student结构体

下面为Main函数开始;

static void Main(string[] args)

{
            int i;  int j;//声明循环变量
            int no_x;string name_x;int Cshap_x;int web_x;int datebase_x;//定义元素变量

上面主要是定义两个循环变量i和j,i用来进行输入循环,j用来进行排序循环。no_x是输入学号的一个变量,name_x是输入名字的一个变量,Cshap_x是输入Cshap成绩的一个变量,web_x是输入网页成绩的一个变量,datebase_x是输入数据库成绩的一个变量。

student a = new student();
            student b = new student();
            student c = new student();
            student d = new student();       //定义用于分别存放三个学生成绩的结构体,d用来进行交换

上面定义了4个student类型的结构体,a、b、c是存放三个学生成绩的结构体,d是在排序的时候用来交换数据的一个结构体。

下面是输入循环开始,总共需要输入三个学生的信息,因此i<=3,学号是自动+1,其他的信息都是需要主动输入,输入一个同学完成之后清一下屏。

for (i = 1; i <=3; i++)
            {
                //提示输入数据,并保存在元素变量里
                no_x = i;
                Console.WriteLine("请输入第{0}位同学的姓名:", i);
                name_x = Console.ReadLine();
                Console.WriteLine("请输入第{0}位同学的Cshap成绩:", i);
                Cshap_x = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("请输入第{0}位同学的网页成绩:", i);
                web_x = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("请输入第{0}位同学的数据库成绩:", i);
                datebase_x = Convert.ToInt32(Console.ReadLine());

Console.Clear();

//下面判断是不是第一个同学,是的话将他的基本数据存入第一个同学的结构体中,也就是a中。

if(i==1)
                {
                        a.no = no_x;
                        a.name = name_x;
                        a.Cshap = Cshap_x;
                        a.web =web_x;
                        a.datebase = datebase_x;
                        a.sum = a.Cshap + a.web + a.datebase;

}

//下面判断是不是第二个同学,是的话将他的基本数据存入第二个同学的结构体中,也就是b中。

if (i == 2)
                {
                  
                        b.no = no_x;
                        b.name = name_x;
                        b.Cshap = Cshap_x;
                        b.web = web_x;
                        b.datebase = datebase_x;
                        b.sum = b.Cshap + b.web + b.datebase;
                  
                }

//下面判断是不是第三个同学,是的话将他的基本数据存入第三个同学的结构体中,也就是c中。

if (i == 3)
                {
                   
                        c.no = no_x;
                        c.name = name_x;
                        c.Cshap = Cshap_x;
                        c.web = web_x;
                        c.datebase = datebase_x;
                        c.sum = c.Cshap + c.web + c.datebase;
                  
                }

}

//储存完数据之后,开始排序,排序因为这里是用的a,b,c来储存的数据,暂时没想到直接用两套循环来冒泡排序的方法,可以用一个数组zf[]来存一下每个同学的总分,这样就可以用两套循环来进行排序

for (j = 0; j < 2; j++)
                {
                    if (a.sum < b.sum)
                    {
                        d = a;
                        a = b;
                        b = d;
                    }
                     if (b.sum < c.sum)
                    {
                        d = b;
                        b = c;
                        c = d;
                       
                    }
                }

//排序完成,进行打印,因为前面的语句已经将顺序排好,总分高的同学的数据放在了a里面,次高的放在b里面,低的放在c里面,所以打印直接按a,b,c打印就可以

Console.WriteLine("学号\t姓名\tCshap\t网页\t数据库\t总分\t");
            Console.WriteLine(("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t"),a.no,a.name,a.Cshap,a.web,a.datebase,a.sum);
            Console.WriteLine(("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t"), b.no,b.name,b.Cshap, b.web, b.datebase, b.sum);
            Console.WriteLine(("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t"), c.no, c.name, c.Cshap, c.web, c.datebase, c.sum);

}
        }
    }

基本实现成绩表的一个想法,但是当学生数量多的时候程序就显得很复杂,还需要用别的方法再试,最好能用循环解决

下面看一下效果:

输入学生信息的界面:

输入完成之后打印出的界面:

程序网盘地址:

http://pan.baidu.com/s/1qWNmAUo

时间: 2024-10-08 13:54:52

实现成绩表的初步想法的相关文章

合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友_python

这时候还需要把各个工作表合并到一起来形成一个汇总表.这时候比较麻烦也比较容易出错,因为各个表的学号不一定都是一致的.对齐的.因为可能会有人缺考,有人会考号涂错等等.特奉献以下代码,用于合并学生成绩表或者其它类似的表都可以.本代码特点在于不需要使用SQL或者Access等大头软件,只需要Excel就可以执行,非常方便,速度也不慢.转载请勿清除广告. 没有合适的局域网管理软件吗?你的网管工具够灵活够高效吗?看看这个network management software. ' ============

设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。

表(一)Student (学生表) -- Create table create table STUDENT ( sno VARCHAR2(3) not null, sname VARCHAR2(8) not null, ssex VARCHAR2(2) not null, sbirthday DATE, class VARCHAR2(5) ) tablespace USERS pctfree 10 initrans 1 maxtrans 255; -- Add comments to the

学生表 课程表 成绩表 教师表 50个常用sql语句

原文:http://www.cnblogs.com/zengxiangzhan/archive/2009/09/23/1572276.html Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表   create table Student(S# varchar(20),Sname varchar(10),Sage int,Ssex varchar(2)

学生——成绩表2.2

一.表说明同“学生——成绩表2.1” 二.目录 选课情况 1.       查询学过"张三"老师授课的同学的信息 2.       查询没学过"张三"老师授课的同学的信息 3.       查询选修了全部课程的学生信息 4.       查询没有学全所有课程的同学的信息 5.       查询出只选有两门课程的全部学生的学号和姓名 6.       检索至少选修两门课程的学生学号 7.       查询每门课程被选修的学生数 8.       查询学过编号为&quo

JS-结合html综合练习js的对象——班级成绩表制作

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>对象综合练习</title> <style type="text/css"> body { font: 14px "微软雅黑"; } span { padding: 5px; } table { margin: 0 auto; border: 3p

JS-纯js制作动态成绩表(流程控制语句+js内置对象)

流程控制for循环+if判断+Math对象+Array对象+Date对象制作成绩表 <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>综合运用</title> <style type="text/css"> body { text-align: center; font: 14px "微软雅黑";

学生——成绩表2.1

一.表说明(MYSql) 二.导入测试数据 学生表 insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男'); insert into Student values('02' , N'钱电' , '1990-12-21' , N'男'); insert into Student values('03' , N'孙风' , '1990-05-20' , N'男'); insert into Student values('04'

sql面试题(学生表_课程表_成绩表_教师表)

sql面试题(学生表_课程表_成绩表_教师表) 原帖链接:http://bbs.csdn.net/topics/280002741 表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 建表语句 CREATE TABLE student ( s# INT, sname nvarchar(32), sage INT, ssex nvarchar(8)

SQL常见面试题(学生表_课程表_成绩表_教师表)

表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 建表语句 CREATE TABLE student ( s# INT, sname nvarchar(32), sage INT, ssex nvarchar(8) ) CREATE TABLE course ( c# INT, cname nvarchar(32), t# INT ) CREA