C語(yǔ)言超市管理系統(tǒng)軟件報(bào)告_第1頁(yè)
C語(yǔ)言超市管理系統(tǒng)軟件報(bào)告_第2頁(yè)
C語(yǔ)言超市管理系統(tǒng)軟件報(bào)告_第3頁(yè)
C語(yǔ)言超市管理系統(tǒng)軟件報(bào)告_第4頁(yè)
C語(yǔ)言超市管理系統(tǒng)軟件報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、PAGE 北京化工大學(xué)C語(yǔ)言實(shí)訓(xùn)實(shí)習(xí)報(bào)告題 目小型超市管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名齊鵬飛學(xué) 號(hào)200941105學(xué)生姓名葉亮亮學(xué) 號(hào)200942005學(xué)生姓名劉邇海學(xué) 號(hào)200941102學(xué)生姓名金震學(xué) 號(hào)200941113所在系(院)信息科學(xué)與技術(shù)學(xué)院專業(yè)名稱自動(dòng)化年 級(jí)2009級(jí)2011-07-04北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院C語(yǔ)言實(shí)訓(xùn)(實(shí)習(xí)報(bào)告)III目 錄目錄 TOC o 1-3 h z u HYPERLINK l _Toc298222694 第1章 軟件需求分析 PAGEREF _Toc298222694 h 1-1 HYPERLINK l _Toc298222695 第1.1節(jié)

2、軟件編寫目的 PAGEREF _Toc298222695 h 1-1 HYPERLINK l _Toc298222696 第1.2節(jié) 項(xiàng)目背景 PAGEREF _Toc298222696 h 1-1 HYPERLINK l _Toc298222697 第1.3節(jié) 定義 PAGEREF _Toc298222697 h 1-1 HYPERLINK l _Toc298222698 第1.4節(jié) 參考資料 PAGEREF _Toc298222698 h 1-1 HYPERLINK l _Toc298222699 第1.5節(jié) 軟件功能說(shuō)明 PAGEREF _Toc298222699 h 1-2 HYPER

3、LINK l _Toc298222700 第1.6節(jié) 軟件功能的驗(yàn)收標(biāo)準(zhǔn) PAGEREF _Toc298222700 h 1-2 HYPERLINK l _Toc298222701 第2章 軟件概要設(shè)計(jì) PAGEREF _Toc298222701 h 2-3 HYPERLINK l _Toc298222702 第2.1節(jié) 任務(wù)概述 PAGEREF _Toc298222702 h 2-3 HYPERLINK l _Toc298222703 第2.2節(jié) 總體設(shè)計(jì) PAGEREF _Toc298222703 h 2-3 HYPERLINK l _Toc298222704 第2.3節(jié) 軟件模塊設(shè)計(jì) P

4、AGEREF _Toc298222704 h 2-4 HYPERLINK l _Toc298222705 第2.4節(jié) 數(shù)據(jù)結(jié)構(gòu) PAGEREF _Toc298222705 h 2-5 HYPERLINK l _Toc298222706 第2.5節(jié) 容錯(cuò)設(shè)計(jì) PAGEREF _Toc298222706 h 2-5 HYPERLINK l _Toc298222707 第3章 軟件詳細(xì)設(shè)計(jì) PAGEREF _Toc298222707 h 3-1 HYPERLINK l _Toc298222708 第3.1節(jié) 程序描述 PAGEREF _Toc298222708 h 3-1 HYPERLINK l _

5、Toc298222709 3.1.1 功能 PAGEREF _Toc298222709 h 3-8 HYPERLINK l _Toc298222710 3.1.2 性能 PAGEREF _Toc298222710 h 3-8 HYPERLINK l _Toc298222711 3.1.3 輸入項(xiàng)目 PAGEREF _Toc298222711 h 3-8 HYPERLINK l _Toc298222712 3.1.4 輸出項(xiàng)目 PAGEREF _Toc298222712 h 3-8 HYPERLINK l _Toc298222713 第3.2節(jié) 算法 PAGEREF _Toc298222713

6、h 3-8 HYPERLINK l _Toc298222714 第3.3節(jié) 程序邏輯 PAGEREF _Toc298222714 h 3-9 HYPERLINK l _Toc298222715 第3.4節(jié) 接口 PAGEREF _Toc298222715 h 3-9 HYPERLINK l _Toc298222716 第3.5節(jié) 存儲(chǔ)分配 PAGEREF _Toc298222716 h 3-9 HYPERLINK l _Toc298222717 第3.6節(jié) 限制條件 PAGEREF _Toc298222717 h 3-10 HYPERLINK l _Toc298222718 第3.7節(jié) 測(cè)試要

7、點(diǎn) PAGEREF _Toc298222718 h 3-10 HYPERLINK l _Toc298222719 第4章 軟件使用說(shuō)明 PAGEREF _Toc298222719 h 4-1 HYPERLINK l _Toc298222720 第4.1節(jié) 安裝和初始化 PAGEREF _Toc298222720 h 4-1 HYPERLINK l _Toc298222721 第4.2節(jié) 輸入 PAGEREF _Toc298222721 h 4-1 HYPERLINK l _Toc298222722 4.2.1 數(shù)據(jù)背景 PAGEREF _Toc298222722 h 4-1 HYPERLINK

8、 l _Toc298222723 4.2.2 數(shù)據(jù)格式 PAGEREF _Toc298222723 h 4-1 HYPERLINK l _Toc298222724 4.2.3 輸入舉例 PAGEREF _Toc298222724 h 4-1 HYPERLINK l _Toc298222725 第4.3節(jié) 輸出 PAGEREF _Toc298222725 h 4-2 HYPERLINK l _Toc298222726 4.3.1 數(shù)據(jù)背景 PAGEREF _Toc298222726 h 4-2 HYPERLINK l _Toc298222727 4.3.2 數(shù)據(jù)格式 PAGEREF _Toc29

9、8222727 h 4-2 HYPERLINK l _Toc298222728 4.3.3 舉例 PAGEREF _Toc298222728 h 4-2 HYPERLINK l _Toc298222729 第4.4節(jié) 出錯(cuò)和恢復(fù) PAGEREF _Toc298222729 h 4-2 HYPERLINK l _Toc298222730 第4.5節(jié) 求助查詢 PAGEREF _Toc298222730 h 4-2 HYPERLINK l _Toc298222731 第4.6節(jié) 運(yùn)行說(shuō)明 PAGEREF _Toc298222731 h 4-3 HYPERLINK l _Toc298222732 4

10、.6.1 運(yùn)行步驟 PAGEREF _Toc298222732 h 4-3 HYPERLINK l _Toc298222733 4.6.2 操作信息 PAGEREF _Toc298222733 h 4-3 HYPERLINK l _Toc298222734 4.6.3 輸入/輸出文件 PAGEREF _Toc298222734 h 4-4 HYPERLINK l _Toc298222735 第4.7節(jié) 非常規(guī)過(guò)程 PAGEREF _Toc298222735 h 4-4 HYPERLINK l _Toc298222736 第4.8節(jié) 程序文件(或命令文件)和數(shù)據(jù)文件一覽表 PAGEREF _To

11、c298222736 h 4-5 HYPERLINK l _Toc298222737 第4.9節(jié) 用戶操作舉例 PAGEREF _Toc298222737 h 4-6 HYPERLINK l _Toc298222738 第5章 軟件的組裝及測(cè)試 PAGEREF _Toc298222738 h 5-1 HYPERLINK l _Toc298222739 第5.1節(jié) 各軟件模塊之間的調(diào)用 PAGEREF _Toc298222739 h 5-1 HYPERLINK l _Toc298222740 第5.2節(jié) 軟件的測(cè)試用例 PAGEREF _Toc298222740 h 5-1 HYPERLINK

12、l _Toc298222741 第5.3節(jié) 評(píng)價(jià) PAGEREF _Toc298222741 h 5-2 HYPERLINK l _Toc298222742 5.3.1 軟件能力 PAGEREF _Toc298222742 h 5-2 HYPERLINK l _Toc298222743 5.3.2 缺陷和限制 PAGEREF _Toc298222743 h 5-2 HYPERLINK l _Toc298222744 5.3.3 建議 PAGEREF _Toc298222744 h 5-2 HYPERLINK l _Toc298222745 5.3.4 測(cè)試結(jié)論 PAGEREF _Toc2982

13、22745 h 5-2 HYPERLINK l _Toc298222746 結(jié) 論 PAGEREF _Toc298222746 h 5-3 HYPERLINK l _Toc298222747 致 謝 PAGEREF _Toc298222747 h 5-4 HYPERLINK l _Toc298222748 附 錄 PAGEREF _Toc298222748 h 錯(cuò)誤!未定義書簽。-15軟件需求分析軟件編寫目的【21世紀(jì)以來(lái),科技的快速發(fā)展推動(dòng)人類社會(huì)不斷進(jìn)步,人們的生活水平不斷提高,對(duì)物質(zhì)產(chǎn)品的要求也不斷提升。作為當(dāng)今社會(huì)為人們生活提供物質(zhì)服務(wù)的重要載體超市,其服務(wù)水平也在一定程度上影響了人們

14、生活中的方方面面。超市的服務(wù)水平主要取決于超市的管理水平,計(jì)算機(jī)的運(yùn)用實(shí)現(xiàn)了超市的數(shù)字化管理,而超市管理系統(tǒng)將作為數(shù)字化管理的重要環(huán)節(jié),為超市管理提供幫助。一款優(yōu)秀的超市管理系統(tǒng)將為超市管理者解決諸如超市產(chǎn)品銷量如何、庫(kù)存產(chǎn)品是否滿足顧客需求、超市員工能否勝任自己的本職工作等問(wèn)題。通過(guò)超市管理系統(tǒng)實(shí)時(shí)數(shù)據(jù)更新,管理者可以得到最為直接有效的數(shù)據(jù),讓超市管理者正確把握超市經(jīng)營(yíng)方向,實(shí)現(xiàn)高水平、高效率、高品質(zhì)的服務(wù)?!宽?xiàng)目背景【本次小型超市管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),是北京化工大學(xué)2010-2011學(xué)年第三學(xué)期中,c語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)的課題之一,參與的人員包括2009級(jí)部分自動(dòng)化和測(cè)控的學(xué)生。我組隸屬于本次

15、程序設(shè)計(jì)實(shí)訓(xùn)中第五大組的第9小組,完成課題為小型超市管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)】定義【專業(yè)術(shù)語(yǔ):算法:有基本運(yùn)算及規(guī)定的運(yùn)算順序所構(gòu)成的完整的解題步驟。整體模塊圖:功能模塊圖是軟件工程過(guò)程中的一個(gè)重要環(huán)節(jié)它將顯示工程所要實(shí)現(xiàn)的各種功能,并分類。char:計(jì)算機(jī)編程語(yǔ)言(c、 HYPERLINK /view/824.htm t _blank c+、java、VFP等)中可容納單個(gè)字符的一種基本數(shù)據(jù)類型。float:小數(shù)在C語(yǔ)言中小數(shù)類型值?!繀⒖假Y料【本報(bào)告參考的相關(guān)資料:1北京化工大學(xué)課程設(shè)計(jì)指導(dǎo)手冊(cè)C語(yǔ)言課程設(shè)計(jì)2 C語(yǔ)言程序設(shè)計(jì)】軟件功能說(shuō)明【軟件系統(tǒng)結(jié)構(gòu):管理人員模塊:實(shí)現(xiàn)包括對(duì)員工和商品信息

16、的錄入、查詢、整體瀏覽、修改和刪除以及銷售信息的查看的功能,另外可對(duì)系統(tǒng)登錄密碼修改;普通員工模塊:由管理人員模塊獲取登錄員工號(hào)和初始密碼后,可對(duì)個(gè)人信息查詢以及銷售操作。 軟件功能的驗(yàn)收標(biāo)準(zhǔn)【小型超市管理系統(tǒng)的總體目標(biāo)是實(shí)現(xiàn)商品信息和員工信息的動(dòng)態(tài)管理。管理員對(duì)商品信息的管理包括管理員對(duì)商品信息的錄入、修改、查看及刪除等一系列操作,對(duì)員工信息的管理與商品信息管理基本相同,區(qū)別在于管理員對(duì)員工信息的錄入將為員工分配賬號(hào)和初始密碼,以便員工的銷售操作。在員工模塊中有關(guān)銷售操作,將會(huì)被記錄由管理員查看。通過(guò)庫(kù)存商品的查看和員工的銷售記錄兩項(xiàng)功能,實(shí)現(xiàn)本軟件對(duì)商品銷售和員工信息動(dòng)態(tài)管理的總體目標(biāo)】軟

17、件概要設(shè)計(jì)任務(wù)概述【目標(biāo):確定本系統(tǒng)中主要分為兩個(gè)模塊,包括管理員模塊和普通員工模塊。管理員模塊將完成商品信息和員工信息管理的大多數(shù)操作;普通員工可查看個(gè)人信息并且進(jìn)行銷售的操作。普通員工銷售商品的相關(guān)信息將被記錄。運(yùn)行環(huán)境:一般在windows系統(tǒng)下可操作運(yùn)行需求概述:小型超市實(shí)現(xiàn)數(shù)字化管理,實(shí)現(xiàn)對(duì)員工和商品信息的動(dòng)態(tài)管理,必須保證系統(tǒng)的穩(wěn)定性和信息安全性,客戶界面簡(jiǎn)單明了,并且有友好的人機(jī)互動(dòng)?!靠傮w設(shè)計(jì)【系統(tǒng)主要面對(duì)三個(gè)對(duì)象,分別是管理人員、普通員工和庫(kù)存商品。管理人員對(duì)普通員工和庫(kù)存商品有相關(guān)的操作,普通員工僅對(duì)庫(kù)存商品進(jìn)行操作,因此系統(tǒng)應(yīng)包括兩個(gè)操作對(duì)象和兩個(gè)被操作對(duì)象。系統(tǒng)實(shí)現(xiàn)的簡(jiǎn)

18、略圖如下:】軟件模塊設(shè)計(jì)【Manager的大模塊下,包括了信息管理模塊、銷售額查看模塊和修改密碼模塊:信息管理模塊:包括員工信息管理和商品信息管理兩個(gè)結(jié)構(gòu)相同、內(nèi)容不同的模塊。由于面對(duì)對(duì)象不同,因此為員工信息管理和商品信息管理分別建立了兩個(gè)文件,分別為yglr.dat和splr.dat。用戶進(jìn)行操作時(shí),得到用戶的操作對(duì)象后,將調(diào)用相應(yīng)的文件進(jìn)校操作,實(shí)現(xiàn)對(duì)文件信息的輸入、輸出、修改和刪除,即對(duì)員工信息和商品信息進(jìn)行錄入、查看、修改和刪除。銷售額查看模塊:通過(guò)建立sale.dat文件記錄員工相關(guān)銷售信息,用戶在以管理員身份進(jìn)行操作時(shí),通過(guò)調(diào)用sale.dat實(shí)現(xiàn)對(duì)銷售額的查看修改密碼模塊:首先驗(yàn)

19、證code.dat文件中的密碼是否與用戶輸入的密碼相同,若相同要求用戶輸入新密碼,用新密碼進(jìn)行覆蓋,等下次用戶進(jìn)入系統(tǒng)時(shí)驗(yàn)證的密碼將是用戶的新密碼。Worker模塊下,包括了個(gè)人信息管理、商品銷售和修改個(gè)人密碼。進(jìn)入Worker模塊必須以Manger模塊中已錄入相關(guān)的登錄信息為前提。登錄時(shí)將調(diào)用yglr.dat對(duì)使用者輸入的工號(hào)和密碼進(jìn)行對(duì)比,二者均相同時(shí)方可登錄。個(gè)人信息管理模塊:在使用者登錄Worker模塊的同時(shí),系統(tǒng)已記錄使用者的工號(hào),在用戶查看個(gè)人信息時(shí),將通過(guò)調(diào)用yglr.dat選擇性顯示員工的個(gè)人信息。商品銷售:通過(guò)使用者輸入的商品編號(hào)調(diào)用splr.dat文件中的編號(hào)信息進(jìn)行比對(duì),

20、找到后輸出該商品的相關(guān)信息,要求使用者輸入相應(yīng)數(shù)量,減去相應(yīng)庫(kù)存商品中的數(shù)量,將銷售數(shù)量和單價(jià)相乘得出應(yīng)付金額,輸入所收金額計(jì)算出找零,同時(shí)員工的工號(hào)和姓名信息以及出售商品的信息將被寫入sale.dat文件中,以便管理員的查看。修改密碼模塊:首先用戶輸入原有密碼,不正確將強(qiáng)制返回,正確則要求用戶輸入新密碼。將新密碼寫入yglr.dat,下次用戶登錄將使用新密碼進(jìn)行比對(duì)?!繑?shù)據(jù)結(jié)構(gòu)【員工結(jié)構(gòu)體:struct employeechar staffID20;/員工編號(hào) char name20;/員工姓名 char age20;/年齡 char sex20;/性別 char phone20;/聯(lián)系方式

21、 char keyMAX;/密碼 staffSIZE;商品結(jié)構(gòu)體:struct goodschar merchID20;/商品編號(hào) char fullname20;/ 商品名稱 char kind20;/商品種類 float unitcost;/商品單價(jià)float spsl;/商品數(shù)量float xfje;/消費(fèi)金額productKCZL;銷售記錄結(jié)構(gòu)體:struct sale/商品銷售結(jié)構(gòu)體char staffID20;/員工編號(hào) char name20;/員工姓名char merchID20;/商品編號(hào)char fullname20;/ 商品名稱float xssl;/商品數(shù)量float

22、xfje;/消費(fèi)金額saleSIZE;】容錯(cuò)設(shè)計(jì)【用戶錯(cuò)誤輸入反應(yīng)機(jī)制:功能選擇菜單中,若用戶輸入是無(wú)效字符或無(wú)次選項(xiàng)的數(shù)字,系統(tǒng)將自動(dòng)提示用戶輸入錯(cuò)誤,要求重新輸入,直到用戶輸入正確為止。用戶失誤輸入反應(yīng)機(jī)制:在商品信息和員工信息錄入中,將限制用戶對(duì)于商品編號(hào)和員工工號(hào)的輸入,若用戶輸入已存在的商品編號(hào)或員工工號(hào)時(shí),系統(tǒng)將自動(dòng)提示此商品編號(hào)或工號(hào)存在,要求重新輸入;在商品信息修改和員工信息修改中也包括商品編號(hào)和員工工號(hào)的選項(xiàng),若用戶將商品編號(hào)或員工工號(hào)修改為已存在的編號(hào)或工號(hào)也將得到提示,用戶可選擇繼續(xù)修改或取消修改。用戶失誤操作:在用戶開始有關(guān)文件錄入,修改和刪除操作時(shí),系統(tǒng)會(huì)提示是否開始

23、操作,避免用戶操作失誤造成麻煩;若錄入錯(cuò)誤信息,用戶也可通過(guò)修改或刪除對(duì)信息進(jìn)行糾正?!寇浖敿?xì)設(shè)計(jì)程序描述 功能:進(jìn)行用戶功能選擇性能:良好;輸入選擇數(shù)字,輸出所選擇的相應(yīng)模塊功能:完成員工信息管理性能:良好輸入項(xiàng)目:?jiǎn)T工相關(guān)個(gè)人信息輸出項(xiàng)目:?jiǎn)T工個(gè)人信息功能:完成商品信息管理性能:良好輸入項(xiàng)目:商品信息管理功能選擇輸出項(xiàng)目:相關(guān)商品信息的功能操作功能:完成員工的登陸操作性能:良好輸入項(xiàng)目:工號(hào)和個(gè)人密碼輸出項(xiàng)目:?jiǎn)T工操作菜單功能:完成銷售記錄查看性能:良好輸入項(xiàng)目:相應(yīng)的選擇項(xiàng)目輸出項(xiàng)目:銷售記錄功能:完成商品銷售性能:良好輸入項(xiàng)目:商品編號(hào) 商品數(shù)量 收費(fèi)金額輸出項(xiàng)目:商品相關(guān)信息 成交

24、金額 找零功能:完成修改密碼操作性能:良好輸入項(xiàng)目:原密碼輸出項(xiàng)目:新密碼【逐個(gè)模塊給出以下的說(shuō)明:】功能性能輸入項(xiàng)目輸出項(xiàng)目算法【略】程序邏輯接口【由于系統(tǒng)的各種內(nèi)外接口都是通過(guò)Visual C+軟件實(shí)現(xiàn)的,是完全在內(nèi)部進(jìn)行操作的,故此處省略相關(guān)內(nèi)容】存儲(chǔ)分配【無(wú)】限制條件【條件與限制:考慮到使用對(duì)象為小型超市管理系統(tǒng),員工人數(shù)和商品總數(shù)有限,另外密碼設(shè)計(jì)采用較為普遍的六位數(shù)。】測(cè)試要點(diǎn)【測(cè)試模塊的主要測(cè)試要求:用戶在正確輸入的情況下能完成對(duì)應(yīng)功能。用戶在輸入錯(cuò)誤或操作的情況下能夠及時(shí)提示并予以修正,保證系統(tǒng)運(yùn)行的穩(wěn)定性。用戶登錄必須通過(guò)密碼驗(yàn)證,以保證系統(tǒng)中的信息安全對(duì)文件進(jìn)行相應(yīng)操作后,

25、使用后重新錄入的數(shù)據(jù)必須準(zhǔn)確無(wú)誤?!寇浖褂谜f(shuō)明安裝和初始化【操作說(shuō)明:用戶在第一次使用該軟件時(shí),雙擊打開超市管理系統(tǒng)的exe文件即可運(yùn)行小型超市管理系統(tǒng)的軟件,出現(xiàn)歡迎界面按回車鍵后即可進(jìn)入操作菜單;初次登錄用戶必須選擇管理員模塊,普通人員模塊將無(wú)法運(yùn)行。初次登錄管理員模塊要求用戶輸入初始密碼,之后可進(jìn)行管理員模塊中的所有操作選項(xiàng);管理員需對(duì)員工信息和商品信息進(jìn)行相關(guān)操作,在對(duì)員工信息進(jìn)行錄入時(shí),即分配員工的工號(hào)和初始密碼,其為登錄員工模塊的必要條件,即使得普通員工模塊初始化;用戶作為普通員工操作軟件時(shí)必須先確認(rèn)自己的信息已經(jīng)錄入系統(tǒng)中,并得到登錄工號(hào)和初始密碼后方可登錄;登錄后用戶可以查看

26、自己的個(gè)人信息和修改密碼,在已有商品信息的情況下可以開始商品銷售操作,其銷售記錄將被記錄下來(lái)。初始化后再進(jìn)行登錄應(yīng)使用修改后的密碼,否則無(wú)法進(jìn)行軟件操作】輸入【輸入數(shù)據(jù)一覽表詳見(jiàn)4.8節(jié)】數(shù)據(jù)背景【用戶所輸入數(shù)據(jù),將對(duì)應(yīng)保存在yglr.dat splr.dat sale.dat中,質(zhì)量管理較差,可直接刪除,須改進(jìn)?!俊菊f(shuō)明數(shù)據(jù)來(lái)源、存儲(chǔ)媒體、出現(xiàn)頻度、限制和質(zhì)量管理等。】數(shù)據(jù)格式【數(shù)據(jù)格式詳見(jiàn)4.8節(jié)表】輸入舉例【暫無(wú)】輸出【給出每項(xiàng)輸出數(shù)據(jù)的說(shuō)明。】數(shù)據(jù)背景【輸出數(shù)據(jù)將之間在屏幕顯示,使用次數(shù)由用戶自行決定?!繑?shù)據(jù)格式【輸出數(shù)據(jù)格式詳見(jiàn)4.8節(jié)表】舉例【暫無(wú)】出錯(cuò)和恢復(fù)【數(shù)據(jù)讀取失敗:當(dāng)用戶

27、進(jìn)行查看或?yàn)g覽操作時(shí),若出現(xiàn)提示數(shù)據(jù)丟失或數(shù)據(jù)讀取失敗或文件不存在時(shí),用戶可檢查軟件同目錄下是否有相應(yīng)文件存在,若不存在必須通過(guò)相關(guān)錄入操作建立文件夾方可繼續(xù)使用。密碼登錄錯(cuò)誤:若以管理員身份運(yùn)行軟件,登錄密碼錯(cuò)誤將要求重新輸入或退出,若用戶忘記密碼可將文件code.dat刪除,即可重新設(shè)定密碼進(jìn)行操作。普通員工登錄信息錯(cuò)誤可由管理員登錄進(jìn)行修改。功能菜單報(bào)錯(cuò)信息:用戶在功能菜單輸入非法字符或無(wú)效指令,系統(tǒng)將提示用戶“輸入有誤,請(qǐng)重新輸入”的信息,用戶僅按回車后重新輸入正確指令即可恢復(fù)繼續(xù)操作。工號(hào)或商品編號(hào)已存在:當(dāng)用戶進(jìn)行員工和商品錄入或進(jìn)行相關(guān)修改時(shí),系統(tǒng)會(huì)自動(dòng)檢查已存在的工號(hào)或編號(hào),若

28、工號(hào)或商品編號(hào)已存在,系統(tǒng)會(huì)提示用戶錄入或要修改的信息已存在,用戶輸入一個(gè)新的工號(hào)或商品編號(hào)即可繼續(xù)操作,或取消修改系統(tǒng)也可恢復(fù)。銷售報(bào)錯(cuò)商品編號(hào)不存在或庫(kù)存商品不足請(qǐng)重新輸入:用戶在進(jìn)行銷售操作時(shí),若輸入的商品編號(hào)不存在,系統(tǒng)會(huì)向用戶提示無(wú)該商品的信息,用戶可取消操作或輸入正確的商品編號(hào)繼續(xù)使用;若輸入商品數(shù)量大于庫(kù)存商品數(shù),系統(tǒng)會(huì)提示用戶庫(kù)存商品不足,要求用戶重新輸入商品數(shù)量?!壳笾樵儭居脩粼谑褂帽究钴浖霈F(xiàn)錯(cuò)誤時(shí),請(qǐng)將出現(xiàn)問(wèn)題的菜單及形式記錄下來(lái),強(qiáng)制關(guān)閉后重新操作觀察問(wèn)題是否重復(fù)出現(xiàn),若出現(xiàn)無(wú)法解決故障可撥打電行查詢。本電話24小時(shí)為您服務(wù)并解決系統(tǒng)出現(xiàn)的問(wèn)

29、題?!窟\(yùn)行說(shuō)明運(yùn)行步驟【管理員運(yùn)行步驟:1.運(yùn)行軟件通過(guò)歡迎界面進(jìn)入主菜單,選擇管理員選項(xiàng);2.初次運(yùn)行軟件要求用戶輸入初始密碼,之后登錄則要求通過(guò)密碼驗(yàn)證方可進(jìn)行操作;3.進(jìn)入管理員模塊后,用戶可進(jìn)行員工信息管理、商品信息管理、銷售額查看、修改密碼和返回首頁(yè)操作,用戶根據(jù)需要進(jìn)行相應(yīng)選擇;4.若選擇員工信息管理或商品信息管理,用戶可進(jìn)行相應(yīng)信息的錄入、查看、瀏覽、修改、刪除和返回操作,用戶選擇后即可使用相關(guān)功能,按系統(tǒng)提示進(jìn)行操作與輸入;5.若用戶選擇銷售額查看,系統(tǒng)提示文件讀取失敗,說(shuō)明還未進(jìn)行銷售操作,若讀取成功,用戶將看見(jiàn)包括員工和商品信息的銷售記錄;6.返回操作將會(huì)回到首頁(yè),用戶再進(jìn)

30、行操作要求輸入密碼進(jìn)行驗(yàn)證,驗(yàn)證無(wú)誤后方可進(jìn)行相關(guān)功能使用。普通員工運(yùn)行步驟:確認(rèn)個(gè)人信息已經(jīng)被系統(tǒng)錄入,輸入工號(hào)和初始密碼開始進(jìn)行操作使用;通過(guò)員工模塊進(jìn)入后,可進(jìn)行個(gè)人信息查看、商品銷售管理、修改密碼和返回首頁(yè)操作;用戶選擇個(gè)人信息查看可看見(jiàn)個(gè)人信息,包括工號(hào)、姓名、性別、聯(lián)系方式,瀏覽完畢按任意鍵返回;選擇商品銷售管理,要求用戶輸入已存在的商品編號(hào),系統(tǒng)會(huì)自動(dòng)輸出商品的相關(guān)信息,包括商品編號(hào)、名稱、類別、單價(jià),要求用戶輸入銷售的商品數(shù)量,若輸入商品數(shù)量大于庫(kù)存商品數(shù)量將要求用戶重新輸入,輸入正確將計(jì)算消費(fèi)金額。用戶選擇繼續(xù)輸入商品編號(hào)或結(jié)賬操作;結(jié)賬操作后,用戶輸入收取金額,計(jì)算找零后,

31、將返回上一菜單;修改密碼要求用戶輸入原有密碼,輸入原有密碼正確后才可進(jìn)行密碼修改操作;.返回操作將會(huì)回到首頁(yè),用戶再進(jìn)行操作要求輸入密碼進(jìn)行驗(yàn)證,驗(yàn)證無(wú)誤后方可進(jìn)行相關(guān)功能使用。】操作信息管理員模塊:?jiǎn)T工信息管理:對(duì)員工信息進(jìn)行錄入、查看、整體瀏覽、修改、刪除。選擇此選項(xiàng)的進(jìn)行除錄入以外操作時(shí),要求yglr.dat文件中以包含相關(guān)人員信息;對(duì)員工進(jìn)行錄入,要求工號(hào)的唯一性,其他信息可相同,另除密碼外輸入信息不可超過(guò)20個(gè)字節(jié),密碼不超過(guò)6個(gè)字節(jié),否則會(huì)出現(xiàn)錯(cuò)誤;對(duì)員工信息進(jìn)行工號(hào)修改時(shí)也應(yīng)保證修改后的員工號(hào)唯一性;商品信息管理:對(duì)商品信息進(jìn)行錄入、查看、整體瀏覽、修改、刪除。選擇此選項(xiàng)的進(jìn)行除

32、錄入以外操作時(shí),要求splr.dat文件中以包含相關(guān)商品信息;對(duì)商品進(jìn)行錄入,要求商品編號(hào)的唯一性,其他信息可相同,另除單價(jià)和數(shù)量外輸入信息不可超過(guò)20個(gè)字節(jié),單價(jià)和數(shù)量必須輸入十進(jìn)制可讀正確的數(shù)字;對(duì)商品信息進(jìn)行商品編號(hào)修改時(shí)也應(yīng)保證修改后的商品編號(hào)唯一性;銷售額查看:實(shí)現(xiàn)對(duì)進(jìn)行商品銷售動(dòng)作的員工進(jìn)行記錄。記錄信息包括員工工號(hào)、姓名、商品編號(hào)、商品名稱、銷售數(shù)量和消費(fèi)金額,操作無(wú)特別要求;普通員工模塊:個(gè)人信息查看:正確登錄后即可進(jìn)行操作,無(wú)特別要求;商品銷售管理:實(shí)現(xiàn)商品銷售功能,計(jì)算相應(yīng)銷售所需數(shù)據(jù),要求用戶正確輸入商品編號(hào)和商品數(shù)量,商品數(shù)量不大于該商品的庫(kù)存總量;修改登錄密碼:實(shí)現(xiàn)密

33、碼私有化,要求用戶首先正確輸入原有密碼,驗(yàn)證原有密碼正確后要求用戶輸入修改后密碼,成功操作修改后密碼為用戶的新密碼;運(yùn)行目的;操作要求;啟動(dòng)方法;預(yù)計(jì)運(yùn)行時(shí)間;操作命令格式及說(shuō)明;其他事項(xiàng)。輸入/輸出文件【記錄員工信息文件:yglr.dat 記錄包括員工工號(hào)、員工姓名、員工性別、員工年齡、員工聯(lián)系方式和員工個(gè)人密碼;記錄商品信息文件:splr.dat 記錄包括商品編號(hào)、商品名稱、商品種類、商品單價(jià)和庫(kù)存商品數(shù);記錄銷售信息文件:sale.dat 記錄包括員工工號(hào)、員工姓名、商品編號(hào)、商品名稱、銷售數(shù)量和消費(fèi)金額?!糠浅R?guī)過(guò)程【系統(tǒng)自動(dòng)停止運(yùn)行:1可先強(qiáng)制關(guān)閉軟件重新啟動(dòng),試運(yùn)行軟件是否能正確運(yùn)

34、行;2若無(wú)法強(qiáng)制關(guān)閉,可使用認(rèn)為管理器直接結(jié)束進(jìn)程,再重新啟動(dòng)軟件;3 強(qiáng)制關(guān)閉電腦重新啟動(dòng),運(yùn)行軟件觀察是否能正確運(yùn)行?!俊咎峁?yīng)急或非常規(guī)操作的必要信息及操作步驟,如出錯(cuò)處理操作、向后備系統(tǒng)切換操作以及維護(hù)人員須知的操作和注意事項(xiàng)?!砍绦蛭募ɑ蛎钗募┖蛿?shù)據(jù)文件一覽表銷售信息表用于存儲(chǔ)銷售信息。表中各字段功能定義如表中文字段名英文字段名字段類型長(zhǎng)度員工編號(hào)staffIDchar20員工姓名namechar20商品編號(hào)merchIDchar20商品名稱fullnamechar20商品數(shù)量spslfloat4消費(fèi)金額xfjefloat4商品信息表用于存儲(chǔ)商品的信息。表中各字段功能定義如表中

35、文字段名英文字段名字段類型長(zhǎng)度商品編號(hào)merchIDchar20名稱fullnamechar20類別kindchar20單價(jià)unitcostfloat4數(shù)量spslfloat4消費(fèi)金額xfjefloat4職工信息表用于存儲(chǔ)職工信息,職工編號(hào)為主鍵是唯一標(biāo)識(shí)。表中各字段功能定義如表中文字段名英文字段名字段類型長(zhǎng)度職工編號(hào)staffIDchar20姓名namechar20員工年齡agechar20性別sexchar20聯(lián)系方式phonechar20密碼keychar20【按文件名字母順序或按功能與模塊分類順序逐個(gè)列出文件名稱、標(biāo)識(shí)符及說(shuō)明?!坑脩舨僮髋e例【暫無(wú)】軟件的組裝及測(cè)試各軟件模塊之間的調(diào)用

36、軟件的測(cè)試用例【軟件測(cè)試用例一:在所有功能菜單中,隨意輸入非法指令和正確指令,測(cè)試菜單選擇功能。測(cè)試方法與結(jié)果:輸入非法字符時(shí),系統(tǒng)會(huì)自動(dòng)報(bào)錯(cuò),提示用戶輸入有誤,并要求重新輸入;重新輸入正確字符后,系統(tǒng)正確進(jìn)入所選擇菜單。軟件測(cè)試用例二:在員工錄入和商品信息錄入中錄入相同的工號(hào)或編號(hào),在修改過(guò)程中修改為已存在的工號(hào)和商品編號(hào)。測(cè)試方法與結(jié)果:正確進(jìn)入錄入界面后,輸入已存在的工號(hào)或商品編號(hào),要求重新輸入編號(hào),再次輸入已有編號(hào),系統(tǒng)仍會(huì)提示已存在,輸入不存在的工號(hào)后,系統(tǒng)方可繼續(xù)輸入其他信息;正確進(jìn)入修改界面后,選擇修改工號(hào)或商品編號(hào),輸入不存在的工號(hào)或商品編號(hào),系統(tǒng)提示不存在并強(qiáng)制返回,重新進(jìn)行

37、操作后,輸入須修改的工號(hào)或編號(hào),修改為已存在的工號(hào)或編號(hào),系統(tǒng)提示修改后的信息有重復(fù),要求重新修改或取消操作,取消操作后通過(guò)瀏覽發(fā)現(xiàn)信息并未改動(dòng),重新進(jìn)行正確的修改,發(fā)現(xiàn)修改正確。軟件測(cè)試用例三:商品銷售的一系列操作測(cè)試方法與結(jié)果:正確進(jìn)入商品銷售模塊,輸入非法或不存在的商品編號(hào),系統(tǒng)提示無(wú)該商品信息,要求重新輸入或取消操作,取消操作后返回上一級(jí)菜單;重新進(jìn)入仍輸入不合法字符,選擇繼續(xù)操作后,再輸入非法字符,系統(tǒng)仍會(huì)報(bào)錯(cuò);選擇繼續(xù)輸入正確的商品編號(hào),系統(tǒng)輸出相關(guān)商品信息,并要求輸入商品數(shù)量;輸入較大商品數(shù)量,系統(tǒng)提示庫(kù)存商品不足,要求重新輸入,重新輸入正確數(shù)量,銷售操作成功;通過(guò)查看庫(kù)存商品信

38、息,發(fā)現(xiàn)相關(guān)商品的減少數(shù)量與銷售數(shù)量相同。軟件測(cè)試用例四:修改密碼測(cè)試測(cè)試方法與結(jié)果:修改密碼模塊,首先要去輸入原有密碼,輸入錯(cuò)誤原密碼,系統(tǒng)提示密碼錯(cuò)誤,返回操作;重新進(jìn)行操作,輸入正確密碼后,提示輸入修改后的密碼,輸入修改后的密碼退出重新登錄,使用原密碼登錄,系統(tǒng)提示密碼錯(cuò)誤;輸入修改后密碼,正確登錄相應(yīng)菜單?!吭u(píng)價(jià)軟件能力【經(jīng)過(guò)相關(guān)測(cè)試,軟件進(jìn)行測(cè)試所要達(dá)到的結(jié)果,與軟件所能完成的功能一致,測(cè)試結(jié)果良好;進(jìn)行的錯(cuò)誤操作,系統(tǒng)能夠正確提示用戶,要求重新輸入或取消操作,無(wú)論正確還是錯(cuò)誤的輸入都能返回上一層菜單?!咳毕莺拖拗啤拒浖y(cè)試在進(jìn)行有關(guān)密碼操作的功能中,沒(méi)有正確提示用戶輸入幾位密碼,可

39、能造成用戶輸入出錯(cuò);商品銷售中,結(jié)構(gòu)體寫入文件的方式?jīng)]有用到鏈表,可能會(huì)影響大數(shù)據(jù)量的輸入;相關(guān)提示描述不夠準(zhǔn)確或過(guò)于專業(yè),不能給用戶較為直接的解決辦法?!拷ㄗh【建議:操作密碼的相關(guān)模塊中向用戶提示密碼的限制,并能夠判斷用戶輸入超過(guò)限制,讓用戶重新輸入;商品銷售中,建議使用鏈表,進(jìn)行動(dòng)態(tài)輸入,方便銷售記錄的使用;相關(guān)錯(cuò)誤提示信息描述應(yīng)簡(jiǎn)單明了,表意明確,并給用戶相應(yīng)的操作提示?!繙y(cè)試結(jié)論【軟件功能基本實(shí)現(xiàn),容錯(cuò)性較好,測(cè)試性能良好,相關(guān)解決辦法有效,軟件測(cè)試通過(guò)?!拷Y(jié) 論 小型超市管理系統(tǒng)這一套軟件從設(shè)計(jì)、開發(fā)到實(shí)現(xiàn)共經(jīng)過(guò)了兩個(gè)星期,在大家的努力下現(xiàn)以成功實(shí)現(xiàn)所有既定功能,系統(tǒng)運(yùn)行良好,初步達(dá)

40、到我們對(duì)于該軟件的期望值。 我們?cè)谠O(shè)計(jì)初期搜集了超市管理的相關(guān)資料,結(jié)合自身對(duì)于題目的理解,并且參考了相對(duì)成熟的編寫思路,初步制定了該軟件所能實(shí)現(xiàn)的功能。隨著編寫的深入,我們對(duì)于功能的實(shí)現(xiàn)也有了更多的理解和想法,在完成管理員模塊的大部分功能后,我們添加了銷售函數(shù),并且實(shí)現(xiàn)員工銷售記錄查看,使我們組的作品能區(qū)別于其他組,由于時(shí)間有限,實(shí)現(xiàn)銷售的環(huán)節(jié)還存在一些缺陷,敬請(qǐng)諒解。所有函數(shù)和功能基本實(shí)現(xiàn)的情況下,我們更多的考慮了用戶的操作使用情況,重新在用戶輸入的容錯(cuò)性上進(jìn)行修改,添加更多的人機(jī)互動(dòng),出現(xiàn)更多錯(cuò)誤操作的提示語(yǔ),為軟件能夠穩(wěn)定運(yùn)行作出重要保障;在其他模塊的編寫中,我們也花了很多的心力,盡量

41、讓系統(tǒng)實(shí)現(xiàn)的功能更加豐富,使用更加方便 小型超市管理系統(tǒng)是我們?cè)谲浖帉懙缆飞系牡谝粋€(gè)完整作品,首先我們要承認(rèn),由于自身編寫的水平有限,系統(tǒng)仍然存在著很多目前可見(jiàn)和未見(jiàn)的缺陷,比如在銷售環(huán)節(jié)中,銷售記錄的數(shù)量會(huì)受到限制,由于時(shí)間緊迫,我們沒(méi)有對(duì)此進(jìn)行修改;另外在實(shí)現(xiàn)銷售記錄成為電子表格的道路上,我們也遇到很多困難,最終沒(méi)有實(shí)現(xiàn)該功能,這些一直都是我們心中深深的遺憾,當(dāng)然系統(tǒng)中也有很多我們現(xiàn)在無(wú)法解決的問(wèn)題或是我們沒(méi)有發(fā)現(xiàn)的問(wèn)題,使得系統(tǒng)的運(yùn)行受到一定限制,我們對(duì)此感到深深的抱歉。 在今后的道路中,我們會(huì)更加精進(jìn)自身的技術(shù),完善系統(tǒng)功能,更多的為客戶需求考慮,造就功能更加健全人性化的軟件,十分感

42、謝。致 謝 世間哪得春常在,花開花落總相宜。小學(xué)期兩個(gè)星期的努力,我們最終完成了這件不是十分完美的作品我們小組的小型超市管理系統(tǒng)。雖然很遺憾最終的結(jié)果,我們沒(méi)有沖進(jìn)最后的爭(zhēng)優(yōu)組,失去了再次展示的機(jī)會(huì),但是在實(shí)現(xiàn)軟件的過(guò)程中,我們沒(méi)有遺憾,因?yàn)樵谶@個(gè)過(guò)程中,我們拼搏過(guò)、奮斗過(guò),一切一切都被我們記憶著。 我們?cè)?jīng)如此渴求勝利,為此我們不分晝夜、廢寢忘食,就是為了抓住那最后一根稻草,因?yàn)槲覀兠靼孜覀冸x成功很近,可是現(xiàn)實(shí)還是狠狠給了我們一扇耳光,不是實(shí)力不濟(jì)而是命途多舛。我們感到失望,但絕對(duì)不會(huì)失落,因?yàn)榈浆F(xiàn)在我們都堅(jiān)信我們的實(shí)力,相信我們可以擁有這個(gè)資格獲得成功。 小學(xué)期程序設(shè)計(jì)實(shí)訓(xùn)對(duì)于我們小組來(lái)說(shuō)

43、或許已經(jīng)結(jié)束,但對(duì)于我們的未來(lái),我相信這是一個(gè)新的開始。軟件開發(fā)過(guò)程中,我們遇到了很多的困難,為此我們首先要感謝在我們感到困惑和不解時(shí),給我們無(wú)私指導(dǎo)的計(jì)科同學(xué)們,謝謝你們給我們的建議和修改,沒(méi)有你們的幫助,軟件的實(shí)現(xiàn)也不會(huì)如此順利完成;我們要感謝我們的夏濤老師,謝謝您給了我們這樣一個(gè)機(jī)會(huì),讓我們?cè)趦蓚€(gè)星期內(nèi)能夠快速成長(zhǎng),對(duì)軟件開發(fā)有了更深的理解;感謝我們的競(jìng)爭(zhēng)對(duì)手,是你們讓我們變的更強(qiáng);最后請(qǐng)?jiān)试S我們感謝我們自己,感謝自己在兩個(gè)星期以來(lái)的努力和堅(jiān)持,盡管沒(méi)能走到最后,但請(qǐng)相信,這不是失敗。 回想起來(lái),我們?nèi)绱讼硎苓@奮斗的過(guò)程,這是一次充滿著青春氣息的旅程。我們很欣喜,我們走到了連我們自己都無(wú)

44、法想象的地方;我們很愉悅,我們收獲了比這次競(jìng)爭(zhēng)更為重要的財(cái)富友誼;我們很驕傲,因?yàn)槲覀冏允贾两K,坦坦蕩蕩、光明磊落!附錄資料:不需要的可以自行刪除SHA算法的實(shí)現(xiàn)C語(yǔ)言程序:#include #include /定義vector數(shù)組 #include /記錄消息using namespace std; const int NUM = 8; /一個(gè)字由32比特(或者8個(gè)16進(jìn)制數(shù))const int BIT = 512; /消息認(rèn)證碼要以512比特一組 /字常量 string H0 = 67452301; string H1 = EFCDAB89; string H2 = 98BADCFE; s

45、tring H3 = 10325476; string H4 = C3D2E1F0; /定義SHA1(安全哈希算法)類 class SHA1 public: /將一個(gè)字符串形式的字轉(zhuǎn)化為vector數(shù)組 vector hex_into_dec(string word); /將vector轉(zhuǎn)化為string字符串形式 string num_into_message(vector A); /兩個(gè)字X和Y的邏輯和 vector word_AND(vector A,vector B); /兩個(gè)字X和Y的邏輯或 vector word_OR(vector A,vector B); /兩個(gè)字X和Y的邏輯異

46、或 vector word_XOR(vector A,vector B); /兩個(gè)字X和Y的邏輯補(bǔ) vector word_COMPLEMENT(vector A); /兩個(gè)字X和Y的摸232整數(shù)加 vector word_ADD(vector A,vector B); /將字X循環(huán)左移s個(gè)位置 vector ROTL(vector A,int s); /SHA-1的填充方案,我們?cè)O(shè)定msg由ASCII碼組成 vectorvector SHA_1_PAD(string msg); /將SHA-1壓成以字為單位 vectorvectorvector compress(vectorvector r

47、esult); /定義ft函數(shù),每個(gè)ft函數(shù)都有B,C,D三個(gè)字作為輸入,并產(chǎn)生一個(gè)字作為輸出 vector Ft(int t,vector B,vector C,vector D); /定義字常數(shù)K vector K(int t); /開始進(jìn)行SHA-1(安全Hash算法)的加密 vectorvector SHA_1(string msg); ; /將vector轉(zhuǎn)化為string字符串形式 string SHA1:num_into_message(vector A) int i; string msg = ; for(i = 0;i = 0 & Ai = 10 & Ai = 15) msg

48、 += A + (Ai - 10); return msg; /將一個(gè)字符串形式的字轉(zhuǎn)化為vector數(shù)組 vector SHA1:hex_into_dec(string word) int i; vector result(NUM,0); for(i = 0;i = 0 & wordi = A & wordi = F) resulti = 10 + wordi - A; return result; /兩個(gè)字X和Y的邏輯和 vector SHA1:word_AND(vector A,vector B) vector result(NUM,0); int i; for(i = 0;i NUM;

49、i+) resulti = Ai & Bi; return result; /兩個(gè)字X和Y的邏輯或 vector SHA1:word_OR(vector A,vector B) vector result(NUM,0); int i; for(i = 0;i NUM;i+) resulti = Ai | Bi; return result; /兩個(gè)字X和Y的邏輯異或 vector SHA1:word_XOR(vector A,vector B) vector result(NUM,0); int i; for(i = 0;i NUM;i+) resulti = Ai Bi; return re

50、sult; /兩個(gè)字X和Y的邏輯補(bǔ) vector SHA1:word_COMPLEMENT(vector A) vector result(NUM,0); int i; for(i = 0;i NUM;i+) resulti = 15 - Ai; return result; /兩個(gè)字X和Y的摸232整數(shù)加 vector SHA1:word_ADD(vector A,vector B) vector result(NUM,0); int i; for(i = NUM - 1;i = 0;i-) resulti = Ai + Bi; if(i != 0) int temp = resulti /

51、 16; resulti-1 += temp; resulti %= 16; return result; /將字X循環(huán)左移s個(gè)位置 vector SHA1:ROTL(vector A,int s) vector result = A; vector temp(NUM,0); int i,j; for(i = 0;i = 0;j-) if(resultj / 8 = 1) tempj = 1; resultj = 1; resultj %= 16; if(j NUM - 1) resultj += tempj + 1; else if(resultj / 8 = 0) tempj = 0; r

52、esultj = 1; resultj %= 16; resultNUM - 1 += temp0; return result; /SHA-1的填充方案,我們?cè)O(shè)定msg由ASCII碼組成 vectorvector SHA1:SHA_1_PAD(string msg) int len = msg.length(); int bit_num = len * 8; int i,j; int num,lest = bit_num % 512; if(lest != 0) /看消息長(zhǎng)度是否超過(guò)512字節(jié),我們需要將它補(bǔ)成512的倍數(shù) num = bit_num / 512 + 1; else num

53、= bit_num / 512; /首先我們以8位字節(jié)為一組保存到vector里面,512比特為一組,即一組里面有64位元素 vectorvector result; result.resize(num); for(i = 0;i num;i+) resulti.resize(64); for(i = 0;i num;i+) for(j = 0;j 64 & i * 64 + j len;j+) resultij = msgi * 64 + j; /下面開始為未夠512比特的消息分組進(jìn)行補(bǔ)長(zhǎng)度操作 if(lest != 0) int x = num - 1,last_len = lest /

54、8; resultxlast_len = 128; /先補(bǔ)一個(gè)1 for(i = last_len + 1;i = 56) resultxj = last_l % 128; last_l /= 128; j-; return result; /將SHA-1壓成以字為單位(三維數(shù)組有點(diǎn)復(fù)雜) vectorvectorvector SHA1:compress(vectorvector result) vectorvector rr; rr.resize(result.size(); int i,j; for(i = 0;i rr.size();i+) rri.resize(128); for(i

55、= 0;i result.size();i+) for(j = 0;j resulti.size();j+) rri2 * j = resultij / 16; rri2 * j + 1 = resultij % 16; vectorvectorvector rrr; rrr.resize(result.size(); for(i = 0;i rrr.size();i+) rrri.resize(16); for(i = 0;i rrr.size();i+) for(j = 0;j 16;j+) rrrij.resize(8); for(i = 0;i rr.size();i+) for(j

56、= 0;j rri.size();j+) rrrij / 8j % 8 = rrij; return rrr; /定義ft函數(shù),每個(gè)ft函數(shù)都有B,C,D三個(gè)字作為輸入,并產(chǎn)生一個(gè)字作為輸出 vector SHA1:Ft(int t,vector B,vector C,vector D) vector result; if(t = 0 & t = 19) vector a1 = word_AND(B,C); vector a2 = word_AND(word_COMPLEMENT(B),D); result = word_OR(a1,a2); else if(t = 20 & t = 60 &

57、 t = 79) vector a1 = word_XOR(B,C); result = word_XOR(a1,D); else if(t = 40 & t = 59) vector a1 = word_AND(B,C); vector a2 = word_AND(B,D); vector a3 = word_AND(C,D); vector a4 = word_OR(a1,a2); result = word_OR(a4,a3); return result; /定義字常數(shù)K vector SHA1:K(int t) vector result; if(t = 0 & t = 20 & t = 40 & t = 60 & t = 79) result = hex_into_dec(CA62C1D6); return result; /開始進(jìn)行SHA-1(安全Hash算法)的加密 vectorvector SHA1:SHA_1(string msg) vector

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論