java做投票系統(tǒng),設(shè)計程序如下:
成都創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元平山做網(wǎng)站,已為上家服務(wù),為平山各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
import java.util.Set; //調(diào)用java.util.Set
import java.util.HashSet;//調(diào)用java.util.HashSet
import java.util.Iterator;//調(diào)用java.util.Iterator
public class Voter { //定義類
private static final int MAX_COUNT=100; //靜態(tài)變量,最大投票數(shù),到達(dá)此數(shù)就停止投票
private static int count; //靜態(tài)變量,投票數(shù)
private static SetVotervoters=new HashSetVoter(); //靜態(tài)變量,存放所有已經(jīng)投票的選民
private String name; //實例變量,投票人姓名
public Voter(String name){this.name=name;} //定義名字字符串函數(shù)
/**投票*/
public void voteFor(){ //投票函數(shù)
if(count==MAX_COUNT){ //如果計數(shù)結(jié)果等于投票人數(shù)最大值
System.out.println("投票活動已經(jīng)結(jié)束"); //打印投票活動已經(jīng)結(jié)束
return; //返回主函數(shù)
}
if(voters.contains(this)) //如果已包含投票人姓名
System.out.println(name+":你不允許重復(fù)投票!"); //打印投票人姓名和你不允許重復(fù)投票!
else{ //否則
count++; //計數(shù)加一
voters.add(this); //調(diào)用字符串函數(shù)添加投票人姓名
System.out.println(name+":感謝你投票!"); //打印投票人姓名和感謝你投票!
}
}
/**打印投票結(jié)果*/
public static void printVoteResult(){ //投票結(jié)果函數(shù)
System.out.println("當(dāng)前投票數(shù)為:"+count); //打印當(dāng)前投票數(shù)為,并且統(tǒng)計人數(shù)
System.out.println("參與投票的選民名單如下"); //打印參與投票的選民名單如下
for(Voter voter:voters){ //遍歷voters集合
System.out.println(voter.name); //打印輸出投票名稱
}
}
public static void main(String args[]) { //主函數(shù)
Voter tom=new Voter("Tom"); //開辟空間定義元素tom
Voter mike=new Voter("Mike"); //開辟空間定義元素mike
Voter jack=new Voter("Jack"); //開辟空間定義元素jack
tom.voteFor(); //進(jìn)入tom的投票函數(shù)
tom.voteFor(); //進(jìn)入tom的投票函數(shù)
mike.voteFor(); //進(jìn)入mike的投票函數(shù)
jack.voteFor(); //進(jìn)入jack的投票函數(shù)
Voter.printVoteResult(); //投票結(jié)果打印函數(shù)
}
}
把投票的信息放在 ServletContext對象 中。也就是 JSP 內(nèi)置對象中的application對象。因為投票信息是所有用戶都要看的信息,所以要把他放在 ServletContext對象 中。這樣只要是 應(yīng)用一加載就會創(chuàng)建 ServletContext對象 直到應(yīng)用銷毀,也就是服務(wù)器關(guān)閉時,ServletContext對象 才銷毀。這樣就使得所有用戶公用一個對象存儲信息。具體的實現(xiàn)那要根據(jù)你自己的需求,具體設(shè)計。
public class CServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {int n = 0;ServletContext application = getServletContext();Integer num = (Integer) application.getAttribute("num");if (num != null) {n = num;}application.setAttribute("num", ++n);response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();out.println("你是第" + n + "個訪問者");}}
上面是個類似的例子。你可以參考一下。package servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;這是需要導(dǎo)入的包
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Vote {
public static void main(String args[]) {
try {
String[] persons = new String[]{"1","2","3"};
Integer[] votes = new Integer[]{0,0,0};
BufferedReader sin = new BufferedReader(new InputStreamReader(
System.in));
String readline;
System.out.println("================投票開始===============");
System.out.println("請按1,2,3投票,Enter確認(rèn)");
System.out.println("按0--Enter結(jié)束投票,公布結(jié)果\n");
readline = sin.readLine(); // 從系統(tǒng)標(biāo)準(zhǔn)輸入讀入一字符串
while (!readline.equals("0")) {
String voteStr = readline;
if(persons[0].equals(voteStr)){
votes[0] +=1;
}else if(persons[1].equals(voteStr)){
votes[1] +=1;
}else if(persons[2].equals(voteStr)){
votes[2] +=1;
}else{
System.out.println("無效的投票!");
}
readline = sin.readLine(); // 從系統(tǒng)標(biāo)準(zhǔn)輸入讀入一字符串
} // 繼續(xù)循環(huán)
System.out.println("================投票結(jié)束===============");
System.out.println("================結(jié)果公布===============");
System.out.println(persons[0]+"================"+persons[1]+"==============="+persons[2]);
System.out.println(votes[0]+"================"+votes[1]+"==============="+votes[2]);
} catch (Exception e) {
System.out.println("Error" + e); // 出錯,則打印出錯信息
}
}
}
import?java.lang.reflect.Array;
import?java.util.Arrays;
import?java.util.Scanner;
public?class?Test?{
public?static?void?Ballots()?{
Scanner?sc?=?new?Scanner(System.in);
int[]?count?=?new?int[7];
String?instr?=?"";
int?spoiled?=?0,?sum?=?0;
for?(int?i?=?0;?i??count.length;?i++)?{
count[i]?=?0;
}
System.out.println("輸入方框數(shù)字代碼投票給歌手,輸入.結(jié)束?");
do?{
System.out.print("張學(xué)友[0],?劉德華[1],?小剛[2],?孫燕姿[3],?梁靜茹[4],?王杰[5],?劉若英[6])??");
instr?=?sc.nextLine();
if?(instr.equals("0"))?{
count[0]++;
}?else?if?(instr.equals("1"))?{
count[1]++;
}?else?if?(instr.equals("2"))?{
count[2]++;
}?else?if?(instr.equals("3"))?{
count[3]++;
}?else?if?(instr.equals("4"))?{
count[4]++;
}?else?if?(instr.equals("5"))?{
count[5]++;
}?else?if?(instr.equals("6"))?{
count[6]++;
}?else?{
if?(!instr.equals("."))?{
spoiled++;
}
}
}?while?(!instr.equals("."));
System.out.println("投票結(jié)束,結(jié)果是?:?\n");
System.out.println("歌手\t\t得票數(shù)");
System.out.println("======\t\t=========");
for?(int?i?=?0;?i??count.length;?i++)?{
if?(i?==?0)?{
System.out.println("??張學(xué)友??\t\t"?+?count[i]);
}?else?if?(i?==?1)?{
System.out.println("??劉德華??\t\t"?+?count[i]);
}?else?if?(i?==?2)?{
System.out.println("??小剛??\t\t"?+?count[i]);
}?else?if?(i?==?3)?{
System.out.println("??孫燕姿??\t\t"?+?count[i]);
}?else?if?(i?==?4)?{
System.out.println("??梁靜茹??\t\t"?+?count[i]);
}?else?if?(i?==?5)?{
System.out.println("??王杰??\t\t"?+?count[i]);
}else?if?(i?==?6)?{
System.out.println("??劉若英??\t\t"?+?count[i]);
}
}
for?(int?t?:?count)?{
sum?+=?t;
}
System.out.println("棄權(quán)票數(shù):?"?+?spoiled);
System.out.println("總票數(shù):?"?+?sum);
}
public?static?void?main(String[]?args)?{
System.out.println("投票開始:");
Scanner?sc?=?new?Scanner(System.in);
String?is?=?"";
do?{
Ballots();
System.out.println("繼續(xù)第二輪投票??(y/n):");
is?=?sc.nextLine();
}?while?(is.equals("y"));
}
}