辦公室日常管理信息系統


數據庫大

辦公室日常管理信息系統

一.設計目的

    辦公室自動化是近年隨着計算機科學發展而提出來的新概念。辦公自動化系統,辦公室自動化系統一般指實現辦公室內事務性業務的自動化,而辦公自動化則包括更廣泛的意義,即包括網絡化的大規模信息處理系統。一個企業實現辦公自動化的程度也是衡量其實現現代化管理的標准。辦公自動化從最初的以大規模采用復印機等辦公設備為標志的初級階段,發展到今天的以運用網絡和計算機為標志的現階段,對企業辦公方式的改變和效率的提高起到了積極的促進作用。  

    辦公自動化軟件解決企業的日常管理規范化、增加企業的可控性、提高企業運轉的效率的基本問題,范圍涉及日常行政管理、各種事項的審批、辦公資源的管理、多人多部門的協同辦公、以及各種信息的溝通與傳遞。可以概括的說,辦公自動化軟件跨越了生產、銷售、財務等具體的業務范疇,更集中關注於企業日常辦公的效率和可控性,是企業提高整體運轉能力不可缺少的軟件工具。

辦公室日常信息管理系統可以大大提高辦公室辦公的效率,以及幫助減少工作中可能出現的錯誤,為客戶提供更好的服務。本系統的開發主要包括后台數據庫的建立、維護以及前端應用程序的開發(略)兩個方面。后台數據庫使用SQL Server 2008。

二.問題描述

2.1 問題概述

隨着社會的發展,企業的發展,職工數量的增加,人員的不斷流動,平時我們常用的人工文件記錄方式,已經不能滿足現在辦公室的需求,查詢起來也相當繁瑣,得到的信息也不夠准確。現在已經到了大數據的時代,為了能使大量的企業和個人方便查詢到辦公室的各種信息,應該有一個比較全面的辦公室管理系統。

2.2 系統設計目標

辦公室日常信息管理系統是一個功能比較全面的信息管理系統,具有界面友好,高效迅速,反饋信息完整等特點。不僅可以滿足大部分企業,還能應用在學校和團體對辦公室日常各種信息管理的需求,並且易於操作。

2.3 系統主要功能

   辦公室日常信息管理系統針對的用戶群體相當普遍,企業、學校、團體均可使用。它具備以下功能:

1. 文件管理信息:包括文件編號、文件種類、文件名稱、存放位置等。

2. 考勤管理:包括考勤編號、會議號、參會人員、事務號、文件號、考勤次數等。

3. 查詢員工的出勤情況。

4. 會議記錄:包括會議編號、事務編號、會議起始時間、會議結束時間、參會人、記錄員、電話號碼、會議內容、所加備注等。

5. 辦公室日常事務管理,包括事務編號、事務時間、事務類型、記錄人等。

6. 按條件查詢,統計

    對於使用時,針對不同的用戶群體權限也不同。

系統管理員權限:

1.負責管理信息的輸入、修改、更新、刪除:包括文件管理、會議管理、日常事務管理、考勤管理等。

2.可以查看所有信息。

一般用戶權限:可以查看所有信息,但不能增加和刪除信息。

三.需求分析

3.1 設計思想

 根據任務書可以確定系統有會議管理表、事務管理表、文件管理表、考勤管理表和用戶表,分析各個表之間的關系,確定各個表的主鍵和外鍵,在數據庫中建立表。然后確定界面,確定界面上的組件和事件響應。

 

3.2 可行性分析

本系統從以下幾方面進行分析:

1.技術可行性

    本次“辦公室日常信息管理系統”設計的總體任務是實現辦公室的系統化、規范化和自動化,從而達到辦公室管理的高效率的目的。這學期學習了JAVA和數據庫,對開發管理系統有了一定的認識。由於本系統最重要的是實用性,通過自己現有技術和查閱資料,不恥下問,還是可以按期完成此次課設。

2.經濟可行性

     本系統為辦公室人員開發完整、合理的辦公室日常事務管理系統,可大大減少人力,且工作量和勞動強度大大降低。所以本系統為社會帶來很好的經濟效益。

3.操作可行性

本系統為辦公室管理者和普通用戶開發,有友好的界面,管理者和用戶只需懂得簡單的計算機操作知識就可以自由應用本軟件。經分析此系統滿足以上三個方面要求,所以本系統是完全可行的。

 

3.3 功能需求

3.3.1 基本功能需求

在本系統中,管理員具有以下功能:

    1.負責管理信息的輸入、修改、更新、刪除:包括文件管理、會議管理、日常事務管理、考勤管理等。

2.可以查看所有信息。

一般用戶權限:可以查看所有信息。    

3.3.2 用戶界面需求

用戶界面應有各個大模塊,大模塊里面應有各個操作的增刪改查界面。

 

3.4 性能需求

為了保證系統能夠長期安全、穩定、可靠、高效地運行,辦公室日常信息管理系統應該滿足以下性能需求:

1.系統處理的准確性和及時性

    對於日常事務、文件和會議的增刪改查對考勤有影響,以致於對整個系統的功能和性能完成有舉足輕重的作用。還有用戶的權限,其准確性很大程度決定了辦公室日常事務系統的成敗。在系統開發過程中,必須采用一定的方法保證系統的准確性和及時性。

2.系統的易用性和易維護性

辦公室日常信息管理系統是直接面對使用人員的,而使用人員往往對計算機並不是很熟悉。這就要求系統有良好的接口,易用的人機交互界面,縮短用戶對系統熟悉的過程。

 

3.5 系統設計基礎

3.5.1 系統業務流圖

                                                                      

 

圖3-1 系統業務流圖

3.5.2 系統數據流圖

 

圖3-2 頂層數據流圖

                                                                     

                                                                                                   圖3-3 功能數據流圖

 

四.概要設計

 

4.1 功能描述

辦公室日常信息管理系統是為了對各個企業等實行計算機化的管理,以提高工作效率,方便用戶,主要功能有會議、日常事務、文件、考勤進行管理和對本系統自身的用戶權限管理。此管理系統不僅含有添加、刪除、更改等功能,還具有對查詢情況進行統計的功能。系統管理主要是提高系統安全性和對系統進行良好的維護。

 

4.2 系統模塊

本系統具有5個模塊:系統模塊 、會議管理模塊 、日常事務管理模塊 、文件管理模塊 和考勤管理模塊。

4.3 系統功能模塊圖      

  

                                                                          

 

圖4-1 系統功能模塊圖

五.數據庫設計

5.1 數據庫簡介

   此系統采用了SQL Server 2008數據庫,將本系統需要用到的信息都保存在數據庫中的表中。 

首先進行數據庫的連接:

1.創建ODBC數據源:選擇“控制面板”——“管理工具”——“ODBC數據源”,在雙擊ODBC數據源后,選擇“用戶DNS”,添加新的數據源,選擇SQL Server,數據源名稱為x,設置用戶名為m,密碼o2apityr,選擇數據庫student。

2.建立JDBC-ODBC橋接器。

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection con = DriverManager.getConnection(

 "jdbc:odbc:x", "用戶名", “密碼”);  

5.2 概念設計

 

 

 

 

                  圖5-1 系統總的E-R圖 

5.3 邏輯結構設計

5.3.1 邏輯模型

合法用戶(用戶名,密碼,用戶權限)

文件(文件編號,文件名稱,文件類型,文件描述)

日常事務(事務編號,事務時間,事務類型,事務記錄人)

會議(會議編號,事務編號,參會人員,記錄人員,電話,會議開始時間,會議結束時間,會議內容,備注)

考勤(考勤編號,會議編號,參會人員,事務編號,文件編號,考勤次數)

5.3.2 表屬性定義---關系轉換、完整性定義(PK、FK、自定義其它)

    users(username ,pwd, power)

    wj(wj_No,wj_Name,wj_type,wj_destribe)

    sw(sw_No,sw_time,sw_type,sw_people)

    hy(hy_No,sw_No,hy_people,hy_recorder,telenumber,start_time,

end_time,hy_content,commemt)

    kq(kq_No,hy_No,hy_people,sw_No,wj_No,kq_num)

    FD(users): { usernameà pwd, power}

    FD(wj): { wj_No à wj_Name, wj_type,wj_destribe}

    FD(sw): { sw_No à sw_type,sw_time,sw_people }

    FD(hy):{hy_No,sw_Noàhy_people,start_time,

end-time,hy_content,commemt,telenumber}

    FD(kq):{kq_No,sw_No,hy_No,wj_Noàkq_num}

     自定義數據約束:

   (用戶權限)power僅取“系統管理員、普通用戶”

    (文件類型)wj_type 僅取“秘密、考勤、任選”

   (會議開始、結束時間,事務時間)start_time,end_time,sw_time

  格式“YYYY-MM-DD XX:XX:XX”

5.4 物理結構設計

   

 

                  

 

六.詳細設計

6.1 項目創建 

在Java的eclipse中新建一個工程,項目創建完成。 

6.2 主界面模塊

(1)模塊功能

    此模塊是將各個大模塊顯示在一個界面上,對它們進行排版。

(2)界面設計

 用分隔框將界面分為左右兩部分,左邊一個面板,右邊5個面板。左邊面板放右邊5個面板的標簽,點擊標簽相應對應的事件響應函數,然后切換到對應的面板。             

(3)關鍵代碼

public class mainFrame extends JFrame implements MouseListener{

public static void main(String[] args){new mainFrame();}

public mainFrame(){

login.addActionListener(new mainFrame_login_actionAdapter(this));}

     public void mouseClicked(MouseEvent e) {

if(e.getClickCount()==1){//鼠標單擊觸發事件

if(e.getSource()==jMenuFile){cl.show(jpanel_right,"1");

}else if(e.getSource()==xjgl){cl.show(jpanel_right,"2");

}else if(e.getSource()==bjgl){cl.show(jpanel_right,"3");

    }else if(e.getSource()==kcsz){cl.show(jpanel_right,"4");

    }else if(e.getSource()==cjgl){cl.show(jpanel_right,"5");}}}    

   6.3 系統模塊

    (1)模塊功能

    此模塊用於登錄,管理員和用戶擁有不同的權限。管理員負責管理信息的輸入、修改、更新、刪除:包括文件管理、會議管理、日常事務管理、考勤管理等;可以查看所有信息。一般用戶可以查看所有信息。

(2)界面設計

此界面是系統默認的界面。有登錄、瀏覽用戶、修改密碼三個按鈕,點擊按鈕響應相應的事件處理。

   (3)關鍵代碼

添加用戶

public class adduser extends JDialog {

  public adduser(Frame frame, String title, boolean modal) {

    super(frame, title, modal);jbInit();  pack(); }

  public adduser() { this(null, "", true); }

  private void jbInit() throws Exception {

    sure.addActionListener(new adduser_sure_actionAdapter(this));

    cancel.addActionListener(new adduser_cancel_actionAdapter(this));}

 void sure_actionPerformed(ActionEvent e) {

    if (pwd.getText().trim() == pwd1.getText().trim())

         {JOptionPane.showConfirmDialog(null,"確定添加?", "添加用戶", JOptionPane.YES_NO_OPTION);

          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

          Connection con = DriverManager.getConnection("jdbc:odbc:x", "m", "o2apityr");

      ps.executeUpdate("Insert Into users Values('" userF.getText().trim() +  "','" + pwd.getText().trim()+"','"+ power.getSelectedItem().toString() + "')");

      JOptionPane.showMessageDialog(null, "添加成功");}

void cancel_actionPerformed(ActionEvent e) { this.dispose(); }

瀏覽用戶

public class scanuser extends JFrame {

  public scanuser() { jbInit();

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

      Connection con = DriverManager.getConnection("jdbc:odbc:x", "m", "o2apityr");

      rs = ps.executeQuery("select * from users");

      while (rs.next()) {

         rowData[i][0] = rs.getString("username");

        rowData[i][1] = rs.getString("pwd");

        rowData[i][2] = rs.getString("power"); i = i + 1; } }

  public static void main(String[] args) { scanuser cxcj = new scanuser(); }

  private void jbInit() throws Exception {

    ok.addActionListener(new cxcj_ok_actionAdapter(this));  }

  void ok_actionPerformed(ActionEvent e) {

    this.dispose(); }}

  public static void  main(String args[]){

  new scanuser();}}

修改密碼

public class xiugaimima extends JDialog {

  public xiugaimima(Frame frame, String title, boolean modal) {

    super(frame, title, true); jbInit(); pack();  }

  public xiugaimima() { this(null, "修改密碼", true);}

  private void jbInit() throws Exception {

    cancel.addActionListener(new xiugaimima_cancel_actionAdapter(this));

    sure.addActionListener(new xiugaimima_sure_actionAdapter(this)); }

6.4 會議管理模塊

(1)模塊功能

    管理員可以在會議管理模塊實現對會議信息的管理。管理員首先應該建立會議信息數據庫,管理員根據相應的會議記錄來設置相應的會議記錄詳細信息。管理員可以對某條會議記錄信息進行添加、修改、刪除和查詢操作。

(2)界面設計

此模塊有添加會議、修改會議和查詢會議三個按鈕,點擊按鈕響應相應的界面,觸發相應的事件。

(3)關鍵代碼

添加會議

public class tjxjxx extends JFrame {

   public tjxjxx() {  jbInit(); rs = ps.executeQuery("select * from sw");}

   public static void main(String[] args) {tjxjxx tjxjxx = new tjxjxx(); }

  private void jbInit() throws Exception {

    ps.executeUpdate("Insert Into  hy Values('" +xh.getText().trim()+"','" +xm.getText().trim() + "','" +sex.getText().toString() + "','"+rq.getText().trim() + "','" +bh.getSelectedItem() + "','" +tel.getText().trim() + "','" +rxrq.getText().trim() + "','" +address.getText().trim() + "','"  +comment.getText().trim() + "')"); }}}

修改會議

public class xgxjxx extends JFrame {

    public xgxjxx() {  jbInit();rs = ps.executeQuery("select * from hy"); }

  public static void main(String[] args) { xgxjxx xgxjxx = new xgxjxx();}

 private void jbInit() throws Exception {

ps.executeUpdate("delete from hy where hy_No='" +xh.getText().trim() +"'");

ps.executeUpdate("delete from hy where hy_No='" +xh.getText().trim() + "'");

rs = ps.executeQuery("select * from hy"); }  

查詢會議

public class cxxj extends JFrame {

  public cxxj() {jbInit();}

  public static void main(String[] args) {cxxj cxxj = new cxxj(); }

  private void jbInit() throws Exception {

    cancel.addActionListener(new cxxj_cancel_actionAdapter(this));

ok.addActionListener(new cxxj_ok_actionAdapter(this));}

 void ok_actionPerformed(ActionEvent e) {

     if (xh.isSelected()) {

     rs = ps.executeQuery("select * from hy where hy_No='" +input.getText().trim()); }

    else if (xm.isSelected()) {

    rs = ps.executeQuery("select * from hy where hy_people='"+input.getText().trim() ); }

    else if (bh.isSelected()) {

    rs = ps.executeQuery("select * from hy where sw_No='" + input.getText().trim() );}

    else rs = ps.executeQuery("select * from hy"); }}

6.5日常事務管理模塊

    (1)模塊功能

    管理員可以在日常事務管理模塊實現對日常事務的管理。管理員首先應該建立日常事務數據庫,管理員可以對某事務信息進行添加、修改和刪除操作。

    (2)界面設計

此界面有添加事務和修改事務。點擊彈出相應的界面。

(3)關鍵代碼

添加事務

public class addxj extends JFrame {

  public addxj() { jbInit();}

  public static void main(String[] args) {addxj addxj = new addxj();  }

  private void jbInit() throws Exception {

    jButton1.addActionListener(new addxj_jButton1_actionAdapter(this));}

void jButton1_actionPerformed(ActionEvent e) {

 ps.executeUpdate("Insert Into  sw Values('" +bh+"','" + nj + "','" + bzr + "','" + js + "')");}   

修改事務

public class xgbj extends JFrame {

  public xgbj() { jbInit();  rs = ps.executeQuery("select * from sw");}

public static void main(String[] args) { xgbj xgbj = new xgbj();}

void ok_actionPerformed(ActionEvent e) {

if (xh.isSelected()) {

rs = ps.executeQuery("select * from hy where hy_No='" + input.getText().trim() );}

else if (xm.isSelected()) {

rs = ps.executeQuery("select * from hy where hy_people='" + input.getText().trim() ); }

else if (bh.isSelected()) {

rs = ps.executeQuery("select * from hy where sw_No='" +input.getText().trim() );}

else rs = ps.executeQuery("select * from hy"); }

 6.6文件管理模塊

(1)模塊功能

    管理員可以在文件管理模塊實現對文件信息的管理。管理員首先建立文件信息數據庫,當有新的文件需要添加或者需要對已有的文件信息進行修改、刪除的時候,管理員就可以進行相應的操作。

(2)界面設計

     此界面有添加文件和修改文件,根據需求彈出相應的界面。

 

 (3)關鍵代碼

 添加文件

public class tjkcxx extends JFrame {

   public tjkcxx() { jbInit();}

  public static void main(String[] args) {tjkcxx tjkcxx = new tjkcxx(); }

  private void jbInit() throws Exception {

    ok.addActionListener(new tjkcxx_ok_actionAdapter(this));

cancel.addActionListener(new tjkcxx_cancel_actionAdapter(this));}

void ok_actionPerformed(ActionEvent e) {

ps.executeUpdate("Insert Into wj Values('" +kcbh.getText().trim() + "','" +kcmc.getText().trim() + "','" + kclx.getSelectedItem().toString() +"','" + kcms.getText().trim() + "')");}

 修改文件

 public class xgkcxx extends JFrame {

  public xgkcxx() {jbInit();  rs = ps.executeQuery("select * from wj");}

 public static void main(String[] args) {xgkcxx xgkc = new xgkcxx();  }

void xgjl_actionPerformed(ActionEvent e) {

    ins.executeUpdate("Update wj set wj_Name='"+ mc.getText().trim() +"' ,wj_type='" + kclx.getSelectedItem().toString() +"' ,wj_destribe='" + kcms.getText().trim() + "'  where wj_No='" + kcbh.getText().trim() + "'");}

void scjl_actionPerformed(ActionEvent e) {

    sc.executeUpdate("delete from kq where 'wj_Name'=(select wj_Name from wj where wj_No='" +kcbh.getText() +"');");

    sc.executeUpdate("delete from kq where 'wj_Name'=(select wj_Name from wj where wj_No='" + kcbh.getText() +"');");}

 6.7 考勤管理模塊

    (1)模塊功能

    管理員可以在考勤管理模塊實現對考勤信息的管理。管理員首先應該建立考勤數據庫,當有新的考勤信息的時候或者管理員需要添加、修改某個考勤的相關信息以及想要刪除某個考勤信息的時候,就可以完成相應的操作。管理員用戶可以在整個數據庫中查相關考勤信息。

(2)界面設計

此界面有添加考勤、修改考勤和查詢考勤。

(3)關鍵代碼

添加考勤

public class addresult extends JFrame {

  public addresult() { jbInit();

     rs = ps.executeQuery("select distinct sw_No from  hy ");

    xzkc = kcs.executeQuery("select * from wj ");   }

void ok_actionPerformed(ActionEvent e) {

   cr.executeUpdate("Insert Into kq Values('" +ksbh.getText().trim() + "','"+        xh.getSelectedItem().toString()  + "','" + xm.getText().trim() + "','" + bh.getSelectedItem().toString() + "','" + kc.getSelectedItem().toString() + "','" + fs.getText().trim() + "')");}

void xh_itemStateChanged(ItemEvent e) {

 xsxm= xms.executeQuery( "select hy_people from hy where sw_No='" + bh.getSelectedItem().toString().trim() + "'and hy_No='"+xh.getSelectedItem().toString().trim() );}   

修改考勤

public class xgcj extends JFrame {

  public xgcj() { jbInit(); rs = ps.executeQuery("select * from kq");}

  public static void main(String[] args) {xgcj xgkc = new xgcj();  }

void xgjl_actionPerformed(ActionEvent e) {

    ins.executeUpdate("Update kq set kq_num='" + fs.getText().trim() + "' where kq_No='" + ksbh.getSelectedItem() +"'and hy_No='" + xh.getSelectedItem() +"'and sw_No='" + bh.getSelectedItem() + "'");}

void scjl_actionPerformed(ActionEvent e) {

    ins.executeUpdate("delete from kq  where kq_No='" +ksbh.getSelectedItem().toString().trim() + "'and hy_No='" +xh.getSelectedItem().toString().trim() + "'and sw_No='" +bh.getSelectedItem().toString().trim() + "' and wj_Name='" + kc.getSelectedItem().toString().trim() + "'");}

void bh_itemStateChanged(ItemEvent e) {

     as = is.executeQuery("select distinct hy_No   from kq where sw_No='" +

bh.getSelectedItem() + "' and kq_No='" + ksbh.getSelectedItem() + "'");}

查詢考勤

public class sacnresult extends JFrame {

  public sacnresult() { jbInit(); }

public static void main(String[] args) { sacnresult sacnresult = new sacnresult(); }

 private void jbInit() throws Exception {

 cancel.addActionListener(new sacnresult_cancel_actionAdapter(this));

 ok.addActionListener(new sacnresult_ok_actionAdapter(this));}

void ok_actionPerformed(ActionEvent e) {

 if (xh.isSelected()) {

 rs = ps.executeQuery("select * from kq where hy_No='" +input.getText().trim() + "'"); }

        else if (kc.isSelected()) {

 rs = ps.executeQuery("select * from kq where hy_people='" +input.getText().trim() + "'");}

        else if (bh.isSelected()) {

rs = ps.executeQuery("select * from kq where sw_No='" +input.getText().trim() );

        } else rs = ps.executeQuery("select * from kq");}

七.調試分析

 實際開發過程中不可避免地會產生差錯,系統中通常可能隱藏着錯誤和缺陷,不經周密測試的系統投入運行,將會造成難以想像的后果,因此系統測試是MIS開發過程中為保證軟件質量必須進行的工作。大量統計資料表明,系統測試的工作量往往占MIS開發總工作量的40%以上。因此,我們必須重視測試工作。

 我在開發本系統時,為了使系統能夠穩定運行,對本系統進行了有針對性的全面測試,采取的方式是:

(1)通過eclipse的系統界面進行登錄,根據所建users中的數據,輸入管理員的用戶名密碼,以管理員的身份操作程序。為了保證每一項菜單能夠正確實現系統設計的功能,我把相關的基礎數據,基本上全部輸入到本系統中,並對每一個菜單項進行了增加、刪除、修改等操作,從而保證了菜單級功能的正確實現。

(2)進入SQL Server 2008中查看各個表中的數據是否增刪改成功。

 (3)我在以上測試的基礎上對系統功能進行了整體的測試,依次來檢驗系統功能是否符合系統設計的要求。

   經調試分析,此系統的各個模塊的增刪改查在數據庫中都可以顯示。此系統可以達到預定的功能。

 

八.使用說明

本系統共5個模塊,可以分別操作,操作也很簡單。

1.點擊系統,進入系統,輸入用戶名和密碼,分為管理員和一般用戶。管理員權限更大一些。可以修改密碼,可以瀏覽用戶。

2.點擊會議管理,進入會議管理模塊,點擊添加會議按鈕,在編輯框中輸入各個信息,里邊的事務號是從已在數據庫中的事務管理模塊來的,對已有事物進行選擇。修改會議,對已有會議進行修改。查詢會議,可以根據參會人、事務號或者會議號進行檢索,也可以直接按確定顯示數據庫中的所有會議信息。

3.點擊日常事務管理模塊,添加修改日常事務,若輸入有誤會拋出異常,進行修改,直至存到數據庫中的是正確的。

4.點擊文件管理模塊,添加修改文件信息,按確定,將信息存入數據庫中。

5.點擊考勤管理模塊,在添加考勤中,事務號、會議號、參會人員是從會議管理表中讀取的數據,文件編號是從文件管理表中讀取的。修改考勤、刪除考勤、更新考勤,對相應的進行修改。查詢考勤模塊,可以按照事務號、會議號、參會人員進行查詢,從已有考勤表中檢索出數據。按確定,可以檢索出所有的考勤信息。

九.設計總結

此次數據庫大課設,不同於其他課設和平時上機時的簡單的編寫代碼,而是要求我們根據課設題目,自己選擇DBMS產品和應用開發工具,最關鍵的進行它們之間的連接。我選擇的SQL Server 2008 和JAVA,建立JDBC-ODBC橋,建立ODBC數據源,向eclipse里添加驅動,寫連接代碼進行連接,直至連接成功。

這次課設需要從需求分析做起,利用課程中學到的數據庫知識和技術開發出數據庫應用系統,解決信息化處理要求。通過兩周的課程設計,鞏固了我對數據庫基本原理和基礎知識的理解,加深了我對數據庫開發的認識,進一步提高了我綜合運用所學知識的能力,同時對SQL Server 2008操作也更加熟練。

從一開始的對任務書進行需求分析,了解系統業務,到后面的建立數據流圖,數據字典,數據字典里面的數據項、數據結構、數據流、數據存儲和處理過程,一個一個進行設計,初步建立了wj(文件表)、sw(事務表)、hy(會議表)、kq(考勤表),user(用戶表),對各個表的主鍵,外鍵進行定義,利用SQL Server 2008 畫出E-R圖,把E-R圖向關系模型進行轉換,找出各個表的函數依賴關系,對各個表屬性和完整性約束進行定義,然后對表的物理結構進行設計,對數據庫的實施。最后是對系統進行測試,在具體的測試中,我認為應當遵循以下原則:由程序設計者之外的人進行測試;測試用例應由兩部分組成:輸入數據和預期輸出結果;應選用不合理的輸入數據與非法輸入測試;不僅要檢驗程序是否實現預期功能,還應檢查程序是否做了不應該做的工作;集中測試容易出錯的程序模塊;對程序修改以后,必須重新進行測試。

這樣從需求分析到概念設計到邏輯設計到物理設計再到最后的編碼,數據庫實施階段,無不凝聚着自己的智慧和汗水。利用Java編程做出的界面,對數據庫中的表進行數據的插入、修改、刪除、更新和查詢等操作,最后對系統的測試。特別要引起我們注意的是自己輸入數據的類型要和建表時的變量數據類型要一致,不然這樣的錯誤會讓我們苦惱許久,所以一定得細心。每次課程設計,我們都要認真對待,遇到困難,積極查詢資料,不懂就問,只有堅持不懈,才能取得勝利。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM