彩票选号与中奖模拟Web系统 (20 分)---HTML+Servlet

基于HTML+Servlet设计实现一个小型的彩票选号和公布中奖的Web系统,功能包括:1)服务器端随机生成7个1-30之间的数字,作为本次彩票的中奖号码;2)客户端提供一个含有7个文本框的界面,用户可以在每个文本框选择一个1-30之间的整数,选择完毕后提交;提交后服务器端判断用户选择的数字中了几个号码。如果中了7个号,界面为用户显示中了一等奖;如果中了6个号,界面为用户显示中了二等奖;如果中了5个号,界面为用户显示中了三等奖;少于5个号,界面为用户显示未中奖。

 

思路:

这个还是相对比较容易的,客户端就是一个用html写一个输入界面(带文本框的)(表单),把它发到服务器端即一个servlet,处理判断一下就好,要注意输入的是整数,可服务器端的接收只能接收String类型的,所以你需要进行类型转换,两次哦(不懂看代码)

文件目录:

答案:

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
  <form action="judge" name="init"method="post"><br>
    <table>
      <tr>
        <td>第一个数:&nbsp;&nbsp;<input type="text" name="num1"/><br>
      </tr>
      <tr>
        <td>第二个数:&nbsp;&nbsp;<input type="text" name="num2"/><br>
      </tr>
      <tr>
        <td>第三个数:&nbsp;&nbsp;<input type="text" name="num3"/><br>
      </tr>
      <tr>
        <td>第四个数:&nbsp;&nbsp;<input type="text" name="num4"/><br>
      </tr>
      <tr>
        <td>第五个数:&nbsp;&nbsp;<input type="text" name="num5"/><br>
      </tr>
      <tr>
        <td>第六个数:&nbsp;&nbsp;<input type="text" name="num6"/><br>
      </tr>
      <tr>
        <td>第七个数:&nbsp;&nbsp;<input type="text" name="num7"/><br>
      </tr>
      <tr>
        <td colspan="2" align="center"><input type="submit" name="submit" value="提交"/><br>
      </tr>
    </table>
  </form>
</body>
</html>

judge.java(servlet)

package servlet;
import java.util.*;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;



/**
 * Servlet implementation class judge
 */
@WebServlet(asyncSupported = true, urlPatterns = { "/judge" })
public class judge extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public judge() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=utf-8");
		Set<Integer> cp = new TreeSet<Integer>();
		PrintWriter out = response.getWriter();
		try {
			//产生随机数
			Random rand = new Random();
			while(cp.size()<7)
			{
				cp.add(rand.nextInt(30)+1);//生成[1,31)区间的随机整数
			}
			//接收表单数据(要类型转换)
			String num1 = (String)request.getParameter("num1");
			String num2 = (String)request.getParameter("num2");
			String num3 = (String)request.getParameter("num3");
			String num4 = (String)request.getParameter("num4");
			String num5 = (String)request.getParameter("num5");
			String num6 = (String)request.getParameter("num6");
			String num7 = (String)request.getParameter("num7");
			//数据处理
			//表单填写不完整(输入不合法)
			if(num1==""||num2==""||num3==""||num4==""||num5==""||num6==""||num7=="") {
				out.println("请将表格填写完整");
			}
			else {
				TreeSet<String> hs = new TreeSet<String>();
				hs.add(num1);hs.add(num2);hs.add(num3);hs.add(num4);hs.add(num5);hs.add(num6);hs.add(num7);
				if(hs.size()<7)//输入的数据有相同的(输入不合法)
				{
					out.println("请输入七个不同的数!");
				}
				else//输入合法
				{
					//把String转回int
					Integer inum1= Integer.parseInt(num1);
					Integer inum2= Integer.parseInt(num2);
					Integer inum3= Integer.parseInt(num3);
					Integer inum4= Integer.parseInt(num4);
					Integer inum5= Integer.parseInt(num5);
					Integer inum6= Integer.parseInt(num6);
					Integer inum7= Integer.parseInt(num7);
					Integer[] is = new Integer[7];
					is[0]=inum1;is[1]=inum2;is[2]=inum3;is[3]=inum4;is[4]=inum5;is[5]=inum6;is[6]=inum7;
					//统计匹配(中奖)个数
					int count = 0;
					for(int i=0;i<7;i++){
						if(cp.contains(is[i]))
							count++;
					}
					//输出处理
					out.println("中奖号码是:");
					out.print(cp.toString()+"<br>");
					if(count==7){
						out.print("恭喜你中了一等奖<br>");
					}
					else if(count==6){
						out.print("恭喜你中了二等奖<br>");
					}
					else if(count==5){
						out.print("恭喜你中了三等奖<br>");
					}
					else{
						out.print("很遗憾你没有中奖<br>");
					}
				}	
			}
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
		
	}

}

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐