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

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. dojo.byId、dojo.query、dojo.attr

    概述: dojo.byId(/*string*/id或/*DomNode*/node) 1.传入DOMNode返回传入的domNode; 2.传入id返回id为当前值的domNode dojo.que ...

  2. 论i++与++i

    网上看到好多人问i++与++i到底怎么理解,网友给出的答案几乎都是一样的.如下: i++:先进行计算,然后i自增1 ++i:i自增1,然后进行计算 并且课本上给出的解释跟这个也差不多,不过这样记起来既 ...

  3. <转>科普CPU Cache line

    转载于http://coolshell.cn/articles/10249.html CPU cache一直是理解计算机体系架构的重要知识点,也是并发编程设计中的技术难点,而且相关参考资料如同过江之鲫 ...

  4. windows查询端口

    依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口.在命令提示符状态下键入“netstat -an”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态.

  5. AngularJs中关于ng-class的三种使用方式说明

    在开发中我们通常会遇到一种需求:一个元素在不同的状态需要展现不同的样子. 而在这所谓的样子当然就是改变其css的属性,而实现能动态的改变其属性值,必然只能是更换其class属性 这里有三种方法: 第一 ...

  6. AJAX防重复提交的办法总结

    最近的维护公司的一个代理商平台的时候,客服人员一直反映说的统计信息的时候有重复数据,平台一直都很正常,这个功能是最近新进的一个实习生同事写的功能,然后就排查问题人所在,发现新的这个模块的AJAX提交数 ...

  7. 同一个View双击事件&&单击事件

    final long[] mHits = new long[2]; // iv_flaw_flow.setOnClickListener(new View.OnClickListener() { // ...

  8. [汇编语言]-第九章 根据位移进行转移的jmp指令 段内短转移 段内近转移 段间转移(远转移) 转移的目的地址在指令中,在寄存器中,在内存中的jmp指令

    1- jmp为无条件转移指令,可以只修改IP, 也可以同时修改CS和IP jmp指令要给出两种信息: (1) 转移的目的地址 (2) 转移的距离(段间转移, 段内转移, 段内近转移) 2- 依据位移进 ...

  9. TIANKENG’s restaurant--hdu4883

    TIANKENG’s restaurant Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/O ...

  10. Android Activity跳转动画,让你的APP瞬间绚丽起来

    我们都知道绚丽的APP总会给用户耳目一新的感觉,为了抓住用户更大网络公司使出浑身解数让自己的产品更绚丽,而绚丽最简单的效果就是Activity跳转效果,不仅可以让用户看起来舒服,而且实现起来也特别简单 ...