《軟件工程導論》實驗報告(小組)_第1頁
《軟件工程導論》實驗報告(小組)_第2頁
《軟件工程導論》實驗報告(小組)_第3頁
《軟件工程導論》實驗報告(小組)_第4頁
《軟件工程導論》實驗報告(小組)_第5頁
免費預覽已結束,剩余52頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件工程導論學 院:專業班級 指導教師 項目成員 項目課題 時計算機科學與技術學院學校內部工資管理系統'可:2011年5月小組情況 一、可行性分析報告 1.1 引言 . 1.1.1 編寫目的 .1.21.1.2 背景. 可行性分析的前提 . 要求. 開發目標 . 條件、假定和限制 . 可行性研究的方法 . 1.2.11.2.21.2.31.2.41.31.4技術可行性 . 1.3.1 簡要描述 . 1.3.2 與現有系統的優越性比較 經濟可行性 . 1.4.1 成本 . 1.4.2 效益 . 1.51.6社會因素可行性分析 . 1.5.1 法律方面的可行性 1.5.2 操作可行性 .

2、結論意見 . 二、軟件需求規格說明書 背景材料 . 功能需求分析 . 管理員用戶設置 . 普通用戶創建 . 用戶登錄 . 遠程信息接收與傳遞 . 信息提醒 . 職工編號的判斷 . 職工工資的計算 . 2.12.22.2.12.2.22.2.32.2.42.2.52.2.62.2.72.3.1運行環境 . .2.3.2精度 . 2.3.3響應時間 . .2.3.4內存占用 . .2.3.5安全與更新 .2.3.6故障處理 . .三、數據流程圖2.3性能需求分析 . 1010101011111112II1313131313141414四、功能分析圖 4.1員工工資標準模塊 .4.2工資統計模塊 .

3、 4.3財務處理模塊 . 4.4職工工資查詢模塊 .4.5登錄用戶管理模塊 .4.64.7 五、數據字典 六、概要設計 七、詳細設計說明書人事管理模塊 . 員工出勤管理模塊 .15 167.1 編寫目的 . 177.2 背景 . 177.3 系統的結構 . 177.4 程序流程圖 . 187.4.1 用戶注冊 . 187.4.2 用戶登錄 . 207.4.3 人事管理 . 217.4.4 員工工資查詢 . 217.4.5 員工出勤管理 . 217.4.6 財務部管理 . 227.5 程序部分代碼 . 237.5.1 用戶注冊 . 237.5.2 用戶登陸 . 297.5.3 人事部管理 . 3

4、37.5.4 財務部管理 . 36 1 1 1 1 11- 測試報告 398.1 單元測試 . 398.1.1 用戶注冊登陸測試 . . 39/ 1 -J /1 1' ,7/7 _、, . 1 J 1 1 (X 'JX8.1.2 人事部測試 . 418.1.3 財務部測試 . 448.2 黑盒測試 . 458.2.1 測試用例表 . 468.3 測試總結 . 4817九、參考資料八、49III小組情況項目題目:學校內部工資管理系統 項目成員 :肖遠昊、閆培、馬瑞良、王高明 項目負責人:王高明任務分配表任務模塊人員安排可行性分析研究需求分析模型的建立結構化設計系統的編碼、單元測試

5、黑盒測試42、可行性分析報告1.1 引言1.1.1 編寫目的可行性研究的目的是為了對問題進行研究, 以最小的代價在最短的時間內確 定問題是否可解。經過對此項目進行詳細調查研究, 初擬系統實現報告, 對軟件開發中將要面 臨的問題及其解決方案進行初步設計及合理安排, 明確開發風險及其所帶來的經 濟效益。本報告經審核后,交項目經理審查。1.1.2 背景工資管理是學校很重要的一個管理事項,它與學校的人事管理、財務管理 有著密切的聯系。目前大多學校內部工資的管理,基本上是手工操作或是基于 excel 或 word 下的應用,對于勞資關系相對復雜的學校,手工進行工資的發放 工作往往需要耗費大量的人力與時間

6、, 對信息的管理者有諸多不便。 由于工資發 放在時間和操作上存在著一定的重復性、 規律性,這使得工資管理的計算機化成 為可能。因此有必要開發一個基于網絡的工資管理系統, 能實現數據的錄入、 插 入、刪除、查詢、統計、更新、打印等功能。同時,為了信息的保密與安全,系 統還要提供一定的安全機制開發軟件名稱:學校內部工資管理系統項目任務提出者:計算機科學與技術學院軟件 0902 班王高明、馬瑞良、肖遠昊、閆培項目經理:王高明用戶:太原理工大學1.2 可行性分析的前提1.2.1 要求(1) 功能。工資管理系統的主要功能是 : 月工資發放和處理、標準工資庫維護、 臨時工資發放、查詢與系統維護和系統幫助。

7、(2) 性能。 方便、快捷、有效地完成工資發放的各項任務 , 在工資數據統計和 報表打印等方面 , 具有準確率高、速度快等特點。(3) 系統的輸入。輸入所有職工的標識 , 如職工的姓名、工號、所在部門、各項 應發的金額和各項應扣的金額。(4) 系統的輸出。輸出各種報表、上報的文件等。(5) 安全和保密要求。 本系統在使用前必須正確輸入密碼 , 否則系統將不能運 行。進入系統后 , 要想修改密碼或對系統的一些信息進行修改 ,也必須輸入高級用 戶密碼, 對數據庫中的關鍵數據應該要求保密。服務器的管理員享有對工資數據 信息庫的管理與修改。 用戶只享有對信息的查詢和部分信息修改 (如個人信息)。1.2

8、.2 開發目標本系統開發目標應該考慮到以下幾個方面的因素 : 人力與設備費用的相對減 少,人員利用率的改進; 數據處理速度的提高 ; 數據統計精度的和準確率的提高。管理信息服務的改進;自動決策系統的改進;人員利用率的改進。1.2.3 條件、假定和限制項目開發中所具備的條件、假定和所受到的限制包括以下幾個方面(1) 所建議系統運行壽命的最小值:系統運行壽命的最小值應達三年。(2) 硬件、軟件、運行環境、開發環境等條件:硬件環境要求如下 : 奔騰 II 或更高檔的計算機、筆記本電腦 ;運行時內存的要求是10MB以上;安裝所需硬盤空間是 150MB;打印機可選激光打印機。軟件環境要求如下:中文 Wi

9、ndows98/Windows2000/Me/xp/7;(3)系統投入使用的最晚時間: 系統投入使用的最晚時間為 2011 年的 10 月中旬。1.2.4可行性研究的方法(1) 客戶調查:通過對客戶調查 , 了解和認知客戶對軟件產品的需求 , 按照客戶 的要求不僅要實現月工資發放 ,而且要實現臨時的工資發放 , 同時還要有數據庫 備份。GZG系統的主要功能為:月工資發放和處理、標準工資庫維護、臨時工資 發放、查詢與系統維護和系統幫助。(2) 同類產品調查:通過對市場中相關或同類產品的調查 ,筆者了解到 ,工資管 理系統大體上都應該實現工資的統計、匯總、報表打印等功能。1.3 技術可行性1.3.

10、1 簡要描述工資管理系統是一個數據庫管理和查詢的系統, 本系統采用常規的數據庫處 理方法, 根據工資信息管理的特點對數據庫進行操作 ,如對工資發放項目的修改、 人員的增刪、工資數據的添加和修改、工資的統計、工資的匯總、臨時發放工資 的管理、上報文件、打印等給予了優化。1.3.2 與現有系統的優越性比較工資管理系統有利于工資發放的統一、有效管理。與傳統的手工記賬方式相 比,占據空間小、 易于統計工資總額、 易于更新、 易于數據備份 ; 與其它工資系統 相比, 該系統實現了對不同類型職工的工資發放 , 系統功能比較全面 , 而且價格也 比較合理。工資管理系統具有高效率的系統靈活性。 當修改工資庫中

11、某個職工的工資情 況或者修改某個工資發放項目時 , 只需在工資數據編輯狀態下對該職工的工號進 行鎖定 , 或者對某個工資項目進行鎖定 , 即可對鎖定的項目進行修改 , 而對其它的 人員或項目無權修改 , 這樣可以提高系統的準確性。工資管理系統能夠較好保證數據庫的安全。戶可以對后臺數據庫進行加密 同時還可以給系統設定密碼。現有的技術已較為成熟, 硬件、軟件的性能要求、 環境條件等各項條件良好, 利用現有技術條件完全可以達到該系統的功能目標。 同時,考慮給予的開發期限 也較為充裕,預計系統是可以在規定期限內完成開發。1.4 經濟可行性估算新系統的成本效益分析,其中包括估計項目開發的成本,開發費用和

12、今 后的運行、 維護費用,估計新系統將獲得的效益, 估算開發成本是否會高于項目 預期的全部經費。并且,分析系統開發是否會對其它產品或利潤帶來一定影響。1.4.1 成本(1) 基本投資硬件設備:PC機軟件:Win dows98/Wi ndows2000/x p/7,Del phi7.sql 2000/2005; Visual Basic 6.0、SQLServer 2000、Word2005/2007(2) 其他一次性支出 , 主要是軟件設計和開發費用。 軟件設計開發過程當中 , 投入設計和開發費用包括 : 購買書籍的資金,需求分析的費用 ( 其中包含技術開 發上的花銷、生活花銷等 ) 。(3)

13、 經常性支出 , 主要是軟件后期維護費用。軟件開發完畢后投入使用時 , 對軟件產品進行的后期軟件維護所需要支出的費用。1.4.2 效益系統的效益可以從經濟效益和社會效益兩方面考慮。 本系統的應用使工資管理實現科學化、規范化進一步實現學校員工工資管理的規范化和自動化本系統。減少了人力投資和辦公費用的開銷 , 極大地提高辦公效率。并且該系統定會受到 各學校的歡迎,擁有一定的市場, 可在短時間內收回成本, 并有可觀的經濟效益。投入使用將獲得的經濟效益分為直接效益和間接效益兩方面。 直接效益主要體現 在:原來 4人/周工作量將只須 1人/周完成;間接效益體現在 :減少支付 3人工資 (1200 元/

14、人月), 共計 3600元/ 月。1.5 社會因素可行性分析1.5.1 法律方面的可行性系統開發所用軟件均采用正版,系統的研制和開發 , 將不會侵犯他人、集體和國家的利益 , 不會違反國家政策和法律。本小組的工資管理系統是以微軟為操作平臺的。但是現在在中國微軟所推出的操作系統盜版非常猖獗。 作為系統的開發者, 我建議用戶采用正版的微軟操 作系統。如果因為使用盜版操作系統所帶來的任何損失。本開發小組概不負責。1.5.2 操作可行性本系統定位于各高校,也可以適用于各中小型企業。運用此系統進行工資管理,給各院校教職工帶來極大的方便。只要可以熟練得使用 window 操作系統所提的各種功能,就很方便操

15、作本系統,而且本系統有友好的用戶界面、有良好的安全性設置、有詳細的操作說明書,這樣更使各類用戶很快地掌握系統的使用方法。1.6 結論意見由于投資效益比遠大于 100%, 技術、經濟、操作都有可行性, 可以進行開發。、軟件需求規格說明書2.1 背景材料隨著信息化時代的到來, 社會生活的各個方面都發生著翻天覆地的變化, 然學校這個教育的前沿陣地也發生著巨大的變化。 傳統的人工工資管理存在 著很大的不足, 如處理量隨著職工人數的增多而急劇上升、 靠人工來處理顯得力 不從心、而且極其容易出錯,萬一出錯,將造成極大的麻煩。而以計算機代替人 工執行一系列的操作, 將極大地提高辦事效率和準確率, 并減輕了辦

16、公人員的負 擔。由此,學校工資管理系統就應運而生了。 通過我們對學校現有的工資管理系 統的調查, 并對工作人員的提出的要求進行細致地分析, 我們設計了一個實用的 學校工資管理系統。下面我將介紹我們項目組所開發的一個學校工資管理系統。本說明書對軟件的功能需求、 性能需求、 系統的數據處理流程、 用戶權限等 做了詳細的說明。 通過閱讀本說明書, 開發人員能夠對該系統的各個方面進行詳 細的了解。進而依照本說明書對系統進行高效的開發。2.2 功能需求分析本系統所應該包括的功能有:2.2.1 管理員用戶設置初次使用要求用戶設置至少兩個管理員 (分別隸屬于人事部和財務部) ,人事部管理員的權限有:設置各個

17、部門或系的基本工資、獎金、扣款、人事信息管理(添加、注銷等) ,財務部管理員的權限有:接收人事處的工資、人事等信息、對工資詳情進行核對、工資單的打印、傳送工資詳情給銀行、界面上提示輸入管理員用戶名和密碼。2.2.2 普通用戶創建由管理員根據職工的信息創建各個普通用戶(即學校的職工) ,普通用戶的權限僅限于查看工資、獎金、扣款細節等。2.2.3 用戶登錄請用戶輸入用戶名和密碼,判斷該用戶是管理員還是普通用戶,根據用戶類型對其所能夠進行的操作進行提示和限定,若用戶名不正確則輸出“用戶不存在的提示信息”并清空登錄框,密碼不正確則輸出“密碼錯誤”的提示信息并清空登錄框,最多可以輸入三次,三次不正確系統

18、會自動關閉且只能在 10 分鐘后再次登錄。2.2.4 遠程信息接收與傳遞由人事部的管理員進行職工出勤信息的接收與處理,并將出勤工資、獎金、扣款等傳送給財務部的管理員,若出現職工離退休等情況,要及時修改職工信息,并通知財務部等部門。財務部的管理員負責接收人事部的工資詳情, 并在規定的時間內將職工的工資表傳送給銀行,并將工資條發給各個部門。2.2.5 信息提醒在每個月 20日前 2 天提醒各部門、院系的負責人各個部門(包括系和部門) 將出勤情況上報人事處。 23 日前一天提醒人事部管理員將出勤工資、獎金及扣 款清單送到財務處 。每個月月底前三天提醒財務部管理員將教職工的工資表做 好并將數據送銀行。

19、并且在每個月 3 號提醒將工資條發給每個單位。226職工編號的判斷定義每個普通用戶的用戶名為四位數字組成的編碼: 前兩位是部門(或院系)的編碼,后兩位是個人編號。10個部門每個部門的職工數為20 (其中個人編號 從01到20), 8個系每個系的職工數為100 (其中個人編號從00到99)。各個部門、院系的編號定義如下:編號及工資定義部門編號月基本工資院系編號月基本工資教務處103800計算機學院203500學生處113500軟件學院213500財務部124000土木與建筑學院223000人事部133500機械學院233000保衛處143500電氣學院243200科技部154000信息學院253

20、200招生就業處163500文學院263500后勤處173500經濟管理學院273200黨政部184000對外交流部1938002.2.7職工工資的計算獎金扣款細節突出貢獻等級獎金額(Y)出勤情況(天)扣款額(Y)A800>=210B60020100C30019200D20018400E100<178002.3 性能需求分析2.3.1 運行環境本系統在財務部、 人事部使用, 通過各個終端對服務器進行操作, 還需要從各個部門(系)收集信息,打印各種表。因此要求能夠適應網絡環境、復雜的集 成環境。運行的環境有:硬件平臺: Intel 奔騰/酷睿、 AMD 速龍 /翼龍等 x86 系列的

21、平臺,基于交換 機的以太網;軟件 平 臺: 操作 系統 為 Windows XP/Windows7/Linux 等, 還有 SqL server2000輔助管理軟件等;需要程序能夠穩定地運行在上面所述的平臺上,并且需要考慮一定的穩定 性。另外要考慮到運行環境的變化: 如果增強服務器的硬件配置, 不僅可以增快 系統的響應時間,還能足夠保證系統的穩定性。2.3.2 精度要求輸入的信息盡可能準確,并對輸入進行限定。基本工資、扣款額、獎金額、稅率等用浮點數進行存儲,計算的工資精確到小數點后兩位(分) 。2.3.3 響應時間基于處理的實時性, 要求系統能夠在較短的時間內完成處理, 具體要求如下:所有員工

22、的工資計算: 10 秒數據傳送: 5 秒數據庫更新: 8 秒2.3.4 內存占用考慮到可能運行其它的程序和某些電腦配置不高, 要求軟件正常運行時的平 均內存占用能夠控制在 10M 以內,峰值內存占用不超過 30M。2.3.5 安全與更新考慮到所涉及問題的敏感性和現有網絡環境的不安全特點, 要求軟件有較好 的安全防護措施,包括密碼的安全性、用戶的驗證、系統的封裝等。而且還要求 能夠與主流的殺毒軟件和安全輔助軟件兼容。 另外在當前復雜的網絡環境下應考 慮到數據傳輸的安全性,最好使用數據加密技術。在數據檢索、數據有刪改機制以及軟件的復用性,以便增強軟件的健壯性。另外任何一款軟件都不能保證沒有漏洞,因

23、此要求軟件保留有限的升級接 口,為打補丁和軟件的升級提供便利。2.3.6 故障處理情況1:客戶端與服務器網絡不能連接處理:a. 檢修本地端網絡連接是否正常;b. 查看服務器端交換機端口是否被關閉;c. 查看端點間網絡線路是否完好。情況2:存儲空間已滿處理:a. 數據庫切換到備份存儲空間 ;b. 進行數據檢索,刪除日期超過4 年的數據。情況3:服務器死機處理:程序自動保存內存中的臨時數據;重啟機器情況4:服務端程序報告異常:保存好臨時數據,關閉訪問端口, 據初始化程序處理關閉程序重新啟動,通過臨時數其它具體情況參照相關技術進行處理。、數據流程圖由以上的需求分析進過研討和學習得到了如下圖所示的數據

24、流程圖:開始判斷密碼時候正確NY判斷用戶標志NNY輸入用戶名字 和密碼登陸人事部界面判斷管理用戶登陸財務部界面提示錯誤信息并 重新輸入登陸職工界面查看工資情況工資統計管理財務處理人事管理員工工資管理員工出勤管理王結束圖3-1數據流程圖.四、功能分析圖4.1員工工資標準模塊圖4-1員工工資標準查詢4.2工資統計模塊圖4-2工資統計4.3財務處理模塊圖4-3財務部工作4.4職工工資查詢模塊圖4-4職工工資查詢4.5登錄用戶管理模塊圖4-5用戶登錄管理4.6人事管理模塊4.7員工出勤管理模塊圖4-5員工出勤管理模塊圖五、數據字典定義的變量的匯總如下:數據字典變量描述類型長度取值Personnel職工

25、類類boo在職判斷標志bool1true/falsebh職工編號int2見需求規格說明 書t出勤次數int20-31m基本工資int2見需求規格說明 書d獎金額int2見需求規格說明 書k扣款金額int2見需求規格說明 書money凈工資int2Huiz存儲匯總表int1000*6*2acco unt用戶名charp assword密碼char其它有些變量沒有出現在這里,是因為它們過于復雜,不能這樣分類。六、概要設計根據前面得到的數據流程圖,用面向數據流的設計方法(軟件工程導論P95)導出系統結構圖如下:圖6-1系統結構圖七、詳細設計說明書7.1 編寫目的在使用程序語言編制程序之前,需要對所采

26、用算法的邏輯關系進行進行分 析,設計出全部必要的過程細節,并給予清晰的表達,使之成為編碼的依據,也 作為軟件測試人員及軟件維護人員進行測試及維護時的參照。7.2 背景項目的提出:工資管理是學校管理的重要組成部分,它與學校的人事管理、 財務管理有著密切的聯系。 對于勞資關系相對復雜的學校, 手工進行工資的發放 工作往往需要耗費大量的人力與時間。 由于工資發放在時間和操作上存在著一定 的重復性、 規律性,這使得工資管理的計算機化成為可能, 該項目的提出正是為 了在此基礎上進一步實現企業員工工資管理的規范化和自動化。7.3 系統的結構工資管理系統是學校管理系統的一個有機組成部分,它并非一個獨立的系統

27、,需要和員工人事管理、 財務管理等系統連接, 能夠從這些系統中正確的取得 員工基本信息、基本工資、獎金、出勤狀況等信息。本系統與其他系統聯系緊密,那么就得通過相應的接口相聯系。本工資管理 系統分為四大模塊,它們分別是登錄模塊、普通用戶、人事管理員用戶、財務管 理用戶模塊。 普通用戶的權限非常小, 所以享受的服務也非常少, 只能查詢自己 的一些簡單信息, 不能修改任何信息。 管理員模塊最為復雜, 它是工資管理系統 的核心部分,所有的設置、修改、計算和對數據庫的修改都在這個模塊。系統幫 助為普通用戶和管理員用戶所共有。由前面的數據流圖和系統結構圖進行進一步的分析和設計, 得到了后面的一 些程序流程

28、圖。7.4.1用戶注冊7.4程序流程圖圖7-1頂層圖圖7-2用戶注冊的詳細層圖圖7-3用戶注冊的詳細流程圖742用戶登錄圖7-4用戶登錄流程圖743人事管理圖7-5人事管理流程圖輸入職工編號744 員工工資查詢7.4.5員工出勤管理圖7-6員工工資查詢流程圖i輸入職工 編號輸入職工出勤情況T根據賞罰規定計算職工的工資輸入職工工資情況圖7-7員工出勤管理流程圖746財務部管理圖7-8財務部管理流程圖7.5 程序部分代碼然后根據這些程序流程圖進行實現,得到了如下的主要代碼:7.5.1 用戶注冊用戶注冊的代碼如下:注冊界面 */ void welcome2() /*printf("n pr

29、intf(" | | printf(" | | printf(" | | printf(" | | printf("n請輸入序號1.普通職工注冊。2.人事管理人員注冊。3.財務管理人員登錄。=n");| |n");| |n");| |n");| |n");=n");void welcome1()printf("n=printf(" | |請輸入序號| |n");printf(" | |1.用戶注冊。| |n");printf("

30、; | |2.普通職工登陸。| |n");printf(" | |3.人事管理人員登錄。| |n");printf(" | |4.財務管理人員登錄。| |n");printf(" | | printf("=5.退出系統| |n");n");*n");void welcome3() printf("nntt 注冊須知 nn"); printf("*n"); printf("*1.請填寫您的真實資料 !printf("*n");v

31、oid zhuce() Registered *reg= new Registered; char chose;reg->welcome2(); if(chose <='0' | chose>='4')while(chose <='0' | chose>='4')printf(" 您的輸入有誤,請重新輸入: ");fflush(stdin);scanf("%c",&chose);fflush(stdin);else if(chose='1'

32、;)system("cls");reg->pzhuce();/* 普通職工注冊 */else if(chose='2')system("cls");reg->rzhuce();/* 人事管理人員注冊 */else (chose='3');system("cls");reg->czhuce();/* 財務管理人員注冊 */* 帳戶判斷 */1*/int psearch(char* user, char* pwd, char* real_pwd)/* 判斷帳號是否相同,不相同返回FILE*

33、 file;char user_buff256, pwd_buff256;file = fopen(cFile, "r"); if (!file) return 0; while (!feof(file)if (fscanf(file, "%s%sn", user_buff, pwd_buff) = EOF) return 0; if (!strcmp(user_buff, user)if (real_pwd) strcpy(real_pwd, pwd_buff); return 1;fclose(file);return 0;1*/int rsearc

34、h(char* user, char* pwd, char* real_pwd)/* 判斷帳號是否相同,不相同返回FILE* file;char user_buff256, pwd_buff256;file = fopen(rFile, "r"); if (!file) return 0; while (!feof(file)if (fscanf(file, "%s%sn", user_buff, pwd_buff) = EOF) return 0; if (!strcmp(user_buff, user)if (real_pwd) strcpy(rea

35、l_pwd, pwd_buff); return 1; fclose(file);return 0;1*/int csearch(char* user, char* pwd, char* real_pwd)/* 判斷帳號是否相同,不相同返回FILE* file;char user_buff256, pwd_buff256;file = fopen(wFile, "r"); if (!file) return 0; while (!feof(file)if (fscanf(file, "%s%sn", user_buff, pwd_buff) = EOF)

36、 return 0; if (!strcmp(user_buff, user)if (real_pwd) strcpy(real_pwd, pwd_buff); return 1;fclose(file);return 0;/* 添加用戶 */int padd (char* user, char* pwd, double coin_n)FILE* file;file = fopen(cFile, "a");if (!file) return 0;fprintf(file, "%s %s n", user, pwd, coin_n); fclose(fil

37、e);return 0;int radd (char* user, char* pwd, double coin_n)FILE* file;file = fopen(rFile, "a");if (!file) return 0;fprintf(file, "%s %s n", user, pwd, coin_n); fclose(file);return 0;int cadd (char* user, char* pwd, double coin_n)FILE* file;file = fopen(wFile, "a");if (!

38、file) return 0;fprintf(file, "%s %s n", user, pwd, coin_n); fclose(file);return 0;int pwenjian(char* user, char* pwd,double coin)if (psearch(user, pwd, NULL) return 0; else padd(user, pwd, coin);return 1;int rwenjian(char* user, char* pwd,double coin)if (rsearch(user, pwd, NULL) return 0;e

39、lse radd(user, pwd, coin); return 1;int cwenjian(char* user, char* pwd,double coin)if (csearch(user, pwd, NULL) return 0; else cadd(user, pwd, coin); return 1;void pzhuce()/* 注冊 */struct Registered *p,*r;int i=0,k=0,judge1,judge2;char name30;char pwd30;/chchar ch;int n;r=(struct Registered*)malloc(s

40、izeof(struct Registered); p=(struct Registered*)malloc(sizeof(struct Registered); welcome2();printf(" 請輸入您的賬號 :");fflush(stdin);gets(name);fflush(stdin);printf(" 請輸入您的密碼 :");fflush(stdin);scanf("%s",&pwd);for(n=0;n <strlen(name);n+)/* 判斷輸入信息是否正確 */<= '9

41、9;)if( namen >= '0' && namencontinue;else if ( namen>='a'&& namen <='z')continue;else if ( namen >= 'A'&& namen <='Z' )continue;elseprintf(" 您輸入的賬號有誤 !n");printf("n 請選擇 :按 1 返回主頁面 . 按任意鍵退出 :"); fflush(

42、stdin);scanf("%c",&ch);fflush(stdin);if(ch='1')system("cls");else exit(0);strcpy( p->id, &name0 ); strcpy( p->psw, &pwd0 );if (pwenjian(p->id,p->psw,0)/* 存入文件并輸出基本信息 */system("cls");printf(" 注冊成功 !");printf(" 您的注冊信息如下 ,請牢記

43、:n"); printf(" 賬號 :");puts(p->id); printf(" 密碼 :"); puts(p->psw); fflush(stdin); scanf("%c",&ch);fflush(stdin);if(ch='1') system("cls"); else exit(0);else/* 如有相同帳號,注冊失敗 */system("cls");printf(" 您輸入的帳號已經存在 ! 注冊失敗 !n");

44、 printf(" 請選擇 :按 1 返回主頁面 . 按任意鍵退出 :"); fflush(stdin);scanf("%c",&ch);fflush(stdin);if(ch='1')system("cls");else exit(0);7.5.2 用戶登陸登錄模塊說明 :1) 程序:描述本程序是系統啟動時首先運行的程序,用戶通過本程序的認 證進入系統。通過本程序, 操作系統在內存為用戶分配一段內存, 而且必須在此 用戶退出之前常駐內存,以便對本系統的所有操作都是在此登陸用戶下進行。2) 功能:本段程序功能非

45、常簡單,提供新用戶注冊和響應登陸者,并根據 用戶的權限打開不同的登陸界面。3) 性能:該模塊若要注冊新用戶和響應登陸者,就必須對數據庫的用戶表 進行查詢、核對和更改。經過反復測試與優化, 我們將登陸時間限制在 5 秒以內, 若超過 5 秒,就顯示登陸出錯信息。 對新用戶注冊數據提交時間限制在 5 秒,若 超過 5 秒,就提示注冊失敗。4) 輸人項:本程序的輸入就兩大類,用戶名(工號)和密碼。以下為這兩 類輸入項作以下限制。 工號:必須是數字,字母組成。 密碼:必須是數字、字母組成。5) 輸出項:有四類輸出結果,登陸成功顯示財務管理用戶界面、登陸成功 顯示人事管理用戶界面、 登陸成功顯示普通職工

46、界面、 登陸不成功顯示錯誤信息。6) 尚未解決的問題本模塊不能更好控制多次錯誤登錄。本系統的處理方式 是退出本次登錄,該用戶只要再次運行程序即可繼續登錄。普通員工登錄設計說明:1) 程序描述:本段程序主要為普通用戶設定的,該程序所獲得的內存保存 在登錄一直到退出登錄為止。2) 功能:本段程序主要是區分普通用戶和管理員用戶,普通用戶享有的權 限很小,所享受的服務也相應的減少, 只能查看自己的基本信息和自己的工資信 息。其功能可用如下的功能模塊圖描述。3) 性能:該模塊主要是查詢自己的基本信息和基本工資,由于數據處理量 很小,所以要求每次執行響應時間不得超過 1.5 秒。4) 輸人項:按界面要求輸

47、入要執行的命令的編號。5) 輸出項:顯示我的基本信息,如姓名,工號,性別,年齡等。顯示我的工作情況,如出勤工資、獎金、扣款等。6) 算法:本段程序思想簡單, 沒有特殊的算法, 只是執行對數據庫的查詢。7) 接口:本模塊在查詢自己信息的時候, 要與人事管理系統進行數據交換, 那么就得有相應的接口來支持實現。8) 存儲分配:本段程序只是執行查詢功能,功能結束,內存所分配的資源也就被回收。登錄的代碼如下:void pdenglu()/* 登陸 */FILE *fp;char account10+ 1,password10 + 1,h; int m = 1;/* 帳號緩存 */* 密碼緩存 */cha

48、r real_account100;char real_password100; int iFlag = 0;printf(" 請輸入您的帳號 :"); fflush(stdin); gets(account); fflush(stdin);printf(" 請輸入您的密碼 :"); fflush(stdin);gets(password); fflush(stdin);while(m < 3)fp = fopen(cFile, "r");if (!fp)printf(" 不能打開文件 ! 按任意鍵退出 !"

49、); scanf("%c",&h); fclose(fp);exit(0);while (!feof(fp)iFlag = 0; fscanf(fp, "%s %sn", real_account, real_password); if(strcmp(real_account, account) = 0)iFlag = 1;if (strcmp(real_password, password)=0)iFlag = 2;break;fclose(fp);if(iFlag = 0)printf(" 您輸入的帳號不存在或密碼不正確 !n 請重

50、新輸入 :n"); printf(" 請輸入您的帳號 :");fflush(stdin);gets(account);fflush(stdin);printf(" 請輸入您的密碼 :");fflush(stdin);gets(password);fflush(stdin);m = m + 1;elsebreak;if(iFlag = 0)printf(" 您輸入帳號密碼不正確已經 3 次 ,您被強制退出系統 (按任意鍵退出 )!"); scanf("%c",&h);exit(0);else if(

51、iFlag != 0)printf(" 登陸成功 "); scanf("%c",&h);void rdenglu()/* 登陸 */FILE *fp;char account10+ 1,password10 + 1,h; int m = 1;/* 帳號緩存 */* 密碼緩存 */char real_account100;char real_password100; int iFlag = 0;printf(" 請輸入您的帳號 :"); fflush(stdin); gets(account); fflush(stdin);pr

52、intf(" 請輸入您的密碼 :"); fflush(stdin);gets(password); fflush(stdin);while(m < 3)fp = fopen(rFile, "r");if (!fp)printf(" 不能打開文件 ! 按任意鍵退出 !"); scanf("%c",&h); fclose(fp);exit(0);while (!feof(fp)iFlag = 0;fscanf(fp, "%s %sn", real_account, real_passw

53、ord); if(strcmp(real_account, account) = 0)iFlag = 1;if (strcmp(real_password, password)=0)iFlag = 2;break;fclose(fp);if(iFlag = 0)printf(" 您輸入的帳號不存在或密碼不正確 !n 請重新輸入 :n"); printf(" 請輸入您的帳號 :");fflush(stdin);gets(account);fflush(stdin);printf(" 請輸入您的密碼 :");fflush(stdin);gets(password);fflush(stdin);m = m + 1;elsebreak;if(iFlag = 0)printf(" 您輸入帳號密碼不正確已經 3 次 ,您被強制退出系統 (按任意鍵退出 )!"); scanf("%c",&h);exit(0);else if(iFlag != 0)printf(&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論