2、从一个记录了学生成绩的文本文档,每个学生成绩是一行,每行是用 | 分割的数据,用 | 分割的域分别是姓名、年龄、成绩、年级,写程序取出各个年级成绩最高学生的成绩、年级放到集合中。
提示:
(1)使用 string[] lines=System.IO.File.ReadAllLines(@"c:/root.ini" ,Encoding.Default ); 从文本文件读取数据,返回值为 string 数组,每个元素是一行。
(2) root.ini 中数据可参考:
张三|18|90|2015
李四|19|100|2015
王小二|1|30|2015
张三三|18|90|2014
李四四|19|140|2014
王小小|18|30|2014



Hashtable h = new Hashtable(); string[] lines = System.IO.File.ReadAllLines(@"C:\Users\尘梦\Desktop\root.txt", Encoding.Default);
int[] scores = new int[lines.Length];
int[] years = new int[lines.Length];
for (int i = 0; i < lines.Length; i++)
{
string rot = lines[i];
string[] rots = rot.Split('|');
scores[i] = Convert.ToInt32(rots[2]);
years[i] = Convert.ToInt32(rots[3]); }
//想法知道怎么去写 但是从语法上 不会写了
//所以只能用这种看起来很笨的方法了
int max = scores[0];
int max1=scores[0];
int year = 0;
int year1 = 0;
int index = 0;
for (int i = 0; i < years.Length; i++)
{
if (years[i] == 2015 || years[i] != 2014)
{
year = years[i]; //2015
for (int j = 0; j < 3; j++)
{
if (scores[i] > max)
{
max = scores[i]; //100
} } }
else if (years[i] == 2014 || years[i] != 2015) {
year1 = years[i]; //2014
for (int x = 3; x < 6; x++) {
if (scores[i] > max1)
{
max1 = scores[i]; //140
} }
}
}
h.Add(year1, max1);//2014
h.Add(year, max);//2015
Console.WriteLine("2015成绩{0}",h[2015]);
Console.WriteLine("2014成绩{0}", h[2014]); Console.ReadKey();
Hashtable ht = new Hashtable();
string[] lines = System.IO.File.ReadAllLines(@"C:\Documents and Settings\Administrator\桌面\root.ini", Encoding.Default);
foreach (string l in lines) {
string[] root = l.Split('|');
if (ht.ContainsKey(root[3]))
{
string cj = ht[root[3]].ToString();
if (int.Parse(cj) < int.Parse(root[2])) { ht[root[3]] =root[2] ; } }
else { ht.Add(root[3], root[2]); } }
foreach (var item in ht.Keys) { Console.WriteLine("年级为{0},最高成绩为{1}",item,ht[item]);
}
Console.ReadKey();

c#分割习题的更多相关文章

  1. YTU 2974: C语言习题5.26--文件操作3

    2974: C语言习题5.26--文件操作3 时间限制: 1 Sec  内存限制: 128 MB 提交: 213  解决: 92 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...

  2. YTU 2973: C语言习题5.25--文件操作2

    2973: C语言习题5.25--文件操作2 时间限制: 1 Sec  内存限制: 128 MB 提交: 242  解决: 105 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编 ...

  3. YTU 2972: C语言习题5.24--文件操作1

    2972: C语言习题5.24--文件操作1 时间限制: 1 Sec  内存限制: 128 MB 提交: 248  解决: 94 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...

  4. 算法(第四版)C# 习题题解——2.2

    写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 查找更为方便的版本见:http ...

  5. 算法(第四版)C# 习题题解——1.4

    写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 ...

  6. python习题实例(上)_update18/07/03

    用以记录python学习过程中做过的小习题~ ヾ(◍°∇°◍)ノ゙ 1.生成两个列表,分别存放将100以内的偶数&奇数 odd_number=[] even_number=[] for i i ...

  7. 算法(第四版)C# 习题题解——1.1

    写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 善用 Ctrl + F 查找题 ...

  8. TurboLinux系统管理习题一

    TurboLinux系统管理习题一 1. 使用vi编辑文本只读时,强制存盘并退出的命令是?(单选题)A :w!        B :q!       C   :wq!        D   :e!答案 ...

  9. 跟阿铭学Linux习题答案

    第一章:走进Linux 1.简述它的发展历史,列举几种代表性的发行版 Linux之前是Unix,由于Unix收费昂贵,so,Richard Stallman 发起了开发自由软件的运动,并成立了自由软件 ...

随机推荐

  1. Cadence OrCAD如何查看整页原理图中的元件的属性

    转载: 1.选中DSN文件右键"Edit Object Properties ".在这里插入图片描述2.单击选择"Pivot"按钮. 3.找到Part refe ...

  2. STM32之旅2——按键

    STM32之旅2--按键     几乎每个项目都有用到按键,为了避免以后在做大项目的时候还在琢磨按键怎么写,现在写一个,方便以后使用.这里是最简单的独立按键驱动方法,和学习51单片机是的一样,更好的方 ...

  3. 应用启动失败,报错:The server experienced an unexpected error when processing the request

    前言 在腾讯云TKE集群中部署服务的时候,预警服务,warn一直重启,经过查询日志发现了如下的错误 The server experienced an unexpected error when pr ...

  4. maven下载依赖包下载失败

    在家办公,遇到项目的maven包下载不了,刚开始以为是vpn的问题,折腾半天反复确认之后没有发现什么问题. 同时试过阿里巴巴的maven仓库,删除过以来,重新导过包发现都不行. 后来在idea的设置里 ...

  5. Oracle 数据库下赋予用户的执行存储过程和创建表权限

    grant create any table to username; grant create any procedure to username; grant execute any proced ...

  6. Prometheus第一篇:Prometheus架构解析

    Prometheus是新一代的监控系统解决方案,原生支持云环境,和kubernetes无缝对接,的却是容器化监控解决方案的不二之选.当然对传统的监控方案也能够兼容,通过自定义或是用开源社区提供的各种e ...

  7. shell-的特殊变量-进程状态变量$$ $! $? $_详解

    一:shell的特殊变量-进程状态变量详解  1. 进程状态变量 $$ 获取当前shell的进程号(pid) $! 执行上一个指令的pid,上一个后台运行进程的进程号 $? 获取执行上一个指令的返回值 ...

  8. 多测师接口测试 --常见的接口面试题目002---高级讲师肖sir

      1.postman接口测试,它有一个功能可以设置参数化,你有用过吗 2.你测试过哪些接口 3.有做过接口测试吗?接口测试你们是怎么测的 4.多接口怎么测(postman里面有一个批量处理) 5.g ...

  9. async-await和Promise的关系

    关于异步处理,ES5的回调使我们陷入地狱,ES6的Promise使我们脱离魔障,终于.ES7的async-await带我们走向光明.今天就来学习一下 async-await. 经常会看到有了 asyn ...

  10. Jmeter之参数化函数助手__randomstring

    1.Tools->函数助手对话框,选择__Random String,2表示随机生成的字符长度:3表示从哪些字符中随机生成:然后点击生成,得到对应的变量: 5中372表示该函数随机生成的字符串, ...