投票管理系统.docx
《投票管理系统.docx》由会员分享,可在线阅读,更多相关《投票管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
投票管理系统
投票管理系统
1题目描述
投票选举过程:
(1)用户从键盘输入候选人的个数(提示用户输入人数为1-12)、当选标准(例:
若
为50%,只需输入50即可)。
点击确定后,由用户从键盘输入每一个候选人的姓名,提交后
即可生成候选人的信息(包括姓名和编号)。
(2)投票者就开始投票,对投票者没有姓名和编号的存储,只有结果的存储。
(3)以表格的形式展示选举结果,包括:
候选者的编号、姓名、所得票数、得票率、是否中选,并附投票人的个数和当选标准。
2类设计
2.1类图
Manager:
控制整个系统,并对投票结果以及是否当选进行控制;
UserInterface:
控制整个系统的展示;
MainGraph:
接收候选者人数、姓名、当选标准信息;
VoteGraph:
接受用户的投票信息;
ResultGraph:
展示最终的投票结果;
Candidate:
候选人的实体对象,包括候选人的各种属性;
2.2类声明
本报告采用java编程语言,一共构造了六个类:
1、Candidate;2、Manager;3、
Userlnterface;4、MainGraph;5、VoteGraph;6、ResultGraph。
2.2.1、候选者类:
Candidate
publicclassCandidate{
privateStringname〃候选者姓名
privateintid;//候选者的编号
privateintnum〃得票数量
privatedoublevoteResult;//得票率
privatebooleanisVote;//是否中选
Candidate(Stringname,intid);//Candidate的构造方法
publicStringgetName();
publicvoidsetName(Stringname);
publicintgetId();
publicvoidsetId(intid);
publicintgetNum();
publicvoidsetNum(intnum);
publicdoublegetVoteResult();
publicvoidsetVoteResult(doublevoteResult);
publicbooleanisVote();
publicvoidsetVote(booleanisVote);
2.2.2、管理类:
Manager类publicclassManager{
public
int
candidates;
//
候选人的数量
public
int
percentage;
//
当选标准(百分比)
public
int
voters=0;
//
投票人数量
Listlistc
;//
装载候选者的容器
publicstaticvoidmain(String[]args);
publicvoidcalculateResult();//计算结果
}
2.2.3、窗口的操作类Userlnterface
publicclassUserInterfaceextendsJFrame{
privatestaticfinallongserialVersionUID=1L;
publicContainercontentPanel;//当前界面控制器
publicManagermanager;//利于数据通信,主要包括:
候选人数量、当选标准、投
票者数量
publicJPanelp1;//输入信息的面板
publicJPanelp2;//投票面板
publicJPanelp3;//显示投票结果的面板
publicListlist_textfield;//装载候选人姓名的容器
publicListlist_jradiobutton;//投票
publicUserInterface(Managerm);
publicvoidupdate();//窗口中增删组建后立即更新
publicvoidaddCandi(intnum);//panel1输入侯选者姓名完成后,生成候选者对象
}
2.2.4、输入面板类:
MainGraph
publicclassMainGraph{
privateUserInterfaceuserInterface;//与主面板的通信
publicMainGraph(UserlnterfaceuserInterface);//MainGraph的构造函数
publicvoidlaunchMainGraph();//加载主面板
}
2.2.5、投票面板类:
VoteGraph
publicclassVoteGraph{
privateUserInterfaceuserInterface;//与主面板的通信
publicVoteGraph(UserInterfaceuserInterface);//构造函数
publicvoidlaunchVoteGraph();//加载投票面板
}
2.2.6、显示结果类:
ResultGraph
publicclassResultGraph{
privateUserInterfaceuserInterface;//与主面板的通信
publicResultGraph(UserInterfaceuserInterface);//构造函数
publicvoidlaunchResultGraph();//加载显示结果的面板
3功能实现
3.1窗口显示
点击运行后弹出一个窗口(Panell),要求用户输入候选人的个数(1-12)以及当选标
准(若为50%,只需输入50即可)
请辙人投票信息
常输人條議人tn令戟:
门■低〕:
f百甘IO:
1
假若依次输入12,50.点击确定后,窗口中会提示输入侯选人的姓名,候选人的编号是
从小到大依次生成的。
2总迟黑却拧竺哥卑金城
请输人投票信息
碩确人慣谐人跑々:
讳锚吁進标灌©百
请为候选者投票
卩_:
1葺[冥红窑
-爲刘罰莉
O鸥:
工眾直
匚3号:
部斉
C膚:
車丹
|C4号:
爭陆
C4垮住弘倉
J箱:
掘三
C"号:
李回
U贞号住cb丽
二q房:
主並贺
握立二|匚品不琴卑
假若共有7名投票人参与投票(每次投票完点击提交即为完成依次投票)投票过程如下:
投票者1:
1号:
吴红岩
3号:
邵芳
9号:
李丹
11号:
李四
投票者2:
2号:
刘莉莉
3号:
邵芳
4号:
尹聪敏
6号:
王小丽
8号:
王永霞
投票者3:
1号:
吴红岩
2号:
刘莉莉
4号:
尹聪敏
5号:
张三
7号:
李泽
9号:
李丹
投票者4:
1号:
吴红岩
7号:
李泽
12号:
王龙贺
投票者5:
3号:
邵芳
4号:
尹聪敏
5号:
张三
7号:
:
李泽
10号
:
王小慧
投票者6:
1号:
吴红岩
2号:
刘莉莉
4号:
尹聪敏
5号:
:
张三
10号
:
王小慧
11号
:
李四
12号:
王龙贺
投票者7:
1号:
吴红岩
2号
:
刘莉莉
3号:
邵芳
4号:
:
尹聪敏
7号:
李泽
最终的投票结果如下图所示:
扶茸斤按票人兰选标薜;
3.2功能1
整个系统的UML时序图如下图所示:
片:
nwwLto書rlnftrf'孔悔
L_jEurxhH&鬥匚r帮卉
1
1
1iftUnchFesult^^hi'
1.11.j
.:
Llil'lM13(1屯
£
1
F
C
<■
附录:
程序源代码
1、Candidate的详细代码:
publicclassCandidate{
privateStringname〃候选者姓名
privateintid;//候选者的编号privateintnum〃得票数量
privatedoublevoteResult;//得票率privatebooleanisVote;//是否中选
Candidate(Stringname,intid){
this.name=name;
this.id=id;
this.num=0;
this.voteResult=0;
this.isVote=false
publicStringgetName(){returnname
publicvoidsetName(Stringname){
this.name=name;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){this.id=id;
}
publicintgetNum(){
returnnum;
}
publicvoidsetNum(intnum){this.num=num;
}
publicdoublegetVoteResult(){
returnvoteResult;
}
publicvoidsetVoteResult(doublevoteResult){this.voteResult=voteResult;
}
publicbooleanisVote(){returnisVote;
}
publicvoidsetVote(booleanisVote){this.isVote=isVote;
}
publicStringtoString(){
returnthis.name;
}
}
2、Manager类的详细代码importjava.util.ArrayList;importjava.util.List;
publicclassManager{
publicintcandidates;//候选人的数量publicintpercentage;//当选标准(百分比)
Listlistc=newArrayList();
publicstaticvoidmain(String[]args){
Managerm=newManager();
UserIntefaceui=newUserInteface(m);
MainG