Output方法调用了GetGradeSection()和 GetAve() 两个方法,先生成并定义字符串数组,然后把两个方法返回的数据与原有的信息拼接到数组中,再写入即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
public double GetGradeSection( int m , int low, int high) //分数段 { int count = 0; string file = File.ReadAllText( "Score.txt" , UTF8Encoding.Default); //把txt文件中按行存储的信息利用regex.Split按行存入string数组中 string [] records = Regex.Split(file, "\r\n" ); //开始更新视图 this .listView1.BeginUpdate(); //清空原有视图 this .listView1.Items.Clear(); // records.Length为数组的元素个数 for ( int index = 0; index < records.Length; index++) { //分割每行记录的各个字段 if (records[index].Length != 0) { string [] components = Regex.Split(records[index], " " ); if (m == 1) //数学 { if (Convert.ToDouble(components[2]) >= low && Convert.ToDouble(components[2]) <= high) { count++; } } if (m == 2) //英语 { if (Convert.ToDouble(components[3]) >= low && Convert.ToDouble(components[3]) <= high) { count++; } } if (m == 3) //政治 { if (Convert.ToDouble(components[4]) >= low && Convert.ToDouble(components[4]) <= high) { count++; } } } else break ; } return count; } |
先循环,然后进行判断,如果在分数段内就把count值加一,最后返回到Output()方法中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
public double GetAve( int m) //平均分 { double ave = 0; string file = File.ReadAllText( "Score.txt" , UTF8Encoding.Default); //把txt文件中按行存储的信息利用regex.Split按行存入string数组中 string [] records = Regex.Split(file, "\r\n" ); int length = records.Length; //开始更新视图 this .listView1.BeginUpdate(); //清空原有视图 this .listView1.Items.Clear(); // records.Length为数组的元素个数 for ( int index = 0; index < records.Length; index++) { if (records[index].Length != 0) { //分割每行记录的各个字段 string [] components = Regex.Split(records[index], " " ); if (m == 1) { ave += double .Parse(components[2]); } if (m == 2) { ave += double .Parse(components[3]); } if (m == 3) { ave += double .Parse(components[4]); } } else break ; } return ave/length; } |
把各科对应的所有的分数加在一起,然后除以总人数,即为平均分,返回到Output()方法中
拼接好的字符串数组写入List.txt文本中,在Form7中读取,在Listview中显示即可
九、清除
清除就是清空所有的文本数据,然后就把空字符写入覆盖即可
1
2
3
4
5
6
|
private void ClearAll_Click( object sender, EventArgs e) { System.IO.File.WriteAllText( "Score.txt" , string .Empty); System.IO.File.WriteAllText( "List.txt" , string .Empty); this .load_data(); } |
总结
由于之前没接触过C#,所以也不知道怎么搞,总结下来就是这一周的收获并不是很大,毕竟整天忙得不可开交,吃饭、睡觉、敲代码,最后一总结发现并没有学到什么真切的知识,毕竟一点都没学,上来就用,这种方式真的难以理解,在此我想说的是,只要敢钻研,肯钻研,再难的问题也有解决的办法,最后补充一句,忙点真的挺好的,每天都很充实,加油,奋斗在路
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。