版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、武漢理工大學(xué)華夏學(xué)院課程設(shè)計(jì)報(bào)告書(shū)課程名稱(chēng):數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì) 題 目: 銀行儲(chǔ)蓄管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) 系 名: 信息工程系 專(zhuān)業(yè)班級(jí): 姓 名: 學(xué) 號(hào): 1 指導(dǎo)教師: 2012年 6 月 29日課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名: 專(zhuān)業(yè)班級(jí): 指導(dǎo)教師: 工作單位: 信息工程系 設(shè)計(jì)題目:銀行儲(chǔ)蓄管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)初始條件:本課程的設(shè)計(jì)的目的是通過(guò)實(shí)踐使同學(xué)們經(jīng)歷數(shù)據(jù)庫(kù)設(shè)計(jì)開(kāi)發(fā)的全過(guò)程和受到一次綜合訓(xùn)練,以便能較全面地理解、掌握和綜合運(yùn)用所學(xué)的知識(shí)。結(jié)合具體的開(kāi)發(fā)案例,理解并初步掌握系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施的主要環(huán)節(jié)和步驟以及軟件文檔的制作能力。要求完成的主要任務(wù):要求學(xué)生根據(jù)所學(xué)的數(shù)據(jù)庫(kù)原理
2、與程序設(shè)計(jì)的知識(shí),能夠針對(duì)一個(gè)小型的銀行儲(chǔ)蓄管理系統(tǒng),進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)的需求分析,概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)錄入及測(cè)試等,完成題目要求的功能。主要任務(wù):用戶(hù)有以下需求:建立用戶(hù);建立賬戶(hù)檔案,建立賬戶(hù)索引;完成日常交易信息檢索、進(jìn)行存款、轉(zhuǎn)賬、取款等工作,對(duì)取款、轉(zhuǎn)賬等操作,必需進(jìn)行身份驗(yàn)證。具體要求如下:1 存折信息 數(shù)據(jù)包括:存折的基本信息包括:戶(hù)名、帳號(hào)、開(kāi)戶(hù)銀行名稱(chēng)、開(kāi)戶(hù)日期、取款密碼等。2賬戶(hù)存取明細(xì)數(shù)據(jù)包括:日期、摘要(現(xiàn)存、現(xiàn)支、轉(zhuǎn)存、利息)、交易金額、余額、操作柜員編號(hào)。 3 檢索系統(tǒng) 能根據(jù)戶(hù)名、賬號(hào)、交易日期、金額等進(jìn)行查詢(xún)。4取款 輸入賬號(hào)和密碼后,能根
3、據(jù)密碼判斷用戶(hù)是否合法,能判斷取款金額是否超過(guò)了賬戶(hù)余額,如果取款金額合法,就對(duì)該賬號(hào)的余額信息進(jìn)行更新。5、存款 輸入賬號(hào)和存款金額后,能更新該賬號(hào)的余額。6、轉(zhuǎn)賬 輸入賬號(hào)和密碼后,能根據(jù)密碼判斷用戶(hù)是否合法,然后再輸入對(duì)方的轉(zhuǎn)賬賬戶(hù),并判斷對(duì)方的轉(zhuǎn)賬賬戶(hù)是否合法,如果合法,再輸入轉(zhuǎn)賬的金額,并能判斷轉(zhuǎn)賬金額是否超過(guò)了賬戶(hù)余額,如果轉(zhuǎn)賬金額合法,就對(duì)該賬號(hào)的余額信息以及對(duì)方的賬戶(hù)余額信息進(jìn)行更新。設(shè)計(jì)報(bào)告撰寫(xiě)格式要求:要求層次清楚、整潔規(guī)范、不得相互抄襲,凡正文內(nèi)容有整段完全相同者一律以抄襲論處。設(shè)計(jì)報(bào)告正文字?jǐn)?shù)不少于0.2萬(wàn)字(不包括附錄)第1級(jí)(章)題序和題名用黑體三號(hào)字,第2級(jí)(目)
4、題序和題名用黑體小四號(hào)字,第3級(jí)(條)題序和題名用黑體小四號(hào)字,正文內(nèi)容用宋體五號(hào)字(英文用新羅馬體),多倍行距1.25。報(bào)告內(nèi)容一律使用A4打印紙計(jì)算機(jī)打印,頁(yè)碼在頁(yè)下居中標(biāo)明。必須使用國(guó)家公布的規(guī)范字。頁(yè)面設(shè)置:上空2.5 cm,下空2.0 cm,左空2.5 cm,右空2.0cm(左裝訂)。插圖圖面要整齊、美觀,插圖應(yīng)與正文呼應(yīng),不能脫節(jié)。每幅插圖應(yīng)有圖序與圖題,圖序編號(hào)要連續(xù),圖序與圖題間空一格且要放在插圖下方居中處。時(shí)間安排:消化資料、系統(tǒng)調(diào)查 1天系統(tǒng)分析、總體設(shè)計(jì),實(shí)施計(jì)劃、撰寫(xiě)報(bào)告 3天 演示、驗(yàn)收 1天指 導(dǎo) 教 師 簽 字: 凌偉 2012年 6月 25
5、日系 主 任 簽 字: 2012年 6月25 日目錄第1章項(xiàng)目需求51.1 編寫(xiě)目的51.1.1范圍41.1.2定義41.1.3參考資料41.2項(xiàng)目概述51.2.1產(chǎn)品描述51.2.2產(chǎn)品功能51.2.3用戶(hù)特點(diǎn)51.2.4一般約束51.2.5假設(shè)和依據(jù)61.3具體需求61.3.1功能需求61.3.1.1功能需求161.3.1.2功能需求281.3.1.3功能需求381.3.1.4功能需求481.3.2外部接口需求81.3.2.1硬件接口81.3.2.2軟件接口81.3.3性能需求91.3.4設(shè)計(jì)約束91.3.4.1其他標(biāo)準(zhǔn)的約束91.3.4.2硬件的約束101.3.5屬性101.3.5.1可
6、用性101.3.5.2安全性101.3.5.3可維護(hù)性101.3.6其他需求111.3.6.1數(shù)據(jù)庫(kù)111.3.6.2操作11第2章系統(tǒng)概要設(shè)計(jì)13 2.1目的-14 2.2運(yùn)行界面-14 2.3運(yùn)行代碼-16 2.4數(shù)據(jù)庫(kù)設(shè)計(jì)要-28 2.5系統(tǒng)測(cè)試與護(hù)-29 33第1章 需求分析1.1 編寫(xiě)目的幫助學(xué)員了解項(xiàng)目的功能,明確需求功能中用戶(hù)對(duì)系統(tǒng)要做什么的要求,了解需求中的各種業(yè)務(wù)規(guī)則。說(shuō)明編寫(xiě)這份軟件需求說(shuō)明書(shū)的目的,指出預(yù)期的讀者范圍。1.1.1 范圍軟件系統(tǒng)的名稱(chēng):某某銀行活期儲(chǔ)蓄系統(tǒng)。本軟件主要實(shí)現(xiàn)銀行的活期儲(chǔ)蓄的相關(guān)業(yè)務(wù)。說(shuō)明:a 待開(kāi)發(fā)的軟件系統(tǒng)的名稱(chēng);b 說(shuō)明軟件將干什么,如果需
7、要的話(huà),還要說(shuō)明軟件產(chǎn)品不干什么;c 描述所說(shuō)明的軟件的應(yīng)用。應(yīng)當(dāng):1) 盡可能精確地描述所有相關(guān)的利益、目的、以及最終目標(biāo)。2) 如果有一個(gè)較高層次的說(shuō)明存在,則應(yīng)該使其和高層次說(shuō)明中的類(lèi)似的陳述相一致(例如,系統(tǒng)的需求規(guī)格說(shuō)明)。1.1.2 定義列出本文件中用到的專(zhuān)門(mén)術(shù)語(yǔ)的定義和縮寫(xiě)詞的原詞組。1.1.3 參考資料列出要用到的參考資料,如:a <數(shù)據(jù)庫(kù)原理及應(yīng)用SQL Server 2000> 作者 夏冰冰 出版社 國(guó)防工業(yè)出版社;b <軟件需求工程> 作者 梁正平 出版社 機(jī)械工業(yè)出版社 ;c. <C#程序設(shè)計(jì)及應(yīng)用教程> 作者 馬駿 出版社 人民郵電
8、出版社;1.2 項(xiàng)目概述1.2.1 產(chǎn)品描述本軟件實(shí)現(xiàn)銀行的活期儲(chǔ)蓄存款業(yè)務(wù)。整套軟件由客戶(hù)端程序和服務(wù)器端程序構(gòu)成,客戶(hù)端運(yùn)行在面向個(gè)人業(yè)務(wù)的銀行柜臺(tái)的電腦上,銀行職員輸入相關(guān)信息并通過(guò)網(wǎng)絡(luò)通訊向服務(wù)器發(fā)送請(qǐng)求,并接受服務(wù)器端程序的應(yīng)答顯示處理的結(jié)果。服務(wù)器端處理客戶(hù)端的各種業(yè)務(wù)請(qǐng)求。主要實(shí)現(xiàn)銀行開(kāi)戶(hù)、銷(xiāo)戶(hù)、取款、存款、余額查詢(xún)、轉(zhuǎn)賬、修改密碼、等功能。1.2.2 產(chǎn)品功能軟件功能表模塊功能說(shuō)明客戶(hù)端程序登錄主菜單取款開(kāi)戶(hù)銷(xiāo)戶(hù)轉(zhuǎn)帳余額查詢(xún)打印賬戶(hù)明細(xì)記錄修改密碼服務(wù)器端程序存款取款開(kāi)戶(hù)銷(xiāo)戶(hù)轉(zhuǎn)帳余額查詢(xún)計(jì)算利息修改密碼1.2.3 一般約束下面對(duì)設(shè)計(jì)系統(tǒng)時(shí)限制開(kāi)發(fā)者選擇的其他一些項(xiàng)作一般性描述。
9、而這些項(xiàng)將限定開(kāi)發(fā)者在設(shè)計(jì)系統(tǒng)時(shí)的任選項(xiàng)。這些包括:a 管理方針;b 硬件的限制:終端電腦性能較差,無(wú)法支持圖形化界面;c 與其他應(yīng)用間的接口;d 并行操作:支持10個(gè)終端同時(shí)操作;e 審查功能;f 控制功能;g 所需的高級(jí)語(yǔ)言:標(biāo)準(zhǔn)C+語(yǔ)言;h 通信協(xié)議:TCP/IP;i 應(yīng)用的臨界點(diǎn);j 安全和保密方面的考慮:各種密碼輸入后用*顯示。通過(guò)網(wǎng)絡(luò)傳送的數(shù)據(jù)在傳送前需要簡(jiǎn)單加密,接收后在處理前需要簡(jiǎn)單解密。服務(wù)器端對(duì)接收到的數(shù)據(jù)需要進(jìn)行第二次數(shù)據(jù)有效性驗(yàn)證。1.2.4 假設(shè)和依據(jù)本條列出影響需求說(shuō)明中陳述的需求的每一個(gè)因素。這些因素不是軟件的設(shè)計(jì)約束,但是它們的改變可能影響到需求說(shuō)明中的需求。例
10、如:假定一個(gè)特定的操作系統(tǒng)是在被軟件產(chǎn)品指定的硬件上使用的,然而,事實(shí)上這個(gè)操作系統(tǒng)是不可能使用的,于是,需求說(shuō)明就要進(jìn)行相應(yīng)的改變。1.3 具體需求1.3.1 功能需求1.3.1.1 客戶(hù)端登錄功能引言:客戶(hù)端程序運(yùn)行時(shí),首先進(jìn)行用戶(hù)(銀行職員)的合法性驗(yàn)證。銀行職員輸入正確的用戶(hù)名和密碼后,進(jìn)入系統(tǒng)主菜單界面。用戶(hù)有三次驗(yàn)證機(jī)會(huì),超過(guò)三次程序直接退出。用戶(hù)名和密碼需事先保存在程序的配置文件中,并且密碼需進(jìn)行加密保存。輸入處理輸出1、用戶(hù)名2、密碼1、用戶(hù)名長(zhǎng)度10位2、密碼長(zhǎng)度6位3、用戶(hù)名及密碼正確后進(jìn)入主菜單界面。1、如果用戶(hù)名或者密碼不正確,給用戶(hù)一個(gè)友好提示并提示還有幾次機(jī)會(huì)2、密
11、碼用*輸出1.3.1.2 客戶(hù)端主菜單功能引言:顯示銀行的基本信息,例如銀行支行的名稱(chēng),地址,登錄的銀行職員的ID號(hào)等。以上這些數(shù)據(jù)銀行職員可以手工對(duì)相關(guān)的文本文件進(jìn)行修改。輸出主菜單(包括開(kāi)戶(hù)、存款、取款、查詢(xún)、轉(zhuǎn)賬、修改密碼、銷(xiāo)戶(hù)、退出等功能)供操作用戶(hù)選擇,然后根據(jù)用戶(hù)的輸入選擇進(jìn)入不同的系統(tǒng)功能界面。輸入處理輸出1、菜單項(xiàng)編號(hào)1、根據(jù)用戶(hù)的選擇進(jìn)入不同的功能界面。1,根據(jù)用戶(hù)的選擇彈出不同的界面。1.3.1.3 客戶(hù)端開(kāi)戶(hù)功能引言:銀行職員在客戶(hù)端輸入開(kāi)戶(hù)的基本信息,通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù),在服務(wù)器處理后顯示服務(wù)器端的處理結(jié)果。開(kāi)戶(hù)成功后打印存折相關(guān)信息。操作結(jié)束后返回主菜單界面。存折的基本
12、信息包括:戶(hù)名、帳號(hào)、開(kāi)戶(hù)銀行名稱(chēng)、開(kāi)戶(hù)日期等。賬戶(hù)存取明細(xì)信息包括:日期、摘要(現(xiàn)存、現(xiàn)支、轉(zhuǎn)存、利息)、交易金額、余額、操作柜員編號(hào)。輸入處理輸出1、用戶(hù)姓名2、身份證號(hào)碼3、密碼4、重復(fù)密碼5、開(kāi)戶(hù)金額1、開(kāi)戶(hù)的所有信息必填。2、錄入的數(shù)據(jù)去除左右空格。3、用戶(hù)姓名最大長(zhǎng)度1-20位,只允許數(shù)字。4、身份證號(hào)碼長(zhǎng)度18位,全部數(shù)字或者前17位數(shù)字最后一位為X。從第7位開(kāi)始必須是合法的8位日期5、密碼長(zhǎng)度6位,只能是數(shù)字。6、密碼和重復(fù)密碼一致。7、開(kāi)戶(hù)金額大于等于0,小數(shù)位最多2位。1、如果用戶(hù)輸入的各項(xiàng)數(shù)據(jù)不正確,給用戶(hù)一個(gè)友好提示,并要求用戶(hù)重新輸入。2應(yīng)答服務(wù)器的處理結(jié)果并輸出。4
13、、開(kāi)戶(hù)成功后打印存折基本信息以及賬戶(hù)明細(xì)信息,存折的格式請(qǐng)參考用戶(hù)接口。1.3.1.4 客戶(hù)端存款功能引言:銀行職員在客戶(hù)端輸入存款的基本信息,通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù),在服務(wù)器處理后顯示服務(wù)器端的處理結(jié)果。存款成功后打印賬戶(hù)明細(xì)。操作結(jié)束后返回主菜單界面。輸入處理輸出1、存折賬戶(hù)ID2、存款金額1、輸入的所有信息必填。2、驗(yàn)證存折賬戶(hù)ID的長(zhǎng)度5位;3、存款金額大于0.00元,最多兩位小數(shù);1、如果用戶(hù)輸入的各項(xiàng)數(shù)據(jù)不正確,給用戶(hù)一個(gè)友好提示,并要求用戶(hù)重新輸入。2、應(yīng)答服務(wù)器的處理結(jié)果并輸出。3、存款成功后打印賬戶(hù)明細(xì)信息,賬戶(hù)明細(xì)信息的格式請(qǐng)參考用戶(hù)接口。1.3.1.5 客戶(hù)端取款功能引言:銀行
14、職員在客戶(hù)端輸入取款的基本信息(假設(shè)存折賬戶(hù)的密碼也由銀行職員輸入),通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù),在服務(wù)器處理之后顯示服務(wù)器端的處理結(jié)果。操作結(jié)束后返回主菜單界面。輸入處理輸出1、存折賬戶(hù)ID、2、存折密碼3、取款金額1、輸入的所有信息必填。2、驗(yàn)證賬戶(hù)ID的長(zhǎng)度5位;3、驗(yàn)證存折密碼長(zhǎng)度6位;4、取款金額大于0.00元,最多兩位小數(shù);1、如果用戶(hù)輸入的各項(xiàng)數(shù)據(jù)不正確,給用戶(hù)一個(gè)友好提示,并要求用戶(hù)重新輸入。2、應(yīng)答服務(wù)器的處理結(jié)果并輸出。3、取款成功后打印賬戶(hù)明細(xì)信息,賬戶(hù)明細(xì)信息的格式請(qǐng)參考用戶(hù)接口。4、密碼輸入錯(cuò)誤三次后進(jìn)入黑名單,將在三天之內(nèi)無(wú)法使用該存折;1.3.1.6 客戶(hù)端轉(zhuǎn)賬功能引言:在
15、客戶(hù)端輸入轉(zhuǎn)賬的基本信息(假設(shè)存折賬戶(hù)的密碼也由銀行職員輸入),通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù),在服務(wù)器處理后顯示服務(wù)器端的處理結(jié)果。轉(zhuǎn)賬成功后打印本賬戶(hù)的明細(xì)信息并打印轉(zhuǎn)賬憑證。操作結(jié)束后返回主菜單界面。1.3.1.7 客戶(hù)端余額查詢(xún)功能1.3.1.8 引言:銀行職員在客戶(hù)端輸入查詢(xún)的基本信息(假設(shè)存折賬戶(hù)的密碼也由銀行職員輸入),通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù),在服務(wù)器處理后顯示服務(wù)器端的處理結(jié)果。成功后如果之前有部分賬戶(hù)明細(xì)信息未打印的進(jìn)行打印。操作結(jié)束后返回主菜單界面。輸入處理輸出1、存折賬戶(hù)ID2、存折密碼1、輸入的所有信息必填。2、驗(yàn)證賬戶(hù)ID的長(zhǎng)度5位;3、驗(yàn)證存折密碼長(zhǎng)度6位;4、通過(guò)網(wǎng)絡(luò)把數(shù)據(jù)發(fā)送到服務(wù)
16、器。1、如果用戶(hù)輸入的各項(xiàng)數(shù)據(jù)不正確,給用戶(hù)一個(gè)友好提示,并要求用戶(hù)重新輸入。2、應(yīng)答服務(wù)器的處理結(jié)果并輸出。3、密碼輸入錯(cuò)誤三次后進(jìn)入黑名單,將在三天之內(nèi)無(wú)法使用該存折;4、成功后打印之前未打印的賬戶(hù)明細(xì)信息。1.3.1.9 客戶(hù)端修改密碼功能引言:銀行職員在客戶(hù)端輸入修改密碼的基本信息(假設(shè)存折賬戶(hù)的舊密碼和新密碼都由銀行職員輸入),通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù),在服務(wù)器處理之后顯示服務(wù)器端的處理結(jié)果。操作結(jié)束后返回主菜單界面。輸入處理輸出1、賬戶(hù)ID2、密碼3、新密碼4、重復(fù)密碼1、輸入的所有信息必填。2、錄入的數(shù)據(jù)去除左右空格。4、密碼長(zhǎng)度6位。5、新密碼和重復(fù)密碼一致6、通過(guò)網(wǎng)絡(luò)把數(shù)據(jù)發(fā)送到服務(wù)
17、器1、如果用戶(hù)輸入的各項(xiàng)數(shù)據(jù)不正確,給用戶(hù)一個(gè)友好提示,并要求用戶(hù)重新輸入。2、應(yīng)答服務(wù)器的處理結(jié)果并輸出。引客戶(hù)端銷(xiāo)戶(hù)功能引言:銀行職員在客戶(hù)端輸入賬戶(hù)ID和密碼信息(假設(shè)存折賬戶(hù)的密碼也由銀行職員輸入),通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù),在服務(wù)器處理之后顯示服務(wù)器端的處理結(jié)果。操作結(jié)束后返回主菜單界面。請(qǐng)參考客戶(hù)端的取款功能,與客戶(hù)端取款功能區(qū)別的地方是不用輸入取款金額。1.3.1.10 客戶(hù)銷(xiāo)戶(hù)功能引客戶(hù)端銷(xiāo)戶(hù)功能引言:銀行職員在客戶(hù)端輸入賬戶(hù)ID和密碼信息(假設(shè)存折賬戶(hù)的密碼也由銀行職員輸入),通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù),在服務(wù)器處理之后顯示服務(wù)器端的處理結(jié)果。操作結(jié)束后返回主菜單界面。請(qǐng)參考客戶(hù)端的取款功能,
18、與客戶(hù)端取款功能區(qū)別的地方是不用輸入取款金額。1.3.1.11 服務(wù)器端開(kāi)戶(hù)功能引言:接收客戶(hù)端傳送的數(shù)據(jù),把數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,經(jīng)過(guò)服務(wù)器段的處理后把處理的結(jié)果傳回給客戶(hù)端。輸入:1、 接收客戶(hù)端傳送過(guò)來(lái)的數(shù)據(jù)。處理:1、 自動(dòng)生成賬戶(hù)ID,長(zhǎng)度5位,從1開(kāi)始編號(hào),不足補(bǔ)0,例如00009、00103等。自動(dòng)生成賬戶(hù)ID要求唯一。2、 賬戶(hù)所有信息將保存數(shù)據(jù)庫(kù)的賬戶(hù)信息表中。3、 根據(jù)開(kāi)戶(hù)金額生成一條賬戶(hù)的存款記錄。輸出:1、 把服務(wù)器端處理的結(jié)果返回給客戶(hù)端。處理的結(jié)果包括開(kāi)戶(hù)是否成功,如果開(kāi)戶(hù)成功處理的結(jié)果中還包含生成的存款記錄。1.3.1.12 服務(wù)器端存款功能引言:接收客戶(hù)端傳送的數(shù)
19、據(jù),增加賬戶(hù)余額并修改相關(guān)的數(shù)據(jù)庫(kù)信息,把結(jié)果傳回給客戶(hù)端。輸入處理輸出1、客戶(hù)端傳送的數(shù)據(jù)。1、驗(yàn)證賬戶(hù)ID是否存在。2、修改對(duì)應(yīng)賬戶(hù)ID的數(shù)據(jù)庫(kù)信息。1、把服務(wù)器端處理的結(jié)果返回給客戶(hù)端。1.3.1.13 服務(wù)器端取款功能引言:接收客戶(hù)端傳送的數(shù)據(jù),減少賬戶(hù)余額并修改相關(guān)的數(shù)據(jù)庫(kù)信息,把結(jié)果傳回給客戶(hù)端。輸入處理輸出1、客戶(hù)端傳送的數(shù)據(jù)。1、驗(yàn)證賬戶(hù)ID是否存在。2、驗(yàn)證密碼是否正確。3、驗(yàn)證余額是否足夠。2、修改對(duì)應(yīng)賬戶(hù)ID的數(shù)據(jù)庫(kù)信息。1、把服務(wù)器端處理的結(jié)果返回給客戶(hù)端。1.3.1.14 服務(wù)器端轉(zhuǎn)賬功能引言:接收客戶(hù)端傳送的數(shù)據(jù),分別處理取款和存款功能,把結(jié)果傳回給客戶(hù)端。輸入處理
20、輸出1、客戶(hù)端傳送的數(shù)據(jù)。1、參考服務(wù)器端取款功能。2、參考服務(wù)器端存款功能。1、把服務(wù)器端處理的結(jié)果返回給客戶(hù)端。1.3.1.15 服務(wù)器端查詢(xún)功能引言:接收客戶(hù)端傳送的數(shù)據(jù),查找賬戶(hù)信息,把結(jié)果傳回給客戶(hù)端。輸入處理輸出1、客戶(hù)端傳送的數(shù)據(jù)。1、驗(yàn)證賬戶(hù)ID是否存在。2、驗(yàn)證密碼是否正確。3、查找對(duì)應(yīng)的賬戶(hù)信息。1、把服務(wù)器端處理的結(jié)果返回給客戶(hù)端。1.3.1.16 服務(wù)器端修改密碼功能引言:接收客戶(hù)端傳送的數(shù)據(jù),修改賬戶(hù)密碼,把結(jié)果傳回給客戶(hù)端。輸入處理輸出1、客戶(hù)端傳送的數(shù)據(jù)。1、驗(yàn)證賬戶(hù)ID是否存在。2、驗(yàn)證密碼是否正確。3、查找對(duì)應(yīng)的賬戶(hù)并修改密碼。1、把服務(wù)器端處理的結(jié)果返回給客
21、戶(hù)端。1.3.1.17 服務(wù)器端銷(xiāo)戶(hù)功能功能引言:接收客戶(hù)端傳送的數(shù)據(jù),通過(guò)公式計(jì)算客戶(hù)賬戶(hù)的利息,注銷(xiāo)該客戶(hù)賬戶(hù)。把結(jié)果傳回給客戶(hù)端。輸入處理輸出1、客戶(hù)端傳送的數(shù)據(jù)。1、驗(yàn)證賬戶(hù)ID是否存在。2、驗(yàn)證密碼是否正確。3、計(jì)算利息,具體公式如下:利息 = 存款額 * 存款天數(shù) * 年利率 / 360 需要注意的是,賬戶(hù)中的存款額在變化。4、修改對(duì)應(yīng)賬戶(hù)ID的數(shù)據(jù)庫(kù)。5、刪除用戶(hù)賬戶(hù),不是做物理刪除處理。1、把服務(wù)器端處理的結(jié)果返回給客戶(hù)端。1.3.2 外部接口需求1.3.2.1 用戶(hù)接口提供用戶(hù)使用軟件產(chǎn)品時(shí)的接口需求。例如,如果系統(tǒng)的用戶(hù)通過(guò)顯示終端進(jìn)行操作,就必須指定如下要求:a 對(duì)屏幕格
22、式的要求:用戶(hù)操作的終端使用標(biāo)準(zhǔn)控制臺(tái)界面,每行80個(gè)字符(中文40),總共25行。b 交易報(bào)表統(tǒng)計(jì)格式c 存折第一頁(yè)的輸出格式d 存折明細(xì)的輸出格式e 轉(zhuǎn)帳存款回單格式戶(hù) 名:帳 號(hào):幣 種:交易金額:摘 要:f 程序功能鍵的可用性:在客戶(hù)端的程序中任意一個(gè)功能的輸入過(guò)程中都可以使用ESC鍵返回到主菜單。數(shù)據(jù)瀏覽時(shí)的相關(guān)功能鍵請(qǐng)參考C語(yǔ)言的項(xiàng)目要求。1.3.2.2 硬件接口要指出軟件產(chǎn)品和系統(tǒng)硬部件之間每一個(gè)接口的邏輯特點(diǎn)。還可能包括如下事宜:支撐什么樣的設(shè)備,如何支撐這些設(shè)備,有何約定。1.3.3 性能需求從整體來(lái)說(shuō),本條應(yīng)具體說(shuō)明軟件、或人與軟件交互的靜態(tài)或動(dòng)態(tài)數(shù)值需求。A 靜態(tài)數(shù)值需求
23、可能包括:1) 支持的終端數(shù);2) 支持并行操作的用戶(hù)數(shù);3) 處理的文卷和記錄數(shù);4) 表和文卷的大小。B 動(dòng)態(tài)數(shù)值需求可能包括:欲處理的事務(wù)和任務(wù)的數(shù)量,以及在正常情況下和峰值工作條件下一定時(shí)間周期中處理的數(shù)據(jù)總量。 所有這些需求都必須用可以度量的術(shù)語(yǔ)來(lái)敘述。例如,95的事務(wù)必須在小于1s時(shí)間內(nèi)處理完,不然,操作員將不等待處理的完成。1.3.4 設(shè)計(jì)約束設(shè)計(jì)約束受其他標(biāo)準(zhǔn)、硬件限制等方面的影響。1.3.4.1 硬件的約束本項(xiàng)包括在各種硬件約束下運(yùn)行的軟件要求,例如,應(yīng)該包括:a 硬件配置的特點(diǎn)(接口數(shù),指令系統(tǒng)等);b 內(nèi)存儲(chǔ)器和輔助存儲(chǔ)器的容量。1.3.5 屬性在軟件的需求之中有若干個(gè)屬
24、性,以下指出其中的幾個(gè)(注意:對(duì)這些決不應(yīng)理解為是一個(gè)完整的清單)。1.3.5.1 可用性可以指定一些因素,如檢查點(diǎn)、恢復(fù)和再啟動(dòng)等,以保證整個(gè)系統(tǒng)有一個(gè)確定的可用性級(jí)別。1.3.5.2 安全性指的是保護(hù)軟件的要素,以防止各種非法的訪問(wèn)、使用、修改、破壞或者泄密。這個(gè)領(lǐng)域的具體需求必須包括:利用可靠的密碼技術(shù);掌握特定的記錄或歷史數(shù)據(jù)集;給不同的模塊分配不同的功能;限定一個(gè)程序中某些區(qū)域的通信;計(jì)算臨界值的檢查和。1.3.5.3 可維護(hù)性規(guī)定若干需求以確保軟件是可維護(hù)的。例如:a 軟件模塊所需要的特殊的耦合矩陣;b 為微型裝置指定特殊的數(shù)據(jù)程序分割要求。1.3.6 其他需求根據(jù)軟件和用戶(hù)組織的
25、特性等,某些需求放在下面各項(xiàng)中描述。1.3.6.1 數(shù)據(jù)庫(kù)本項(xiàng)對(duì)作為產(chǎn)品的一部分進(jìn)行開(kāi)發(fā)的數(shù)據(jù)庫(kù)規(guī)定一些需求,它們可能包括:a 在功能需求中標(biāo)識(shí)的信息類(lèi)別;b,使用的頻率;c.存取能力;e.數(shù)據(jù)元素和文卷描述符;g.數(shù)據(jù)元素、記錄和文卷的關(guān)系;n.靜態(tài)和動(dòng)態(tài)的組織;f.數(shù)據(jù)保存要求。 .1.3.6操作這里說(shuō)明用戶(hù)要求的常規(guī)的和特殊的操作。A 在用戶(hù)組織之中各種方式的操作。例如,用戶(hù)初始化操作;B 交互作用操作的周期和無(wú)人操作的周期;C.數(shù)據(jù)處理運(yùn)行功能;D.后援和恢復(fù)操作。2.1總體設(shè)計(jì) 2.1.1 系統(tǒng)結(jié)構(gòu)圖輸入用戶(hù)名和和密碼判斷是否正確開(kāi)始進(jìn)入主菜單功能按鍵選擇開(kāi)戶(hù)存款取款轉(zhuǎn)賬修改密碼銷(xiāo)戶(hù)
26、2.1.2需求規(guī)定說(shuō)明對(duì)本系統(tǒng)的主要的輸入輸出項(xiàng)目、處理的功能性能要求,詳細(xì)的說(shuō)明可參見(jiàn)需求分析說(shuō)明書(shū)。2.2運(yùn)行界面及代碼2.2.1 登陸界面圖21 登陸界面2122.2輸入用戶(hù)登陸后進(jìn)入主菜單界面圖2-22 圖22主菜單界面2.2.3開(kāi)戶(hù)界面圖23圖23開(kāi)戶(hù)界面2.2.4 存款界面圖24 圖24存款界面2.2.5取款界面圖25 圖25取款界面查詢(xún)銀行存款2.2.6轉(zhuǎn)賬界面圖26 圖26轉(zhuǎn)賬界面2.2.7更改密碼圖27 圖27更改密碼2.2.8銷(xiāo)戶(hù)界面圖28 圖28銷(xiāo)戶(hù)界面2.3代碼如下#ifndef _DB_STRUCT_H_#define _DB_STRUCT_H_/
27、typedef struct account_char acc_name21; /賬戶(hù)名char id_card19; /身份證號(hào)char pwd7; /賬戶(hù)密碼double money; /開(kāi)賬金額T_ACCOUNT;/存款數(shù)據(jù)typedef struct saving_int acc_id;
28、60; /賬戶(hù)IDint opter_id; /操作員IDdouble money; /存款金額T_SAVING;/取款數(shù)據(jù)typedef struct withdraw_int acc_id; /賬戶(hù)IDchar pwd7;
29、; /賬戶(hù)密碼int opter_id; /操作員IDdouble money; /取款金額T_WITHDRAW;/查詢(xún)數(shù)據(jù)typedef struct query_int acc_id; /賬戶(hù)IDchar pwd7;
30、160; /賬戶(hù)密碼T_QUERY;/交易數(shù)據(jù)typedef struct transfer_int acc_id; /賬戶(hù)ID char pwd7; /賬戶(hù)密碼int acc_oid; /對(duì)方賬戶(hù)IDdouble money
31、; /交易金額T_TRANSFER;/更改密碼數(shù)據(jù)typedef struct changepwd_int acc_id; /賬戶(hù)IDchar pwd7; /賬戶(hù)舊密碼char newpwd7; /賬戶(hù)新密碼T_CHANGEPWD;/銷(xiāo)戶(hù)數(shù)據(jù)typedef&
32、#160;struct destroy_int acc_id; /賬戶(hù)IDchar pwd7; /賬戶(hù)密碼int opter_id; /操作員IDT_DESTROY;/明細(xì)數(shù)據(jù)/接收明細(xì)數(shù)據(jù)typedef struct recv_detail_char type_id20;
33、; /類(lèi)型IDchar d_money20; /處理金額char b_money20; /余額char oth_id20; /對(duì)方賬戶(hù)IDRECV_DETAIL;/接收明細(xì)數(shù)據(jù)typedef struct recv_detail_all_int acc_id;
34、 /賬戶(hù)IDchar type_id20; /類(lèi)型IDdouble d_money; /處理金額double b_money; /余額int oth_id;
35、160; /對(duì)方賬戶(hù)IDRECV_DETAIL_ALL;/黑名單數(shù)據(jù)typedef struct black_int acc_id; /賬戶(hù)IDT_BLACK;#define CLIENT_EXIT 0#define OP_ACC 1#define SAVING
36、; 2#define WITHDRAW 3#define QUBALANCE 4#define TRANSFER 5#define CHAPWD 6#define DESTROY 7#define DETAILNOTE 8#define
37、60;DEDATA 9#define BLACKLIST 10#define NOTEALL 11/包頭typedef struct pack_headint len; /數(shù)據(jù)長(zhǎng)度int type; /業(yè)務(wù)類(lèi)型PACK_HEAD;#endif /_DB_STRUCT_H_/ MySocket.cpp: implem
38、entation of the MySocket class.#include "MySocket.h"/ Construction/DestructionMySocket:MySocket()InitSocket();cout<<"init constructor"<<endl;MySocket:MySocket()int MySocket:InitSocket()WORD wVersionRequested;WSADATA ws
39、aData;int err;wVersionRequested = MAKEWORD( 2, 2 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 )
40、 return -1;
41、60; if ( LOBYTE( wsaData.wVersion ) != 2 |HIBYTE( wsaData.wVersion ) != 2 ) WSACleanup( );return -1; s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);return s;int MySocket:ConnectSocket(co
42、nst char *ip,int port)struct sockaddr_in addr_far;addr_far.sin_family = AF_INET;addr_far.sin_port = htons(port);addr_far.sin_addr.s_addr = inet_addr(ip);memset(addr_far.sin_zero,'0',8);cout<<"ip:"<<ip<<",
43、"<<"port:"<<port<<endl;return connect(s,(struct sockaddr*)&addr_far,sizeof(struct sockaddr_in);void MySocket:RecvTCPLoop(char* n_data, int max_count)int ret;while (max_count>0) ret=recv(s,n_data,max_count,0);if
44、;(ret=0)break;if (ret>0)max_count-=ret;if (max_count = 0)break;n_data+= ret;void MySocket:SendTCPLoop(char* n_data, int max_count)int ret;while (max_count>0) ret=send(s,n_data,max_count,0);if (ret=0)break;if (ret>0)max_count-=
45、ret;if (max_count = 0)break;n_data+= ret;void MySocket:Close()if(s!=NULL)closesocket(s);#include "Tools.h"#pragma comment(lib,"ws2_32.lib")#include <iostream>using namespace std;#include "DBStruct.h"#include
46、160;<conio.h>int main()MySocket client = Tools:mys;int ret = client.ConnectSocket("127.0.0.1",7000);if (ret = SOCKET_ERROR) /連接服務(wù)器cout << "Can not connect to server!"
47、; << endl;return -1;cout<<"connect to server"<<endl;/數(shù)據(jù)打包T_ACCOUNT t_acc;strcpy(t_acc.acc_name,"wepull");strcpy(t_acc.id_card,"19801012");strcpy(t_acc.pwd,"600100");t_acc.money=2030;strcpy(t_acc.date,"2010-0
48、3-08");PACK_HEAD p_h;p_h.len=sizeof(T_ACCOUNT);p_h.type=OP_ACC;const int max_count=sizeof(T_ACCOUNT)+sizeof(PACK_HEAD);char datamax_count;memset(data,'0',max_count);Tools:Package(char*)&t_acc,p_h,data);client.SendTCPLoop(data,max_count);/發(fā)送數(shù)據(jù)int ret_acc_id=0
49、;client.RecvTCPLoop(char*)&ret_acc_id,sizeof(int);/接受返回?cái)?shù)據(jù)cout<<"ret_acc_id:"<<ret_acc_id<<endl;/ client.Close(); / _getch();/PACK_HEAD p_h;/exitp_h.len=0;p_h.type=CLIENT_EXIT;client.SendTCPLoop(char *)&p_h,sizeof(PACK_HEAD);cout << "
50、Already exit the system.Thank you for using." << endl;exit(0);return 0;#include <iostream>using namespace std;#include "db.h"#include <Winsock2.h>#pragma comment(lib,"Ws2_32.lib")
51、60;/接收數(shù)據(jù)int RecvTCPLoop(SOCKET s, char* n_data, int max_count)int ret;while (max_count>0) ret=recv(s,n_data,max_count,0);if (ret=0)break;if (ret>0)max_count-=ret;if (max_count = 0)break;n_data+= ret;return ret;/發(fā)送數(shù)據(jù)void
52、 SendTCPLoop(SOCKET s, char* n_data, int max_count)int ret;while (max_count>0) ret=send(s,n_data,max_count,0);if (ret=0)break;if (ret>0)max_count-=ret;if (max_count = 0)break;n_data+= ret; 2.1.2結(jié)構(gòu)用一覽表及框圖的形式說(shuō)明本系統(tǒng)的系統(tǒng)元素(各層模塊、子程
53、序、公用程序等)的劃分,扼要說(shuō)明每個(gè)系統(tǒng)元素的標(biāo)識(shí)符和功能,分層次地給出各元素之間的控制與被控制關(guān)系。2.4系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)2.4.1邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn)給出本系統(tǒng)內(nèi)所使用的每個(gè)數(shù)據(jù)結(jié)構(gòu)的名稱(chēng)、標(biāo)識(shí)符以及它們之中每個(gè)數(shù)據(jù)項(xiàng)、記錄、文卷和系的標(biāo)識(shí)、定義、長(zhǎng)度及它們之間的層次的或表格的相互關(guān)系。如下圖:2-8 圖2-82.4.2物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)給出本系統(tǒng)內(nèi)所使用的每個(gè)數(shù)據(jù)結(jié)構(gòu)中的每個(gè)數(shù)據(jù)項(xiàng)的存儲(chǔ)要求,訪問(wèn)方法、存取單位、存取的物理關(guān)系(索引、設(shè)備、存儲(chǔ)區(qū)域)、設(shè)計(jì)考慮和保密。2.4.3數(shù)據(jù)表建立的腳本Create table Open( banknam vaechar(10), Usernamer varchar(8), Account id int primary key, Password varchar(6), Password agae varchar(6), Money varchar(100000);(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第19課 科學(xué)技術(shù)的重大成果課件
- 2024年專(zhuān)業(yè)電工施工協(xié)議典范
- 中國(guó)特色社會(huì)主義基本原理(上)
- 2024年度層電梯廳裝潢協(xié)議模板
- 2024年無(wú)薪實(shí)習(xí)勞動(dòng)協(xié)議
- 2024年倉(cāng)庫(kù)租賃法律協(xié)議細(xì)則
- 2024年型車(chē)輛采購(gòu)協(xié)議
- 2024屆安徽省合肥高升學(xué)校高三八校第一次適應(yīng)性考試數(shù)學(xué)試題試卷
- 2024建筑業(yè)勞務(wù)施工協(xié)議文本
- 2023-2024學(xué)年浙江省溫州市九校下期第二次質(zhì)量考評(píng)(3月)高三數(shù)學(xué)試題
- 2023-2024學(xué)年廣東省廣州市小學(xué)語(yǔ)文六年級(jí)期末高分試卷詳細(xì)參考答案解析
- 比尾巴(全國(guó)一等獎(jiǎng))
- 如何做好船舶成本管理
- 沙利文-內(nèi)窺鏡行業(yè)現(xiàn)狀與發(fā)展趨勢(shì)藍(lán)皮書(shū)
- 比亞迪e6說(shuō)明書(shū)
- (新平臺(tái))國(guó)家開(kāi)放大學(xué)《建設(shè)法規(guī)》形考任務(wù)1-4參考答案
- 渠道管理PPT(第3版)完整全套教學(xué)課件
- 《新時(shí)代勞動(dòng)教育》-02新時(shí)代勞動(dòng)價(jià)值觀課件
- 2023年口腔醫(yī)學(xué)期末復(fù)習(xí)-牙周病學(xué)(口腔醫(yī)學(xué))考試歷年真題薈萃帶答案
- 【典型案例】長(zhǎng)江流域浙江的歷史發(fā)展:人民群眾是社會(huì)物質(zhì)財(cái)富的創(chuàng)造者
- 完整版平安基礎(chǔ)性向測(cè)試智商測(cè)試題及問(wèn)題詳解
評(píng)論
0/150
提交評(píng)論