C#9 结构体 员工信息 学生成绩
结构体:相当于是我们自己定义的一种复杂的类型。
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 结构体 员工信息 学生成绩的更多相关文章
- C语言利用结构体数组实现学生成绩管理系统
这篇文章主要为大家详细介绍了C语言利用结构体数组实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 要求: 某班有最多不超过30人(具体人数由键盘输入) ...
- 结构体数组排序:1004 成绩排名 【pta】
结构体模板 struct STU { string name; //用string可以代替char string num; int s; }; sort是用快速排序实现的,属于不稳定排序,stable ...
- Problem T: 结构体--学生信息排序
Problem T: 结构体--学生信息排序 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 2219 Solved: 1305[Submit][Sta ...
- YTU 2878: 结构体--学生信息排序
2878: 结构体--学生信息排序 时间限制: 1 Sec 内存限制: 128 MB 提交: 297 解决: 148 题目描述 定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院 ...
- C语言博客作业—结构体
一.PTA实验作业 题目1:结构体数组按总分排序 1. 本题PTA提交列表 2. 设计思路 void calc //函数calc求出p指针所指的结构体数组中 n 名学生各自的总分 { 定义循环变量i: ...
- C#学习笔记(七):结构体、数组、冒泡排序和调试
结构体 结构体不能重写默认无参构造函数 一位数组 using System; using System.Collections.Generic; using System.Linq; using Sy ...
- 3.11 Go Struct结构体
3.11 Go Struct结构体 Golang支持OOP面向对象编程. Go的结构体struct如同python的class. Go基于struct实现OOP特性,只有组合composition这个 ...
- C语言——结构体
struct 是一种把一些数据项组合在一起的数据结构.在Go,Rust这些新语言中都保留了结构体 struct 的概念,这是C的精华. 定义匿名结构体 例:学生信息定义为一个结构体,信息内容包括学生的 ...
- C语言结构体作业
一.PTA实验作业 题目1:6-3 结构体数组中查找指定编号人员 1. 本题PTA提交列表 2. 设计思路 定义一个结构体指针*p for i=0 to i=7 如果std+i的编号与输入的编号一样 ...
随机推荐
- Windows下配置sphinx+reStructuredText详解
最近有朋友想在windows下做个人笔记,没有找到顺手的工具,问我有什么好的工具推荐.正好前两天在网上看到一款做文档的利器sphinx+reStructText,当时在ubuntu下搭了下环境试了试, ...
- java 短信发送例子 tdy
import java.io.IOException; import java.util.logging.Level;import java.util.logging.Logger;import or ...
- 反片语(map)
输入一些单词,找出所有满足如下条件的单词: 该单词不能通过字母重排,得到输入文本中的另外一个单词. 在判断是否满足条件时,不区分大小写,但输出保留输入中的大小写,按字典序进行排列(所有大写字母在小写字 ...
- 【搜索引擎Jediael开发笔记2】使用HttpClient下载网页至本地文件
本文使用HttpClient根据url进行网页下载.其中 (1)HttpClient的相关知识请参见HttpClient基础教程 (2) package org.ljh.search.download ...
- html5的本地存储localStorage和sessionStorage
html5的本地存储localStorage和sessionStorage html5中新增的比较重要的一个功能就是web storage来实现客户端本地存储数据,之前存储数据都是用cookie来实现 ...
- 移动端zepto.js文件的构建
因为在zepto的官网http://www.zeptojs.cn/#download下载的文件只包括了默认的几个模块,这并不能全部适应我们所需功 能,还需要按自己需要去添加相应模块.所以需要去构建我们 ...
- Repeater实现数据绑定
Repeater基础 在aspx文件中加入Repeater 控件,在<ItemTemplate></ItemTemplate>包含的范围里加入自己控制的代码,需要替换的变量使用 ...
- Python闭包及装饰器
Python闭包 先看一个例子: def outer(x): def inner(y): return x+y return innder add = outer(8) print add(6) 我们 ...
- 在Django里查询数据库时,如何按照desc倒序返回数据?
按照entry_date从小到大查询数据,可以写成: Content.objects.order_by('entry_date') 从大到小排序: Content.objects.order_by(' ...
- C# 迪杰斯特拉(Dijkstra)算法
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止. 其基本思想是,设置顶点集合S并不断地作 ...