期末考试

2019 级《JAVA 语言程序设计》
上机考试试题
 
2020.12.20考试要求
一、本试卷为 2019 级《JAVA 语言程序设计》上机考试
试卷;
二. 注意编程规范:
(1) 通过 Eclipse 添加类的方式建立类;
(2) 程序开头部分注释班级、作者、学号、日期;
(3) 注意程序代码中必要的空格与缩进;
(4) 注意类、变量、方法的命名原则;
三. 考试结束后,将整个项目工程文件夹中的文件源代
码和数据库备份文件放入文件夹,以“班级学号姓名”
方式命名,并压缩成同名的压缩包文件,考试结束后提
交给课代表统一上交。
第 1 页 共 5 页房产信息管理系统(50分)
1、项目需求:
某房产公司,欲开发一个房产信息管理系统,其主要功能描述如下:
(1)公司销售的房产,房产信息包括,房产编号(唯一性)、房产证明,地址,
建造年份,建造面积,销售报价,房产照片以及销售状态 (在售,待售,意向,售
出,停售)等信息。
2. 公司雇佣了多名房产经纪,负责销售房产,系统中需要存储房产经纪的基本
信息,包括:姓名,家庭住址,联系电话等等。一套房产同一时间仅由一名房产经
纪负责销售,
3.系统用户包括顾客、房产经纪、系统管理员,顾客需经过系统身份验证之后,
才能登录系统,可以浏览、查询、购买相应房产。房产经纪登录系统之后,可以浏
览负责销售的房产信息,但需要经过系统管理员的审批授权。
4.系统管理员可以从系统中导出所有房产的信息列表,系统管理员定期将信息
和销售的房产,进行归纳,若公司确定不再销售某套房产,系统管理员将房产信息
从系统中删除。
2.系统要求与评分标准:
2.1 页面要求
(1)系统可以通过浏览器直接访问;(1 分)
(2)各个功能页面整体风格统一;
(3)首页为用户登录页面,系统管理员、房产经纪、顾客三种角色用户登录后,
进入相应的功能页,只能看到角色允许访问功能模块,用户登录界面包含用户、密
码两个文本框,以及登录和注册两个按钮;(3 分)
(4)顾客注册:点击用户登录页面的注册按钮,顾客进入用户注册页面,注册
信息包括身份证号、姓名、性别、手机号码、家庭住址。(4 分)
(6)顾客功能页:共包括查看个人信息、修改个人密码、浏览房产信息,查询
房产,购买房产五项功能模块。
(7)房产经纪功能页:包括查看个人信息、浏览房产信息、房产交易、查询房
第 2 页 共 5 页第 3 页 共 5 页
产、修改个人密码五项功能模块;
图 1 房产信息管理系统功能结构图
(8)系统管理员功能页:新添房产信息、房产授权、停售房产、查询房产信息,
顾客审核、新增房产经纪人,密码重置七项功能模块。
2.2 功能要求
(1)新增房产信息:房产编号(唯一性)(编码规则:年月日(登记入库时间)
+四位顺序号,例如:202012200001)、户型(单选项:选项内容包括以下六项:四
室两厅、四室一厅、三室两厅、三室一厅、两室两厅、两室一厅),房产地址(地址
格式:XX 省 XX 市 XX 区(县)XX 街道 XX 小区 XX 号楼 XX 单元 XXX 门牌),建造年份,
建造面积,销售报价,销售状态(在售,待售,意向,售出,停售,缺省为“在售”)。
(5 分)
(2)新增房产经纪人信息:房产经纪人基本信息包括:工号(八位数字:年份
+四位序号),姓名,家庭住址,手机。(2 分)
(3)顾客注册:点击用户登录页面的“注册”按钮,顾客进入用户注册页面,
注册信息包括身份证号(判断条件 18 位,最后一位可以是字母“X”)、姓名、性别
(男或女单选)、手机号码(11 位数字)、家庭住址(地址格式:XX 省 XX 市 XX 区(县)
XX 街道 XX 小区 XX 号楼 XX 单元 XXX 门牌)。(4 分)
(4)顾客审核:顾客注册后,系统管理员后台可以以列表形式查看顾客基本信
息, 点击顾客姓名,可以查看顾客详细信息,在顾客详细信息页面点击通过按钮,
可以通过审核。通过审核的顾客才可以在前台登录界面登录主页面。(3 分)
房产信息管理系统
基本信息
系统管理
销售管理
易(5)查看个人信息:房产经纪或者顾客登录后,可以查看个人的详细信息。(2
分)
(6)浏览房产信息:顾客登录后,可以查看所有在售房产信息;房产经纪人登
录后,只能查看系统管理员授权的房产信息;系统管理员登录后可以查看全部房产
信息(四种房产状态)。(3 分)
(7)查询房产信息:可以按照户型、地址、建造年份、建造面积,销售报价五
个条件进行综合查询,查询结果以列表形式显示,显示结果信息包括序号、地址、
销售报价,点击地址,可以查看该套房产的详细信息;顾客可以看到的结果为所有
在售的房产,房产经纪人看到的结果为所有授权给自己销售的房产信息,系统管理
员可以查询所有房产信息。(6 分)
(8)购买房产:顾客在浏览房产信息后,点击查看房产详细信息界面时,可以
点击“交易”按钮,该房产状态信息改为 “意向”状态。(3 分)
(9)房产交易:房产经纪人以列表形式显示待售房产信息和顾客名称,显示列
表包括序号、地址、售价、顾客名称,房产经纪人点击地址可以查看房产和顾客详
细信息,单击“交易”按钮,该房产状态信息改为“售出”状态。(3 分)
(10)房产授权:系统管理员登录后可以浏览所有的在售房产信息,显示结果
信息包括序号、地址、销售报价,点击地址,可以查看该套房产的详细信息,输入
房产经纪人姓名,如果房产经纪人信息不存在,提示错误信息,不允许授权;如果
正确,点击“授权”按钮,该房产状态信息改为“待售”状态。(3 分)
(11)停售房产:系统管理员登录后可以浏览所有的在售房产信息,显示结果
信息包括序号、地址、销售报价,点击地址,可以查看该套房产的详细信息,,点击
“停售”按钮,该房产状态信息改为“停售”状态。(3 分)
(12)个人密码修改:顾客或者房产经纪人登录后,可以输入旧密码、新密码、
新密码确认修改个人密码,需要判断旧密码是否正确,新密码和新密码确认是否一
致;(2 分)
(13)重置密码:管理员可以修改房产经纪人的个人密码,先按照房产经纪人
工号查询,显示出基本信息后,点击密码重置,将房产经纪人密码统一修改为
“123456”。(2 分)
(14)数据库评分标准:按照题目要求创建房产基本信息表、房产经纪人基本
信息表、顾客记录表,(3 分),实现数据库连接正常(2 分)。
第 4 页 共 5 页第 5 页 共 5 页
数据表结构样式参考下表所示:
表 1 房产基本信息表
序 号
字段名称
中文含义
1
HouseID
房产编号(唯一性)
2
RoomType
户型
3
Address
房产地址
4
Year
建造年份
5
Area
建造面积
6
Sales
销售报价
7
Status
销售状态
8
AgentID
房产经纪人 ID
9
UserID
顾客 ID
表 2 房产经纪人基本信息表
序 号
字段名称
中文含义
1
AgentID
工号(房产经纪人 ID)
2
AgentName
房产经纪人姓名
3
AgentAddress
家庭住址
4
Phone
手机
表 3 顾客基本信息表
序 号
字段名称
中文含义
1
UserID
顾客 ID
2
UserName
姓名
3
sex
性别
4
IdNumber
身份证号
5
Phone
手机
6
User
家庭住址
<%@ page contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户登录</title>
</head>
    <form id="1" action ="denlv.jsp" method="get">   
   <p style="text-align:center;color:black;font-family:楷体; font-size:20px">    
                <br>
                身份:
                <select size ="1"name="calss">
                <option value ="顾客" selected>顾客</option>
                <option value ="房产经纪" >房产经纪</option>
                <option value ="系统管理员" >系统管理员</option>
                </select>
                <br><br>
                用户:             
                    <input type="text" name="num"size="15"/>
                <br><br>                
                密码:               
                    <input type="password" name="pass"size="16"/>                       
                <br><br>                  
                <br><br>
                     <input type="button" value="登录" onclick="location.href='gongneng.jsp'" />                             
                     <input type="button" value="注册" onclick="location.href='zhuce.jsp'" />   
                
                   
                       
    </p>
    </form>  

</html>
<%@ page contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>录入</title>   
</head>
   <form id="1" action ="zhuce-backstage.jsp" method="get">   
   <p style="text-align:center;color:black;font-family:楷体; font-size:20px">    
                <br>                        
                身份证号码:             
                    <input type="text" name="sfnum"size="15"/>
                       <br><br> 
                姓名:             
                    <input type="text" name="name"size="3"/>
                <br><br>                
                性别:               
                     <input type="radio" name="sex" value="男" /><input type="radio" name="sex" value="女" />女
                手机号码:             
                    <input type="text" name="sjnum"size="10"/>
                <br><br>                
                家庭住址:               
                    <input type="text" name="home"size="10"/>
                <br><br>  
                密码:
                     <input type="text" name="home"size="10"/>
                <br><br>            
                    <input type="submit" value="登记"/>
                    <input type="reset" value="重置"/>     
    </p>
    </form>   
</body>
</html>
<%@ page contentType="text/html; charset=utf-8"
         pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>处理</title>
</head>

<body>
<jsp:useBean id="util" class="jb.AbbC"/>
<%
String sfnum= request.getParameter("sfnum");
String name= request.getParameter("name");
String sex= request.getParameter("sex");
String sjnum= request.getParameter("sjnum");
String home= request.getParameter("home");
String mima= request.getParameter("mima");

if(util.queryEmpty(sfnum,name,sex,sjnum,home,mima)){
    out.print("<script language ='javaScript'> alert('输入不能为空,请完成填写');window.history.back(-1); </script>");
}else if(util.sfzhm(sfnum)){
    out.print("<script language ='javaScript'> alert('身份证必须为18位,且只能最后一位为X或数字');window.history.back(-1); </script>");
}else if(util.chachong(sfnum)){
    out.print("<script language ='javaScript'> alert('录入身份证号码重复');window.history.back(-1); </script>");      
}else{
    util.input(sfnum,name,sex,sjnum,home,mima);
    out.print("<script language='javaScript'> alert('录入成功');</script>");
    response.setHeader("refresh", "0;url=main.jsp");
}
%>
</body>
</html>

<%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%>
<html>
<head>
<title>修改</title>
</head>
<body>
<table border="1"style="text-align:center">
<caption>修改密码</caption>
<tr>
<td align="center" width=4%>密码</td>

</tr>
<jsp:useBean id="util" class="jb.AbbC" scope="page" />
<%
String num=session.getAttribute("num").toString();
try{
    Connection connect = util.sjk();
    Statement stmt = connect.createStatement();
    ResultSet rs = stmt.executeQuery("select * from guke");
    while(rs.next()){    
       if(num.equals(rs.getObject(2).toString()))
       {
           %>
          <tr>
          <td width=4% align="center"><%=rs.getObject(6) %></td>                
    
          </tr>
            <%
       }
   }
   rs.close();
   connect.close();
   stmt.close();
}catch (SQLException e) {
   e.printStackTrace();            
}
%>
</table> 
</body>
<form id="1" action ="teacher-reviseback.jsp" method="get">   
   <p style="text-align:center;color:black;font-family:楷体; font-size:20px">    
                <br>
                密码:             
                    <input type="text" name="mima"size="10"/>
                           
                                   
                <br><br>            
                <input type="button" value="返回上一页" onclick="location.href='gongneng.jsp" /> 
                <br><br>
                    <input type="submit" value="修改"/>
                    <input type="reset" value="重置"/>     
    </p>
    </form>  
</html>
<%@ page contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>修改密码</title>
</head>
<body>
<jsp:useBean id="util" class="jb.AbbC" scope="page" />
<%
String mima=session.getAttribute("mima").toString();

if(util.queryTeacherxiu(mima)){
      out.print("<script language ='javaScript'> alert('输入不能为空');window.history.back(-1); </script>");
}else{
    util.teacherXiugai(mima);
    out.print("<script language='javaScript'> alert('修改成功');</script>");
    response.setHeader("refresh", "0;url=teacher.jsp");   
}
%>
</body>
</html>>
<%@ page contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>房产经纪</title>
<body background="BACKGROUNG/1.jpg">
</head>
    <p style="text-align:center;color:black;font-family:宋体,serif; font-size:20px">
            <br> 
            <input type="button" value="查看个人信息" onclick="location.href='watchjinngji.jsp'" />
            <br><br>
            <input type="button" value="修改个人密码" onclick="location.href='revisejingji.jsp'" />
            <br><br>
            <input type="button" value="浏览房产信息" onclick="location.href='watchhouse.jsp'" />
            <br><br>
            <input type="button" value="查询房产" onclick="location.href='wacthfang.jsp'" />
            <br><br>
            <input type="button" value="房产交易" onclick="location.href='buyhouse1.jsp'" />    
            
            
            
            
                 <br><br>            
                <input type="button" value="主页面" onclick="location.href='main.jsp'" />   
    </p>

</html>
<%@ page contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>录入</title>   
</head>
   <form id="1" action ="jjzhuce-backstage.jsp" method="get">   
   <p style="text-align:center;color:black;font-family:楷体; font-size:20px">    
                <br>                        
                工号:             
                    <input type="text" name="gonghao"size="15"/>
                       <br><br> 
                姓名:             
                    <input type="text" name="jjname"size="3"/>
                <br><br>                
                家庭住址:               
                    <input type="text" name="jjhome"size="10"/>
                <br><br> 
                手机号码:             
                    <input type="text" name="sjhm"size="10"/>
                               
    
             
                  <br><br>            
                    <input type="submit" value="登记"/>
                    <input type="reset" value="重置"/>     
    </p>
    </form>   
</body>
</html>ml>
<%@ page contentType="text/html; charset=utf-8"
         pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>处理</title>
</head>

<body>
<jsp:useBean id="util" class="jb.AbbC"/>
<%
String gonghao= request.getParameter("gonghao");
String jjname= request.getParameter("jjname");
String jjhome= request.getParameter("jjhome");
String sjhm= request.getParameter("sjhm");

if(util.queryEmpty2(gonghao,jjname,jjhome,sjhm)){
    out.print("<script language ='javaScript'> alert('输入不能为空,请完成填写');window.history.back(-1); </script>");
  
}else{
    util.input1(gonghao,jjname,jjhome,sjhm);

    out.print("<script language='javaScript'> alert('录入成功');</script>");
    response.setHeader("refresh", "0;url=main.jsp");
}
%>
</body>
</html>


ADDC
package jb;
import java.sql.*;
public class AbbC {
    public Connection sjk()
    {
        Connection connect;
        try {
            connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC","root","root");
            return connect;
        }catch(Exception e)
        {
            e.printStackTrace();  
        }
        return null;        
    }
    public boolean queryEmpty(String sfnum,String name,String sex,String sjnum,String home,String mima)
    {
        boolean flag=false;
        if(sfnum==null||"".equals((sfnum))&&name==null||"".equals(name)&&sex==null||"".equals(sex)&&sjnum==null||"".equals(sjnum)&&home==null||"".equals(home)&&mima==null||"".equals(mima))
        {
            flag=true;
        }
        return flag;
    }
    public Connection sj()
    {
        Connection connect;
        try {
            connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC","root","root");
            return connect;
        }catch(Exception e)
        {
            e.printStackTrace();  
        }
        return null;        
    }
    public boolean queryEmpty2(String gonghao,String jjname,String jjhome,String sjhm)
    {
        boolean flag=false;
        if(gonghao==null||"".equals((gonghao))&&jjname==null||"".equals(jjname)&&jjhome==null||"".equals(jjhome)&&sjhm==null||"".equals(sjhm))
        {
            flag=true;
        }
        return flag;
    }
    public boolean pinji(String sfnum,String sjnum)
    {
        boolean flag=true;
        try {  
            double a=Integer.valueOf(sfnum);
            double b=Integer.valueOf(sjnum);
            if(a%1==0&&b%1==0)
            {
                flag=false;
            }
            return flag; 
        } catch (Exception e) {  
            return flag;   
        }  
    }
    public boolean queryTeacherxiu(String mima)//查空
    {
        boolean flag=false;
        if(mima==null||"".equals((mima)))
        {
            flag=true;
        }
        return flag;
    }
    public void teacherXiugai(String mima)
    {
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC","root","root");           
            preparedStatement=connect.prepareStatement("Update guke set mima=?, ");
            preparedStatement.setString(6,mima);           
            preparedStatement.executeUpdate();  
            preparedStatement.execute();
            connect.close();                      
        }catch(SQLException e){
            e.printStackTrace();  
        }
    }
    public void input(String sfnum,String name,String sex,String sjnum,String home,String mima)
    {
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC","root","root");           
            preparedStatement=connect.prepareStatement("insert into guke (sfnum,name,sex,sjnum,home,mima) values (?,?,?,?,?,?)");
            preparedStatement.setString(1,sfnum);
            preparedStatement.setString(2,name);
            preparedStatement.setString(3,sex);
            preparedStatement.setString(4,sjnum);
            preparedStatement.setString(5,home);
            preparedStatement.setString(6,mima);
          
            preparedStatement.executeUpdate();  
            connect.close();
            preparedStatement.close();           
        }catch(SQLException e){
            e.printStackTrace();  
        }
    }
    public void input1(String gonghao,String jjname,String jjhome,String sjhm)
    {
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC","root","root");           
            preparedStatement=connect.prepareStatement("insert into jingji (gonghao,jjname,jjhome,sjhm) values (?,?,?,?)");
            preparedStatement.setString(1,gonghao);
            preparedStatement.setString(2,jjname);
        
            preparedStatement.setString(3,jjhome);
            preparedStatement.setString(4,sjhm);
          
            preparedStatement.executeUpdate();  
            connect.close();
            preparedStatement.close();           
        }catch(SQLException e){
            e.printStackTrace();  
        }
    }
    public void xiugai(String sfnum,String name,String sex,String sjnum,String home,String mima,String sf1)
    {
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC","root","root");           
            preparedStatement=connect.prepareStatement("Update guke set sfnum=?,name=?,sex=?,sjnum=?,home=?,miam=? where sfnum=?");
            preparedStatement.setString(1,sfnum);
            preparedStatement.setString(2,name);
            preparedStatement.setString(3,sex);
            preparedStatement.setString(4,sjnum);
            preparedStatement.setString(5,home);
            preparedStatement.setString(6,mima);
            preparedStatement.setString(7,sf1);
            preparedStatement.executeUpdate();  
            preparedStatement.execute();
            connect.close();                      
        }catch(SQLException e){
            e.printStackTrace();  
        }
    }
    public void deletedata(String sfnum)
    {
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC","root","root");           
            preparedStatement=connect.prepareStatement("delete from guke where sfnum = ?");
            preparedStatement.setString(1,sfnum);
            preparedStatement.executeUpdate();  
            connect.close();
            preparedStatement.close();           
        }catch(SQLException e){
            e.printStackTrace();  
        }
    }
    public boolean queryEmpty1(String name)
    {
        boolean flag=false;
        if(name==null||"".equals((name)))
        {
            flag=true;
        }
        return flag;
    }
    public boolean inquiryCurriculum(String name)
    {       
        boolean flag=true;     
        try {
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC","root","root");
            Statement stmt = connect.createStatement();
            ResultSet rs = stmt.executeQuery("select * from guke");
            while(rs.next())
            {
                if(name.equals(rs.getString("name")))
                {                                           
                    flag=false;                  
                } 
            }                                                          
            rs.close();
            connect.close();
            stmt.close();
        }catch (SQLException e) {
            e.printStackTrace();            
        }
        return  flag;
    }
    public boolean chachong(String sfnum)
    {
        boolean flag=false;
        try {
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC","root","root");
            Statement stmt = connect.createStatement();
            ResultSet rs = stmt.executeQuery("select * from guke");
            while(rs.next())
            {                 
                if(sfnum.equals(rs.getString("sfnum")))
                {
                    flag=true; 
                }                 
            }                                                          
            rs.close();
            connect.close();
            stmt.close();
        }catch (SQLException e) {
            e.printStackTrace();            
        }
        return flag;
    }
    public boolean sfzhm(String sfnum)
    {
        boolean flag=true;     
        if(sfnum.length()==18)
        {
            for(int i=0;i<sfnum.length()-1;i++)
            {
                char k=sfnum.charAt(i);
                if(k=='0'||k=='1'||k=='2'||k=='3'||k=='4'||k=='5'||k=='6'||k=='7'||k=='8'||k=='9') continue;
                else return flag;
            }
            char k=sfnum.charAt(sfnum.length()-1);
            if(k=='0'||k=='1'||k=='2'||k=='3'||k=='4'||k=='5'||k=='6'||k=='7'||k=='8'||k=='9'||k=='X') flag=false;
        }
        return  flag;
    }
    public static void main(String[] args) {
        AbbC a=new AbbC(); 
    }
}

 

posted @ 2020-12-21 15:12  huhuyahei  阅读(399)  评论(0编辑  收藏  举报