1、投票管理系统投票管理系统1题目描述投票选举过程:(1 )用户从键盘输入候选人的个数(提示用户输入人数为 1-12)、当选标准(例:若为50%,只需输入50即可)。点击确定后,由用户从键盘输入每一个候选人的姓名, 提交后 即可生成候选人的信息(包括姓名和编号)。(2)投票者就开始投票,对投票者没有姓名和编号的存储,只有结果的存储。(3)以表格的形式展示选举结果,包括:候选者的编号、姓名、所得票数、得票率、是否中 选,并附投票人的个数和当选标准。2类设计2.1类图Man ager:控制整个系统,并对投票结果以及是否当选进行控制; Userinterface :控制整个系统的展示;MainGraph
2、 :接收候选者人数、姓名、当选标准信息; VoteGraph :接受用户的投票信息;ResultGraph :展示最终的投票结果;Can didate :候选人的实体对象包括候选人的各种属性;22类声明本报告采用java编程语言,一共构造了六个类: 1、Can didate; 2、Ma nager; 3、Userinterface ; 4、MainGraph ; 5 VoteGraph ; 6、ResultGraph。2.2.1、候选者类:Can didatepublic class Can didate private String name 候选者姓名private int id ; 候选
3、者的编号private int num 得票数量private double voteResult; / 得票率private boolea n is Vote : / 是否中选Candidate(String name, int id) ; /Candidate 的构造方法public String getName();public void setName(String name);public int getld();public void setld( int id);public int getNum();public void setNum( int num);public dou
4、ble getVoteResult();public void setVoteResult( double voteResult);public boolean isVote();public void setVote( boolean isVote);2.2.2 管理类:Manager 类 public class Manager publicintcan didates ;/候选人的数量publicintpercentage ;/当选标准(百分r i 、publicintvoters = 0;/投票人数量List listc;/装载候选者的容器public static void main
5、(String args);public void calculateResult() ; / 计算结果2.2.3 窗口的操作类 Userl nterfacepublic class Userlnterface extends JFrame private static fin al I ong serialVersi onUID = 1L;public Contain er conten tPa nel ; / 当前界面控制器public Manager manager; 利于数据通信,主要包括:候选人数量、当选标准、投票者数量public JPanel p1;public JPanel p
6、2;public JPanel p3;输入信息的面板/投票面板显示投票结果的面板public List list_textfield ; / 装载候选人姓名的容器public List listjradiobutton ; / 投票public Userl nterface(Ma nager m);public void update(); 窗口中增删组建后立即更新public void addCandi( int num); /panel 1 输入侯选者姓名完成后生成候选者对象2.2.4输入面板类:MainGraphpublic void launchResultGraph(); 加载显示结
7、果的面板3功能实现3.1窗口显示点击运行后弹出一个窗口( Pan ell),要求用户输入候选人的个数( 以及当选标准(若为50%,只需输入50即可)请辙人投票信息常输人條議人tn令戦:门低:f百甘10 :假若依次输入12,50点击确定后,窗口中会提示输入侯选人的姓名 候选人的编号是从小到大依次生成的。2总迟黑却拧竺哥卑金城候班人1的妬&:请为候选者投票卩1葺冥红窑爲刘罰莉3号:部斉4垮住弘倉4号:爭陆J箱:掘三U贞号住cb丽q房:主並贺握立二品不琴卑假若共有7名投票人参与投票(每次投票完点击提交即为完成依次投票)投票过程如下:投票者1:1号:吴红岩3号:邵芳9号:李丹11号:李四投票者2 :2
8、号:刘莉莉8号:王永霞投票者3:3号:邵芳4号:尹聪敏6号:王小丽1号:吴红岩2号:刘莉莉4号:尹聪敏5号:张三7号:李泽投票者4:9 李丹1号:吴红岩投票者5:7口 .李泽12号:王龙贺3号:邵芳10号:王小慧 投票者6:4号:尹聪敏5号:张三7号:李泽1号:吴红岩2号:刘莉莉4号:尹聪敏5号:张三10号住小慧11号:李四12号:王龙贺投票者7:1号:吴红岩 2号:刘莉莉 3号:邵芳4号:尹聪敏7号:李泽最终的投票结果如下图所示:最终结吴3.2功能1扶茸斤按票人 兰选标薜;整个系统的UML时序图如下图所示:ManagerIJserhterfaceIHainaph |Voiejraph |Re
9、sult Graph1Can didi ate1片:nww Lto 害 rlnftrf孔悔LJEurxhH&鬥匚 r 帮卉111 iftUnchFesultAAhi1.1 i.j.:Llill M 13(1 屯IteFIC - 1附录:程序源代码1、Can didate的详细代码:public class Can didate private String name 候选者姓名private int id ; 候选者的编号 private int num 得票 数量private double voteResult; / 得票率 private boolean isVote : /是否中选Ca
10、ndidate(String name, int id) this . name= name;this . id = id;this num= 0;this . voteResult = 0;this . isVote = falsepublic String getName() return n ame public void setName(String name) this name= name;public int getld() return id ;public void setld( int id) this . id = id;public int getNum() retur
11、n num;public void setNum( int num) this . num= num;public double getVoteResult() return voteResult;public void setVoteResult( double voteResult) this . voteResult = voteResult;public boolean isVote()return isVote ;public void setVote( boolean isVote) this . isVote = isVote;public String toString() r
12、eturn this . name;2、Manager 类的详细代码 import java.util.ArrayList; importjava.util.List;public class Manager public int candidates ; 候选人的数量 public int percentage ; / 当 选标准(百分比)List listc = new ArrayList(); public static void main(String args) Man ager m = new Man ager();Userl nteface ui = new Userl ntef
13、ace(m);Mai nGraph mai nGraph = new Main Graph(ui);main Graphaun chMa in Graph();can didates ; i+)public void calculateResult() double d; =for (int i = 0; i = percentage * 0.01) c.setVote( true );3、Userinterface类的详细代码:import java.awt.Color;import java.awt.Container;import java.awt.Font;import java. awt. eve nt.Acti on Eve nt;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.lterator; import java.util.List;import iava.util.Vector;import javax.swing. JButton;import javax.swing. JFrame;import javax.swi ng.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1