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