结构体:相当于是我们自己定义的一种复杂的类型。

int...  double float bool char string  DateTime  数组类型

生活中大部份的对象都是复合型的对象。

如何定义结构体类型?

一般来说结构体的定义要放在class的外面或class的里面,尽量不放在Main的里面。

struct 自定义类型名

{

public 变量类型  变量名;  ......;  ......;  ......;

}

例如:

struct YuanGong  //自定义的数据类型。用来描述员工的信息。

{

public string NO;

public string Name;

public int Age;

public string Nation;

public bool Sex;

}

如何用自定义的类型来定义变量? 自定义类型名 变量 = new 自定义类型名();

如何使用自定义类型的变量?

变量.子变量 = "xxxx"; Console.WriteLine(变量名.子变量);

例如:

//定义自定义类型的变量

YuanGong zhangsan = new YuanGong();

//给变量赋值

zhangsan.NO = "Y001";

zhangsan.Name = "张三";

zhangsan.Age = 22;

zhangsan.Sex = true;

zhangsan.Nation = "汉族";

//对变量取值

Console.WriteLine(zhangsan.NO+"\t"+zhangsan.Name+"\t"+zhangsan.Age);

Console.WriteLine(zhangsan.Nation+"\t"+(zhangsan.Sex?"男":"女"));

例1:

struct YuanGong  //自定义的数据类型。用来描述员工的信息。

{

public string NO;

public string Name;

public int Age;

public string Nation;

public bool Sex;

public LianXiFangShi LianXi;

}

struct LianXiFangShi

{

public string QQ;

public string WeiXin;

public string Email;

public string Telephone;

public string Address;

public string ZipCode;

}

class Program

{

static void Mai0n(string[] args)

{

YuanGong zhangsan = new YuanGong();

zhangsan.NO = "Y001";

zhangsan.Name = "张三";

zhangsan.Age = 22;

zhangsan.Sex = true;

zhangsan.Nation = "汉族";

zhangsan.LianXi.QQ = "434354546";

//zhangsan.LianXi.WeiXin = "张三三";

//zhangsan.LianXi.Email = "zhangsan@tom.com";

zhangsan.LianXi.Address = "张店区张家胡同";

zhangsan.LianXi.ZipCode = "25000";

zhangsan.LianXi.Telephone = "";

YuanGong lisi = new YuanGong();

lisi.NO = "Y002";

lisi.Name = "李四";

lisi.Age = 25;

lisi.Sex =false;

lisi.Nation = "回族";

Console.WriteLine("**********张三的个人信息***********");

Console.WriteLine(zhangsan.NO+"\t"+zhangsan.Name+"\t"+zhangsan.Age);

Console.WriteLine(zhangsan.Nation+"\t"+(zhangsan.Sex?"男":"女"));

Console.WriteLine("联系方式:");

Console.WriteLine(

"QQ:"+(zhangsan.LianXi.QQ==null?"无":zhangsan.LianXi.QQ)+"\t"

+"微信:"+(zhangsan.LianXi.WeiXin == null?"无":zhangsan.LianXi.WeiXin)+"\t"

+"手机:"+(zhangsan.LianXi.Telephone==null?"无":zhangsan.LianXi.Telephone)+"\t"

+"邮箱:"+(zhangsan.LianXi.Email==null?"无":zhangsan.LianXi.Email)+"\t"

+"地址:"+zhangsan.LianXi.Address+"\t"+zhangsan.LianXi.ZipCode);

}

}

例2:

struct XueSheng

{

public int XueHao;

public string XingMing;

public double YuWen;

public double ShuXue;

public double WaiYu;

public double ZongFen;

public int MinCi;

}

class Class1

{

static void Mai1n(string[] args)

{

//int[] a = new int[5];

XueSheng[] s = new XueSheng[5];

//输入

ShuRu(s);

//排序

PaiXu(s);

//填名次

XieMingCi(s);

//输出显示

ShuChu(s);

}

private static void ShuChu(XueSheng[] s)

{

for (int i = 0; i < s.Length; i++)

{

Console.WriteLine(s[i].XueHao + "\t" + s[i].XingMing + "\t" + s[i].YuWen + "\t" + s[i].ShuXue + "\t"

+ s[i].WaiYu + "\t" + s[i].ZongFen + "\t" + s[i].MinCi);

}

}

private static void XieMingCi(XueSheng[] s)

{

for (int i = 0; i < s.Length; i++)

{

s[i].MinCi = i + 1;

}

}

private static void PaiXu(XueSheng[] s)

{

for (int i = 1; i <= s.Length - 1; i++)

{

for (int j = 1; j <= s.Length - i; j++)

{

if (s[j].ZongFen > s[j - 1].ZongFen)

{

XueSheng temp = s[j];

s[j] = s[j - 1];

s[j - 1] = temp;

}

}

}

}

private static void ShuRu(XueSheng[] s)

{

for (int i = 0; i < s.Length; i++)

{

Console.WriteLine("正在输入第" + (i + 1) + "个学生的信息");

s[i].XueHao = i + 1;

Console.Write("姓名:");

s[i].XingMing = Console.ReadLine();

Console.Write("语文:");

s[i].YuWen = Convert.ToDouble(Console.ReadLine());

Console.Write("数学:");

s[i].ShuXue = Convert.ToDouble(Console.ReadLine());

Console.Write("外语:");

s[i].WaiYu = Convert.ToDouble(Console.ReadLine());

//总分:

s[i].ZongFen = s[i].YuWen + s[i].ShuXue + s[i].WaiYu;

}

}

}

C#9 结构体 员工信息 学生成绩的更多相关文章

  1. C语言利用结构体数组实现学生成绩管理系统

    这篇文章主要为大家详细介绍了C语言利用结构体数组实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 要求: 某班有最多不超过30人(具体人数由键盘输入) ...

  2. 结构体数组排序:1004 成绩排名 【pta】

    结构体模板 struct STU { string name; //用string可以代替char string num; int s; }; sort是用快速排序实现的,属于不稳定排序,stable ...

  3. Problem T: 结构体--学生信息排序

    Problem T: 结构体--学生信息排序 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 2219  Solved: 1305[Submit][Sta ...

  4. YTU 2878: 结构体--学生信息排序

    2878: 结构体--学生信息排序 时间限制: 1 Sec  内存限制: 128 MB 提交: 297  解决: 148 题目描述 定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院 ...

  5. C语言博客作业—结构体

    一.PTA实验作业 题目1:结构体数组按总分排序 1. 本题PTA提交列表 2. 设计思路 void calc //函数calc求出p指针所指的结构体数组中 n 名学生各自的总分 { 定义循环变量i: ...

  6. C#学习笔记(七):结构体、数组、冒泡排序和调试

    结构体 结构体不能重写默认无参构造函数 一位数组 using System; using System.Collections.Generic; using System.Linq; using Sy ...

  7. 3.11 Go Struct结构体

    3.11 Go Struct结构体 Golang支持OOP面向对象编程. Go的结构体struct如同python的class. Go基于struct实现OOP特性,只有组合composition这个 ...

  8. C语言——结构体

    struct 是一种把一些数据项组合在一起的数据结构.在Go,Rust这些新语言中都保留了结构体 struct 的概念,这是C的精华. 定义匿名结构体 例:学生信息定义为一个结构体,信息内容包括学生的 ...

  9. C语言结构体作业

    一.PTA实验作业 题目1:6-3 结构体数组中查找指定编号人员 1. 本题PTA提交列表 2. 设计思路 定义一个结构体指针*p for i=0 to i=7 如果std+i的编号与输入的编号一样 ...

随机推荐

  1. select count(distinct a)

    我想对一个表里面字段a的个数进行进行统计,因为字段a有重复的记录,我想排除重复的记录,该sql语句为: select count(distinct a) 链接:http://www.w3school. ...

  2. ContextLoaderListener和Spring MVC中的DispatcherServlet加载内容的区别

    一:ContextLoaderListener加载内容 二:DispatcherServlt加载内容 ContextLoaderListener和DispatcherServlet都会在Web容器启动 ...

  3. nginx,php日志分割

    作者:zhanhailiang 日期:2014-01-06 默认nginx只会生成一个access.log和一个error.log,并且每天不断积累,日志文件会变的非常大,如果需要做一下日志的分析,无 ...

  4. Oracle表分区[转]

    废话少说,直接讲分区语法. Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. 一:范围分区 就是根据数据库表中某一字段的值的范围来划分分区,例如: create table gra ...

  5. 在Javascript中使用String.startsWith和endsWith

    在Javascript中使用String.startsWith和endsWith 在操作字符串(String)类型的时候,startsWith(anotherString)和endsWith(anot ...

  6. 工作中使用seajs后的一些总结

    工作中用seajs一段时间了,小小地总结一下. 使用seajs五部曲: 1.布置你项目的目录结构 2.设置seajs的config项,我一般是单独一个js文件--> seajs-config.j ...

  7. wxwidgets demo

    环境说明: IOS: mac 10.9 wx:  wxWidgets-2.9.5  (http://www.wxwidgets.org/downloads/) gcc: $gcci686-apple- ...

  8. Train Problem I--hdu1022(栈)

    Train Problem I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  9. C语言--基本运算符

    一.算术运算符 1. 加法运算符 + * 除了可以进行加法运算外,还可以表示正号:+521 2.减法运算符 — * 除了可以进行减法运算外,还可以表示负号:—741 3.乘法运算法符 * * 请注意符 ...

  10. LoadRunner 技巧之THML 与 URL两种录制模式分析

    Loadrunner的Virtual User Generator 提供人脚本的录制功能,对于初学者来说,这大大的降低了编写脚本的门槛,loadrunner提供两种录制脚本的方式:Html_based ...