版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西華大學(xué)課程設(shè)計(jì)報(bào)告 數(shù)學(xué)與計(jì)算機(jī)學(xué)院課程設(shè)計(jì)說明書課 程 名 稱: 軟件工程課程設(shè)計(jì) 課 程 代 碼: 8404131 題 目: 出版社客戶管理系統(tǒng) 年級(jí)/專業(yè)/班: 2009級(jí)軟件四班 學(xué) 生 姓 名: 學(xué) 號(hào): 開 始 時(shí) 間: 2011 年 05 月 27 日完 成 時(shí) 間: 2011 年 06 月 12 日課程設(shè)計(jì)成績(jī):學(xué)習(xí)態(tài)度及平時(shí)成績(jī)(30)技術(shù)水平與實(shí)際能力(20)創(chuàng)新(5)說明書(計(jì)算書、圖紙、分析報(bào)告)撰寫質(zhì)量(45)總 分(100)指導(dǎo)教師簽名: 年 月 日軟 件 工 程 課 程 設(shè) 計(jì) 任 務(wù) 書學(xué)院名稱: 數(shù)學(xué)與計(jì)算機(jī)學(xué)院 課程代碼:_8404131_專 業(yè): 軟件工
2、程 年 級(jí): 2009 一、設(shè)計(jì)題目出版社客戶管理系統(tǒng)二、主要內(nèi)容本課程是計(jì)算機(jī)軟件專業(yè)的必修專業(yè)課程,通過理論講述和實(shí)際訓(xùn)練,使學(xué)生掌握軟件工程的基本原理和基本方法,學(xué)會(huì)用軟件工程學(xué)的概念、原理、方法和技術(shù)開發(fā)和維護(hù)軟件。本課程設(shè)計(jì)要求學(xué)生運(yùn)用軟件工程的思想,嚴(yán)格按照軟件生命周期各階段的目的和任務(wù),完成對(duì)系統(tǒng)的定義、設(shè)計(jì)、編碼、運(yùn)行以及后期的維護(hù)。三、具體要求及應(yīng)提交的材料1.分析階段:一個(gè)小型的出版社客戶管理系統(tǒng)系統(tǒng),需完成以下工作:(1)在出版社客戶管理系統(tǒng)中增加/刪除一客戶;(2)對(duì)某一客戶贈(zèng)送樣書、發(fā)慰問信、發(fā)慰問禮品;(3)找出某一批出售書名和編號(hào)的相應(yīng)客戶;。導(dǎo)出系統(tǒng)的數(shù)據(jù)流程圖
3、和實(shí)體關(guān)系圖(E-R)2設(shè)計(jì)階段: 針對(duì)分析階段提出的軟件要求,給出實(shí)現(xiàn)的方案和具體細(xì)節(jié)的說明。(1)考慮該軟件基本功能成份,該系統(tǒng)具有3個(gè)基本功能成分:客戶管理,系統(tǒng)設(shè)置,數(shù)據(jù)查詢。(2)根據(jù)分析,導(dǎo)出系統(tǒng)的功能模塊圖。(3)設(shè)計(jì)數(shù)據(jù)庫(kù)。使用Microsoft Access創(chuàng)建數(shù)據(jù)庫(kù)。確定數(shù)據(jù)庫(kù)中數(shù)據(jù)表的組成。確定數(shù)據(jù)表中字段的構(gòu)成、主鍵字段和有關(guān)字段的約束條件等。依靠數(shù)據(jù)表中主鍵字段建立數(shù)據(jù)表之間的關(guān)系,并由此建立數(shù)據(jù)表之間的參照完整性約束。(4)根據(jù)功能確定軟件模塊組成及調(diào)用關(guān)系。3編碼階段建造模塊,在可視化編程環(huán)境下,按照軟件設(shè)計(jì)要求制作界面和完成對(duì)模塊的編碼,由此使軟件設(shè)計(jì)具體化為軟
4、件作品。4.運(yùn)行維護(hù)在軟件運(yùn)行時(shí),檢查軟件的不足或錯(cuò)誤,并進(jìn)行維護(hù)。5編寫課程設(shè)計(jì)報(bào)告(1)設(shè)計(jì)題目(2)任務(wù)要求(3)系統(tǒng)總體方案(4)各功能模塊和流程圖(5)心得體會(huì)和參考資料注:學(xué)生完成課程設(shè)計(jì)后,提交課程設(shè)計(jì)報(bào)告及相關(guān)電子文檔,要求將前述全部?jī)?nèi)容依先后順序?qū)懗稍O(shè)計(jì)報(bào)告一份,要求文字通暢、字跡工整,文字不少于5000字,裝訂成冊(cè)。四、主要技術(shù)路線提示五、進(jìn)度安排序號(hào)設(shè)計(jì)內(nèi)容天數(shù)1分析設(shè)計(jì)內(nèi)容,給出解決方案32創(chuàng)建數(shù)據(jù)庫(kù)及建表33可視化界面設(shè)計(jì)34對(duì)所建數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì),整理設(shè)計(jì)思路,編碼、測(cè)試,寫出課程設(shè)計(jì)報(bào)告35指導(dǎo)老師檢查設(shè)計(jì)結(jié)果并做成績(jī)?cè)u(píng)定2總 計(jì)14六、推薦參考資料(不少于3篇)1
5、 張海藩. 軟件工程導(dǎo)論,清華大學(xué)出版社,20042 陳明. 實(shí)用軟件工程基礎(chǔ),清華大學(xué)出版社,20033 殷人昆.實(shí)用軟件工程,清華大學(xué)出版社,20034 宋波.UML面向?qū)ο蠹夹g(shù)與實(shí)踐,科學(xué)出版社,2004 指導(dǎo)教師 簽名日期 2011 年 5 月 27 日系 主 任 審核日期 2011 年 6 月 12 日目 錄1 前言62 需求分析62.1 功能分析62.2 方案分析63 概要設(shè)計(jì)63.1 數(shù)據(jù)結(jié)構(gòu)63.2 邏輯結(jié)構(gòu)與物理結(jié)構(gòu)63.3 功能模塊劃分73.4抽象數(shù)據(jù)類定義74 詳細(xì)設(shè)計(jì)74.1 數(shù)據(jù)類型定義74.2 主要模塊內(nèi)部設(shè)計(jì)74.2.1模塊1設(shè)計(jì)(實(shí)際寫時(shí)用本題目對(duì)應(yīng)的模塊名稱)
6、74.2.2 模塊2設(shè)計(jì)(實(shí)際寫時(shí)用本題目對(duì)應(yīng)的模塊名稱)84.2.3 模塊3設(shè)計(jì)(實(shí)際寫時(shí)用本題目對(duì)應(yīng)的模塊名稱)85 實(shí)現(xiàn)與調(diào)試分析85.1 實(shí)現(xiàn)環(huán)境85.2 語(yǔ)言選擇85.3 調(diào)試分析86 測(cè)試分析86.1 測(cè)試用例86.2 測(cè)試結(jié)果86.3 性能分析87用戶手冊(cè)9總 結(jié)9參考文獻(xiàn)91 前言隨著生產(chǎn)規(guī)模的擴(kuò)大、自動(dòng)化技術(shù)的應(yīng)用,以及市場(chǎng)經(jīng)濟(jì)體系的培育,使得我國(guó)企業(yè)管理的性質(zhì)和環(huán)境都發(fā)生了巨大的變化。企業(yè)的組織機(jī)構(gòu)更加龐大,管理功能更為復(fù)雜,企業(yè)各部門之間的聯(lián)系越來越緊密,所采用的決策對(duì)經(jīng)濟(jì)的影響越來越復(fù)雜,因而管理決策問題不僅數(shù)量多,而且復(fù)雜程度高,難度大。管理信息系統(tǒng)在企業(yè)生產(chǎn)、管理中
7、的應(yīng)用越來越廣泛和重要,一套好的管理信息系統(tǒng)直接影響到企業(yè)的生存和發(fā)展。云南999電池股份有限公司管理信息系統(tǒng)(簡(jiǎn)稱MDMIS),就是針對(duì)云南999電池股份有限公司的管理實(shí)際開發(fā)的軟件系統(tǒng),以期對(duì)該公司的生產(chǎn)、管理等活動(dòng)進(jìn)行科學(xué)、高效的管理。MDMIS是一個(gè)完整的企業(yè)管理信息系統(tǒng),由多個(gè)模塊有機(jī)結(jié)合而成,包括原輔材料管理、產(chǎn)成品管理、工資管理、固定資產(chǎn)管理、人事檔案管理、技術(shù)檔案管理、用戶與市場(chǎng)管理、財(cái)務(wù)管理、成本核算、內(nèi)部銀行微機(jī)管理等十多個(gè)軟件模塊。本說明書介紹的是MDMIS中的產(chǎn)品管理子系統(tǒng)的開發(fā)過程。為了解決各種客戶和各地客戶的矛盾,出版社的信息化網(wǎng)絡(luò)化管理是勢(shì)在必行。因此出版社的客戶
8、管理系統(tǒng)就不可缺少了。2 需求分析出版社管理系統(tǒng)是一個(gè)龐大的任務(wù),傳統(tǒng)方式會(huì)造成巨大的人力和物力資源浪費(fèi)。我們需要設(shè)計(jì)一個(gè)讓工作人員使用的計(jì)算軟件的系統(tǒng),減少工作量,實(shí)現(xiàn)出版社客戶管理的高效化,進(jìn)行相應(yīng)的查找、修改、刪除等功能。 2.1 功能分析 1.待開發(fā)軟件的功能需求產(chǎn)成品管理信息系統(tǒng)必須能夠完成對(duì)公司產(chǎn)成品入庫(kù)、出庫(kù)數(shù)據(jù)的錄入、更新、統(tǒng)計(jì)、查詢、打印等工作,進(jìn)行高效、準(zhǔn)確的管理。產(chǎn)生以下信息:(1)產(chǎn)品庫(kù)存表:隨時(shí)(定期/不定期)報(bào)告產(chǎn)品庫(kù)存情況;(2)產(chǎn)品生產(chǎn)完成情況表:按要求定期/不定期報(bào)告產(chǎn)品生產(chǎn)情況;(3)產(chǎn)品出庫(kù)情況表:按要求定期/不定期報(bào)告產(chǎn)品出庫(kù)情況;(4)產(chǎn)品生產(chǎn)、銷售、
9、庫(kù)存情況表:按要求報(bào)告一定時(shí)期內(nèi)產(chǎn)品生產(chǎn)、銷售和當(dāng)前庫(kù)存情況;以上四表,滿足了企業(yè)生產(chǎn)、銷售、對(duì)帳等各方面管理的需要。2.待開發(fā)軟件的功能按照用戶需求,要滿足以上功能,我們?cè)O(shè)計(jì)出了產(chǎn)品管理系統(tǒng)的結(jié)構(gòu)。見圖1 。產(chǎn)成品管理數(shù)據(jù)歸檔查詢統(tǒng)計(jì)打印報(bào)表查詢統(tǒng)計(jì)入庫(kù)情況查詢統(tǒng)計(jì)出庫(kù)情況入庫(kù)數(shù)據(jù)歸檔出庫(kù)數(shù)據(jù)歸檔打印入庫(kù)情況打印出庫(kù)情況打印庫(kù)存情況打印月末庫(kù)存情況數(shù)據(jù)維護(hù)月末處理入庫(kù)數(shù)據(jù)維護(hù)出庫(kù)數(shù)據(jù)維護(hù)圖2.1 產(chǎn)成品管理系統(tǒng)層次方框圖結(jié)合系統(tǒng)需求,對(duì)圖1所示的系統(tǒng)功能解釋如下:維護(hù)入庫(kù):提供對(duì)產(chǎn)成品入庫(kù)數(shù)據(jù)的維護(hù)(記錄的錄入、歸檔前的數(shù)據(jù)編輯)功能。維護(hù)出庫(kù):提供對(duì)產(chǎn)成品出庫(kù)數(shù)據(jù)的維護(hù)。數(shù)據(jù)歸檔:實(shí)現(xiàn)入庫(kù)
10、、出庫(kù)記錄的數(shù)據(jù)歸檔。統(tǒng)計(jì)入庫(kù)情況:提供對(duì)產(chǎn)成品信息的各種查詢、統(tǒng)計(jì),以及對(duì)錯(cuò)錄產(chǎn)品入庫(kù)單的維護(hù)功能,當(dāng)用戶輸入正確的密碼后,系統(tǒng)允許用戶維護(hù)錯(cuò)錄或數(shù)據(jù)歸檔前未發(fā)現(xiàn)的錯(cuò)誤記錄。統(tǒng)計(jì)出庫(kù)情況:提供對(duì)產(chǎn)成品銷售信息的各種查詢、統(tǒng)計(jì),以及對(duì)錯(cuò)錄產(chǎn)品出廠記錄的維護(hù)功能。定期打印入庫(kù)情況:顯示/打印任一時(shí)期,任一生產(chǎn)階段的各生產(chǎn)車間以及全公司的產(chǎn)成品生產(chǎn)情況。還可以按用戶要求定期打印反映整個(gè)企業(yè)生產(chǎn)的匯總、明細(xì)報(bào)表。其中明細(xì)報(bào)表反映了各生產(chǎn)車間的生產(chǎn)完成情況,匯總報(bào)表反映了全公司的生產(chǎn)完成情況。定期打印出庫(kù)(銷售)情況:對(duì)任一時(shí)期、任一階段各種產(chǎn)成品的出庫(kù)情況進(jìn)行報(bào)表顯示或打印,以匯總、明細(xì)報(bào)表反映公司
11、的產(chǎn)成品銷售情況。顯示/打印庫(kù)存情況:統(tǒng)計(jì)顯示/打印出截止打印時(shí)刻為止的全公司和各產(chǎn)成品車間的各種產(chǎn)成品的庫(kù)存情況。報(bào)表分為匯總和明細(xì)兩表,以滿足不同的統(tǒng)計(jì)和查詢要求。打印月末倉(cāng)庫(kù)情況:完成全公司和各車間的各種產(chǎn)成品的上月結(jié)存數(shù)、本月生產(chǎn)數(shù)、本月出庫(kù)數(shù)、本月結(jié)存數(shù)的統(tǒng)計(jì)、匯總,生成月末結(jié)帳表,為生產(chǎn)部門、物資管理部門、財(cái)務(wù)部門等相關(guān)業(yè)務(wù)部門提供考核、對(duì)帳、記帳等方面的產(chǎn)成品信息。月末處理:提供了對(duì)各種產(chǎn)成品數(shù)據(jù)的轉(zhuǎn)移功能。完成了下月統(tǒng)計(jì)、記帳的初始化工作(如提供上月結(jié)存數(shù))。同時(shí),通過分析,我們給出了成品管理系統(tǒng)的頂層數(shù)據(jù)流圖。見圖2。記錄數(shù)據(jù)用戶生產(chǎn)部門庫(kù)存打印機(jī)報(bào)表購(gòu)貨請(qǐng)求反饋信息反饋信息
12、入庫(kù)請(qǐng)求處理圖2.2 產(chǎn)成品管理系統(tǒng)頂層數(shù)據(jù)流圖2.2 方案分析設(shè)計(jì)該系統(tǒng)需要解決的主要問題是對(duì)出版社客戶的管理,需要及時(shí)的與服務(wù)器進(jìn)行通信、保持信息及時(shí)的動(dòng)態(tài)更新。該方案主要用C語(yǔ)言設(shè)計(jì)實(shí)現(xiàn),使用C語(yǔ)言可以在設(shè)計(jì)時(shí)按照結(jié)構(gòu)圖逐次的設(shè)計(jì)模塊,并且C語(yǔ)言使用起來簡(jiǎn)單一點(diǎn)。該方案采用瀑布模型建立,因?yàn)檫@個(gè)系統(tǒng)的規(guī)模不是很大,采用瀑布模型能更快捷、安全的進(jìn)行開發(fā)。技術(shù)可行性:前面做了詳細(xì)的需求分析,大致把握了該教室管理系統(tǒng)的功能及用戶的需求,另外在該系統(tǒng)之前已有類似的管理系統(tǒng),比如圖書管理系統(tǒng),機(jī)票管理系統(tǒng)等在技術(shù)方面開發(fā)人員可以借鑒,所以技術(shù)上是可行的。 經(jīng)濟(jì)可行性:軟件的開發(fā),不但要考慮到當(dāng)前技
13、術(shù)的可行性,還要考慮到軟件開發(fā)的成本/效益,所謂經(jīng)濟(jì)可行性,換句話說,也就是說通過成本/效益分析,總結(jié)整個(gè)軟件的開 發(fā)經(jīng)費(fèi),以及軟件開發(fā)成功以后,可能給學(xué)校帶來的經(jīng)濟(jì)效益,把兩者進(jìn)行權(quán)衡,再作認(rèn)真仔細(xì)的估計(jì),總結(jié)整個(gè)系統(tǒng)在經(jīng)濟(jì)上是否可行。本系統(tǒng)的開發(fā)成本主要包 括計(jì)算機(jī)軟硬件配置成本;效益主要包括學(xué)校在多媒體教室管理上節(jié)省的人力資源,以及學(xué)校信息化建設(shè)的要求,總的來說經(jīng)濟(jì)上也是可行的。 操作可行性分析:雖然該系統(tǒng)是在控制臺(tái)上運(yùn)行的,用戶界面不是很好,但開發(fā)人員作了大量的提示語(yǔ)句。操作人員不需要 太多的計(jì)算機(jī)專業(yè)知識(shí),只要懂得計(jì)算機(jī)的基本操作,并且對(duì)本系統(tǒng)有基本的了解,按照提示語(yǔ)句就可以了,而且
14、本系統(tǒng)會(huì)提供給使用者詳盡的使用說明,也可以對(duì)使用者進(jìn)行短 期的操作培訓(xùn),所以,從操作上來講,該教室管理系統(tǒng)是完全可行的。3 概要設(shè)計(jì) 本軟件將輔助管理人員完成全公司產(chǎn)成品入庫(kù)、出庫(kù)、庫(kù)存等方面的管理,可以進(jìn)行查詢、統(tǒng)計(jì)、打印報(bào)表等工作,提高公司對(duì)產(chǎn)成品的管理效率。在分析階段,我們已經(jīng)提出了系統(tǒng)的結(jié)構(gòu)、頂層數(shù)據(jù)流圖和數(shù)據(jù)字典。本節(jié)我們將對(duì)系統(tǒng)的硬件環(huán)境作簡(jiǎn)要介紹,并對(duì)待開發(fā)系統(tǒng)作概要設(shè)計(jì)。3.1 數(shù)據(jù)結(jié)構(gòu) 3.2 邏輯結(jié)構(gòu)與物理結(jié)構(gòu)邏輯結(jié)構(gòu)設(shè)計(jì)1) 數(shù)據(jù)庫(kù)Sale-Management-name Table定義如表3.1所示。表3.1數(shù)據(jù)庫(kù)Sale-Management-name Table定義
15、2) 配置文件:保留上次程序運(yùn)行結(jié)束后的相關(guān)狀態(tài)如表3.2所示。表3.2 上次運(yùn)行結(jié)束后的相關(guān)狀態(tài)3) 全局變量如表3.3所示。表3.3 全局變量物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)Sale-Management-name的文件物理結(jié)構(gòu):采用順序介機(jī)構(gòu)記錄文件數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系¨ 初始化模塊(M1.1):我們將會(huì)設(shè)置全局變量15;¨ 刷新基本資料模塊(M1.2):利用全局變量3、4的基本信息,有可能訪問數(shù)據(jù)庫(kù);¨ 刷新詳細(xì)資料模塊(M1.3):訪問數(shù)據(jù)庫(kù)和全局變量3、4的詳細(xì)信息;¨ 關(guān)閉系統(tǒng)模塊(M1.4):將全局變量1、5保存至配置文件中;¨ 系統(tǒng)功能模塊
16、(M1.5):利用鼠標(biāo)和鍵盤操作事件;¨ 信息添加模塊(M2.1):設(shè)置全局變量1、2、4和5;¨ 信息刪除模塊(M2.2):利用全局變量3和4,設(shè)置全局變量1、2和4;¨ 信息修改模塊(M2.3):訪問數(shù)據(jù)庫(kù)和全局變量3;¨ 查詢模塊(M2.4):查詢客戶基本信息;¨ 客戶權(quán)益分配模塊(M2.5):利用全局變量4中的相應(yīng)數(shù)據(jù);¨ 客戶類型分配模(M2.6):利用全局變量4、5中的相應(yīng)數(shù)據(jù);¨ 接受訂單模塊(M3.1):利用全局變量1中的數(shù)據(jù);¨ 訂單審核模塊(M3.2):利用全局變量1和5中的信息;¨
17、撤銷訂單模塊(M3.3):完成用戶撤銷訂單的功能;¨ 修改訂單模塊(M3.4):完成客戶對(duì)已交訂單的修改;¨ 查詢訂單模塊(M3.5):完成查詢客戶訂單的功能;¨ 發(fā)貨單模塊(M4.1):由公司像生產(chǎn)商發(fā)出訂貨單;¨ 收款模塊(M4.2):公司向客戶發(fā)出收款請(qǐng)求并收款;¨ 綜合查詢模塊(M4.3):完成客戶對(duì)整個(gè)過程的查詢;¨ 報(bào)表生成功能(M5.1):當(dāng)前記錄生成報(bào)表;¨ 打印功能(M6):利用全局變量2、3和4;¨ 導(dǎo)入導(dǎo)出模塊(M7):完成對(duì)數(shù)據(jù)的導(dǎo)入和導(dǎo)出;¨ 幫助模塊(M8):為用戶提供隨時(shí)的操
18、作幫助;¨ 密碼管理模塊(M9):完成對(duì)用戶密碼的管理;¨ 身份驗(yàn)證模塊(M10);完成對(duì)用戶身份的驗(yàn)證,以便分配相應(yīng)的功能;3.3 功能模塊劃分3.3.1結(jié)構(gòu)框圖 3.4結(jié)構(gòu)框圖3.3.2程序流圖 3.3.3模塊功能分析及外部設(shè)計(jì)表4模塊設(shè)計(jì)功能分配系統(tǒng)控制功能¨ 初始化模塊(M1.1);¨ 刷新基本資料模塊(M1.2); ¨ 刷新詳細(xì)資料模塊(M1.3); ¨ 關(guān)閉系統(tǒng)模塊(M1.4);¨ 系統(tǒng)功能模塊(M1.5);客戶關(guān)系管理功能:¨ 信息添加模塊(M2.1);¨ 信息刪除模塊(M2.2);
19、8; 信息修改模塊(M2.3);¨ 刷新基本資料模塊(M1.2); ¨ 刷新詳細(xì)資料模塊(M1.3); ¨ 查詢模塊(M2.4);¨ 客戶權(quán)益分配模塊(M2.5);¨ 客戶類型分配模(M2.6);訂單管理功能:¨ 接受訂單模塊(M3.1);¨ 訂單審核模塊(M3.2);¨ 撤銷訂單模塊(M3.3);¨ 修改訂單模塊(M3.4);¨ 刷新基本資料模塊(M1.2); ¨ 刷新詳細(xì)資料模塊(M1.3); ¨ 查詢訂單模塊(M3.5);銷售與收款功能:¨ 發(fā)貨單模塊(M4.
20、1);¨ 收款模塊(M4.2);¨ 綜合查詢模塊(M4.3);¨ 刷新基本資料模塊(M1.2); ¨ 刷新詳細(xì)資料模塊(M1.3); 報(bào)表生成功能:¨ 報(bào)表生成功能(M5);打印功能:¨ 打印功能(M6);導(dǎo)入導(dǎo)出功能:¨ 導(dǎo)入導(dǎo)出模塊(M7);幫助功能:¨ 幫助模塊(M8);密碼管理功能:¨ 密碼管理模塊(M9);身份驗(yàn)證功能:¨ 身份驗(yàn)證模塊(M10);3.4抽象數(shù)據(jù)類定義void input(); / 信息錄入void output(); / 信息輸出void amend(); / 信息修
21、改void Delete(); / 修改操作void menu(); / 菜單void search(); /查找函數(shù)4 詳細(xì)設(shè)計(jì)4.1 數(shù)據(jù)類型定義struct member int date; / 日期 char id15; / 客戶編號(hào)char name11; / 客戶姓名最多5個(gè)漢字int phonenumber15; / 電話號(hào)碼 最多5個(gè)漢字;4.2 主要模塊內(nèi)部設(shè)計(jì)void main( )int choice; /存放用戶的操作選項(xiàng)menu( );while(1)printf(" 請(qǐng)選擇:"); scanf("%d",&choice
22、); / 輸入要執(zhí)行功能的對(duì)應(yīng)數(shù)字 switch(choice)default: exit(0); / 調(diào)用結(jié)束函數(shù) case 1: input(); / 調(diào)用輸入函數(shù) break ; case 2: output(); / 調(diào)用輸出函數(shù) break ;case 3: amend(); / 調(diào)用修改函數(shù) break; case 4: sta(); / 調(diào)用統(tǒng)計(jì)函數(shù) break; printf("nn"); menu( );4.2.1模塊1設(shè)計(jì) 模塊算法void input() / 輸入函數(shù)int i=0;char ch="kk"FILE *
23、fp;fp=fopen("D:WORKERINFOR-1.rec","ab+");while(i<99)printf("客戶 編 號(hào):");getchar();gets(numi.id);if(!strcmp(numi.id,ch)break; printf("客戶姓名:");getchar(); gets(); printf("日 期 :");getchar(); scanf("%d",&numi.date); printf("電話
24、號(hào)碼:");getchar(); scanf("%d",&numi.phonenumber); printf("客戶費(fèi)用:");getchar(); scanf("%f",&numi.fee); fwrite(&numi,sizeof(numi),1,fp); printf("該掛號(hào)信息已錄完,請(qǐng)錄入下一個(gè)客戶信息!nn"); i+;if(i>=99) printf("掛號(hào)信息已錄滿!n");fclose(fp); 流程圖4.2.2 模塊2設(shè)
25、計(jì)void output() /輸出函數(shù)int i=0;char ch; /儲(chǔ)存字符Y/NFILE *fp;fp=fopen("D:WORKERINFOR-1.rec","rb");while(!fp) / 保證成功打開文件fp=fopen("D:WORKERINFOR-1.rec","rb"); printf("-n");printf(" 客戶編號(hào) 客戶姓名 日期 電話號(hào)碼 客戶費(fèi)用 n");printf("-n");while(fread(&n
26、umi,sizeof(numi),1,fp)=1)if(strcmp(, ) / 避免因刪除了某條記錄而造成的最后一條記錄重復(fù)操作一次printf(" %s %s %d %dn",numi.id,,numi.date,numi.phonenumber,numi.fee);i+;doprintf(" 返回主菜單(Y/N):");getchar(); /跳過回車符ch=getchar();if(ch='y'|ch='Y') break;else exit(0);whil
27、e(1);4.2.3 模塊3設(shè)計(jì)void sta() / 統(tǒng)計(jì)函數(shù)int i=0,count=0; / count 統(tǒng)計(jì)人數(shù)char ch; / 接受回車符float feesum=0; / numbersum表示本日客戶費(fèi)用FILE *fp;fp=fopen("D:WORKERINFOR-1.rec","rb");while(!fp) / 保證成功打開文件fp=fopen("D:WORKERINFOR-1.rec","rb");while(fread(&numi,sizeof(numi),1,fp)=1)
28、if(strcmp(,) / 避免因刪除了某條記錄而造成的最后一條記錄重復(fù)操作一次 feesum=feesum+numi.fee;count+;i+;printf(" 本日總的客戶費(fèi)用:%d 總?cè)藬?shù):%dn",feesum,count);doprintf(" 返回主菜單(Y/N):");getchar(); /跳過回車符ch=getchar();if(ch='y'|ch='Y') break;else exit(0);while(1);void amend() / 修改函數(shù)int i
29、=0,choose; / 存放修改項(xiàng)char NAME11;FILE *fp;fp=fopen("D:WORKERINFOR-1.rec","rb+");while(!fp) / 保證成功打開文件fp=fopen("D:WORKERINFOR-1.rec","rb+");printf(" 輸入將要修改的客戶編號(hào):");scanf("%s",&NAME);while(fread(&numi,sizeof(numi),1,fp)=1) if(!strcmp(num
30、,NAME)printf(" 修改選項(xiàng):n 1、客戶編號(hào) 2、客戶姓名 3、日期 4、電話號(hào)碼 10、費(fèi)用n 請(qǐng)選擇:");scanf("%d",&choose);switch(choose)case 1: printf("客 戶 編 號(hào):"); scanf("%s",&numi.id);break;case 2: printf("客 戶 姓 名:"); scanf("%s",&);break;case 3: printf
31、("日 期:"); scanf("%f",&numi.date);break;case 4: printf("電 話 號(hào) 碼:"); scanf("%d",&numi.phonenumber); break;case 5: printf("客 戶 費(fèi) 用:"); scanf("%f",&numi.fee);break;default: printf(" 輸入錯(cuò)誤! n"); break; fseek(fp,-68L,1);fwrit
32、e(&numi,sizeof(numi),1,fp);printf("n 該掛號(hào)信息修改成功!n");break;i+; fclose(fp);5 實(shí)現(xiàn)與調(diào)試分析5.1 實(shí)現(xiàn)環(huán)境硬件: 裝有Windows XP的微型計(jì)算機(jī)。軟件: Microsoft Visual C+6.0。5.2 語(yǔ)言選擇C語(yǔ)言5.3 調(diào)試分析一個(gè)好的程序員不應(yīng)該把所有的判斷交給編譯器和調(diào)試器,應(yīng)該在程序中自己加以程序保護(hù)和錯(cuò)誤定位,具體措施包括: · 對(duì)于所有有返回值的函數(shù),都應(yīng)該檢查返回值,除非你確信這個(gè)函數(shù)調(diào)用絕對(duì)不會(huì)出錯(cuò),或者不關(guān)心它是否出錯(cuò)。 · 一些函數(shù)返回錯(cuò)誤,
33、需要用其他函數(shù)獲得錯(cuò)誤的具體信息。例如accept返回INVALID_SOCKET表示accept失敗,為了查明 具體的失敗原因,應(yīng)該立刻用WSAGetLastError獲得錯(cuò)誤碼,并針對(duì)性的解決問題。 · 有些函數(shù)通過異常機(jī)制拋出錯(cuò)誤,應(yīng)該用TRY-CATCH語(yǔ)句來檢查錯(cuò)誤 · 程序員對(duì)于能處理的錯(cuò)誤,應(yīng)該自己在底層處理,對(duì)于不能處理的,應(yīng)該報(bào)告給用戶讓他們決定怎么處理。如果程序出了異常, 卻不對(duì)返回值和其他機(jī)制返回的錯(cuò)誤信息進(jìn)行判斷,只能是加大了找錯(cuò)誤的難度。 · 另外:VC中要編制程序不應(yīng)該一開始就寫cpp/h文件,而應(yīng)該首先創(chuàng)建一個(gè)合適的工程。因?yàn)橹挥羞@樣
34、,VC才能選擇合適的編譯、連接 選項(xiàng)。對(duì)于加入到工程中的cpp文件,應(yīng)該檢查是否在第一行顯式的包含stdafx.h頭文件,這是Microsoft Visual Studio為了加快編譯 速度而設(shè)置的預(yù)編譯頭文件。在這個(gè)#include "stdafx.h"行前面的所有代碼將被忽略,所以其他頭文件應(yīng)該在這一行后面被包含。對(duì)于.c文件,由于不能包含stdafx.h,因此可以通過Project settings把它的預(yù)編譯頭設(shè)置為“不使用”,方法是: · 彈出Project settings對(duì)話框 · 選擇C/C+ · Category選擇Preco
35、mpilation Header · 選擇不使用預(yù)編譯頭。 6 測(cè)試分析測(cè)試結(jié)果測(cè)試1:名稱:系統(tǒng)操作登錄測(cè)試 目的:測(cè)試系統(tǒng)操作界面。 內(nèi)容:帳號(hào)口令輸入、合理性檢查、合法性檢查,系統(tǒng)操作界面顯示控制輸入數(shù)據(jù):(賬號(hào))admin (密碼)123456預(yù)期輸出結(jié)果:用戶界面(提供功能選擇);測(cè)試結(jié)果測(cè)試2:名稱:1號(hào)功能測(cè)試 目的:測(cè)試系統(tǒng)1號(hào)功能。 內(nèi)容:輸入功能鍵1,客戶信息輸入輸入數(shù)據(jù):1(1號(hào)功能選項(xiàng))預(yù)期輸出結(jié)果:按一定的格式完整的輸入所有客戶基本信息;測(cè)試結(jié)果測(cè)試3:名稱:2號(hào)功能測(cè)試 目的:測(cè)試系統(tǒng)2號(hào)功能。 內(nèi)容:輸入功能鍵2,系統(tǒng)界面的顯示輸入數(shù)據(jù):2(2號(hào)功能選項(xiàng)
36、),5(課程編號(hào))預(yù)期輸出結(jié)果:5:顯示輸入客戶信息;測(cè)試結(jié)果測(cè)試4:名稱:3號(hào)功能測(cè)試 目的:測(cè)試系統(tǒng)3號(hào)功能。 內(nèi)容:輸入功能鍵3,輸入學(xué)號(hào)和課程編號(hào),記錄保存輸入數(shù)據(jù):3(3號(hào)功能選項(xiàng))修改信息預(yù)期輸出結(jié)果:修改指定用戶信息;6.1 測(cè)試用例 | 請(qǐng)選擇:1客戶 編 號(hào):01客戶姓名:a日 期 :111電話號(hào)碼:123該信息已錄完,請(qǐng)錄入下一個(gè)客戶信息!客戶 編 號(hào):02客戶姓名:b日 期 :111電話號(hào)碼:124該信息已錄完,請(qǐng)錄入下一個(gè)客戶信息!客戶 編 號(hào):kk | | |6.2 測(cè)試結(jié)果請(qǐng)選擇:1客戶 編 號(hào):1客戶姓名:1日 期 :111電話號(hào)碼:111客戶費(fèi)用:11該掛號(hào)信息
37、已錄完,請(qǐng)錄入下一個(gè)客戶信息 | 請(qǐng)選擇:2- 客戶編號(hào) 客戶姓名 日期 電話號(hào)碼-01 a 111 12302 b 111 124 返回主菜單(Y/N):y!請(qǐng)選擇:3 輸入將要查找的客戶編號(hào):01 客戶編號(hào) 客戶姓名 日期 電話號(hào)碼01 a 111 123請(qǐng)選擇:4 輸入將要修改的客戶編號(hào):01 修改選項(xiàng): 1、客戶編號(hào) 2、客戶姓名 3、日期 4、電話號(hào)碼 請(qǐng)選擇:2客 戶 姓 名:c 該信息修改成功! | 請(qǐng)選擇:5 輸入將要?jiǎng)h除的客戶編號(hào):02 該信息刪除成功!6.3 性能分析故障處理要求 :對(duì)于該學(xué)生選課系統(tǒng),用戶提出的故障可能有:軟件無法安裝或者軟件停止運(yùn)行以及此時(shí)應(yīng)該采取什么措
38、施恢復(fù)數(shù)據(jù)。當(dāng)軟件無法安裝時(shí),可以查看幫助手冊(cè),安裝相關(guān)軟件或者修復(fù)受損文件。當(dāng)軟件停止運(yùn)行時(shí),強(qiáng)行關(guān)機(jī)重啟后,可以根據(jù)系統(tǒng)的自動(dòng)備份或者在操作之前的手工備份來恢復(fù)數(shù)據(jù),保證系統(tǒng)數(shù)據(jù)的正確性。安全性要求 :因?yàn)閷W(xué)生選課系統(tǒng)關(guān)系到學(xué)校及學(xué)生的重要成績(jī)信息,所以對(duì)于學(xué)校而言對(duì)安全保密性的要求非常嚴(yán)格,此系統(tǒng)是面向所有的在校學(xué)生及老師,大多數(shù)人都不是專業(yè)的計(jì)算機(jī)操作人員,因此對(duì)該系統(tǒng)使用的方便性要求也較高可擴(kuò)充性要求 :任何軟件都有缺陷,對(duì)于學(xué)生選課系統(tǒng)但學(xué)校的需求發(fā)生變化時(shí),增加一個(gè)新的功能模塊,要求系統(tǒng)能夠很好地對(duì)其進(jìn)行擴(kuò)充,既可補(bǔ)充性??删S護(hù)性要求 :當(dāng)操作系統(tǒng)平臺(tái)發(fā)生變化或者支持軟件學(xué)生信息
39、管理系統(tǒng)發(fā)生變化時(shí),為了適應(yīng)這些變化必需對(duì)系統(tǒng)進(jìn)行維護(hù),即要求有可維護(hù)性。7用戶手冊(cè)管理員登陸: 1.輸入客戶信息 2.顯示客戶 3.修改客戶信息 4.統(tǒng)計(jì)本日費(fèi)用總 結(jié) 由于是第一次開發(fā)一個(gè)完整的程序,所以許多工作都在摸索著進(jìn)行,在我們的貴老師的幫助下,我與我們組的成員的共同努力下,完成了程序規(guī)定的功能要求。本系統(tǒng)采用當(dāng)前流行的面向?qū)ο蟮拈_發(fā)工具VB來完成整個(gè)系統(tǒng)的設(shè)計(jì),在數(shù)據(jù)庫(kù)的設(shè)計(jì)上利用了SQL的便利性和實(shí)用性。本系統(tǒng)具有相當(dāng)?shù)膶?shí)用功能。在查詢方面,系統(tǒng)實(shí)現(xiàn)了多條件任意字段的模糊查詢,同時(shí)在分類查詢上實(shí)現(xiàn)了動(dòng)態(tài)生成。系統(tǒng)在設(shè)計(jì)過程中不可避免地遇到了各種各樣的問題,由于整個(gè)系統(tǒng)完全都是由個(gè)
40、人設(shè)計(jì)的,有關(guān)VB許多細(xì)節(jié)問題都要靠自己去摸索,加之本人水平有限,并沒有完全地理解VB和SQL的強(qiáng)大功能,而且還存在著許多不足之處。由于時(shí)間關(guān)系,系統(tǒng)功能實(shí)現(xiàn)不夠完善,使用不是很方便。參考文獻(xiàn) 1 張海藩. 軟件工程導(dǎo)論. 北京:清華大學(xué)出版社,20042 陳明. 實(shí)用軟件工程基礎(chǔ). 北京:清華大學(xué)出版社,20033 殷人昆. 實(shí)用軟件工程. 北京:清華大學(xué)出版社,2003/ EWM.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。/*#include "stdafx.h"int _tmain(int argc, _TCHAR* argv)return 0;*/#include&l
41、t;stdio.h>#include<stdlib.h>#include<string.h>#include<iostream.h>struct member char date9; / 日期 char id15; / 客戶編號(hào)char name11; / 客戶姓名最多5個(gè)漢字int phonenumber; / 電話號(hào)碼;typedef struct member member;member num100; / 定義了一個(gè)100個(gè)元素的結(jié)構(gòu)體數(shù)組(最多100個(gè))#define InputNum 20int count1=0,count2=0;/*函數(shù)
42、聲明*void input(); / 信息錄入void output(); / 信息輸出void amend(); / 信息修改void Delete(); / 修改操作void menu(); / 菜單void search(); /查找函數(shù)/*主函數(shù)*void main( )int choice; /存放用戶的操作選項(xiàng)menu( );while(1)printf(" 請(qǐng)選擇:"); scanf("%d",&choice); / 輸入要執(zhí)行功能的對(duì)應(yīng)數(shù)字 switch(choice) default: exit(0); / 調(diào)用結(jié)束函數(shù) cas
43、e 1: input(); / 調(diào)用輸入函數(shù) break ; case 2: output(); / 調(diào)用輸出函數(shù) break ; case 3: search(); break; case 4: amend(); / 調(diào)用修改函數(shù) break; case 5: Delete(); / 調(diào)用刪除函數(shù) break; printf("nn"); menu( );/*功能函數(shù)*void menu() /菜單函數(shù)printf(" |. 出版社客戶管理系統(tǒng) .|n");printf(" | |n");printf(" | 1.客戶信息
44、錄入 |n");printf(" | 2.客戶信息瀏覽 |n");printf(" | 3.查找客戶信息 |n");printf(" | 4.客戶信息修改 |n");printf(" | 5.刪除用戶 |n");printf(" | 0.退出 |n");printf(" | |n");void input() / 輸入函數(shù)int i=0;char ch="kk"FILE *fp;fp=fopen("D:WORKERINFOR-1.rec
45、","ab+");while(i<InputNum)printf("客戶 編 號(hào):");getchar();gets(numi.id);if(!strcmp(numi.id,ch)break; printf("客戶姓名:"); gets(); printf("日 期 :"); gets(numi.date); printf("電話號(hào)碼:"); scanf("%d",&numi.phonenumber); fwrite(&num
46、i,sizeof(numi),1,fp);count1=i; printf("該信息已錄完,請(qǐng)錄入下一個(gè)客戶信息!nn"); i+;if(i>=99) printf("信息已錄滿!n");fclose(fp);void output() /輸出函數(shù)int i=0;char ch; /儲(chǔ)存字符Y/NFILE *fp;fp=fopen("D:WORKERINFOR-1.rec","rb");while(!fp) / 保證成功打開文件fp=fopen("D:WORKERINFOR-1.rec",
47、"rb"); /printf("%d",sizeof(member); printf("-n");printf(" 客戶編號(hào) 客戶姓名 日期 電話號(hào)碼 n");printf("-n");while(fread(&numi,sizeof(numi),1,fp)=1)if(strcmp(, ) / 避免因刪除了某條記錄而造成的最后一條記錄重復(fù)操作一次/cout<<numi.id<<" "<<num
48、<<" "<<numi.date<<" "<<numi.phonenumber; printf("%s %s %s %dn",numi.id,,numi.date,numi.phonenumber);i+;doprintf(" 返回主菜單(Y/N):");getchar(); /跳過回車符ch=getchar();if(ch='y'|ch='Y') break;else exit(0);while(1);void Delete() / 刪除函數(shù)int i=0; / 存放修改項(xiàng)char ID15;FILE *fp;fp=fopen("D:WORKERINFOR-1.rec","rb+");while(!fp) / 保證成功打開文件fp=fopen("D:WORKERINFOR-1.rec","rb+");printf(" 輸入將要?jiǎng)h除的客戶編號(hào):");scanf("%s",&ID);while(fread(&numi,sizeof
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年四年級(jí)語(yǔ)文教學(xué)計(jì)劃例文(二篇)
- 2024年家電采購(gòu)合同例文(二篇)
- 2024年地理教師工作計(jì)劃(六篇)
- 2024年差旅費(fèi)報(bào)銷管理制度樣本(二篇)
- 2024年單位房屋租賃合同標(biāo)準(zhǔn)范本(二篇)
- 2024年大學(xué)生個(gè)人實(shí)習(xí)總結(jié)范例(二篇)
- 【《家園合作培養(yǎng)幼兒良好行為習(xí)慣的策略探究》9500字(論文)】
- 【《伊利乳業(yè)營(yíng)運(yùn)資金管理問題及完善對(duì)策研究》13000字】
- 2024年處方權(quán)管理制度(二篇)
- 2024年工業(yè)園區(qū)管理制度范本(三篇)
- 四川省涼山州西昌市2022-2023學(xué)年高一上學(xué)期期中考試數(shù)學(xué)試題
- 健身理論與指導(dǎo)
- 復(fù)尺踏勘方案
- 《家國(guó)情懷》的主題班會(huì)
- 《我是一張紙》基于標(biāo)準(zhǔn)的教學(xué)設(shè)計(jì)
- (醫(yī)學(xué)課件)產(chǎn)后出血課件
- 數(shù)理統(tǒng)計(jì)凌能祥課后習(xí)題答案
- 市政污水管網(wǎng)工程監(jiān)理實(shí)施細(xì)則
- 會(huì)議室內(nèi)裝修工程施工方案
- 舊圍墻拆除施工方案
- 國(guó)際音標(biāo)48個(gè)音標(biāo)
評(píng)論
0/150
提交評(píng)論