第一个PSP0级
1.计划:
需求描述:
按照图片要求设计添加新课程界面。(0.5分)
在后台数据库中建立相应的表结构存储课程信息。(0.5分)
实现新课程添加的功能。 要求判断任课教师为王建民、刘立嘉、刘丹、王辉、杨子光五位教师的其中一位。(0.5分)
要求上课地点开头为“一教、二教、三教、基教”中的一种。(0.5分)
实现数据存储功能。(3分)
估计开发时间:2个小时;
填写的项目数据:
课堂名称;
课堂老师;
课堂地点;
填写时间记录日志:
上午9:10-9:50 进行题目的解析,制定解题思路,进行编码;
上午10:10-10:30 设计判断输入的是否符合要求(设计算法);
上午10-30-11:10 解决问题中的缺陷,问题,不足;
2.开发
设计程序:
在Input.jsp中创建一个表格里边分别是课程名称,任课老师,教学地点,并分别用三个文本框来接受输入的三个属性,
并传到另外的Jsp页面中,又来接受三个数据,并判断传来的教师,与教室地点是否符合题目要求,若不符合,则设置
一个Error,返回到第一个JSP中,并显示在JSP中,允许重新输入,若符合要求,就想数据库中保存输入的是三个属性。
程序实现:
连接数据库的源代码:

package com.jaovo.msg.Util; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class DBUtil { public static Connection getConnection() {
try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String user = "sa";
String password = "123456";
String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=jaovo_msg";
Connection connection = null;
try { connection = DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
} public static void close(Connection connection ) {
try {
if (connection != null) {
connection.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(PreparedStatement preparedStatement ) {
try {
if (preparedStatement != null) {
preparedStatement.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(ResultSet resultSet ) {
try {
if (resultSet != null) {
resultSet.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

自己创建的类的源代码:

package com.jaovo.msg.model;
public class User {
private String name;
private String teacher;
private String place;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher= teacher;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
}

向数据库添加数据的源代码:

import com.jaovo.msg.Util.DBUtil;
//import com.jaovo.msg.Util.UserException;
import com.jaovo.msg.model.User; public class UserDaoImpl
{ public void add(User user) { Connection connection = DBUtil.getConnection(); PreparedStatement preparedStatement = null; try{
String sql = "insert into t_teacher(name,teacher,place) values (?,?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, user.getName());
preparedStatement.setString(2, user.getTeacher());
preparedStatement.setString(3, user.getPlace());
preparedStatement.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally { //DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
} } }

刚开始输入时的JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>提交作业</title>
</head>
<body>
<%
String s=(String)request.getAttribute("Error");
if("".equals(s)||s==null)
{
s="";
}
%>
<%=s %>
<form action="LoginInput.jsp" method="get">
<table align="center" border="1">
<tr>
<td colspan="2">
课程名称
<input type="text" name="name"/>
</td>
</tr>
<tr>
<td colspan="2">
任课教师
<input type="text" name="teacher"/>
</td>
</tr>
<tr>
<td colspan="2">
上课地点
<input type="text" name="place"/>
</td>
</tr> <tr>
<td align="center" colspan="2">
<input type="submit" value="保存"/></td>
</tr>
</table>
</form>
</body>
</html>

结束数据并判断是否符合要求的JSP:

<%@page import="com.jaovo.msg.dao.UserDaoImpl"%>
<%@page import="com.jaovo.msg.model.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%
int i=0;
boolean flag=true;
boolean flag1=true;
String s[]={"王建民","刘丹","刘立嘉","杨子光","王辉"};
String s1[]={"基教","一教","二教","三教"};
String name=request.getParameter("name");
String teacher=request.getParameter("teacher");
String place=request.getParameter("place");
while(i<s.length)
{
if(!s[i].equals(teacher))
{
flag=false;
}
else
{
flag=true;
break;
}
i++;
}%>
<%
if(!flag)
{
request.setAttribute("Error", "老师不对"); %>
<jsp:forward page="Login.jsp"></jsp:forward>
<%
}
i=0;
String s3=place.substring(0,2); while(flag==true&&i<s1.length)
{ if(!s1[i].equals(s3))
{
flag1=false;
}
else
{
flag1=true;
break;
}
i++;
}
if(!flag1)
{
request.setAttribute("Error", "教室不对"); %>
<jsp:forward page="Login.jsp"></jsp:forward>
<%
}
UserDaoImpl userdao=new UserDaoImpl();
User user=new User();
user.setName(name);
user.setTeacher(teacher);
user.setPlace(place);
userdao.add(user);
System.out.println(teacher);
%> <<jsp:forward page="Login.jsp"></jsp:forward>
编译程序,修复并记录所发现的缺陷,并填写缺陷记录日志
在编译程序中,出现的变异问题是向数据库中存储数据时,课程名称与课程地点都可以保存进数据库,但是Teacher一列表示为空,没有存进数据库。
修复:在自定义的类中teacher中的Set函数中,语句应该是this.teacher=teacher;而我的源程序为teacher=teacher;因此没有向数据库中保存错误。
学生:刘金玉
日期:2017.11.28
老师:王建民
程序号:1
|
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复时间 |
修复缺陷 |
|
11/28 |
1 |
20 |
编码 |
编译 |
10min |
|
|
在自定义的类中的Teacher变量的Set函数中丢失了一个this。 |
||||||
测试程序,修复并记录所出现的缺陷,并填写缺陷记录日志:
学生:刘金玉
日期:2017.11.28
老师:王建民
程序号:1
|
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复时间 |
修复缺陷 |
|
11/28 |
2 |
20 |
编码 |
编译 |
10min |
|
|
在判断输入的数据是否符合要求是判断条件写的错误,丢失了flag==true |
||||||
3.总结:在该程序中,从开始到完成程序,共用了2个小时,在编写程序过程中共出现了两个缺陷,一个是teacher属性不能向数据库中保存,另外一个是不能正确判断是否
输入的复合要求,现在初学Java web对其的使用并不是熟练,所以在编程过程中花费的时间过多,在排除缺陷方面还有待提高。
第一个PSP0级的更多相关文章
- 四则运算三+psp0级表格
一.题目 在四则运算二的基础上,选择一个方向进行拓展,我选择的是增加了答题模块 二.设计思路 1.在上次的基础上,增加了答题模块,每出现一道四则运算题目,便提醒输入结果,如果结果错误,就会提示错误 2 ...
- 四则运算2+psp0级表格
四则运算2 一.题目和要求 题目:写一个能自动生成小学四则运算题目的程序,要求一次输出不少于30道,只能是整数100以内的四则运算(四则运算1升级版) 要求: 1.题目避免重复 2.可定制(数量/打印 ...
- 撰写一篇博客要求讲述四则运算2的设计思想,源程序代码、运行结果截图、编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志。
一.撰写一篇博客要求讲述四则运算2的设计思想,源程序代码.运行结果截图.编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志. 1.设计思想: ①创建test.jsp建立第一个前端界面,提 ...
- python递归练习:生成一个n级深度的字典,例如:[1,2,3,4,5,6] 可以生成{1: {2: {3: {4: {6: 5}}}}},写一个函数定义n级
结果#encoding = utf-8#题目:#生成一个n级深度的字典,例如:[1,2,3,4,5,6] 可以生成{1: {2: {3: {4: {6: 5}}}}},写一个函数定义n级a=[1,2, ...
- 有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台阶走完?
有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台阶走完? 相关问题: (1)有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台 ...
- 使用 Sealos 在 3 分钟内快速部署一个生产级别的 Kubernetes 高可用集群
本文首发于:微信公众号「运维之美」,公众号 ID:Hi-Linux. 「运维之美」是一个有情怀.有态度,专注于 Linux 运维相关技术文章分享的公众号.公众号致力于为广大运维工作者分享各类技术文章和 ...
- 如何设计一个亿级网关(API Gateway)?
1.背景 1.1 什么是API网关 API网关可以看做系统与外界联通的入口,我们可以在网关进行处理一些非业务逻辑的逻辑,比如权限验证,监控,缓存,请求路由等等. 1.2 为什么需要API网关 RPC协 ...
- 题目描述: k一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
时间限制:1秒 空间限制:32768k 斐波那契数列指的是这样一个数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,9 ...
- JS/JQuery获取当前元素的上一个/下一个兄弟级元素等元素的方法
$(function(){ //遍历获取的input元素对象数组,绑定click事件 var len = $("input[type='file']").length; ; i & ...
随机推荐
- Eclipse自动补全修改
一.前言 之前敲代码用的是文本工具sublime,转到Eclipse之后发现补全功能特别不方便,所以想根据自己的情况进行调整,具体有两点: 输入某些语句的前几个字母就能自动提示相关的完整语句 用tab ...
- openpose
编译libpthread.so pthread2 ihash
- [Selenium]怎样验证页面是否有无变化
验证方法:将两次的Dom结构进行对比 String beforeStr = (String) SeleniumUtil.getInnerHTML(page.getDriver(), page.getD ...
- 关于Android控件EditText的属性InputType的一些经验,java组合多个参数
关于Android控件EditText的属性InputType的一些经验 2013-11-14 15:08:02| 分类: 默认分类|举报|字号 订阅 1.InputType属性在代码中 ...
- JQuery中button提交表单报TypeError: elem[type] is not a function jquery
错误: TypeError: elem[type] is not a function jquery 解决: 出现这种现象的原因是,提交的表单中,有标签的name,有以submit命名的 name中不 ...
- FORM 错误:此责任无可用函数。 更改责任或与您的系统管理员联系。
错误:此责任无可用函数. 更改责任或与您的系统管理员联系. 2014-07-02 12:20:47 分类: Oracle Symptom 访问Help->Diagnostics->Exam ...
- R12 查询EBS用户相关SQL
--R12查询EBS在线用户SQL SELECT U.USER_NAME, APP.APPLICATION_SHORT_NAME, FAT.APPLICATION_NAME, ...
- #ifdef __cplusplus extern "C" { #endif 的解释
好多程序中都会遇到下列代码段: #ifdef __cplusplus extern "C" { #endif /****************** C语法代码段 ******** ...
- IKAnalyzer兼容Lucene 5.4.0版本抛出异常?
ava.lang.AbstractMethodError: org.apache.lucene.analysis.Analyzer.createComponents(Ljava/lang/String ...
- [毕业设计][期末作业]二手闲置小程序 免费信息发布系统功能源码(小程序+php后台管理)
最近做了一个小程序,主要是二手闲置免费信息发布系统的功能,里面包括了登录,发布商品,商品管理,违规投诉,canva商品海报生成,分享等一些基础的功能,可以说代码都是自己辛辛苦苦写出来的.可作为毕业设计 ...