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

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;

}

}

}

最新文章

  1. Gossip算法
  2. 李洪强iOS经典面试题128
  3. Selenium操作页面元素
  4. linux3
  5. Cassandra1.2文档学习(18)—— CQL数据模型(下)
  6. VMware下ubuntu与win8共享文件时/mnt/hgfs目录为空的解决办法
  7. 基于memcached的单机轻量级通用缓存库minicached的实现
  8. GitHub帮助文档翻译2——contribution
  9. iOS之多线程浅谈
  10. Morgan stanley 电话面试
  11. 窗体控件 回车事件 分类: WinForm 2014-11-21 10:45 233人阅读 评论(0) 收藏
  12. EF执行存储过程(带输出参数)
  13. MySQL中关于日期、时间的数据类型和函数
  14. servlet+jsp导入Excel到mysql数据库
  15. Python库的安装
  16. vue学习(2)
  17. 洛谷P2699小浩的幂次运算
  18. Deal with Warning: mysqli::__construct(): (HY000/2002)
  19. SQLSERVER性能调优小技巧
  20. JavaScript之BOM对象

热门文章

  1. Linux shell 的 test 命令用法详解
  2. 三、Mp3帧分析(数据帧)
  3. oracle使用exp与imp在本地导入导出数据
  4. 11i - 12 How To Set Email Style Preference For All Users At Once?
  5. iOS中通知的添加和移除
  6. 创建mvc
  7. CodeForces 698A - Vacations (Codeforces Round #363 (Div. 2))
  8. jQuery的类数组对象结构
  9. Mobile Matrices
  10. sublime工具 插件自动补全方法