-1
對於一個學校任務,我製作了一個投票機,可以對選票進行統計並打印出來。這是VotingMachine類及其所有方法。爲什麼我的投票模擬器不工作?
public class VotingMachine {
//declaring instance variables
private int democratVotes;
private int republicanVotes;
private int independentVotes;
//default constructor
public VotingMachine(){
}
//parameter constructor for changing values
public VotingMachine(int demVotes, int repubVotes, int indeVotes){
this.democratVotes = demVotes;
this.republicanVotes = repubVotes;
this.independentVotes = indeVotes;
}
//getter methods
public int getDemocratVotes(){
return democratVotes;
}
public int getRepublicanVotes(){
return republicanVotes;
}
public int getIndependentVotes(){
return independentVotes;
}
//setter methods
public void setDemocratVotes(int votes){
this.democratVotes = votes;
}
public void setRepublicanVotes(int votes){
this.republicanVotes = votes;
}
public void setIndependentVotes(int votes){
this.independentVotes = votes;
}
//increment votes by 1 methods
public void voteDemocrat(){
democratVotes += 1;
}
public void voteRepublican(){
republicanVotes += 1;
}
public void Independent(){
independentVotes += 1;
}
//overloaded methods (methods with same names as above)
public void voteDemocrat(int votes){
democratVotes += votes;
}
public void voteRepublican(int votes){
republicanVotes += votes;
}
public void voteIndependent(int votes){
independentVotes += votes;
}
//method to clear all votes
public void clearVote(){
democratVotes = 0;
republicanVotes = 0;
independentVotes = 0;
}
//method to calculate total votes
public int totalVotes(){
int totalVotes = democratVotes + republicanVotes + independentVotes;
return totalVotes;
}
//methods to calculate percentages while calling totalVotes()
public double percentDemocrat(){
double percentDemocrat = democratVotes/totalVotes();
return percentDemocrat;
}
public double percentRepublican(){
double percentRepublican = republicanVotes/totalVotes();
return percentRepublican;
}
public double percentIndependent(){
double percentIndependent = independentVotes/totalVotes();
return percentIndependent;
}
//method to print statistics
public void percentStats(){
System.out.println("Democrats: " + democratVotes);
System.out.println("Republicans: " + republicanVotes);
System.out.println("Independent: " + independentVotes);
System.out.println("Total Votes: " + totalVotes());
System.out.println("Percent Democrat Votes: " + percentDemocrat());
System.out.println("Percent Republican Votes: " + percentRepublican());
System.out.println("Percent Independent Votes: " + percentRepublican());
}
}
這是我使用項目的驅動程序:
public class MachineDriver {
public static void main(String[] args) {
VotingMachine test = new VotingMachine();
test.voteDemocrat();
test.voteDemocrat();
test.voteRepublican();
test.voteIndependent();
test.percentStats();
}
}
然而,當我運行程序percentDemocrat,percentRepublican和percentIndependent全部顯示爲0.0。我做錯了什麼?下面是在控制檯中顯示的內容:
民主黨:2名 共和黨人:1 獨立:1個 總投票:4 百分比民主黨投票:0.0 百分比共和黨投票:0.0 百分比獨立投票:0.0
在'percentDemocrat()'和其他方法,您使用的數學數字是'int's。你需要將它們轉換爲'float'(或'double's)來獲得正確的浮點數答案。例如:'double percentDemocrat =(double)democratVotes /(double)totalVotes();' – Frecklefoot