《 《Java 程序設計》課程設計報告書(shū)
課題名稱(chēng) 于 基于 Java 的教師檔案管理系統的設計
姓 姓
名
學(xué) 學(xué)
號
學(xué) 學(xué)
院
專(zhuān) 專(zhuān)
業(yè)
指導教師
2016 年 6 月 28 日
一、設計任務(wù)及要求:
1. 采用 B/S 模式進(jìn)行開(kāi)發(fā),其優(yōu)點(diǎn)是后臺與前臺處理層次分明,而且符合眾多已經(jīng)習慣網(wǎng)頁(yè)方式的用戶(hù)。
2. 采用面向對象的開(kāi)發(fā)與設計理念。運用面向對象技術(shù)的前提是對整體系統的高度和準確抽象,通過(guò)它可以保證系統良好的框架,進(jìn)而帶來(lái)產(chǎn)品較強的穩定性和運行效率。
3. 采用模塊化設計。模塊化設計要求將整個(gè)系統劃分成基于小的模塊,有利于代碼的重載,簡(jiǎn)化設計和實(shí)現過(guò)程。
4. 簡(jiǎn)單方便的系統界面。設計簡(jiǎn)單友好的系統界面,方便用戶(hù)較快的適應系統的操作。
5.速度優(yōu)先原則。由于此工具最重要的評測標準就是速度,因此在設計過(guò)程中,具體過(guò)程盡量做到資源占用少,速度快。
6.設計既要突出重點(diǎn),又要細致周到。要符合設計需求,在有可能改進(jìn)的地方進(jìn)行擴充,使系統更適應用戶(hù)的需要。
指導教師簽名:
年
月
日
二、指導教師評語(yǔ):
指導教師簽名:
年
月
日
三、成績(jì)
驗收蓋章
年
月
日
于 基于 Java 的教師檔案管理系統系統 設計 譚維雋
1 1 設計目的
長(cháng)久以來(lái),教職工的管理工作大多數都采用的是傳統的手工方式來(lái)記錄相關(guān)信息,這種管理方式存在很多缺點(diǎn),比如說(shuō),教職工信息、工資信息的錄入,查詢(xún),更新,分析都要完全依賴(lài)管理人員的手工記錄和人工分析,人工記錄是相當麻煩的。為滿(mǎn)足需求,決定采用各種編程語(yǔ)言 JSP 開(kāi)發(fā)了基于 B/S 架構的教師檔案管理系統,教師檔案管理系統是涉及信息科學(xué)、數據計算和計算機技術(shù)的復雜的人機交互系統。通過(guò)這些系統,可以對教職工和管理進(jìn)行智能化管理,有效地記錄并查詢(xún)教職工的各項情況,為管理者提供了諸多方便。
2 2 設計的主要內容和要求
1 2.1 數據庫的邏輯結構設計
我們知道,數據庫概念模型獨立于任何特定的數據庫管理系統,因此,需要根據具體使用的數據庫管理系統的特點(diǎn)進(jìn)行轉換。即轉化為按計算機觀(guān)點(diǎn)處理的邏輯關(guān)系模型,E-R 模型向關(guān)系數據庫模型轉換應遵循下列原則:
*每一個(gè)實(shí)體要轉換成一個(gè)關(guān)系 *所有的主鍵必須定義非空(NOT NULL)
*對于二元聯(lián)系應按照一對多、弱對實(shí)、一對一、多對多等聯(lián)系來(lái)定義外鍵。
根據 E-R 模型,教師檔案管理系統建立了以下邏輯數據結構,下面是各數據表的詳細說(shuō)明。
?。?)教師信息表主要是記錄了教師的基本信息。表結構如表 2.1 所示。
表 2.1 教師信息表(t_jaoshi)
列名 數據類(lèi)型 長(cháng)度 允許空 是否主鍵 說(shuō)明 id int 4 否 是
ID gonghao varchar 50 否 否
教師號 xingming varchar 50 否 否
姓名 xingbie varchar 50 否 否 性別 nianling varchar 20 否 否 年齡 shengri varchar 20 否 否 出生日期 gongzuo varchar 50 否 否 工作時(shí)間 zhuanye varchar 50 否 否 專(zhuān)業(yè) zhaopian varchar 50 否 否 照片 beizhu varchar 50 否 否 備注信息 (2) 工資信息表主要是記錄了教職工工資的基本信息。表結構如表 2.2 所示。
表 2.2 工資信息表(t_gongzi) 列名 數據類(lèi)型 長(cháng)度 允許空 是否主鍵 說(shuō)明 id int 4 否 是
ID jsid varchar 50 否 否
教師 ID riqi varchar 50 否 否
工資月份 gongzi varchar 50 否 否
工資數 jiangjin varchar 20 否 否
獎金 (3)管理員信息表主要記錄的管理員的賬號信息,包括用戶(hù)名和密碼,表結構如表 2.3 所示。
表 2.3 管理員信息表(t_admin) 列名 數據類(lèi)型 長(cháng)度 允許空 是否主鍵 說(shuō)明 userId int 4 否 是 編號 userName varchar 50 否 否 用戶(hù)名 userPw varchar 50 否 否 密碼
2 2.2 數據庫的連接原理
采用 JDBC 連接數據庫的方式,只需在工程中導入對應數據庫的 jar 包,就可以方便的對數據庫進(jìn)行連接,在程序中,用 Class.forName()方法來(lái)加載驅動(dòng)程序,在用 DriverManager 的 getConnection()方法就可以創(chuàng )建一個(gè)數據庫連接。程序采用的是 DAO 模式來(lái)操作數據庫,DAO(Data Access Object,數據訪(fǎng)問(wèn)對象),是Java 編程中的一種經(jīng)典模式,已被廣泛應用,也是 J2EE 架構中持久層框架的基礎知識,基于分層次式的軟件架構來(lái)實(shí)現對數據庫的訪(fǎng)問(wèn)操作。DAO 模式的主要思想就是從抽象數據源獲取與操縱數據的方法。抽象數據的含義就是編寫(xiě)應用程序的程序員不必關(guān)心數據庫的物理位置,已經(jīng)是何種數據庫,只需使用封裝數據庫中表示記錄的數據對象即可。其思想如圖 2.4 所示:
圖 2.4
DAO 模式類(lèi)圖
圖中 BussinessObject 是業(yè)務(wù)對象,是使用 DAO 模式的客戶(hù)端;DataTransferObject 數據傳輸對象,在應用程序不同層次之間傳輸對象,在一個(gè)分布式應用程序中,通??梢蕴岣哒淼男阅?;DataObjectAcces 數據輸入/輸出對象封裝了對數據源的一些基本操作;DataSource 指的是數據源??梢詮膱D中看出,DAO 模式分離了業(yè)務(wù)邏輯和數據羅即將,是的編寫(xiě)的軟件具有良好的層次式體系結構。本系統為了方便數據庫的操作,主要使用 DBContent 的對象來(lái)接一個(gè)數據庫(建立一個(gè)類(lèi) DBContent),代碼如代碼 1。
3 2.3 系統功能實(shí)現
在管理信息系統的生命周期中,僅過(guò)了需求分析、系統設計等階段之后,便開(kāi)始了系統實(shí)施階段。在系統分析和設計階段,系統開(kāi)發(fā)工作主要是集中在邏輯、BusinessObject DataAccessObject DataSource DataTransferObject 使用 封裝 創(chuàng )建/使用 獲取/修改
功能和技術(shù)設計上,系統實(shí)施階段要繼承此前面各個(gè)階段的工作成果,將技術(shù)設計轉化為物理實(shí)現,因此系統實(shí)施的成果是系統分析和設計階段的結晶。
1 2.3.1 系統登陸頁(yè)
1.描述:為了保證系統的安全性,要先使用本系統必須先登陸到系統中。
2.在登陸頁(yè)面輸入用戶(hù)名和密碼以,選擇登陸身份后,點(diǎn)擊提交按鈕,跳轉到登陸的 service 中,在該 service 中會(huì )對用戶(hù)名,密碼,驗證碼進(jìn)行判斷,并根據相應的用戶(hù)角色進(jìn)入對應的頁(yè)面,代碼如代碼 2。
2 2.3.2 系統主頁(yè)面
1.描述:管理員主頁(yè)面:左方頁(yè)面展示了管理員可操作的七大功能,進(jìn)入相關(guān)的管理頁(yè)面可以鏈接到子菜單,并且高亮顯示,每個(gè)管理模塊下面都有相應的子菜單。
2.在每個(gè) jsp 頁(yè)面將會(huì )對相關(guān)用戶(hù)進(jìn)行攔截操作,這樣可以提高安全性,防止用戶(hù)不經(jīng)過(guò)登陸頁(yè)面而進(jìn)入任何子菜單頁(yè)面,如代碼 3:
3 2.3.3 教職工信息管理
?。?)教職工錄入 1.描述:管理員輸入教職工相關(guān)正確信息后點(diǎn)擊錄入按鈕,如果是沒(méi)有輸入完整的信息,都會(huì )給出相應的錯誤提示,不能錄入成功。輸入數據都通過(guò) form表單中定義的方法 onsubmit="return checkForm()"來(lái)檢查,checkForm()函數中是各種的校驗輸入數據的方式。
2.流程圖如下圖 4 所示:
?。?)教職工管理 1.描述:管理員點(diǎn)擊左側的菜單“教職工管理”,頁(yè)面跳轉到做教職工界面,調用后臺的 servlet 類(lèi)查詢(xún)所有教職工的信息。
2.教職工管理關(guān)鍵代碼如代碼 4:
4 2.3.4 工資信息管理
?。?)工資錄入 1.描述:在此頁(yè)面主要是輸入工資數、獎金等信息,然后選擇教職工,所有信息都不能夠為空,是否為空也是通過(guò) form 表單中的 onsubmit="return
checkForm()來(lái)檢查。
?。?)工資信息管理 1.描述:管理員點(diǎn)擊左側的菜單“工資管理”,頁(yè)面跳轉到工資管理界面,調用后臺的 gongziServlet 類(lèi)查詢(xún)出所有的工資信息,并把這些信息封轉到數據集合 List 中,綁定到 request 對象,然后頁(yè)面跳轉到相應的 jsp,顯示出來(lái)。
2.工資管理關(guān)鍵代碼代碼 5:
?。?)修改個(gè)人密碼 1.描述:輸入用戶(hù)名和用戶(hù)的原有密碼,輸入新密碼以后點(diǎn)擊修改按鈕即可修改密碼成功。
?。?)安全退出系統 1.描述:點(diǎn)此按鈕回到系統的主頁(yè)面。
2.關(guān)鍵代碼如代碼 6。
3 整體設計方案
4 流程圖設計
圖 4 教職工錄入流程圖
管理員錄入教職工信息 系統驗證教職工信息 錄入成功 結 束 通過(guò) 未通過(guò) 登陸系統
5 程序設計
代碼 1:
public DBContent(){
String CLASSFORNAME="com.SqlServer.jdbc.Driver";//連接數據庫的驅動(dòng)
String url="jdbc:SqlServer://localhost:3306/jzggl";
String user="root";//連接數據庫的用戶(hù)名
String password="root";//連接數據庫的密碼
try{
Class.forName(CLASSFORNAME);
con= DriverManager.getConnection(url,user,password);//加載數據庫的驅動(dòng)
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch(Exception ex){
ex.printStackTrace();
}
}
代碼 2 public String login(String userName,String userPw,int userType) {
try
{
Thread.sleep(700);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
String result="no";
if(userType==0)//系統管理員登陸
{
String sql="from TAdmin where userName=? and userPw=?";
Object[] con={userName,userPw};
List adminList=adminDAO.getHibernateTemplate().find(sql,con);
if(adminList.size()==0)
{
result="no";
}
else
{
WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
TAdmin admin=(TAdmin)adminList.get(0);
session.setAttribute("userType", 0);
session.setAttribute("admin", admin);
result="yes";
}
}
if(userType==1)
{
}
if(userType==2)
{
}
return result;
}
代碼 3 if(session.getAttribute("user")==null) {
out.print("<script>alert(" 請 先 登 錄 !");window.open("../index.jsp","_self")</script>");
}
代碼 4 public void jihuayuanAdd(HttpServletRequest req,HttpServletResponse res) public void jiaoshiDel(HttpServletRequest req,HttpServletResponse res)
{
int id = Integer.parseInt(req.getParameter("id"));
String del = "yes";
String sql = "update t_jiaoshi set del=? where id=?";
Object[] params={del,id};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "教師信息刪除成功!");
req.setAttribute("path", "jiaoshi?type=jiaoshiMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void jiaoshiUpd(HttpServletRequest req,HttpServletResponse res)
{
int id = Integer.parseInt(req.getParameter("id"));
String gonghao = req.getParameter("gonghao");
String xingming = req.getParameter("xingming");
String xingbie = req.getParameter("xingbie");
String nianling = req.getParameter("nianling");
String shengri = req.getParameter("shengri");
String gongzuo = req.getParameter("gongzuo");
String zhuanye = req.getParameter("zhuanye");
String zhaopian = req.getParameter("zhaopian");
String beizhu = req.getParameter("beizhu");
String sql = "update t_jiaoshi set gonghao=?,xingming=?,xingbie=?,nianling=?,shengri=?,gongzuo=?,zhuanye=?,zhaopian=?,beizhu=? where id=?";
Object[] params={gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,id};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "教師信息修改成功!");
req.setAttribute("path", "jiaoshi?type=jiaoshiMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void jiaoshiAdd(HttpServletRequest req,HttpServletResponse res)
{
String gonghao = req.getParameter("gonghao");
String xingming = req.getParameter("xingming");
String xingbie = req.getParameter("xingbie");
String nianling = req.getParameter("nianling");
String shengri = req.getParameter("shengri");
String gongzuo = req.getParameter("gongzuo");
String zhuanye = req.getParameter("zhuanye");
String zhaopian = req.getParameter("zhaopian");
String beizhu = req.getParameter("beizhu");
String del = "no";
String sql = "insert into t_jiaoshi (gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,b
eizhu,del)" +
" values (?,?,?,?,?,?,?,?,?,?)";
Object[] params={gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,del};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "教師信息添加成功!");
req.setAttribute("path", "jiaoshi?type=jiaoshiMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void jiaoshiMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
List jiaoshiList=new ArrayList();
String sql="select * from t_jiaoshi where del="no"";
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
TJiaoshi jiaoshi=new TJiaoshi();
jiaoshi.setId(rs.getInt("id"));
jiaoshi.setGonghao(rs.getString("gonghao"));
jiaoshi.setXingming(rs.getString("xingming"));
jiaoshi.setXingbie(rs.getString("xingbie"));
jiaoshi.setNianling(rs.getString("nianling"));
jiaoshi.setShengri(rs.getString("shengri"));
jiaoshi.setGongzuo(rs.getString("gongzuo"));
jiaoshi.setZhuanye(rs.getString("zhuanye"));
jiaoshi.setZhaopian(rs.getString("zhaopian"));
jiaoshi.setBeizhu(rs.getString("beizhu"));
jiaoshiList.add(jiaoshi);
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
req.setAttribute("jiaoshiList", jiaoshiList);
req.getRequestDispatcher("admin/jiaoshi/jiaoshiMana.jsp").forward(req, res);
}
代碼 5 public void gongziAdd(HttpServletRequest req,HttpServletResponse res) {
int jsid = Integer.parseInt(req.getParameter("jsid"));
String riqi = req.getParameter("riqi");
String gongzi = req.getParameter("gongzi");
String jiangjin = req.getParameter("jiangjin");
String sql = "insert into t_gongzi (jsid,riqi,gongzi,jiangjin) values (?,?,?,?)";
Object[] params={jsid,riqi,gongzi,jiangjin};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "教師工資添加成功");
req.setAttribute("path", "gongzi?type=gongziMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void jsList(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
List jiaoshiList=new ArrayList();
String sql="select * from t_jiaoshi where del="no"";
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
TJiaoshi jiaoshi=new TJiaoshi();
jiaoshi.setId(rs.getInt("id"));
jiaoshi.setGonghao(rs.getString("gonghao"));
jiaoshi.setXingming(rs.getString("xingming"));
jiaoshi.setXingbie(rs.getString("xingbie"));
jiaoshi.setNianling(rs.getString("nianling"));
jiaoshi.setShengri(rs.getString("shengri"));
jiaoshi.setGongzuo(rs.getString("gongzuo"));
jiaoshi.setZhuanye(rs.getString("zhuanye"));
jiaoshi.setZhaopian(rs.getString("zhaopian"));
jiaoshi.setBeizhu(rs.getString("beizhu"));
jiaoshiList.add(jiaoshi);
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
req.setAttribute("jiaoshiList", jiaoshiList);
req.getRequestDispatcher("admin/gongzi/jsList.jsp").forward(req, res);
}
public void toAddGz(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
TJiaoshi jiaoshi=new TJiaoshi();
int jsid = Integer.parseInt(req.getParameter("jsid"));
String sql="select * from t_jiaoshi where id = ?";
Object[] params={jsid};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
jiaoshi.setId(rs.getInt("id"));
jiaoshi.setGonghao(rs.getString("gonghao"));
jiaoshi.setXingming(rs.getString("xingming"));
jiaoshi.setXingbie(rs.getString("xingbie"));
jiaoshi.setNianling(rs.getString("nianling"));
jiaoshi.setShengri(rs.getString("shengri"));
jiaoshi.setGongzuo(rs.getString("gongzuo"));
jiaoshi.setZhuanye(rs.getString("zhuanye"));
jiaoshi.setZhaopian(rs.getString("zhaopian"));
jiaoshi.setBeizhu(rs.getString("beizhu"));
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
GregorianCalendar gc = new GregorianCalendar();
String strDate = DateUtils.formatDate2Str(gc.getTime(), "yyyy-MM");
req.setAttribute("strDate", strDate);
req.setAttribute("jiaoshi", jiaoshi);
req.getRequestDispatcher("admin/gongzi/gzAdd.jsp").forward(req, res);
}
public void gongziMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
List gongziList = new ArrayList();
String riqi = req.getParameter("riqi")==null?"":req.getParameter("riqi");
String sql = "select tb.xingming,ta.* from t_gongzi ta,t_jiaoshi tb where ta.jsid=tb.id";
if(!("".equals(riqi))){
sql += " and ta.riqi = ""+riqi+""";
}
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
TGongzi gongzi=new TGongzi();
gongzi.setId(rs.getInt("id"));
gongzi.setJsxm(rs.getString("xingming"));
gongzi.setRiqi(rs.getString("riqi"));
gongzi.setGongzi(rs.getString("gongzi"));
gongzi.setJiangjin(rs.getString("jiangjin"));
gongziList.add(gongzi);
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
req.setAttribute("riqi", riqi);
req.setAttribute("gongziList", gongziList);
req.getRequestDispatcher("admin/gongzi/gongziMana.jsp").forward(req, res);
}
代碼 6 主要是通過(guò) javascript 語(yǔ)句來(lái)實(shí)現, item_word[8][4]="退出系統"; item_link[8][4]="javascript:window.open("../index.jsp","_self")";
代碼 7
6 系統測試
6.1 系統測試目的與意義 系統測試是管理信息系統開(kāi)發(fā)周期中一個(gè)十分重要而漫長(cháng)的的階段。其重要性體現在他是保證系統質(zhì)量與可靠性的最后關(guān)口,是對整個(gè)系統開(kāi)發(fā)過(guò)程包括系統分析、系統設計和系統實(shí)現的最終審查。
系統測試的任務(wù)是盡可能徹底的檢查出程序中的錯誤,提高軟件系統的可靠性,其目的是檢驗系統“做得怎樣”。這這階段又可以分為三個(gè)步驟:模塊測試,
測試每個(gè)模塊的程序是否正確;組裝測試,測試模塊之間的接口是否正確;確認測試,測試整個(gè)軟件系統是否滿(mǎn)足用戶(hù)功能和性能的要求。測試發(fā)現問(wèn)題之后要經(jīng)過(guò)調試找出錯誤原因和位置,然后進(jìn)行改正。是基于系統整體需求說(shuō)明書(shū)的黑盒測試,應覆蓋系統隨偶聯(lián)合的部件,系統測試是正對整個(gè)產(chǎn)品系統進(jìn)行的測試,目的是驗證系統是否滿(mǎn)足了需求規格的定義,找出需求規格不符合或與之矛盾的地方。
6.2 主頁(yè)面的登錄模塊測試 測試流程:
1.打開(kāi)系統首頁(yè),輸入錯誤的登錄信息
2.登錄
3.輸入正確的登錄信息
4.登錄
5.測試結果
模塊名稱(chēng) 測試用例 預期結果 實(shí)際結果 是否通過(guò) 登錄模塊 用 戶(hù) 名 :
null
密碼:null
彈出錯誤提示,請輸入用戶(hù)名 登陸失敗,提示請輸入用戶(hù)名 通過(guò) 登錄模塊
用戶(hù)名:m1
密碼:null
彈出錯誤提示,請輸入密碼 失敗,提示輸入密碼 通過(guò)
登錄模塊
用戶(hù)名:m1
密碼:1
彈出錯誤提示,用戶(hù)名或者密碼錯誤 登陸失敗,提示用戶(hù)名或者密碼錯誤 通過(guò)
7 設計總結
本次課程設計將我大學(xué)所學(xué)的軟件工程理論知識用到了具體的實(shí)踐中去,深化了理論知識,同時(shí)也鍛煉了動(dòng)手實(shí)踐能力。在這段日子里,我查閱了許多有關(guān)教師檔案管理信息系統的資料,翻閱了許多 JSP 的書(shū)籍,結合自己的經(jīng)驗,詳細調查了教職工管理的工作內容與細節,開(kāi)發(fā)設計了這個(gè)教師檔案管理系統,雖然企業(yè)每個(gè)學(xué)期都會(huì )有相應課程的課程設計和實(shí)訓來(lái)作為動(dòng)手練習訓練,不過(guò)在本次畢業(yè)設計具體的實(shí)踐的時(shí)候還是遇到了很多小問(wèn)題,比如說(shuō)在 jsp 頁(yè)面將輸入
框設為不可用是添加屬性 readonly=“true”,而我在實(shí)際編程中卻錯寫(xiě)成disable=“true”,這樣直接導致了 request 對象取不到數據,調試了程序很久才發(fā)現 request 對象獲得的返回值一直是空,之前一直以為是代碼哪里出了問(wèn)題,總是在查源程序的邏輯。這些雖然都是小問(wèn)題,但是由于不細心在具體實(shí)踐中卻浪費了不少時(shí)間,看來(lái)平時(shí)還是要多多實(shí)踐才是。
在系統的開(kāi)發(fā)過(guò)程中,我運用到了 B/S 三層結構技術(shù)和自己在平時(shí)學(xué)習中掌握的一些技術(shù),通過(guò)這些技術(shù)的實(shí)現,整個(gè)系統的性能得到了大大的提高。這些技術(shù)都在論文中做了比較詳細的介紹。本系統還存在許多的缺陷和不足之處,比如很多細節上做的還不行,有些功能模塊還應再加強。希望在以后的時(shí)間里,我可以把這些缺陷都彌補過(guò)來(lái),進(jìn)一步完善系統。
通過(guò)本次畢業(yè)設計我鍛煉了自己的自學(xué)、研究能力,也從中學(xué)到不少在企業(yè)在課堂上學(xué)不到的東西.通過(guò)實(shí)踐我也深刻的體會(huì )到軟件開(kāi)發(fā)的艱辛及問(wèn)題解決后的喜悅心情,培養我的獨立思考問(wèn)題的能力,同時(shí)也增強了我的理論聯(lián)系實(shí)際的能力,這為自己以后的工作奠定了良好的基礎。
本系統可以在很大程度上減輕我校教職工管理人員的工作負擔,但由于時(shí)間按和技術(shù)條件的限制,還存在一些不足之處,有些功能還需要改進(jìn),還應該做進(jìn)一步的系統調查需求分析工作,更深入的完善系統??傊?,一個(gè)緊跟時(shí)代步伐的真正使用的軟件必需有一個(gè)不斷完善改進(jìn)的過(guò)程
參考文獻 [1]白秋產(chǎn),高愛(ài)華,沈顯來(lái).基于 VFP 的做工師傅教職工管理信息系統[J].計算機與數字工程,2006,34(01):143-145 [2]舒攀,陳金剛.數字化校園建設中教師檔案管理系統的實(shí)現與設計[J].武漢工程大學(xué)學(xué)報,2008,30(04):108-111 [3]徐超毅.教師檔案管理系統的面向對象分析[J].安徽理工大學(xué)學(xué)報(自然科學(xué)版),2005,25(03):62-64 [4]艾靈仙. 高校系級網(wǎng)站構建平臺的設計與實(shí)現[J]. 科技信息-2008年16期 [5]張國玉,牟宗國.加強和完善教職工管理工作探討[J].四川教育學(xué)院學(xué)報,2007,23(SI):19-20
[6]嚴勇杰.淺談如何加強高職院校教職工管理工作[J].科技信息,2008,(29):592-593 [7]吳漢龍.實(shí)在的系統,實(shí)在的效用—淺析浙江樹(shù)人大學(xué)教師檔案管理系統開(kāi)發(fā)與試用[J].高校后勤研究,2009,20(4):94-97
[8] 許義金,鄭初華.教職工管理中心管理信息系統開(kāi)發(fā)[J].南昌航空工業(yè)學(xué)院學(xué)報,2006,20(4):94-97 [9]J.M.Hellerstein,M.Stonebraker.Architecture of a Database System[J].Foundations and Trends in Databases,2007,1(2):141-259 [10]壽秀香.基于 C/S 結構的教職工管理信息系統的設計與實(shí)現[J].黑龍江科技信息,2008,(31):55
[11]張立科.java 信息系統管理開(kāi)發(fā)[M].北京:人民郵電出版社. [12]鄧子云.JSP 網(wǎng)絡(luò )編程從基礎到實(shí)踐[M].北京:電子工業(yè)出版社. [13]朱濤江.SqlServer 權威指南[M].中國電力出版社.2003. [14]郝玉龍.JavaEE 編程技術(shù)[M].北京:北京交通大學(xué)出版社. [15](美)Bruce Eckel 著(zhù),陳昊鵬譯,Java 編程思想(第三版)[M].北京:機械工業(yè)出版社,2007.6 [16]李建中,王珊.《數據庫系統原理(第 2 版)》電子工業(yè)出版社.2004.9 [17]張長(cháng)富,黃中敏.JavaScript 動(dòng)態(tài)網(wǎng)頁(yè)編程實(shí)例手冊[M].北京:海洋出版社,2005:196-239 [18]艾靈仙. 高校系級網(wǎng)站構建平臺的設計與實(shí)現.[J]. 科技信息-2008 年 16期