@font-face { font-family: "宋体"; }@font-face { font-family: "宋体"; }@font-face { font-family: "@宋体"; }@font-face { font-family: "Cambria"; }@font-face { font-family: "Songti SC Regular"; }@font-face { font-family: "@Songti SC Regular"; }p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: "Times New Roman"; }h1 { margin: 17pt 0cm 16.5pt; text-align: justify; line-height: 240%; page-break-after: avoid; font-size: 22pt; font-family: "Times New Roman"; }.MsoChpDefault { font-family: Cambria; }div.WordSection1 { }ol { margin-bottom: 0cm; }ul { margin-bottom: 0cm; }
第二次作业
你的任务是去实现一个投票系统for electing a leader of a political party. 过程是这样的:
投票规则如下:
1、每个投票者只可以投一次票. 投票者通过生成的随机数在第一个到最后一个候选人之间选择一个候选人来进行投票.
2.、每一个候选人都保存着投票者给他们投票的记录
3、选举之后, 拥有最高投票数的候选人当选.
第一部分)构建简单的类
设设计一个Person类包含下列信息
1.1. 字段:
name:包含这个人的名字
age:这个人的年龄
salary: 这个人的薪水 (一个实数)
id:这个人的id. 一个人的id不能通过任何函数来有意无意的改变(current or future). It is assigned by the program at creation time它是由(程序)创建时指定的 and 并且在创建纪录时进行排序. 也就是说, 第一个人的id是1; 第二个人的id是2 等等.
1.2方法:
构造函数 Person(name,age,salary)
一个打印函数, 将打印出这个人信息
设设计一个Voter类 将从Person类继承 并且有下面信息
2.1. 字段:
totalNumVoters: 一个静态变量,记录投票者总人数
2.2. 函数:
构造函数
输出函数:输出投票者信息
选择候选人函数:随机选择一个候选人
Person SelectCadidate( PersonSet candidates )
投票函数:对随机的候选人进行投票Vote( Candidate aCandidate )
设设计一个类Candidate,将从Person类继承,并且有如下信息:
3.1. 字段(变量):
_voterSet: 对自己投票的投票者集合使用下面的容器进行存储
_numCandidates:获得的总票数
3.2. 函数:
构造函数 Candidate(name, age, salary)
AddVoter( Voter aVoter )添加一个投票者到候选人的集合中
GetAverageVotersAge(): 打印给这个候选人投票的投票者的平均年龄
GetAverageVotersSalary(): 打印给这个候选人投票的投票者的平均薪水
第二部分)构建一个容器类1、 建立一个PersonSet的模型类, 并且用来存储Person类型的对像
2、添加元素,添加时请注意,如果数组中已经包含过此元素,不再进行添加。
3、插入元素,插入元素时,请判断好插入的位置是否正确
4、查看元素总数
5、删除指定元素,判断删除的位置元素是否存在,再进行删除
6、删除最后一个元素
7、删除所有元素
8、查看数组中所有元素的信息
public class MyPersonSet { ArrayList arrP = new ArrayList(); }
第三部分)测试规格
1、在完成了你的类之后,你应该可以在执行下面的主程序
//定义一些固定(常量)的投票者
Voter v1 = new Voter("John", 20, 6000,1);
Voter v2 = new Voter(“Frank", 26, 30000,2);
Voter v3 = new Voter("Anna", 20, 199600,1);
Voter v4 = new Voter("James", 67, 9600,2);
Voter v5 = new Voter("Jane", 40, 8, 29600,3);
// 定义三个候选人
Candidate c1 = new Candidate("April", 67, 9600 );
Candidate c2 = new Candidate("May", 40, 8, 29600);
Candidate c3 = new Candidate("June", 40, 8, 29600);
// 添加投票者
PersonSet voters;
voters.add(v1);
voters.add(v2);
voters.add(v3);
voters.add(v4);
voters.add(v5);
// 添加候选人
PersonSet candidates;
candidates.add(c1);
candidates.add(c2);
candidates.add(c3);
//选择投票人物
投票者通过自己的方法进行投票给候选人
// 选择领导
遍历候选者的集合,查看自己所得的票数,找出最多(处理两个人相同数量情况)}