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

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. C#钩子应用实例

    C#钩子应用实例一.写在最前 本文的内容只想以最通俗的语言说明钩子的使用方法,具体到钩子的详细介绍可以参照下面的网址: http://www.microsoft.com/china/community ...

  2. oracle中导出导入表以及数据

    Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中.利用 ...

  3. 理解中WebAPI的属性和相关操作 FormBody和 FormUri等(WebAPI 二)

    1.FromUri使用 将数据通过url方式传递.我们需要在webapi方法标明,这个参数只接受url中参数的值, $("#Save").click(function () { $ ...

  4. Memcache 在win7x64中安装配置

    Memcached从0.2.0开始,要求PHP版本大于等于5.2.0. 环境:phpstudy集成环境 目标:实现php用memcache 下载:memcache for win 64 http:// ...

  5. YUM更换源--yum找不到安装包(转)

    公司提供的CentOS VM中,/etc/yum.repos.d 下 只有一个build.repo,其中提供的yum 源只有公司内部的几个源,很多包在这些源中都找不到.于是要添加别的源,下面的帖子中介 ...

  6. knockout简单实用教程3

    在之前的文章里面介绍了一些KO的基本用法.包括基本的绑定方式,基本的ko的绑定语法包括text绑定,html绑定等等(如有不明请参照上两篇文章),下面呢介绍一下关于ko的其他方面的知识.包括比较特殊绑 ...

  7. CRAHNs: Cognitive radio ad hoc networks

    2009 Elsevier 综述了认知无线AD Hoc网络中的各个方面的研究进展及面临的挑战.包括传输层.网络层.链路层的协议设计. 根据CCC(common control channel)的实现思 ...

  8. Oracle EBS-SQL (OM-2):检查OM常用表

    --多语言视图 ALTER SESSION SET NLS_LANGUAGE=AMERICAN ; --组织化视图 BEGIN FND_CLIENT_INFO.set_org_context(218) ...

  9. android 自定义AlertDialog(一段)

    java: final AlertDialog dialog = new AlertDialog.Builder(mContext) .create(); dialog.setCancelable(f ...

  10. 多级列表——ExpandableListView

    ExpandableListView控件提供的是一个多级列表(一般是两级),我们先来看一下效果图,如图4.18所示为头部列表,单击其中的每一项下面会显示第二级列表,如图4.19所示. 从图4.18和图 ...