1. 程式人生 > 其它 >團隊名稱-衝刺日誌(第六天)

團隊名稱-衝刺日誌(第六天)

這個作業屬於哪個課程 https://edu.cnblogs.com/campus/zswxy/computer-science-class1-2018
這個作業要求在哪裡 https://edu.cnblogs.com/campus/zswxy/computer-science-class1-2018/homework/12064
這個作業的目標 清晰自己的專案到底進行到了哪一天,完成度到底如何
小組的組號和隊名 第二組冰菓不是冰葉組
小組的隊長姓名 賀勇

SCRUM部分:

每個成員描述:

(1)我今天的進度(完成了哪些任務,花了多少時間,還剩餘多少時間),今天遇到了哪些問題,今天解決了哪些問題,(參見前面計劃的要求),明天的計劃。(可以以表格形式列出)

今天的進度 遇到的問題 解決問題方法 明天的計劃
賀勇負責的管理員對查詢到的資料進行增刪改除 好多好多,點選無效,點選報錯,點選後404都有,連線不到資料庫都來了 在網上瘋狂找資料,問了問強的離譜大佬,加了一些相關QQ群總之就是瘋狂問,問問題又不收費 使用者部分的實現
陳強 / / /
黎志洋 / / /
羅宇樑 / / /
喻達龍 / / /
陳子揚 / / /

(2)團隊成員的工作如果是開發工作必須有程式碼簽入,給出簽入記錄對應的Issue內容與連結,程式碼必須每天可執行(當天截圖,沒有倒扣分)

程式碼

使用者登入檢測

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
	//public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";//定義資料庫驅動程式
	public static final String DBURL = "jdbc:mysql://localhost:3306/mesige?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";//資料庫連結地址
	public static final String DBUSER = "root";//資料庫連線使用者名稱
	public static final String DBPASS = "changw1164816347";//資料庫連線密碼
%>
<%
	Connection conn = null;//宣告資料庫連線物件
	PreparedStatement pstmt = null;//宣告資料庫操作
	ResultSet rs = null;//宣告資料庫結果集
	boolean flag = false;//定義標誌位
	String name = null;//接受使用者的真實姓名
	String acount = request.getParameter("acount");
    String password = request.getParameter("password");
%>
<%
	try {
		Class.forName(DBDRIVER);//載入驅動程式
		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);//取得資料庫連線
		//編寫要使用的SqL語句,驗證使用者id和密碼,如果正確,則取數真實姓名
		String sql = "SELECT admId FROM userinformation WHERE acount=? AND passwords=?";
		System.out.print("ssss");
		pstmt = conn.prepareStatement(sql);//例項化資料庫操作物件
		pstmt.setString(1,acount);//設定查詢所需的內容
		pstmt.setString(2,request.getParameter("password"));//設定查詢所需的內容
		rs = pstmt.executeQuery();//執行查詢
		if (rs.next()) {//如果可以查詢到,則表示合法使用者
			name = rs.getString(1);//取出真實姓名
			System.out.print(name);
			flag = true;//修改標誌位,如果為true,表示登陸成功
		}
	} catch (Exception e) {
		System.out.println(e);
	} finally {
		try {//關閉操作會丟擲異常,使用try catch處理
			rs.close();//關閉查詢物件
			pstmt.close();//關閉操作物件
			conn.close();//關閉資料庫連線
		} catch (Exception e) {}
	}
%>
<%
	if (flag&&acount!=""&&password!="") {//登陸成功,跳轉到成功頁面
%>
		<jsp:forward page="newinterface.jsp">
		    <jsp:param name="username" value="<%=name%>"/>
		</jsp:forward>
<%
	} else {//登陸失敗,跳轉到失敗頁面
%>
		<h1>賬號或密碼錯誤</h1>
<%	
	}
%>
</body>
</html>

註冊賬號

   <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>註冊介面</title>
    <link rel="stylesheet" href="CSS/register.css">
</head>
<body>
 <div class="container">
        <h4>賬戶註冊</h4>
        <form action="register2.jsp" method="POST">
            <div class="xt Admid">
                <label for="admId">
                    <span>平臺賬號<span>*</span></span>
                    <small></small>
                </label>
                <input type="text" name="admId1" id="admId"/>
            </div>
            <div class="xt Acount">
                <label for="acountt">
                    <span>使用者名稱<span>*</span></span>
                    <small></small>
                </label>
                <input type="text" name="acount" id="acountt"/>
                <span>(最好填學號)</span>
            </div>
            <div class="xt email">
                <label for="E-mail">
                    <span>E-mail<span>*</span></span>
                    <small></small>
                </label>
                <input type="text" name="Email" id="E-mail"/>
                <span>請確保郵件的真實性,方便交流</span>
            </div>
            <div class="xt ps">
                <label for="passwordd">
                    <span>密碼<span>*</span></span>
                    <small></small>
                </label>
                <input type="password" name="password" id="passwordd"/>
            </div>
            <div class="xt ps">
                <label for="passwordd">
                    <span>再次輸入密碼<span>*</span></span>
                    <small></small>
                </label>
                <input type="password" name="password" id="passwordd"/>
            </div>
            
            <input type="submit" value="註冊" class="xt"/>
        </form>
    </div>
    <script>
    var i=document.createElement("i");
i.style.cssText="color: #dc3545"
var input=document.getElementsByTagName("input");
var Csstext="26px 26px 32px #489dcf, -26px -26px 32px #62d5ff, -26px -26px 32px #489dcf, 26px 26px 32px #62d5ff";
var T1=false;
var T2=false;
var T3=false;
var T4=false;
var T5=false;
if(input[0].value!=""){
    T1=true;
}
if(input[1].value!=""){
    T1=true;
}
if(input[2].value!=""){
    T1=true;
}
if(input[3].value!=""){
    T1=true;
}

input[0].onclick = function() {
    console.log("sd");
    input[0].style.cssText="box-shadow: #007bff 5px 5px 3px,#007bff -5px -5px 3px,#007bff -5px 5px 3px,#007bff 5px -5px 3px;";
};
input[0].onblur = function() {
    input[0].style.cssText="box-shadow: none";
    if(input[0].value==""&&T1==false){
        i.innerText="必選";
        var small=document.getElementsByTagName("small")[0];
        small.appendChild(i);
        // small.html("<i>必選</i>")
    }else {
        i.innerText="";
    }
};


var i2=document.createElement("i");
i2.style.cssText="color: #dc3545";

input[1].onclick = function() {
    console.log("sd");
    input[1].style.cssText="box-shadow: #007bff 5px 5px 3px,#007bff -5px -5px 3px,#007bff -5px 5px 3px,#007bff 5px -5px 3px;";
};
input[1].onblur = function() {
    input[1].style.cssText="box-shadow: none";
    if(input[1].value==""&&T2==false){
        i2.innerText="必選";
        var small=document.getElementsByTagName("small")[1];
        small.appendChild(i2);
        // small.html("<i>必選</i>")
    }else {
        i2.innerText="";
    }
};

var i3=document.createElement("i");
i3.style.cssText="color: #dc3545";
input[2].onclick = function() {
    // console.log("sd");
    input[2].style.cssText="box-shadow: #007bff 5px 5px 3px,#007bff -5px -5px 3px,#007bff -5px 5px 3px,#007bff 5px -5px 3px;";
};
input[2].onblur = function() {
    let reg_email = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|42du.cn)$/;
    input[2].style.cssText="box-shadow: none";
    if(!reg_email.test(input[2].value)){
        i3.innerText="郵箱不正確";
        if(input[2].value==""&&T3==false){
            i3.innerText="必選";
        }
        var small=document.getElementsByTagName("small")[2];
        small.appendChild(i3);
        // small.html("<i>必選</i>")
    }else {
        i3.innerText="";
    }
};


var i4=document.createElement("i");
i4.style.cssText="color: #dc3545";
input[3].onclick = function() {
    console.log("sd");
    input[3].style.cssText="box-shadow: #007bff 5px 5px 3px,#007bff -5px -5px 3px,#007bff -5px 5px 3px,#007bff 5px -5px 3px;";
};
input[3].onblur = function() {
    input[3].style.cssText="box-shadow: none";
    if(input[3].value==""&&T4==false){
        i4.innerText="必選";
        var small=document.getElementsByTagName("small")[3];
        small.appendChild(i4);
        // small.html("<i>必選</i>")
    }else {
        i4.innerText="";
    }
}


var i5=document.createElement("i");
i5.style.cssText="color: #dc3545";
input[4].onclick = function() {
    
    input[4].style.cssText="box-shadow: #007bff 5px 5px 3px,#007bff -5px -5px 3px,#007bff -5px 5px 3px,#007bff 5px -5px 3px;";
};
input[4].onblur = function() {
    console.log("sd");
    input[4].style.cssText="box-shadow: none";
    if(input[4].value!=input[3].value){
        i5.innerText="密碼不相同";
        if(input[4].value==""&&T5==false){
            i5.innerText="必選";
            console.log(i5.innerText);
            // small.html("<i>必選</i>")
        }
        var small=document.getElementsByTagName("small")[4];
        small.appendChild(i5);
    }else {
        i5.innerText="";
    }
}
    </script>
</body>
</html>

商品展示介面

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="dao.newinterfaceDAO"%>
<%@ page import="kechensheji.newinterfaces"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>首頁</title>
<link rel="stylesheet" href="CSS/newinterfacecss.css">
<base href="<%=basePath%>">

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<meta name="viewport" content="width=device-width,initial-scale=1.0">

</head>
<body>
<div class="container">
        <div class="header">
            <h2>二手交易平臺</h2>
            <nav>
                <ul>
                    <li><a href="release.html">釋出資訊</a></li>
                    <li><a href="search2.jsp">搜尋</a></li>
                    <li>賬戶名: <a href="Administration.jsp?admId=<%=request.getParameter("username")%>"><%=request.getParameter("username")%></a></li>
                </ul>
            </nav>
        </div>
        <div class="main">   
          <%
            newinterfaceDAO itemsDao = new newinterfaceDAO();
            ArrayList<newinterfaces> list = itemsDao.getAllnewinterfaces();
            if(list!=null&&list.size()>0){
                for(int i=0;i<list.size();i++){
                    newinterfaces item = list.get(i);
                    System.out.println("das");
          %>
           <div>
               <a href="information.jsp?id=<%=item.getGoodId()%>&name=<%=request.getParameter("username")%>"><img src="<%=item.getImg()%>"alt="照片"></a>
           </div>
          <!-- 商品迴圈結束  -->
          <%
                }
            }
           %>
        </div>
</div>
</body>
</html>

商品詳細介面

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ page import="java.util.*"%>
<%@ page import="dao.newinterfaceDAO" %>
<%@ page import="kechensheji.newinterfaces"  %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

    <base href="<%=basePath%>">
    <link rel="stylesheet" href="CSS/information.css">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
<title>資訊</title>
</head>
<body>
        <div class="container">
        <%
            newinterfaceDAO itemsDao = new newinterfaceDAO();
            newinterfaces item = itemsDao.getNewinterfaceById(Integer.valueOf(request.getParameter("id")));
            //newinterfaces item = itemsDao.getNewinterfaceById(Integer.valueOf(1));
            if(item!=null){
         %>
            <div id="box">
                <img src="<%=item.getImg()%>" width="200" height="200">
                <div id="move"></div>
                <div id="bimg">
                	 <img src="<%=item.getImg()%>" id="b_bimg">
                </div>
            </div>
            <div>
            <div>
            <span>商品編號:</span><p><%=item.getGoodId()%></p>
            </div>
            <div>
            <span>商品標題:</span><p><%=item.getTopic() %></p>
            </div>
            <div>
            <span>商品型別:</span><p><%=item.getTtype() %></p>
            </div>
            <div>
            <span>商品價格:</span><p><%=item.getPrice() %></p>
            </div>
            <div>
            <span>電子郵箱:</span><p><%=item.getEmail() %></p>
            </div>
         <%
            }
         %>
         <script> 
             var bbox = document.getElementById("box");
             var bmove = document.getElementById("move");
             var bbimg = document.getElementById("bimg");
             var b_bimg = document.getElementById("b_bimg");
             
             bbox.onmouseover = function(){//滑鼠移動到box上顯示大圖片和選框
                 bbimg.style.display = "block";
                 bmove.style.display = "block";
             }
             
             bbox.onmouseout = function(){//滑鼠移開box不顯示大圖片和選框
                 bbimg.style.display = "none";
                 bmove.style.display = "none";
             }
             
             bbox.onmousemove = function(e){
            	 var x = e.clientX;//滑鼠相對於視口的位置
                 var y = e.clientY;
                 var t = bbox.offsetTop;//box相對於視口的位置
                 var l = bbox.offsetLeft;
                 var _left = x - l - bmove.offsetWidth/2;//計算move的位置
                 var _top = y - t -bmove.offsetHeight/2;	
                 if(_top<=0){//滑到box的最頂部
                   _top = 0;
                 }
                 else if(_top>=bbox.offsetHeight-bmove.offsetHeight)//滑到box的最底部
                   _top = bbox.offsetHeight-bmove.offsetHeight ;
                 if(_left<=0){//滑到box的最左邊
                   _left=0;
                 }
                 else if(_left>=bbox.offsetWidth-bmove.offsetWidth)//滑到box的最右邊
                   _left=bbox.offsetWidth-bmove.offsetWidth ;
                 bmove.style.top = _top +"px";//設定move的位置
                 bmove.style.left = _left + "px";
                 var w = _left/(bbox.offsetWidth-bmove.offsetWidth);//計算移動的比例
                 var h = _top/(bbox.offsetHeight-bmove.offsetHeight);
                 var b_bimg_top = (b_bimg.offsetHeight-bbimg.offsetHeight)*h;//計算大圖的位置
                 var b_bimg_left = (b_bimg.offsetWidth-bbimg.offsetWidth)*w;
                 b_bimg.style.top = -b_bimg_top + "px";//設定大圖的位置資訊
                 b_bimg.style.left = -b_bimg_left + "px";
             }
             
         </script>
          <!--  <input type="button" value="新增"> -->
           <!--<span><a href="message2.jsp?name=<%=request.getParameter("name")%>" style="text-decoration: none;">發表留言</a></span>-->
    </div>
</body>
</html>

截圖

一、登陸介面

二、註冊介面

三、商品介面

四、商品詳細介面

1.放大功能

(3)團隊成員的工作如果是測試等其他工作,那要有具體的結果(截圖,測試報告等)

測試詳情見測試總結

(4)SCRUM 會議的照片一張,會議照片應該是每天衝刺會議的真實非擺拍照片,可以擋住臉保護隱私。照片如果出現複用的情況倒扣分。

(5)至少一張專案程式/模組的最新(執行)截圖。

登陸前

登陸後

註冊前

註冊後


PM 報告:

(1)整個專案預期的任務量 (任務量 = 所有工作的預期時間)和 目前已經花的時間 (所有記錄的 ‘已經花費的時間’),還剩餘的時間(所有工作的 ‘剩餘時間’)

任務量完成度 已花費時間 剩餘時間
十分之六 七天半 四天半

(2)PM 畫出燃盡圖

(3)畫出一個“任務總量變化線”,體現在工作中發現了多少以前沒有想到的事情。

工作中發現了多少以前沒有想到的事情:商品的佈局不夠美觀,所以將其改為瀑布流式的佈局

(4)表格形式列出每名成員的貢獻比

小組成員 貢獻比
賀勇 18%
陳強 24%
喻達龍 16%
羅宇樑 16%
陳子楊 16%
黎志洋 16%