第三章 系統分析與設計
5. 物件導向系統開發
3.4 系統設計
本系統是處理一般營業時之出租及銷售,除此之外也可處理會員之 新增、修改、刪除。
(1)出租處理:此功能是處理會員及零租書籍之用。
(2)銷售處理:此功能主要是處理書籍的銷售。
(3)會員資料處理:可以對會員資料做新增、修改、刪除、查詢的 動作。及記錄其預付金額,以便會計部的統計。
(4)補貨清單處理:統計損壞、遺失及不足數量之書籍,以便做出補 貨清單,並將此清單送交採購部彙整。
(5)進貨清單處理:根據採購部送來的書籍的做資料處理。
(6)營業額處理:統計各門市的收入情況。
(7)書籍查詢處理:可對書籍做查詢作業。
圖3.2 門市之系統功能圖 門市子系統
進貨清單處 營業額處理
補貨清單處理
出租處理 書籍查詢處理
會員資料處理 銷售處理
主系統
2.主要功能:(1)新增出租記錄 (2)修改出租記錄 (3)刪除出租記錄 (4)查詢出租記錄 (5)顯示訊息
a.出租處理之更新流程
圖 3.3 書籍出租處理之資料流程圖
圖3.4 系統出租之資料流程圖
3.4.2 採購子系統
本系統是為採購部門而設計,其中採購部門所包含的工作是採購書 籍,並將購進的書籍分發到各門市部的處理。所以本系統的主要功能 是接受門市部的要求,或是接受網路訂單的要求,去購買書籍,並把 資料傳送至會計部,以便會計部做支出統計。
1.門市部清單處理 : 接受各門市部的要求,對補貨清單做批閱,
並列出所有要採購的書籍清單,作下一步的處理。
2.資訊部清單處理 : 接受網路訂單及新書訂單,並列出所有要採 購的書籍清單,作下一步的處理。
3.應購買清單處理 : 將已處理之門市部清單和資訊部清單作一彙 整,以便統計出將要購買的書籍清單。
4.已購買清單處理 : 把實際購買之書籍作一清單處理,並將會計 部所需資料傳送過去。
5. 支出報帳處理: 申報除了業務必要花費外,還有一些雜項開 支,因此本項是給予該單位向公司申報雜項支出用的。
圖3.5 採購部之系統功能圖 採購子系統
查詢動作 處理 資訊部 清單處理
購買清單 處理 門市部
清單處理 已購買
清單處理
主系統
3.4.3 資訊子系統
資訊子系統的主要職責是將新書清單處理及網路訂單提交給採購 部,並可對網頁及系統做維護。
圖3.6資訊部之系統功能圖 資訊子系統
書籍類別處理
網頁更新處理
網路查詢處理
網路訂單處理
主系統
新書清單處理 搜尋書籍處理
購物車處理處
登入作業處理
帳號新增處理 結帳作業處理
新書清單
1. 新書清單處理:匯整新書資訊並做出新書清單,對新的書籍資料作
檔案名稱:書籍基本資料.aspx
檔案名稱:書籍基本資料.dbf
檔案名稱: 書籍產品資料.aspx
3 數量 int 4
3.4.4 會計子系統
即管理公司的財務狀況,對公司的收入、支出記錄,做完整的分析 報告,以提供管理者做適當的決定,而也可對各部門做資金的分配和 審核,以便管理固定的資產,以利公司能做有效的利用
1.總收入作業處理: 把各門市及網上訂單所得的收入資料,做匯整 處理及建檔。
2.員工薪資處理: 計算所有員工薪資,並記錄其發放薪資資料另外 也把薪水支出做一加總的計算。
3.年終獎金發送處理: 計算每年員工年終獎金。
4.退休金發放處理: 作退休金發放的計算及記錄。
5.支出報帳處理: 計算除了業務必要花費外,還有一些雜項開支,
因此本項是給予各單位向公司報帳或雜項支出的申請。
6.總支出作業處理: 把所有支出做匯整及建檔的工作(所購書籍、
員工薪資…)。
7.盈利查詢處理: 計算在某一個月或某一年內的總盈利(總收入減 總支出)。
圖3.9 會計之系統功能圖
3.4.5 人事子系統
人事部門主要是管理整個公司內所有員工的基本資料及薪資發放, 及對各員工的人事狀態(如加班、請假、出差、獎勵及懲罰等)作最確 實的瞭解及管理以配合公司政策作最佳的管理和調度。
人事部主要的功能有下列項目:
1.員工基本資料處理 2.查詢員工新資資料處理 3.部門資料處理
4.職等及新資設定資料處理 5.人事命令處理
6.退休設定處理 7.密碼設定處理
圖3.10人事子系統之功能圖 人事子系統
人事命令處 退休設定處理
職等及新資設 定資料處理 員工基本資料
密碼設定處理
部門資料處理 查詢員工新資 資料處理
主系統
第四章 系統製作
4.1 資訊子系統 1.新書清單處理 (1)input 書籍資料
圖 4.1 新書清單輸入圖
(2)Algorithm:
Dim myrow As DataRow = 網頁更新外 1.CMRC_Products.NewRow() 'e.Item.Cells(1).Text()
myrow("ProductID") = ""
myrow("CategoryID") = "20"
myrow("ModelName") = e.Item.Cells(1).Text() myrow("ProductImage") = "image.gif"
myrow("UnitCost") = e.Item.Cells(7).Text()
網頁更新外 1.CMRC_Products.Rows.Add(myrow)
SqlDataAdapter2.Update(網頁更新外 1) Label9.Text = "新增成功"
SqlDataAdapter2.Fill(網頁更新外 1) DataGrid2.DataBind()
SqlDataAdapter1.Fill(網頁更新 1) DataGrid1.DataBind()
(3)output
圖 4.2 新書清單檢查圖
(4)output
圖 4.3 新書清單新增成功圖
2.網頁更新處理 (1)input
圖 4.4 網頁更新加入外部網頁圖(A)
(2)Algorithm:
Private Sub DataGrid2_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid2.EditCommand
DataGrid2.EditItemIndex = e.Item.ItemIndex SqlDataAdapter2.Fill(網頁更新外 1)
DataGrid2.DataBind() End Sub
Private Sub DataGrid2_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles
DataGrid2.DeleteCommand
Dim strsql As String = "delete from CMRC_Products where ProductID='" &
e.Item.Cells(0).Text & "'"
executestatement(strsql)
SqlDataAdapter2.Fill(網頁更新外 1) DataGrid2.DataBind()
End Sub
Function executestatement(ByVal strsql)
Dim objcmd As New System.Data.SqlClient.SqlCommand(strsql, SqlConnection2) Try
objcmd.Connection.Open() objcmd.ExecuteNonQuery() Catch ex As Exception End Try
objcmd.Connection.Close() End Function
(3)output
圖 4.5 網頁更新加入外部網頁圖(B) (4)output
圖 4.6 網頁更新加入外部網頁更新圖(A) (5)output
圖 4.7 網頁更新加入外部網頁更新圖(B) (6)output
圖 4.8 網頁更新加入外部網頁更新圖(C) (7)output
圖 4.9 網頁更新加入外部網頁更新圖(D) 3. 書籍類別處理
(1)input
圖 4.10 書籍類別處理-其他圖
(2)Algorithm:
Private Sub DataGrid2_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles
DataGrid2.UpdateCommand '取得資料索引
Dim key As String = DataGrid2.DataKeys(e.Item.ItemIndex).ToString() '更新 dataset
SqlDataAdapter2.Fill(網頁更新外 1)
Dim r As 網頁更新外.CMRC_ProductsRow
r = 網頁更新外 1.CMRC_Products.FindByProductID(key) '載入資料
r.CategoryID = CType(e.Item.Cells(1).Controls(0), TextBox).Text() r.ModelName = CType(e.Item.Cells(2).Controls(0), TextBox).Text r.ProductImage = CType(e.Item.Cells(3).Controls(0), TextBox).Text r.UnitCost = CType(e.Item.Cells(4).Controls(0), TextBox).Text
'更新資料庫
SqlDataAdapter2.Update(網頁更新外 1) DataGrid2.EditItemIndex = -1
SqlDataAdapter2.Fill(網頁更新外 1) DataGrid2.DataBind()
End Sub
(3)output
圖 4.11 書籍類別處理-小說圖 (4)output
圖 4.12 書籍類別處理-漫畫圖 (5)output
圖 4.13 書籍類別處理-社會人文圖 (6)output
圖 4.14 書籍類別處理-自然科學圖 (7)output
圖 4.15 書籍類別處理-藝術圖 (8)output
圖 4.16 書籍類別處理-電腦圖 4. 搜尋書籍處理
(1)input
圖 4.17 搜尋書籍處理-輸入圖
(2)output
圖 4.18 搜尋書籍處理-輸出圖 5. 購物車處理
(1)input
圖 4.19 購物車處理-輸入圖 (2)output
圖 4.20 購物車處理-輸出圖 (3)output
圖 4.21 購物車處理-第二次輸入圖(A) (4)output
圖 4.22 購物車處理-第二次輸出圖(B) (5)output
圖 4.23 購物車處理-更新輸出圖(A) (6)output
圖 4.24 購物車處理-更新輸出圖(B) (7)output
圖 4.25 購物車處理-數量更新輸入圖(A) (8)output
圖 4.26 購物車處理-數量更新輸出圖(B) 6. 登入作業處理
(1)input
圖 4.27 登入作業處理-輸入檢測圖 (2)output
圖 4.28 登入作業處理-輸入圖 (3)output
圖 4.29 登入作業處理-登入失敗輸出圖 (4)output
圖 4.30 登入作業處理-輸入圖 (5)output
圖 4.31 登入作業處理-輸出申請註冊圖 7.帳號新增處理
(1)input
圖 4.32 帳號新增處理-輸入申請註冊圖 (2)output
圖 4.33 帳號新增處理-驗證圖 (3)output
圖 4.34 帳號新增處理-輸入正確圖 8. 結帳作業處理
(1)input
圖 4.35 結帳作業處理-輸入最後認購確定圖 (3)output
圖 4.36 結帳作業處理-再次確認圖 (3)output
圖 4.37 結帳作業處理-結帳完成圖 (4)output
圖 4.38 結帳作業處理-帳戶紀錄圖
4.2 管理者系統 1.管理者登入介面 (1):input
圖 4.39 管理員登錄介面圖
(2)Algorithm:
string SelectCmd="select*from Administrator Whereid_no='"+txtID.Text+"'And pass
='"+txtPass.Text+"'";
SqlCommand cmd = new SqlCommand(SelectCmd,conn);
SqlDataReader reader;
reader=cmd.ExecuteReader();
if(reader.Read())
{Response.Redirect("index.aspx");}
else
{lblShow.Text="Sorry!你不是本站會員,所以不能進入本系統!";}}}
void Page_Load(object sender, EventArgs e) {
lblTime.Visible=true; lblTime.Text="現在時間是:"+DateTime.Now.ToString();}
(3)output
圖 4.40 登錄失敗圖
圖 4.41 登錄成功圖 2. 新增會員
(1)input
圖 4.42 新增會員介面圖
(2)Algorithm
void DataGrid1_UpdateCommand(object sender, DataGridCommandEventArgs e) { TextBox newName = (TextBox)e.Item.Cells[1].Controls[0] ;
TextBox newAd = (TextBox)e.Item.Cells[2].Controls[0] ; TextBox newSex = (TextBox)e.Item.Cells[3].Controls[0] ; TextBox newBoold = (TextBox)e.Item.Cells[4].Controls[0] ; TextBox newTel = (TextBox)e.Item.Cells[5].Controls[0] ; TextBox newAddress = (TextBox)e.Item.Cells[6].Controls[0] ;
UpdateCmd = "Update MEMBER Set 姓名 = '" + Check_Str(newName.Text) + "', 身分證字號 ='" + Check_Str(newAd.Text) + "',性別 = '" + Check_Str(newSex.Text) + "',血型 = '" + Check_Str(newBoold.Text) + "',聯絡電話 = '" +
Check_Str(newTel.Text) + "',居住地址 = '" + Check_Str(newAddress.Text) +
"'Where 帳號 = '" + DataGrid1.DataKeys[e.Item.ItemIndex] + "'" ;
Edit_Data("MEMBER", UpdateCmd) ; DataGrid1.EditItemIndex = -1 ;
DataGrid1.DataSource = Create_Table("MEMBER", SelectCmd, "MEMBER") ; DataGrid1.DataBind() ;
}
(3)output
圖 4.43 新增會員成功圖
圖 4.44 帳號重覆圖 3.編輯會員
(1)input
圖 4.45 編輯會員介面圖
(2)Algorithm
void DataGrid1_UpdateCommand(object sender, DataGridCommandEventArgs e) { TextBox newName = (TextBox)e.Item.Cells[1].Controls[0] ;
TextBox newAd = (TextBox)e.Item.Cells[2].Controls[0] ; TextBox newSex = (TextBox)e.Item.Cells[3].Controls[0] ; TextBox newBoold = (TextBox)e.Item.Cells[4].Controls[0] ; TextBox newTel = (TextBox)e.Item.Cells[5].Controls[0] ;
TextBox newAddress = (TextBox)e.Item.Cells[6].Controls[0] ;
UpdateCmd = "Update MEMBER Set 姓名 = '" + Check_Str(newName.Text) + "', 身分證字號 ='" + Check_Str(newAd.Text) + "',性別 = '" +
Check_Str(newSex.Text) + "',血型 = '" + Check_Str(newBoold.Text) + "', 聯絡電話 = '" + Check_Str(newTel.Text) + "',居住地址 = '" +
Check_Str(newAddress.Text) + "'Where 帳號 = '" + DataGrid1.DataKeys[e.Item.ItemIndex] + "'" ; Edit_Data("MEMBER", UpdateCmd) ;
DataGrid1.EditItemIndex = -1 ;
DataGrid1.DataSource = Create_Table("MEMBER", SelectCmd, "MEMBER") ; DataGrid1.DataBind() ;
}
(3)output
圖 4.46 編輯會員中介面圖
4.新增書籍 (1)input
圖 4.47 新增書籍介面圖 (2)Algorithm
void btnAdd_Click(object sender, EventArgs e) {if (Page.IsValid)
{string prod_id, prod_name, SelectCmd, InsertCmd ; int prod_price, prod_qty ;
prod_id = Check_Str(txtID.Text) ; prod_name = Check_Str(txtName.Text) ; prod_price = int.Parse(txtPrice.Text) ; prod_qty = int.Parse(txtQty.Text) ;
SelectCmd = "Select * From Book Where 書號 = '" + prod_id + "'" ; SqlDataReader reader = Create_Rd("MEMBER", SelectCmd) ;
//判斷是否有該筆資料,以 id_no 欄位(書號)為依據 if (reader.Read()) {
lblShow.Text = "本書已經新增完成,請重新輸入資料!" ; }else{ InsertCmd = "Insert Into Book(書號,書名,單價,數量) Values('" + prod_id + "','" + prod_name + "'," + prod_price +
"," + prod_qty + ")" ;
//呼叫 Edit_Data 函式,進行資料更新的動作 Edit_Data("MEMBER", InsertCmd) ;
lblShow.Text = "本書新增完成!" ;}}}
(3)output
圖 4.48 新增書籍成功圖
5.刪除書籍 (1)input
圖 4.49 刪除書籍介面圖 (2)Algorithm
void btnDel_Click(object sender, EventArgs e) {if (Page.IsValid)
{string prod_id, SelectCmd, DeleteCmd ; prod_id = Check_Str(txtID.Text) ;
SelectCmd = "Select * From Book Where 書號 = '" + prod_id + "'" ; SqlDataReader reader = Create_Rd("MEMBER", SelectCmd) ;
//判斷是否有該筆資料,以 id_no 欄位(書號)為依據 if (reader.Read()) {
DeleteCmd = "Delete From Book Where 書號 = '" + prod_id + "'" ; //呼叫 Edit_Data 函式,進行資料更新的動作 ;
Edit_Data("MEMBER", DeleteCmd) ;lblShow.Text = "" ; }else{lblShow.Text = "沒有這筆資料" ;}}}
(3)output
圖 4.50 刪除書籍成功圖 6.編輯書籍
(1)input
圖 4.51 編輯書籍介面圖
(2)Algorithm
void DataGrid1_UpdateCommand(object sender, DataGridCommandEventArgs e) {TextBox newName = (TextBox)e.Item.Cells[1].Controls[0] ;
TextBox newPrice = (TextBox)e.Item.Cells[2].Controls[0] ; TextBox newQty = (TextBox)e.Item.Cells[3].Controls[0] ; if (newPrice.Text == "") {newPrice.Text = "0" ;}
if (newQty.Text == "") { newQty.Text = "0" ;}
UpdateCmd = "Update Book Set 書名 = '" + Check_Str(newName.Text) + "', 單價 = " + int.Parse(newPrice.Text) + ", 數量 = " + int.Parse(newQty.Text) + " Where 書號 = '" +
DataGrid1.DataKeys[e.Item.ItemIndex] + "'" ; Edit_Data("MEMBER", UpdateCmd) ;
DataGrid1.EditItemIndex = -1 ;
DataGrid1.DataSource = Create_Table("MEMBER", SelectCmd, "Book") ; DataGrid1.DataBind() ;}
(3)output
圖 4.52 編輯書籍中圖
4.3 簡易問題討論區 1.主要討論區
(1)input
圖 4.53 問題討論區介面圖 (2)Algorithm
void btnSend_Click(object sender, EventArgs e) {//檢查欄位是否通過驗証
if (Page.IsValid)
{//檢查 txtMemo 文字方塊是否為空白 if (txtMemo.Text == "")
{lblError.Visible = true ;}
Else { lblError.Visible = false ;
string user_memo, user_name, user_subject, gif ;
/*Server.HTMLEncode 方法可將特殊符號進行編碼,使得特殊符號可正常顯示於 用戶端瀏覽器
*/
user_memo = Server.HtmlEncode(Check_Str(txtMemo.Text)) ; user_name = Server.HtmlEncode(Check_Str(txtName.Text)) ;
user_subject = Server.HtmlEncode(Check_Str(txtSubject.Text)) ; gif = radImg.SelectedItem.Value ;
InsertCmd = "Insert Into
GBOOKTITLE(name,subject,img,news_memo)Values('" +
user_name + "','" + user_subject + "','" + gif + "','" + user_memo + "')" ;
Edit_Data("MEMBER", InsertCmd) ; txtName.Text = "" ;
txtSubject.Text = "" ; txtMemo.Text = "" ;
Response.Redirect ("gbook_main.aspx") ;}}}
(3)output
圖 4.54 問題討論輸入中圖
圖 4.55 問題討論發表成功圖 2.回覆問題區
(1)input
圖 4.56 回覆問題區介面圖
(2)Algorithm
void btnSend_Click(object sender, EventArgs e) {if (Page.IsValid)
{if (txtMemo.Text == "") {lblError.Visible = true ;}
else{ lblError.Visible = false ;
string user_memo, user_name, user_subject, gif ;
user_memo = Server.HtmlEncode(Check_Str(txtMemo.Text)) ; user_name = Server.HtmlEncode(Check_Str(txtName.Text)) ;
user_subject = Server.HtmlEncode(Check_Str(txtSubject.Text)) ; gif = radImg.SelectedItem.Value ;
InsertCmd = "Insert Into
GBOOKDETAIL(name,subject,img,news_memo,parent) Values('" +
user_name + "','" + user_subject + "','" + gif + "','" + user_memo + "'," + lblId.Text + ")" ;
Edit_Data("MEMBER", InsertCmd) ;
SelectCmd = "Select * From GBOOKTITLE Where title_id = " + lblId.Text ;
reader = Create_Rd("MEMBER", SelectCmd) ;
(3)output
圖 4.57 回覆問題中圖
圖 4.58 回覆問題成功圖
第五章 系統評估 5.1 系統評估
這各專題我們針對資訊部子系統和管理者介面做實作還有加上一
這各專題我們針對資訊部子系統和管理者介面做實作還有加上一