C# Arraylist + struct 综合练习 枚举ENUE 递归
枚举类型
一组常量的组合,
在不制定任何索引的情况下,默认第一个字段从0开始,之后的依次+1 在指定了某个索引的情况下,之后的依次+1 若之前定义的某字段的索引指向了之后的某个默认字段,那么他俩完全相同
不需要初始化
Console.WriteLine(meiju.five);
//常量字段 Console.WriteLine((int)meiju.five);
//字段代表的值 Console.WriteLine(meiju.one);
//常量字段 Console.WriteLine((int)meiju.one);
//字段代表的值 Console.WriteLine(meiju.four);
//定义枚举类型时,等于之前的一个字段,那么就是等于那个字段
//定义枚举类型时,等于一个int的时候,他和他后面的索引+1
1,
Arraylist + struct 综合练习 数据的存放 数据的 提取 提取时注意格式转变 初始化
//定义一个结构体,存放关于车辆的几个信息
//将所有车的信息都放入集合中
//车型号 价格(W) 轴距 (mm) 油耗(L/100km)
//宝马320Li 38 2920 6.9
//宝马520Li 43 3108 7.2
//宝马730Li 89 3210 6.3
//奥迪A4L35TFSI 31 2869 6.2
//奥迪A6L30TFSI 43 3012 7.6
//奥迪A8L45TFSI 89 3122 8.1
//奔驰C200L 35 2920 6.1
//奔驰E260L 48 3014 6.7
//奔驰S320L 93 3165 8
class Program
{
struct Car
{
public string name;
public double price;
public double zhou;
public double you;
} static void Main(string[] args)
{ #region 购车例题
ArrayList caral=new ArrayList();
Car a1=new Car();
a1.name="宝马320Li";
a1.price=;
a1.zhou=;
a1.you=6.9;
caral.Add(a1);
Car a2=new Car();
a2.name="宝马520Li";
a2.price=;
a2.zhou=;
a2.you=7.2;
caral.Add(a2); Car a3=new Car();
a3.name="宝马730Li";
a3.price=;
a3.zhou=;
a3.you=6.3;
caral.Add(a3); Car a4=new Car();
a4.name="奥迪A4L35TFSI";
a4.price=;
a4.zhou=;
a4.you=6.2;
caral.Add(a4); Car a5=new Car();
a5.name="奥迪A6L30TFSI";
a5.price=;
a5.zhou=;
a5.you=7.6;
caral.Add(a5); Car a6=new Car();
a6.name="奥迪A8L45TFSI";
a6.price=;
a6.zhou=;
a6.you=8.1;
caral.Add(a6); Car a7=new Car();
a7.name="奔驰C200L";
a7.price=;
a7.zhou=;
a7.you=6.1;
caral.Add(a7); Car a8=new Car();
a8.name="奔驰E260L";
a8.price=;
a8.zhou=;
a8.you=6.7;
caral.Add(a8); Car a9=new Car();
a9.name="奔驰S320L";
a9.price=;
a9.zhou=;
a9.you=;
caral.Add(a9);
//所有在售车辆中最便宜的
for (int i = ; i < ;i++ )
{
for (int j = i + ; j < ;j++ )
{
Car q1 =(Car)caral[i];
Car q2 = (Car)caral[j];
if(q1.price>q2.price)
{
object zhong = caral[i];
caral[i] = caral[j];
caral[j] = zhong;
}
}
}
Car cheap = (Car)caral[];
Console.WriteLine("最便宜的是{0},价格{1},轴距{2},油耗{3}。",cheap.name,cheap.price,cheap.zhou,cheap.you); Console.WriteLine("---------------------------------------------------------------------------------------------"); //求宝马中最便宜的车型是什么,所有信息列出
for (int i = ; i < ;i++ )
{
Car baocheap = (Car)caral[i];
if(baocheap.name.Contains("宝马"))
{
Console.WriteLine("宝马车中最便宜的是{0},价格{1},轴距{2},油耗{3}。", baocheap.name, baocheap.price, baocheap.zhou, baocheap.you);
break;
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //选个轴距最长的
for (int i = ; i < ; i++)
{
for (int j = i + ; j < ; j++)
{
Car q1 = (Car)caral[i];
Car q2 = (Car)caral[j];
if (q1.zhou < q2.zhou)
{
object zhong = caral[i];
caral[i] = caral[j];
caral[j] = zhong;
}
}
}
Car zhou = (Car)caral[];
Console.WriteLine("轴距最长的车是{0},价格{1},轴距{2},油耗{3}。", zhou.name, zhou.price, zhou.zhou, zhou.you);
Console.WriteLine("---------------------------------------------------------------------------------------------"); //选个轴距最长的,必须是奔驰
for (int i = ; i < ; i++)
{
Car zhouben = (Car)caral[i];
if (zhouben.name.Contains("奔驰"))
{
Console.WriteLine("奔驰车中轴距最长的是{0},价格{1},轴距{2},油耗{3}。", zhouben.name, zhouben.price, zhouben.zhou, zhouben.you);
break;
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //想要一辆油耗最低的车
for (int i = ; i < ; i++)
{
for (int j = i + ; j < ; j++)
{
Car q1 = (Car)caral[i];
Car q2 = (Car)caral[j];
if (q1.you > q2.you)
{
object zhong = caral[i];
caral[i] = caral[j];
caral[j] = zhong;
}
}
}
Car youdi = (Car)caral[];
Console.WriteLine("油耗最低的车辆是{0},价格{1},轴距{2},油耗{3}。", youdi.name, youdi.price, youdi.zhou, youdi.you);
Console.WriteLine("---------------------------------------------------------------------------------------------"); //想要一辆油耗最低的奥迪车
for (int i = ; i < ; i++)
{
Car zhouben = (Car)caral[i];
if (zhouben.name.Contains("奥迪"))
{
Console.WriteLine("奥迪车中油耗最低的是{0},价格{1},轴距{2},油耗{3}。", zhouben.name, zhouben.price, zhouben.zhou, zhouben.you);
break;
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //我只有50万,看看能买什么车
int biao = ;
for (int i = ; i < ;i++ )
{
Car diwushi = (Car)caral[i];
if(diwushi.price<=)
{
biao++;
Console.WriteLine("第{0}辆:{1},价格{2},轴距{3},油耗{4}。",biao,diwushi.name,diwushi.price,diwushi.zhou,diwushi.you);
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //我只需要60万以上的车,列出来所有车型和所有信息
int biao1 = ;
for (int i = ; i < ; i++)
{
Car diwushi = (Car)caral[i];
if (diwushi.price > )
{
biao1++;
Console.WriteLine("第{0}辆:{1},价格{2},轴距{3},油耗{4}。", biao1, diwushi.name, diwushi.price, diwushi.zhou, diwushi.you);
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //轴距必须超过3m,列列表
int biao2 = ;
for (int i = ; i < ; i++)
{
Car diwushi = (Car)caral[i];
if (diwushi.zhou>)
{
biao2++;
Console.WriteLine("第{0}辆:{1},价格{2},轴距{3},油耗{4}。", biao2, diwushi.name, diwushi.price, diwushi.zhou, diwushi.you);
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //油耗在8.5以下都行,列列表
int biao3 = ;
for (int i = ; i < ; i++)
{
Car diwushi = (Car)caral[i];
if (diwushi.you<=8.5)
{
biao3++;
Console.WriteLine("第{0}辆:{1},价格{2},轴距{3},油耗{4}。", biao3, diwushi.name, diwushi.price, diwushi.zhou, diwushi.you);
}
}
Console.WriteLine("---------------------------------------------------------------------------------------------"); //我不在乎油耗,要油耗最高的车
for (int i = ; i < ; i++)
{
for (int j = i + ; j < ; j++)
{
Car q1 = (Car)caral[i];
Car q2 = (Car)caral[j];
if (q1.you < q2.you)
{
object zhong = caral[i];
caral[i] = caral[j];
caral[j] = zhong;
}
}
}
Car yougao = (Car)caral[];
Console.WriteLine("油耗最高的车辆是{0},价格{1},轴距{2},油耗{3}。", yougao.name, yougao.price, yougao.zhou, yougao.you); #endregion
购车 方法1
2.
public ArrayList al = new ArrayList(); 注意位置
//输入班级人数,输入学生的学号、姓名、语数英分数
//存入结构体
//然后求语文分数为最高分的两个学生的所有信息
//数学最高分的两个学生的信息
//英语平均分
class Program
{
#region 成绩
//结构体是自定义类型,可以当做数据类型来使用
struct Student
{
public int code;
public string name;
public Score score;
}
struct Score
{
public double yufen;
public double shufen;
public double yingfen;
}
public ArrayList al = new ArrayList(); ******* static void Main(string[] args)
{ #region 班级排名 //输入班级人数,输入学生的学号、姓名、语数英分数
//存入结构体
//然后求语文分数为最高分的两个学生的所有信息
//数学最高分的两个学生的信息
//英语平均分
Console.Write("请输入班级人数:");
int a = int.Parse(Console.ReadLine());
Program hs = new Program();
for (int i = ; i < a;i++ )
{
Student st = new Student();
Console.Write("请输入第{0}个学生的学号:",(i+));
st.code = int.Parse(Console.ReadLine());
Console.Write("请输入第{0}个学生的姓名:", (i + ));
st.name = Console.ReadLine();
Console.Write("请输入第{0}个学生的语文分数:", (i + ));
st.score.yufen = double.Parse(Console.ReadLine());
Console.Write("请输入第{0}个学生的数学分数:", (i + ));
st.score.shufen = double.Parse(Console.ReadLine());
Console.Write("请输入第{0}个学生的英语分数:", (i + ));
st.score.yingfen = double.Parse(Console.ReadLine());
hs.al.Add(st);
}
Console.WriteLine("所有人员信息输入完毕!请按回车键继续!");
Console.ReadLine();
//然后求语文分数为最高分的两个学生的所有信息
for (int i = ; i < a - ;i++ )
{
for (int j = i + ; j < a;j++ )
{
Student st1 =(Student)hs.al[i];
Student st2 =(Student)hs.al[j];
if(st1.score.yufen<st2.score.yufen)
{
object zhong = hs.al[i];
hs.al[i] = hs.al[j];
hs.al[j] = zhong;
}
}
}
Student yu1 = (Student)hs.al[];
Student yu2 = (Student)hs.al[];
Console.WriteLine("语文分数最高的第一个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。",yu1.code,yu1.name,yu1.score.yufen,yu1.score.shufen,yu1.score.yingfen);
Console.WriteLine("语文分数最高的第二个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。", yu2.code, yu2.name, yu2.score.yufen, yu2.score.shufen, yu2.score.yingfen);
//数学最高分的两个学生的信息
for (int i = ; i < a - ; i++)
{
for (int j = i + ; j < a; j++)
{
Student st1 = (Student)hs.al[i];
Student st2 = (Student)hs.al[j];
if (st1.score.shufen < st2.score.shufen)
{
object zhong = hs.al[i];
hs.al[i] = hs.al[j];
hs.al[j] = zhong;
}
}
}
Student shu1 = (Student)hs.al[];
Student shu2 = (Student)hs.al[];
Console.WriteLine("数学分数最高的第一个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。", shu1.code, shu1.name, shu1.score.yufen, shu1.score.shufen, shu1.score.yingfen);
Console.WriteLine("数学分数最高的第二个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。", shu2.code, shu2.name, shu2.score.yufen, shu2.score.shufen, shu2.score.yingfen);
//英语平均分
double sum = ;
for (int i = ; i < hs.al.Count;i++ )
{
Student ying = (Student)hs.al[i];
sum += ying.score.yingfen;
}
Console.WriteLine("班级英语平均分是:"+(sum/a));
#endregion
班级排名
3.递归
函数体内调用本函数自身,直到符合某一条件不再继续调用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 递归练习
{
class Program
{
public int yang(int n)
{
int sum = ;
if(n==)
{
return ; }
sum = * (yang(n + ) + ); return sum;
} static void Main(string[] args)
{
Program y = new Program();
Console.Write("路过村字数量:");
int n = int.Parse(Console.ReadLine());
int sum = y.yang(n);
Console.Write(sum);
Console.ReadLine();
递归例题
C# Arraylist + struct 综合练习 枚举ENUE 递归的更多相关文章
- 【ACwing 93】【模版】非递归实现组合型枚举——模拟递归
(题面来自ACwing) 从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案. 输入格式 两个整数 n,m ,在同一行用空格隔开. 输出格式 按照从小到大的顺序输出所有方案,每行1个 ...
- ArrayList方法综合练习
package com.zs.windows; import java.util.ArrayList; import java.util.Scanner; import com.zs.entity.G ...
- Swift Enum 枚举
前言 枚举是一种自定义的数据类型,在 Swift 中枚举类型拥有相当高的自由度.在 Swift 语言中枚举是一级类型,它拥有在其他语言中只有类才拥有的一些特性,比如实例方法,实例构造器等. 枚举声明的 ...
- swift学习笔记之-枚举
//枚举定义 import UIKit //枚举定义 (枚举.结构体.类的名字首字母必须大写,表示为定义了新的类型) /*枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来 ...
- Java实现非递归删除目录
最近在学C#的文件系统, 发现C#的文件系统貌似比java的东西少一点, 居然连删除目录都直接做好封装了, 想到学java的时候还要自己写递归删除, 好像没写过非递归的,就在网上查了下, 关于非递归删 ...
- python14 1.带参装饰器 | wrapper 了了解 # 2.迭代器 ***** # 可迭代对象 # 迭代器对象 # for迭代器 # 枚举对象
## 复习 '''函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 ...
- day14带参装饰器,迭代器,可迭代对象 , 迭代器对象 ,for迭代器 , 枚举对象
复习 ''' 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰 ...
- Swift5 语言指南(十) 枚举
一个枚举定义了一个通用型的一组相关的值,使你在你的代码中的一个类型安全的方式这些值来工作. 如果您熟悉C,您将知道C枚举将相关名称分配给一组整数值.Swift中的枚举更灵活,并且不必为枚举的每个案例提 ...
- day14(带参装饰器,迭代器,生成器,枚举对象)
一,复习 ''' 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 ...
随机推荐
- Maven初级学习(三)常用命令
依赖关系查看 mvn dependency:list #列表形式展示依赖 mvn dependency:tree #层级关系展示依赖 mvn dependency:analyze #依赖分析 声明周期 ...
- SQLite初试...
string dataPath = "../../UserData.dbx"; //System.IO.Directory.GetCurrentDirectory() + &quo ...
- HDOJ 1576 A/B
数论水题... A/B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- php打印出来金字塔
/* 空格数($k): 第几($i)层 所以:$k+$i=$m $k=$m-$i * * 3--- ...
- Java中将unix时间戳转化为正常显示时间
在unix中时间戳是一串数字表示的,使用起来非常不方便,转化方式如下: //Convert Unix timestamp to normal date style public String Time ...
- 网络编程3-URL编程(URL)
1.URL(Uniform Resource Locatior) 统一资源占位符,表示Intenet上某一资源的地址 2.URL的组成部分 传输协议:主机名:端口号:文件名 例:http://192. ...
- DevPress GridControl添加按钮列
把列的ColumnEdit属性设置为RepositoryItemButtonEdit 把TextEditStyle属性设置为HideTextEditor; 把Buttons的Kind属性设置为Glyp ...
- LazyLoad.js及scrollLoading.js
http://blog.csdn.net/ning109314/article/details/7042829 目前图片延迟加载主要分两大块,一是触发加载(根据滚动条位置加载图片):二是自动预加载(加 ...
- [开源类库/项目] android保存崩溃时的错误信息log至本地【源码+jar包+使用说...
不知大家是否经常遇到这种情况:自己的项目有时会在没有连接到电脑时发生崩溃,好不容易发现的bug结果连接到电脑时又复现不出来了:又或者自己写的一个功能在开机启动时产生小bug导致崩溃,而刚启动的机器想让 ...
- 深入理解Java虚拟机之读书笔记四 性能监控与故障处理工具
JDK的bin目录下存在很多有效的命令行工具,它们就是jdk\lib\toos.jar类库的封装. 一.jps:虚拟机进程状况工具,查询出LVMID. 二.jstat:虚拟机统计信息监视工具, 三.j ...