C#ArrayList集合——小例题
用两种方法编写题目:输入姓名,语文分数,数学分数,英语分数到集合,求语文总分,数学平均分,英语最高分以及英语最高分是谁。
法一:一个集合的做法
Console.Write("输入总人数:");
int s = int.Parse(Console.ReadLine());
ArrayList ss = new ArrayList();
for (int i = 0; i < s; i++)
{
Console.Write("第" + (i + 1) + "的姓名:");
ss.Add(Console.ReadLine());
Console.Write("第" + (i + 1) + "英语成绩:");
ss.Add(Console.ReadLine());
Console.Write("第" + (i + 1) + "数学成绩:");
ss.Add(Console.ReadLine());
Console.Write("第" + (i + 1) + "语文成绩:");
ss.Add(Console.ReadLine());
}
for (int i = 1; i <= 4 * s; i += 4)
{
for (int j = i; j <= 4 * s - 4; j += 4)
{
if (double.Parse(ss[i].ToString()) < double.Parse(ss[j + 4].ToString()))
{
double ying = double.Parse(ss[i].ToString());
ss[i] = ss[j + 4];
ss[j + 4] = ying;
string xing = ss[i - 1].ToString();
ss[i - 1] = ss[j + 3];
ss[j + 3] = xing;
double shu = double.Parse(ss[i + 1].ToString());
ss[i + 1] = ss[j + 5];
ss[j + 5] = shu;
double yu = double.Parse(ss[i + 2].ToString());
ss[i + 2] = ss[j + 6];
ss[j + 6] = yu;
}
}
}
for (int i = 0; i < 4 * s; i++)
{
Console.WriteLine(ss[i]);
}
double sum1 = 0;
double sum2 = 0;
for (int i = 0; i < 4 * s; i+=4)
{
sum1 += double.Parse(ss[i + 2].ToString());
sum2 += double.Parse(ss[i + 3].ToString());
}
Console.WriteLine("数学总分:" + sum1);
Console.WriteLine("语文平均分:" + (sum2 / s));
Console.WriteLine("英语分数最高的人是:" + ss[0] + ",分数是:" + ss[1]);
Console.ReadLine();
法二:四个集合的做法
Console.Write("输入总人数:");
int s = int.Parse(Console.ReadLine());
ArrayList ss = new ArrayList();
ArrayList rr = new ArrayList();
ArrayList tt = new ArrayList();
ArrayList yy = new ArrayList();
for (int i = 0; i < s; i++)
{
Console.Write("第" + (i + 1) + "的姓名:");
ss.Add(Console.ReadLine());
Console.Write("第" + (i + 1) + "英语成绩:");
rr.Add(Console.ReadLine());
Console.Write("第" + (i + 1) + "数学成绩:");
tt.Add(Console.ReadLine());
Console.Write("第" + (i + 1) + "语文成绩:");
yy.Add(Console.ReadLine());
}
for (int i = 0; i < s; i++)
{
for (int j = i; j < s - 1; j++)
{
if (double.Parse(rr[i].ToString()) < double.Parse(rr[j + 1].ToString()))
{
double ying = double.Parse(rr[i].ToString());
rr[i] = rr[j + 1];
rr[j + 1] = ying;
string xing = ss[i].ToString();
ss[i] = ss[j + 1];
ss[j + 1] = xing;
double shu = double.Parse(tt[i].ToString());
tt[i] = tt[j + 1];
tt[j + 1] = shu;
double yu = double.Parse(yy[i].ToString());
yy[i] = yy[j + 1];
yy[j + 1] = yu;
}
}
}
for (int i = 0; i < s; i++)
{
Console.WriteLine(ss[i] + "\t");
Console.WriteLine(rr[i] + "\t");
Console.WriteLine(tt[i] + "\t");
Console.WriteLine(yy[i] + "\t");
}
double sum1 = 0;
double sum2 = 0;
for (int i = 0; i < s; i++)
{
sum1 += double.Parse(tt[i].ToString());
sum2 += double.Parse(yy[i].ToString());
}
Console.WriteLine("数学总分:" + sum1);
Console.WriteLine("语文平均分:" + (sum2 / s));
Console.WriteLine("英语分数最高的人是:" + ss[0] + ",分数是:" + rr[0]);
Console.ReadLine();
C#ArrayList集合——小例题的更多相关文章
- 《java入门第一季》之ArrayList集合小案例
案例一:去除集合里面的重复元素 package cn.itcast_04; import java.util.ArrayList; /* * ArrayList去除集合中字符串的重复值(字符串的内容相 ...
- ArrayList集合例题,商品库存管理(集合)
创建车库集合,存进车 public class demo1 { String pinpai; String c; int s; } import java.util.ArrayList; class ...
- C#语言基础——集合(ArrayList集合)
集合及特殊集合 集合的基本信息: System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections ...
- 2016年10月16日--ArrayList集合、特殊集合
ArrayList集合 使用前引用 using System.Collections; ArrayList集合 实例化.初始化 ArrayList al = new ArrayList(); Arra ...
- Linux 信号量 生产者消费者小例题
菜鸟偶遇信号量,擦出火花(只有不熟才会有火花).于是上网搜资料和看<Unix环境高级编程>实现了几个小例题,高手请勿喷!这几位写得非常好啊: 题目来源: http://www.it165. ...
- Java集合 -- ArrayList集合及应用
JAVA集合 对象数组 集合类之ArrayList 学生管理系统 斗地主案例 NO.one 对象数组 1.1 对象数组描述 A:基本类型的数组:存储的元素为基本类型 int[] arr={1,2,3, ...
- 【转载】C#使用InsertRange方法往ArrayList集合指定位置插入另一个集合
在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,ArrayList集合可存储多种数据类型的对象.在实际的开发过程中,我们可以使用InsertRange方法在ArrayList集合指 ...
- 【转载】C#中使用Insert方法往ArrayList集合指定索引位置插入新数据
ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,在ArrayList集合操作过程中,可以使用ArrayList集合类的I ...
- 【转载】C#中AddRange方法往ArrayList集合末尾添加另一个集合
ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,任何数据类型的变量都可加入到同一个ArrayList集合中,如果需要往一 ...
随机推荐
- CodeSnippet.info 开源说明 和 环境搭建 (第一版)
Github开源声明 本网站的代码开源,开源的目的如下 技术分享 希望业内同行贡献代码 希望能够让网站更加安全 开源地址: CodeSnippet开源地址 关于代码贡献 任何人都可以贡献代码,一般在 ...
- 【Java每日一题】20161118
package Nov2016; public class Ques1118 { public static final int NUM = 10000000; public static void ...
- struts2、jsp的简单路径的简单拦截
<filter> <filter-name>UsersFilter</filter-name> <filter-class>com.web.UsersF ...
- 初识 PHPunit stub 模拟返回数据
这是这段时间以来结合 PHPunit 文档和大牛们的讲解,想记录下自己学习到的知识,未来参考补充,完善学到的东西 我们一般使用单测对公司业务里的代码进行测试,他会帮忙找到你的一个个小小的思考不够全面的 ...
- ssh架构简单解释和vo po解释
Struts.spring.Hibernate在各层的作用 1)struts 负责 web层. ActionFormBean 接收网页中表单提交的数据,然后通过Action 进行处理,再Forwa ...
- 通过Google身份验证器加强Linux帐户安全
下载Google的身份验证模块: # wget https://google-authenticator.googlecode.com/files/libpam-google-authenticato ...
- 我开发 wangEditor-mobile 的故事
wangEditor-mobile 是一款适用于手机.手指操作的富文本编辑器,wangEditor-mobile 官网 1. 写在前面 其实,我一开始并没有想做什么手机端操作的富文本编辑器. w ...
- SQL Server数据类型转换
在SQL Server日常的函数.存储过程和SQL语句中,经常会用到不同数据类型的转换.在SQL Server有两种数据转换类型:一种是显性数据转换:另一种是隐性数据转换.下面分别对这两种数据类型转换 ...
- knockout源码分析之订阅
一.主类关系图 二.类职责 2.1.observable(普通监控对象类) observable(他其是一个function)的内部实现:1.首先声明一个名为observable的fn(这个可以说是一 ...
- 推荐12个最好的 JavaScript 图形绘制库
众多周知,图形和图表要比文本更具表现力和说服力.图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等.可视化图表可以帮助开发者更容易理解复杂的数据,提高生产的效率和 Web ...