using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace vote
{
class Program
{
static void Main(string[] args)
{
string[] voting = { "X012033001140", "C075100026080", "A050070060100", "Q040088050090" };
ArrayList a = new ArrayList();
int total_1=0, total_2=0, total_3=0, total_4 = 0;
foreach (string b in voting)
{
a.Add(b);
}
a.Sort();
for (int i = 0; i < a.Count; i++)
{
Console.WriteLine("{0,-10}{1,-10}","city","# of vote");
string d = a[i].ToString();
Console.WriteLine("{0,-10}", d.Substring(0,1));
int x,y,z,xyz;
x = Convert.ToInt32(d.Substring(1, 1)) * 100 + Convert.ToInt32(d.Substring(2, 1)) * 10 + Convert.ToInt32(d.Substring(3, 1));
y = Convert.ToInt32(d.Substring(4, 1)) * 100 + Convert.ToInt32(d.Substring(5, 1)) * 10 + Convert.ToInt32(d.Substring(6, 1));
z = Convert.ToInt32(d.Substring(7, 1)) * 100 + Convert.ToInt32(d.Substring(8, 1)) * 10 + Convert.ToInt32(d.Substring(9, 1));
xyz = Convert.ToInt32(d.Substring(10, 1)) * 100 + Convert.ToInt32(d.Substring(11, 1)) * 10 + Convert.ToInt32(d.Substring(12, 1));
total_1 += x;
total_2 += y;
total_3 += z;
total_4 += xyz;
Console.WriteLine("{0,-10}{1,-10}", "1", x);
Console.WriteLine("{0,-10}{1,-10}", "2", y);
Console.WriteLine("{0,-10}{1,-10}", "3", z);
Console.WriteLine("{0,-10}{1,-10}", "4", xyz);
}
Console.WriteLine("{0,-10}{1,-10}{2,-10}{3,-10}", "total_1","total_2","total_3","total_4" );
Console.WriteLine("{0,-10}{1,-10}{2,-10}{3,-10}", total_1, total_2,total_3, total_4);
int total = total_1 + total_2 + total_3 + total_4;
double percent_1 = (double)total_1 / (double)total;
double percent_2 = (double)total_2 / (double)total;
double percent_3 = (double)total_3 / (double)total;
double percent_4 = (double)total_4 / (double)total;
Console.WriteLine("{0,-10:f2}{1,-10:f2}{2,-10:f2}{3,-10:f2}", percent_1, percent_2, percent_3, percent_4);
SortedList tag = new SortedList(); //tag before sorting so as to retrieve info later
tag[percent_1] = "1"; //tagged info could be a class rather than just string
tag[percent_2] = "2";
tag[percent_3] = "3";
tag[percent_4] = "4";
ArrayList tag_sort = new ArrayList();
foreach (double key in tag.Keys)
{
tag_sort.Add(key);
}
tag_sort.Sort();
tag_sort.Reverse();
for (int i = 0; i < tag_sort.Count; i++)
{
double key = Convert.ToDouble( tag_sort[i]); //sorted prameter high to low
string candidate = tag[key].ToString(); //retrieve tagged info
print(candidate, key);
}
Console.Read();
}
static void print(string p, double q)
{
Console.Write("candidate " + p + " " );
Console.Write("{0,10:f2}", q);
Console.WriteLine("%");
}
}
}
---------------------------------------------------------------------------------------------
city # of vote
A
1 50
2 70
3 60
4 100
city # of vote
C
1 75
2 100
3 26
4 80
city # of vote
Q
1 40
2 88
3 50
4 90
city # of vote
X
1 12
2 33
3 1
4 140
total_1 total_2 total_3 total_4
177 291 137 410
0.17 0.29 0.13 0.40
candidate 4 0.40%
candidate 2 0.29%
candidate 1 0.17%
candidate 3 0.13%
No comments:
Post a Comment