Linux综合实验报告--投票系统
综合性、设计性实验报告
姓名:_____张越男 _ 学号______33号______ 专业 班级_软件1002班_ 实验课程名称指导教师及职称_____周迪民_ __ _ 开课学期 上课时间 年 月 日
湖南科技学院教务处编印
实验设计方案:
按照软件工程规定的流程进行项目的开发。
五.系统总体设计: 在前面对用户需求的分析和研究的过程中,对于本系统中的几个主要的功能 模块大致有了一个抽象的认识。 下面通过总体设计,给出投票管理系统的模块结 构、流程描述和用户界面布局。
1.系统结构模块图: 投票管理系统分为前、后台两部分设计,前台主要实现投票、评论、投票结 果的现实以及用户注册、登陆、发布评论等信息。后台主要实现的功能为投票、 评论等信息的管理等。 如图 1 所示。
2.系统流程图:
投票管理系统的系统流程如图 2、图 3 所示。
图2
图3
3.系统界面设计: ①投票管理系统主页面设计,具体设计效果如图 4 所示:
②查看投票情况页面设计,效果如图 5:
③查看评论页面设计,效果如图 6:
④管理员后台主页面设计,效果如图 7:
4.数据库设计: 1)数据库概念设计: 注册用户实体包括编号、用户名、密码,评论信息实体包括编号、标题、内 容、时间。每个用户可以有多条评论。其实体 E-R 图如图 8 所示:
2)物理数据库设计: 采用 Sql Server 2005 数据库,其物理数据库设计,如图 9:
指导
老师对实验设计方案的意见:
实验报告:
论,不能评论;
5.管理员登陆:用户根据合法的用户名和密码即可登录到后台管理页面进行修 改、删除、增加投票项,以及注册用户、评论管理等。
三.对实验现象、数据及观察结果的分析与讨论: 系统关键类: 1.数据库访问类 db/DBSConn.java,采用 JDBS 方法与数据库建立连接,主要代 码如下: public class DBConn { private String driverStr =
"com.microsoft.sqlserver.jdbc.SQLServerDriver"; private String connStr = "jdbc:sqlserver://localhost:1433;
DatabaseName=vote"; private Connection conn = null; private String username="sa"; private String password="welcome"; public DBConn()
{ } public java.sql.Connection getConn() { try { Class.forName(driverStr); conn = DriverManager.getConnection(connStr, username, password); } catch (Exception e) { e.printStackTrace(); } return this.conn; } }
2.管理员相关操作类 db/DBCtrol.java,其功能为管理员登陆、更新投票选项、首 页显示投票选项等。主要代码如下: 获取投票选项方法: public List getVoteList() { DBConn dbconn = new DBConn(); List list = new ArrayList(); Connection conn = dbconn.getConn(); //获取数据库连接
String sqltemp = "select * from vote order by id DESC"; //查询投票选项 语句 try { Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(sqltemp); while (rs.next()) { 入 list 中 Vote vote = new Vote(); vote.setId(rs.getInt("id")); vote.setLid(rs.getInt("lid")); vote.setVcount(rs.getInt("vcount")); vote.setVname(rs.getString("vname")); list.add(vote); } } catch (Exception e) { } return list; } //读取 rs 数据集放
3.系统关键页面设计: 1)index.jsp 首页主要代码: <%
int check= role.getChecks(); 单项投票
//获取投票选项时多项投票还是
String taction = request.getParameter("action"); //获取表单的 action 方法 String action = (taction == null)?"no":taction; String items = request.getParameter("items"); if (check==0 && action.equals("tou")) 进行投票 { if (session.getAttribute("times")==null){ if(items != null){ dbctrol.updataVcountB
yId(items); session.setAttribute("times","do"); out.print("<script>alert('投票成功,谢谢支持!!');history.back();</script>"); }else{ out.print("<script>alert(' 您 没 有 选 择 任 何 投 票 项 目 , 请 返 回 后 重 新 输 入!!');history.back();</script>"); } }else{ out.print("<script>alert(' 您 已 经 投 过 票 , 请 不 要 重 复 投 票!');history.back();</script>"); } } //如果表单提交过来的是 tou 则 //判断表单提交的方法
%> 首页显示投票选项代码: <% List list = dbctrol.getVoteList(); if(list!= null) { for(int i=0;i<list.size();i++){ Vote vote = (Vote)list.get(i); %> <input type="radio" name="items" value="<%=vote.getId()%>"> <%=vote.getVname()%> 名称 <br> <% } } %> 首页显示评论代码: <% words wd = new words(); user users = new user(); ResultSet words_rs=wd.show_all_words(); //获取所有评论 //输出 id //输出投票 //获取投票选项内容
int i=0; while(words_rs.next()) 显示 { int UserID = words_rs.getInt("UserID"); users.setUserID(UserID); if(users.init()) { int WordsID=words_rs.getInt("WordsID"); String WordsTitle = words_rs.getString("WordsTitle"); //评论名 称 String WordsTime = words_rs.getString("WordsTime"); //评论 时间 %> <tr> <td width="10%" align="center"><%=WordsID%></td> <tdwidth="40%" align="left"> <a href="words_detail.jsp?WordsID=<%=WordsID%>"> <%=WordsTitle%></a></td> <td width="35%" align="left"><%=WordsTime%></td> <td width="15%" align="left"><%=users.getUserName()%></td> //评论人 </tr> //从数据集中读取循环
<% } } %>
2)查看投票情况页面主要代码: <% List list = dbctrol.getVoteList(); if(list!= null) { for(int i=0;i<list.size();i++){ Vote vote = (Vote)list.get(i); double ii = (vote.getVcount()/totalnum)*100; NumberFormat formatter= NumberFormat.getNumberInstance(); formatter.setMaximumFractionDigits(2); String vs %> <TR> <TD width="46%" class="css"><%=i%>、<%=vote.getVname()%> <FONT color="#666666">(</font><FONT color="#cc0000"> <%=vote.getVcount()%></font><FONT color="#666666">)</font></TD> <TD width="30%" align="left" class="css"><img src= …… 此处隐藏:2176字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




