《java課程設(shè)計-電話號碼查詢系統(tǒng).doc》由會員分享,可在線閱讀,更多相關(guān)《java課程設(shè)計-電話號碼查詢系統(tǒng).doc(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。
山東建筑大學
Java課程設(shè)計報告
設(shè)計題目 電話號碼查詢系統(tǒng)
學生姓名 黃瑜
學 號 2010121187
專業(yè)班級 信計101
指導教師 王文
1、設(shè)計目的
1、通過JAVA課程設(shè)計,使大家能夠?qū)W到的面向?qū)ο蟮脑O(shè)計思想運用在具體工作和學習中,加深對類和對象的理解,要求學生對生活中許多具體的事物抽 象出類。
2、通過這次課程設(shè)計掌握JAVA的編程思想,為后續(xù)設(shè)計編程打下基礎(chǔ)。
3、培養(yǎng)實際操作能力和實踐能力,為以后的工作打下堅實的基礎(chǔ)。
2、總體設(shè)計
電話號碼查詢系統(tǒng)
相應
操作
添加
號碼
向數(shù)據(jù)庫中添加號碼信息
刪除
號碼
刪除相應號碼信息
修改
號碼
修改相應號碼信息
查詢
號碼
按姓名查詢號碼
按電話號碼查詢
按部門查詢號碼
3、詳細設(shè)計
homework\src\com\work為工作空間
bean文件夾下的TelBean.java為Bean類
operate文件夾下的TelOperate.java為服務器接收信息端,可以對所獲取的信息進行相應的方法調(diào)用。TelSql.java對數(shù)據(jù)庫中的數(shù)據(jù)進行增刪改查。
sql文件夾下Conn.java為對數(shù)據(jù)庫提供驅(qū)動加載等操作。
addInfo.jsp為添加信息頁面(截圖中有相應的運行圖)
index.jsp為首頁頁面信息
listInfo.jsp為查詢之后顯示信息的頁面
searchInfo.jsp為查詢條件選擇頁面
4、調(diào)試與測試
調(diào)試中部分功能的測試結(jié)果及截圖:
1、 電話管理功能列表
2、添加電話號碼:
添加成功
3、 顯示所有電話號碼信息
4、 按姓名查詢功能及查詢結(jié)果
查詢結(jié)果
5、按電話號碼查詢功能及查詢結(jié)果
查詢結(jié)果
6、按部門查詢
5、源程序清單和執(zhí)行結(jié)果
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[search]) and OBJECTPROPERTY(id, NIsUserTable) = 1)
drop table [dbo].[search]
GO
CREATE TABLE [dbo].[search] (
[name] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[tel] [varchar] (11) COLLATE Chinese_PRC_CI_AS NULL ,
[dep] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
Bean
package com.work.bean;
public class TelBean {
private String name;
private String tel;
private String dep;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getDep() {
return dep;
}
public void setDep(String dep) {
this.dep = dep;
}
}
Operate
Teloperate
package com.work.operate;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.work.bean.TelBean;
public class TelOperate extends HttpServlet {
/**
* The doGet method of the servlet.
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//初始化
PrintWriter pw = response.getWriter();
String type = request.getParameter("type");
String name = request.getParameter("username");
String tel = request.getParameter("tel");
String dep = request.getParameter("dep");
TelSql telSql = new TelSql();
//根據(jù)出入type判斷操作方式
if(type.equals("search")){
//根據(jù)條件查詢
ArrayList
searchList = telSql.geTelListByInfo(name, tel, dep);
request.getSession().setAttribute("listResult", searchList);
request.getRequestDispatcher("listInfo.jsp").forward(request, response);
}else if(type.equals("add")){
//添加
if(telSql.addTelInfo(name, tel, dep))
pw.print("true");
else
pw.print("false");
}else if(type.equals("list")){
//列表
ArrayList displayList = telSql.geTelList();
request.getSession().setAttribute("listResult", displayList);
request.getRequestDispatcher("listInfo.jsp").forward(request, response);
}else if(type.equals("del")){
//刪除指定信息
telSql.delTelInfo(name);
ArrayList displayList = telSql.geTelList();
request.getSession().setAttribute("listResult", displayList);
request.getRequestDispatcher("listInfo.jsp").forward(request, response);
}
}
/**
* The doPost method of the servlet.
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}
Telsql
package com.work.operate;
import java.sql.*;
import java.util.*;
import com.work.bean.*;
import com.work.sql.*;
public class TelSql {
private Connection ct = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
public ArrayList geTelList() {
ArrayList al = new ArrayList();
TelBean telBean = null;
try {
ct = new Conn().getConn();
ps = ct.prepareStatement("select * from search");
rs = ps.executeQuery();
while (rs.next()) {
telBean = new TelBean();
telBean.setName(rs.getString("name"));
telBean.setTel(rs.getString("tel"));
telBean.setDep(rs.getString("dep"));
al.add(telBean);
}
} catch (Exception e) {
e.printStackTrace();
return al;
// TODO: handle exception
} finally {
this.close();
}
return al;
}
public ArrayList geTelListByInfo(String name, String tel,
String dep) {
ArrayList al = new ArrayList();
TelBean telBean = new TelBean();
if(dep.equals("tech")){
dep="技術(shù)部";
}else if(dep.equals("sale")){
dep="銷售部";
}else if(dep.equals("admin")){
dep="行政部";
}
try {
ct = new Conn().getConn();
String sql = "select * from search where";
if ((!name.equals("")) && (!tel.equals("")) && (!dep.equals("no"))) {
sql = sql + " name=" + name + " and tel=" + tel
+ " and dep=" + dep + "";
} else if ((!name.equals("")) && (!tel.equals(""))) {
sql = sql + " name=" + name + " and tel=" + tel + "";
} else if ((!name.equals("")) && (!dep.equals("no"))) {
sql = sql + " name=" + name + " and dep=" + dep + "";
} else if ((!tel.equals("")) && (!dep.equals("no"))) {
sql = sql + " tel=" + tel + " and dep=" + dep + "";
} else if (!name.equals("")) {
sql = sql + " name=" + name + "";
} else if (!tel.equals("")) {
sql = sql + " tel=" + tel + "";
} else if (!dep.equals("no")) {
sql = sql + " dep=" + dep + "";
}
ps = ct.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
telBean.setName(rs.getString("name"));
telBean.setTel(rs.getString("tel"));
telBean.setDep(rs.getString("dep"));
al.add(telBean);
}
} catch (Exception e) {
e.printStackTrace();
return al;
// TODO: handle exception
} finally {
this.close();
}
return al;
}
public boolean addTelInfo(String name, String tel, String dep) {
boolean flag = false;
try {
ct = new Conn().getConn();
ps = ct.prepareStatement("insert into search values(?,?,?)");
ps.setString(1, name);
ps.setString(2, tel);
if (dep.equals("tech")) {
ps.setString(3, "技術(shù)部");
} else if (dep.equals("sale")) {
ps.setString(3, "銷售部");
} else {
ps.setString(3, "行政部");
}
int temp = ps.executeUpdate();
if (temp != 0)
flag = true;
} catch (Exception e) {
e.printStackTrace();
return flag;
// TODO: handle exception
} finally {
this.close();
}
return flag;
}
public boolean delTelInfo(String name) {
boolean flag = false;
try {
ct = new Conn().getConn();
ps = ct.prepareStatement("delete from search where name=?");
ps.setString(1, name);
int temp = ps.executeUpdate();
if (temp != 0)
flag = true;
} catch (Exception e) {
e.printStackTrace();
return flag;
// TODO: handle exception
} finally {
this.close();
}
return flag;
}
public void close() {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (ps != null) {
ps.close();
ps = null;
}
if (ct != null) {
ct.close();
ct = null;
}
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
Sql
package com.work.sql;
import java.sql.*;
;
public class Conn {
private Connection ct = null;
public Connection getConn() {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
ct = DriverManager
.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=homework",
"sa", "");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return ct;
}
6. 設(shè)計心得
我們完成了為期兩周的課程設(shè)計,通過這次課程設(shè)計我深深體會到,在已度過的大學時間里,我們大多數(shù)接觸的是專業(yè)課.我們在課堂上掌握的僅僅是專業(yè)課的理論知識, 如何去鍛煉我們的實踐能力?如何把我們所學的專業(yè)基礎(chǔ)課理論知識運用到實踐中去呢?我想做類似的課程設(shè)計就為我們提供了良好的實踐平臺。
雖然以前我對這門課并沒有什么興趣, 覺得那些程序枯燥乏味, 但在這次課程設(shè)計后我發(fā)現(xiàn)自己在一點一滴的努力中對它的興趣也在逐步的增加。我們有七個同學一起合作,我們默契的配合使我們組順利完成了我們的設(shè)計,而且設(shè)計達到了我們預期的效果。這次課程設(shè)計對我來說學到的不僅是那些知識,更多的是團隊和合作。現(xiàn)在想來,也許學校安排的課程設(shè)計有著它更深層的意義吧, 它不僅僅讓我們綜合那些理論知識來運用到設(shè)計和創(chuàng)新中, 還讓我們知道了一個團隊凝聚在一起時所能發(fā)揮出的巨大潛能巨大力量!兩周來我們一起找資料,然后我們一起上網(wǎng)進行查閱,最后我們的電話號碼查詢系統(tǒng)課程設(shè)計成功完成。兩個星期后的今天我已明白課程設(shè)計對我來說的意義, 它不僅僅是讓我們把所學的理論知識與實踐相結(jié)合起來,提高自己的實際動手能力和獨立思考的能力,更重要的是同學間的團結(jié)力量。
回顧起此課程設(shè)計,至今我仍感慨頗多,從理論到實踐,在這段日子里,可以說得是苦多于甜,但是可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。
在這學期的課程設(shè)計中,不僅培養(yǎng)了我們的獨立思考、動手操作的能力,在各個其它能力上也都有了提高。更重要的是,在課程設(shè)計中,我們學會了很多學習的方法,而這是今后最實用的,真的是受益匪淺。要面對社會的挑戰(zhàn),只有不斷的學習、實踐,再學習、再實踐。這對于我們的將來也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發(fā)現(xiàn)其中珍貴的事情。就像中國提倡的艱苦奮斗一樣,我們在完成這次課程設(shè)計后變的更加成熟,能夠面對需要面對的事情。
鏈接地址:http://m.zhongcaozhi.com.cn/p-6682109.html