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.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 ...
随机推荐
- CentOS的SSH,Putty配置说明
基本资源: CentOS5.5 (32位) , Mysql6.0 ,Putty ,SSH Step: 1.VMWare中装好CentOS A. 可能存在ifconfig等命令无法正常识别) ...
- HDOJ 4750 Count The Pairs
按边长从小到大排序...再逐个加入(就像MST一样)最先联通的点之间最长路径中的最小值就是新加入的边的长.... Count The Pairs Time Limit: 20000/10000 MS ...
- TP3.1 中URL和APP区别
1.__URL__指当前模块地址,就是当前的action的地址.(每个__action都是一个模块) eg:当前打开config.html,那么config.html里边的__URL__/sav ...
- 资源URL地址记录
1. 如何搭建VPN服务器 http://www.360doc.com/content/11/0217/11/3084932_93749130.shtml http://www.softxp.net/ ...
- PHP 如何显示大数字,防止显示为 科学计数法 形式
PHP 数字超过一定长度时,会自动转换为 科学计数法 的形式,如 1.2345678912346E+16: 如何 避免转换,让它原样展示呢? 不过,可以用PHP函数 number_format() 来 ...
- 第2月第1天 命令(Command)模式
http://www.tracefact.net/Design-Pattern/Command.aspx 命令模式把一个请求或者操作封装到一个对象中.命令模式允许系统使用不同的请求把客户端参数化,对请 ...
- hash-5.ConcurrentHashMap
http://www.cnblogs.com/dolphin0520/p/3932905.html有时间细看
- LazyLoad.js及scrollLoading.js
http://blog.csdn.net/ning109314/article/details/7042829 目前图片延迟加载主要分两大块,一是触发加载(根据滚动条位置加载图片):二是自动预加载(加 ...
- 搞明白这八个问题,Linux系统就好学多了
导读 正在犹豫入坑Linux学习的同学或者已经入坑的同学,经常会问到这样八个问题.今天,这些问题我都会一一解答,希望我的看法能帮助各位同学.常言道“好的开始是成功的一半”,如果你明白了以下八个问题,就 ...
- [codevs1001]舒适的路线
[codevs1001]舒适的路线 试题描述 Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,-,N),这些景点被M(0 ...