投票管理系统 java

中文摘要
本文主要是研究如何开发一个“简单、实用”的基于Applet的投票管理系统。本系统运用到了窗口布局、按钮事件的触发和字符串分析器等相关知识,界面简洁、清爽,操作简单,用户可以自定义候选人 ,允许用户修改候选人,支持多次投票,能够自动统计出一共投的票数、废票数、弃权票数和各个候选人的得票数。除此之外,本系统还支持排序功能,为用户自动按得票数从高到低进行排序。在此基础上,本系统增加了一些实用的功能,背景音乐给人以轻松愉快的操作心情,使用说明功能使用户容易上手,还有一个保存结果功能使用户方便保存投票统计结果。
目 录

一、课程设计任务及要求
    设计一个投票管理系统界面,要求输入候选人名单后,点击确认按钮实现使用选择框代表候选人,计选择框的名字就是候选人的名字。点击取消按钮候选人输入框为空,重新输
入候选人名单。选中候选人的选择框时,表示给该候选人投一票。点击确定按钮时表示产生一张选票。点击刷新按钮回到程序的初始界面重新设置候选人。根据选择框的状态变化统计出候选人的最后得票数,并可按票选取多少点击排序按钮对候选人进行排序。(其中,最多从候选人中选取3人,如果一张选票选取多于3人,该票就作废票处理。如果一个也没投票,就作弃权处理。程序能显示一共统计了多少选票,并能统计出废票和弃权票的票数。
图1-1 操作界面
二、需求分析
这个投票管理系统的主要功能是:设置候选人,对候选人进行投票,统计出结果,并能够对结果按选票数由高到低进行排序,有背景音乐和使用帮助,最后还能保存统计结果。主要功能的用例描述如下:
1.运行投票管理系统,此时背景音乐会响起。
2.点击“使用说明”来查看使用方法。
3.在候选人文本框中输入不超过10个候选人,候选人之间用空格隔开,点击确认以完成候选人的设置,点击旁边的取消可以从新设置候选人。
4.在生成的候选人选框中选择想要选的候选人,点击下面的“确定”按钮以完成选票的填制,此时在显示统计结果的地方能即时的看到选票统计结果。
5.重复第4步来填制下一张选票。
6.点击“排序”按钮后统计结果会按照候选人的票数从高到低进行排列。
7.点击“保存结果”会弹出一个文本域对话框,里面有刚刚统计的结果,ctrl+a全部选中,再ctrl+c复制,这样就可以将结果粘贴到别处保存下来。
8.点击“刷新”后回到主界面,重新设置候选人,进行下一轮投票。
三、设计思路
先制作主界面,然后再实现各个按钮的功能。本程序主要需要掌握窗口的布局和按钮事件的触发相关知识,所有部件都可以添加到面板Panel上,显示提示信息需要用到标签Label,输入框需要新建TextField,按钮用Button,选票需要新建Checkbox复选框来实现,至于下面那个用来显示各个候选人得票数的要先新建文本框TextField添加到一个小面板上,再新建个Scroll滚动条,将建有文本框的面板添加到Scroll滚动条上就可以了。为了做出这个界面还需要对各个部件进行摆放,为了达到那个效果,可以将整个界面分成很多个小块,每一小块都是个面板,最后再拼接起来,每个小块都设置好布局setLayout,在这里主要用到网格布局GridLayout,流式布局FlowLayout和BorderLayout方位布局,设置面板的颜可以用setBackground()来实现。
做好界面后,接下来就需要去实现各个功能了。因为各个功能都是通过按钮来实现的,所以要对按钮进行注册监听addActionlistener(),监听之后就是对按钮事件的处理了actionPerformed(ActionEvent e)。要一个字符串中的人名,可以用StringTokenizer字符串分析器来获取候选人的名字,其中还要用到里面的一些方法,比如nextToken()、hasMoreTokens()、countTokens()。还有setEnabled()方法可以设置按钮是否可用,setState(boolean)可以设置复选框是否激活,在文本框或文本域中输出和获取信息可以分别用setText()和getText(),根据候选人数将多余的复选框去掉,可以让设置多余的为不可见setVilible(flase)这样就行了。对于附加功能如背景音乐,可以用AudioClip接口、public void play()控制播放、public void loop()实现循环播放、public void stop()停止播放当前音乐、使用说明和保存结果都是需要通过新建Franme窗体实现的。
四、详细设计
图4-1流程图
界面设计时,先定义好各个部件:标签Label、文本框TextFiled、按钮Button、复选框Checkbox、Scroll滚动条,我把整个界面分成很多个小面板,每一行部件都在一个小面板上面,最后将这些小面板一个个添加上去add(),像流式布局FlowLayout、方位布局Bor
derLayout、网格布局GridLayout主要是用到了这三种布局,中间那几块面板通过setBackground()将其背景改为绿。经过不断修改测试运行,一个投票系统的主界面就做出来了。
setLayout(new BorderLayout());
        pa.setLayout(new GridLayout(7,1));

本文发布于:2024-09-22 01:31:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/94387.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:表决器
下一篇:电子投票系统
标签:候选人   按钮   点击   界面   结果
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议