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.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 ...
随机推荐
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目 ...
- spark在windows下的安装
Windows下最简的开发环境搭建这里的spark开发环境, 不是为apache spark开源项目贡献代码, 而是指基于spark的大数据项目开发. Spark提供了2个交互式shell, 一个 ...
- AlwaysOn可用性组功能测试(二)--SQL Server群集故障转移对AlwaysOn可用性组的影响
三. SQL Server群集故障转移对AlwaysOn可用性组的影响 1. 主副本在SQL Server群集CLUSTEST03/CLUSTEST03上 1.1将节点转移Server02.以下是故障 ...
- oracle 使用ID关键字作列名导致索引失效
oracle表空间变更导致主键索引失效,重建索引即可
- dwz 在dialog里打开dialog
需要在打开dialog里再弹出一个dialog的话,需要在打开第一个dialog的地方指定rel,这样就可以弹出第二个dialog而不是替换掉第一个dialog <a class="a ...
- Ubuntu 14 如何创建软件的 启动器/桌面图标?
如题所示:Ubuntu 14 如何创建软件的 启动器/桌面图标? 解决方案: 将 /usr/share/applications/ 里面的相应图标复制到桌面即可. 同理,也可“拖动”到左边的“启动器栏 ...
- 宿主系统为Ubuntu 14,CentOS 6.5 安装VirtualBox增强工具失败:Building the OpenGL support module[FAILED]
安装先前的笔记:CentOS 6.3 中安装VirtualBOX增强工具失败:Building the main Guest Additions module[FAILED],执行了以下命令 #安装 ...
- Asp.net 网站防攻击安全设置
针对已解密的_ViewStat参数漏洞整改建议:在<system.web>下添加 <machineKey validation="3DES"/> 禁用脚本调 ...
- java网络osi基础
- BZOJ2002——[Hnoi2010]Bounce 弹飞绵羊
1.题目大意:就是给一个动态的森林求size域 2.分析: 这个就是一个动态树问题,对于每一个位置i有i+ki这个父亲, 于是这就是一个森林了,然后对于每一个修改直接lct维护就好,询问就是i到最外面 ...