




已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
華中科技大學計算機科學與技術學院C語言程序設計課程設計實驗報告題目: 服裝網(wǎng)店信息管理系統(tǒng) 專業(yè): 計算機科學與技術 班級: 學號: 姓名: 成績: 指導教師: 李開 完成日期: 2012年 03月 26日一、 系統(tǒng)功能模塊結構服裝網(wǎng)店信息管理系統(tǒng)由五大功能模塊組成:文件模塊,數(shù)據(jù)維護,數(shù)據(jù)查詢,數(shù)據(jù)統(tǒng)計,幫助系統(tǒng)。其中,數(shù)據(jù)維護模塊包括對服裝分類信息,服裝基本信息,服裝銷售信息的錄入、修改和刪除;數(shù)據(jù)查詢模塊包括對分類代碼的查詢,對服裝基本信息的查詢(包括按名稱查找和按分類碼加價格查找),對服裝銷售信息的查詢(包括按客戶名稱加銷售日期和按服裝名稱加評價指數(shù)查找);數(shù)據(jù)統(tǒng)計模塊包括對服裝具體銷售類別的統(tǒng)計,年銷售信息的統(tǒng)計,按客戶名稱統(tǒng)計,按季度統(tǒng)計和按式樣統(tǒng)計。具體如下圖所示:服裝網(wǎng)店信息管理系統(tǒng)文件系統(tǒng)數(shù)據(jù)維護數(shù)據(jù)查詢數(shù)據(jù)統(tǒng)計數(shù)據(jù)保存數(shù)據(jù)備份數(shù)據(jù)恢復數(shù)據(jù)錄入數(shù)據(jù)修改數(shù)據(jù)刪除分類編碼查詢服裝基本信息查詢服裝銷售信息查詢服裝具體銷售情況年銷售統(tǒng)計式樣銷售情況統(tǒng)計退出系統(tǒng)季度統(tǒng)計按客戶名稱統(tǒng)計幫助系統(tǒng)幫助系統(tǒng)關于主題圖1. 系統(tǒng)功能模塊示意圖下圖為具體功能模塊:數(shù)據(jù)維護數(shù)據(jù)錄入數(shù)據(jù)修改數(shù)據(jù)刪除分類代碼的錄入服裝基本信息的錄入服裝銷售信息的錄入分類代碼的修改服裝基本信息的修改服裝銷售信息的修改分類代碼的刪除服裝基本信息的刪除服裝銷售信息的刪除圖2. 數(shù)據(jù)維護模塊功能示意圖數(shù)據(jù)查詢分類編碼查詢服裝基本信息查詢服裝銷售信息查詢按服飾名稱中字符子串來查找以分類碼和單價為條件查找以客戶名稱和銷售日期為條件查找以服飾名稱和客戶評價為條件查找圖3. 數(shù)據(jù)查詢模塊功能示意圖文件系統(tǒng)主模塊包括三個子模塊:數(shù)據(jù)保存、數(shù)據(jù)備份、數(shù)據(jù)恢復、退出系統(tǒng);數(shù)據(jù)維護主模塊包括三個子模塊:數(shù)據(jù)錄入、數(shù)據(jù)修改、數(shù)據(jù)刪除;數(shù)據(jù)查詢主模塊包括三個子模塊:服裝分類信息查詢、服裝基本信息查詢、服裝銷售信息查詢;數(shù)據(jù)統(tǒng)計主模塊包括五個子模塊:服裝具體銷售情況、年銷售統(tǒng)計、按客戶名稱統(tǒng)計、季度統(tǒng)計、式樣銷售情況統(tǒng)計;幫助系統(tǒng)主模塊有三個子模塊:幫助系統(tǒng)、關于。二、 數(shù)據(jù)結構設計及用法說明服裝網(wǎng)店信息管理系統(tǒng)對淘寶網(wǎng)上某服裝店的銷售信息進行管理,主要包括服裝分類信息,服裝基本信息,服裝銷售基本信息等三類信息。服裝分類信息參考:中文字段名類型及長度舉例分類編碼char15分類名稱char105個分類名稱:外套、內(nèi)搭、下裝、套裝和特色服裝服裝基本信息參考:中文字段名類型及長度舉例分類碼char1 /表示外套類服裝服飾名稱char30“馬克華菲羽絨服”式樣char0、1、9分別表示男式、女式和中性單價float128.00 /單位:元售出件數(shù)int根據(jù)銷售情況計算件數(shù),不用輸入。評價指數(shù)float根據(jù)用戶評價計算平均指數(shù),不用輸入。服裝銷售基本信息:中文字段名類型及長度舉例服飾名稱char30“長袖針織衫套頭線衣”銷售日期char10“20090222” 年(4)+月(2)+日(2)客戶名稱char20“張三”客戶評價int15:很差、差、一般、好、很好服裝網(wǎng)店信息管理系統(tǒng)數(shù)據(jù)結構用法:該系統(tǒng)的數(shù)據(jù)結構是采用十字交叉鏈表。十字交叉鏈表的模型如下:鏈表說明:以后進先出的方式創(chuàng)建十字交叉鏈表,查找功能遍歷鏈表找到相應的節(jié)點,插入功能和刪除功能分別在指定地方增加或刪除節(jié)點,修改功能修改相應的節(jié)點,統(tǒng)計功能為遍歷鏈表進行排序和輸出三、程序結構(流程圖)1、插入結點信息流程圖(插入服裝分類信息與服裝基本信息與此大致相同)開始 TYPE_NODE *p = gp_head, *pd; CLO_NODE *pp, *fp;SELL_NODE *pm;int n; char s100;n = 1?插入服裝分類信息Yn = 2?N插入服裝基本 信息n = 3?Y輸出“輸入有誤”NN輸入服裝名稱查找到對應信息?提示“未找到信息”N輸入對應信息Ypm-next=fp-cnext; fp-cnext = pm;結束2、修改/刪除結點信息流程圖(插入服裝分類信息與服裝基本信息與此大致相同)開始TYPE_NODE *pt;CLO_NODE *pc;SELL_NODE *ps;char s30; int n;n = 1?修改對應的服裝分類信息Yn = 2?N修改對應服裝基本信息Y輸入要修改的服裝名稱N查找到對應信息?提示信息錯誤Y輸入要修改信息的客戶名稱N查找到對應信息?提示信息錯誤N結束修改信息Yn = 3?提示信息錯誤NY3、數(shù)據(jù)統(tǒng)計流程圖開始TYPE_NODE *pt; CLO_NODE *pc;SELL_NODE *ps;pt!=NULL/pt = head;結束統(tǒng)計Npc = pt-snext;Ypc!=NULL?結束統(tǒng)計Nps = pc-cnext;ps!=NULL?結束統(tǒng)計N遍歷鏈表,對指定數(shù)據(jù)進行統(tǒng)計Y排序并輸出結束四、各模塊的功能1LoadDate:將代碼表和三類基礎數(shù)據(jù)從數(shù)據(jù)文件載入到內(nèi)存緩沖區(qū)和十字鏈表中。2CreatList:從數(shù)據(jù)文件讀取基礎數(shù)據(jù), 并存放到所創(chuàng)建的十字鏈表中。3SaveSysDate:保存系統(tǒng)代碼表和三類基礎數(shù)據(jù)。4ExitSys:退出系統(tǒng)。5Insert:實現(xiàn)數(shù)據(jù)的錄入,可以進行選擇:1、對服裝分類信息的錄入;2、對服裝基本信息的錄入;3、對服裝銷售信息的錄入。6Modify_info:實現(xiàn)數(shù)據(jù)的修改,可以進行選擇:1、對服裝分類信息的修改;2、對服裝基本信息的修改;3、對服裝銷售信息的修改。7Dele_info:實現(xiàn)數(shù)據(jù)的刪除,可以進行選擇:1、對服裝分類信息的刪除;2、對服裝基本信息的刪除;3、對服裝銷售信息的刪除。8Seek:實現(xiàn)數(shù)據(jù)的查找。輸入要查找的信息,遍歷鏈表進行查找。可以進行選擇:1、輸入分類編碼對服裝分類信息進行查找;2、輸入服飾名稱對服裝基本信息進行查找;3、輸入顧客名稱對服裝銷售信息進行查找。9Seek_Clo_Name:輸入服裝名稱包含的子串對相應的服裝信息進行查找并輸出。10Seek_IDPrice:輸入服裝分類代碼和相應的價格對相應的服裝信息進行查找并輸出。11Seek_Sell_Name:輸入服裝銷售顧客姓名和銷售日期對相應的服裝銷售信息進行查找并輸出。12Seek_Sell_NamePj:輸入服飾名稱和相應的評價指數(shù)對相應的服裝銷售信息進行查找并輸出。13State_Type:分別統(tǒng)計各類服裝銷售總件數(shù)、銷售總額、客戶評價3的件數(shù)及客戶評價3的件數(shù),按銷售總額降序排序輸出。14State_Year:以所輸入的年份為條件,按服飾名稱統(tǒng)計該年度內(nèi)所售各款服裝的售出件數(shù)。銷售金額、評價指數(shù),按售出件數(shù)降序排序輸出。15State_Kehu:按客戶名稱統(tǒng)計各客戶所購服裝件數(shù)、消費總金額、對所購服裝的總體評價度并輸出。16State_Spring,State_Summer,State_Autumn,State_Winter:分別統(tǒng)計春夏秋冬四個季度售出的各類服裝的總件數(shù)和總金額并輸出。17State_Shiyang:根據(jù)式樣(男式,女式,中性)統(tǒng)計服裝的銷售量和銷售額并輸出。18HelpTopic:系統(tǒng)幫助。19AboutDorm:關于主題。五、試驗結果(包括輸入數(shù)據(jù)和輸出結果)輸入數(shù)據(jù):(1)服裝分類信息:分類編碼1234分類名稱外套內(nèi)搭下裝套裝(2)服裝基本信息分類碼1112233344服飾名稱馬克華菲羽絨服雪中飛羽絨服李寧運動外衣恒源祥羊毛衫耐克毛衣李寧運動短褲森馬短褲英雄牛仔褲米老鼠套裝情侶套裝式樣0190919011單價12315616698886377111222333(3)服裝銷售信息服飾名稱馬克華菲羽絨服馬克華菲羽絨服雪中飛羽絨服李寧運動外衣恒源祥羊毛衫李寧運動短褲森馬短褲米老鼠套裝情侶套裝銷售日期200909092010101020121212201105052011030320121111200907072011080820111111客戶名稱張三李四趙四王二朱六李四張三十六周七評價指數(shù)4252135441初始化界面2系統(tǒng)主界面3服裝銷售信息插入界面成功提示:4服裝基本信息修改界面、5根據(jù)服裝名稱查詢服裝基本信息6按分類碼和價格查找服裝基本信息7按客戶姓名和銷售日期查詢服裝銷售信息8按服飾名稱和客戶評價查找服裝銷售信息9服裝具體銷售情況統(tǒng)計(按銷售總額降序排序)10年銷售統(tǒng)計11按客戶名稱統(tǒng)計12按季度統(tǒng)計13式樣銷售情況14銷售信息刪除結點15幫助系統(tǒng)16關于主題六、體會課程設計的結束也標志這C語言的學習告一段落,本次課程設計我感覺最大的收獲就是對C語言有了更深刻的體會,也從中學習了好多有關C語言的知識。當然中途也遇到了好多瓶頸,最開始做這份課程設計時,不知道應該從何下手,從哪里做起,于是就一點點的照著書看,一點點想,一個函數(shù)一個函授慢慢地寫慢慢地調試。因為老師給了一些關于界面的代碼,所以在文本界面這方面就方便了許多(本次課程設計是學習C語言過程中第一次接觸文本界面,簡單易操作,界面通俗易懂,著實方便?。┑且驗檎莆盏倪€是不夠熟練,界面可能還是會略顯粗糙,代碼不夠完善,界面有些地方可能設計的不夠合理,有些瑕疵。本次課程設計過程中也曾遇到了好多問題,當時手里也沒有參考資料,于是就自己一點一點慢慢調試,耐心和同學們討論,每當解決一個問題內(nèi)心就會興奮不已,感覺離勝利又近了一步。當程序運行不下去時,我內(nèi)心也會非常的沮喪,但最后還是硬著頭皮挺了過來,當最后所有的功能都基本實現(xiàn),程序正常運行時,內(nèi)心簡直有種前所未有的成就感!這次課程設計對我來說是一個不小的挑戰(zhàn),收獲也是非常多的。有句話說得好:只要功夫深,鐵杵磨成針!每當遇到問題想要放棄時,一定要堅持下來,耐心的一點點去解決,運用自己靈活的智慧最后還要感謝李老師的耐心教導和幫助以及在課設過程中給予我?guī)椭耐瑢W們。七、參考文獻C語言實驗與課程設計 李開,盧萍,曹計昌編著 科學出版社C語言程序設計曹計昌,盧萍,李開編著. 科學出版社附錄:源程序清單qjy.h#include #include #include #include #include #include #include #include #include #include #include #ifndef TYPE_H_INCLUDED#define TYPE_H_INCLUDED#define SCR_ROW 25 /*屏幕行數(shù)*/#define SCR_COL 80 /*屏幕列數(shù)*/* *服裝銷售信息鏈結點結構 */typedef struct sell_node char clo_id12; /* 分類編碼*/ char name30; /* 服飾名稱*/ char date12; /* 銷售日期*/ char kehu10; /* 客戶名稱*/ int pj; /* 客戶評價*/ struct sell_node *next; /* 指向下一結點的指針*/ SELL_NODE;/* *服裝基本信息鏈結點結構 */typedef struct clo_node char clo_id12; /* 分類編碼*/ char name30; /* 服裝名稱*/ char shiyang; /* 式樣*/ float danjia; /* 單價*/ int num; /* 售出件數(shù)*/ float pj; /*評價指數(shù)*/ struct sell_node *cnext; /* 指向繳費信息支鏈的指針*/ struct clo_node *next; /* 指向下一結點的指針*/ CLO_NODE;/* *服裝基本信息鏈結點結構 */typedef struct type_node char clo_id12; /* 分類編碼*/ char name30; /* 服裝名稱*/ struct clo_node *snext; /* 指向繳費信息支鏈的指針*/ struct type_node *next; /* 指向下一結點的指針*/ TYPE_NODE;/* *屏幕窗口信息鏈結點結點結構 */typedef struct layer_node char LayerNo; /* 彈出窗口層數(shù)*/ SMALL_RECT rcArea; /* 彈出窗口區(qū)域坐標*/ CHAR_INFO *pContent; /* 彈出窗口區(qū)域字符單元原信息存儲緩沖區(qū)*/ char *pScrAtt; /* 彈出窗口區(qū)域字符單元原屬性值存儲緩沖區(qū)*/ struct layer_node *next; /* 指向下一結點的指針*/ LAYER_NODE;/* *標簽束結構 */typedef struct labe1_bundle char *ppLabel; /* 標簽字符串數(shù)組首地址*/ COORD *pLoc; /* 標簽定位數(shù)組首地址*/ int num; /* 標簽個數(shù)*/ LABEL_BUNDLE;/* *熱區(qū)結構 */typedef struct hot_area SMALL_RECT *pArea; /* 熱區(qū)定位數(shù)組首地址*/ char *pSort; /* 熱區(qū)類別(按鍵、文本框、選項框)數(shù)組首地址*/ char *pTag; /* 熱區(qū)序號數(shù)組首地址*/ int num; /* 熱區(qū)個數(shù)*/ HOT_AREA;unsigned long num_written; /* Win 7 中使用, 該變量用于某幾個控制臺輸出函數(shù) */LAYER_NODE *gp_top_layer = NULL; /*彈出窗口信息鏈鏈頭*/TYPE_NODE *gp_head = NULL; /*主鏈頭指針*/TYPE_NODE *findt, *pt; /*定義的外部變量,用于修改、刪除、查詢等等*/CLO_NODE *findc, *pc;SELL_NODE *finds, *ps;char *gp_sys_name = 服裝網(wǎng)店信息管理系統(tǒng); /*系統(tǒng)名稱*/char *gp_clo_info_filename = clo.dat; /*服裝基本信息數(shù)據(jù)文件*/char *gp_sell_info_filename = sell.dat; /*服裝銷售信息數(shù)據(jù)文件*/char *gp_type_info_filename = type.dat; /*服裝分類信息數(shù)據(jù)文件*/char *gp_shiyang_code_filename = shiyang.dat; /*式樣代碼數(shù)據(jù)文件*/char *gp_clo_type_code_filename = clo_type.dat; /*服裝類別代碼數(shù)據(jù)文件*/char *ga_main_menu = 文件(F), /*系統(tǒng)主菜單名*/ 數(shù)據(jù)維護(M), 數(shù)據(jù)查詢(Q), 數(shù)據(jù)統(tǒng)計(S), 幫助(H) ;char *ga_sub_menu = /*系統(tǒng)子菜單名*/ S 數(shù)據(jù)保存, B 數(shù)據(jù)備份, R 數(shù)據(jù)恢復, X 退出 Alt+X, /*空串用來在彈出菜單中分隔子菜單項,下同*/ D 服裝分類信息, P 服裝基本信息, C 服裝銷售基本信息, D 服裝分類信息, P 服裝基本信息, C 服裝銷售基本信息, I 服裝具體銷售情況, T 年銷售統(tǒng)計, C 按客戶名稱統(tǒng)計, U 季度統(tǒng)計, V 式樣銷售情況, T 幫助主題, , A 關于. ;int ga_sub_menu_count = 4, 3, 3, 5, 3; /*各主菜單項下子菜單的個數(shù)*/int gi_sel_menu = 1; /*被選中的主菜單項號,初始為1*/int gi_sel_sub_menu = 0; /*被選中的子菜單項號,初始為0,表示未選中*/CHAR_INFO *gp_buff_menubar_info = NULL; /*存放菜單條屏幕區(qū)字符信息的緩沖區(qū)*/CHAR_INFO *gp_buff_stateBar_info = NULL; /*存放狀態(tài)條屏幕區(qū)字符信息的緩沖區(qū)*/char *gp_scr_att = NULL; /*存放屏幕上字符單元屬性值的緩沖區(qū)*/char *gp_shiyang_code = NULL; /*存放式樣代碼表的數(shù)據(jù)緩沖區(qū)*/char *gp_clo_type_code = NULL; /*存放服裝類別代碼表的數(shù)據(jù)緩沖區(qū)*/char *gp_type_code = NULL; /*存放服裝分類代碼表的數(shù)據(jù)緩沖區(qū)*/char *gp_clo_code = NULL; /*存放服裝基本信息代碼表的數(shù)據(jù)緩沖區(qū)*/char *gp_sell_code = NULL; /*存放服裝銷售信息代碼表的數(shù)據(jù)緩沖區(qū)*/char gc_sys_state = 0; /*用來保存系統(tǒng)狀態(tài)的字符*/unsigned long gul_shiyang_code_len = 0; /*式樣代碼表長度*/unsigned long gul_clo_type_code_len = 0; /*服裝類別代碼表長度*/unsigned long gul_type_code_len = 0; /*服裝分類代碼表長度*/unsigned long gul_sell_code_len = 0; /*服裝銷售代碼表長度*/unsigned long gul_clo_code_len = 0; /*服裝基本信息代碼表長度*/HANDLE gh_std_out; /*標準輸出設備句柄*/HANDLE gh_std_in; /*標準輸入設備句柄*/int LoadCode(char *filename, char *ppbuffer); /*代碼表加載*/int CreatList(TYPE_NODE *pphead); /*數(shù)據(jù)鏈表初始化*/void InitInterface(void); /*系統(tǒng)界面初始化*/void ClearScreen(void); /*清屏*/void ShowMenu(void); /*顯示菜單欄*/void PopMenu(int num); /*顯示下拉菜單*/void PopPrompt(int num); /*顯示彈出窗口*/int DealInput(HOT_AREA *pHotArea, int *piHot);void PopUp(SMALL_RECT *, WORD, LABEL_BUNDLE *, HOT_AREA *); /*彈出窗口屏幕信息維護*/void PopOff(void); /*關閉頂層彈出窗口*/void DrawBox(SMALL_RECT *parea); /*繪制邊框*/void LocSubMenu(int num, SMALL_RECT *parea); /*主菜單下拉菜單定位*/void ShowState(void); /*顯示狀態(tài)欄*/void TagMainMenu(int num); /*標記被選中的主菜單項*/void TagSubMenu(int num); /*標記被選中的子菜單項*/int DealConInput(HOT_AREA *phot_area, int *pihot_num); /*控制臺輸入處理*/void SetHotPoint(HOT_AREA *phot_area, int hot_num); /*設置熱區(qū)*/void RunSys(TYPE_NODE *pphd); /*系統(tǒng)功能模塊的選擇和運行*/BOOL ExeFunction(int main_menu_num, int sub_menu_num); /*功能模塊的調用*/void CloseSys(TYPE_NODE *phd); /*退出系統(tǒng)*/void gotoxy(int x, int y);BOOL LoadData(void); /*數(shù)據(jù)加載*/BOOL SaveData(void); /*保存數(shù)據(jù)*/BOOL Input(void); /*數(shù)據(jù)輸入*/BOOL BackupData(void); /*備份數(shù)據(jù)*/BOOL RestoreData(void); /*恢復數(shù)據(jù)*/BOOL ExitSys(void); /*退出系統(tǒng)*/BOOL HelpTopic(void); /*幫助主體*/BOOL AboutDorm(void); /*關于系統(tǒng)*/BOOL MaintainTypeInfo(void); /*維護服裝分類信息*/BOOL MaintainCloInfo(void); /*維護服裝基本信息*/BOOL MaintainSellInfo(void); /*維護服裝銷售信息*/CLO_NODE *SeekCloNode(TYPE_NODE *hd, char *name); /*查詢服裝基本信息對應結點*/BOOL QueryTypeInfo(void); /*查詢服裝分類信息*/BOOL QueryCloInfo(void); /*查詢服裝基本信息*/BOOL QuerySellInfo(void); /*查詢服裝銷售信息*/BOOL StatType(void); /*統(tǒng)計各類服裝銷售情況*/BOOL StatYear(void); /*年銷售量統(tǒng)計*/BOOL StatKehu(void); /*客戶信息統(tǒng)計*/BOOL StatSeason(void); /*季度銷售統(tǒng)計*/BOOL StatAverage(void); /*按式樣進行統(tǒng)計*/BOOL SaveSysData(TYPE_NODE *phd); /*保存系統(tǒng)數(shù)據(jù)*/BOOL BackupSysData(TYPE_NODE *phd, char *filename); /*備份系統(tǒng)數(shù)據(jù)*/BOOL RestoreSysData(TYPE_NODE *pphd, char *filename); /*恢復系統(tǒng)數(shù)據(jù)*/BOOL ShowModule(char *pString, int n);void Insert(int n); /*數(shù)據(jù)插入*/void Seek(int n,char *s); /*數(shù)據(jù)查找*/void Dele_info(int n); /*數(shù)據(jù)刪除*/void Modify_info(int n); /*數(shù)據(jù)修改*/void Seek_Clo_Name(TYPE_NODE *head) ; /*根據(jù)服裝名稱子串查詢*/void Seek_IDPrice(TYPE_NODE *head); /*根據(jù)服裝分類碼和單價查詢*/void Seek_Sell_Name(TYPE_NODE *head); /*根據(jù)客戶名稱和銷售日期查詢*/void Seek_Sell_NamePj(TYPE_NODE *head); /*根據(jù)服裝名稱和評價指數(shù)查詢*/void State_Type(TYPE_NODE *head); /*統(tǒng)計各類古裝銷售情況*/void State_Kehu(TYPE_NODE *head); /*客戶信息統(tǒng)計*/void State_Spring(TYPE_NODE *head); /*統(tǒng)計春季銷售情況*/void State_Summer(TYPE_NODE *head); /*統(tǒng)計夏季銷售情況*/void State_Autumn(TYPE_NODE *head); /*統(tǒng)計秋季銷售情況*/void State_Winter(TYPE_NODE *head); /*統(tǒng)計冬季銷售情況*/void State_Year(TYPE_NODE *head); /*年銷售統(tǒng)計*/void State_Shiyang(TYPE_NODE *head); /*統(tǒng)計各種式樣銷售信息*/void CLO_PJ(TYPE_NODE *head); /*計算服裝評價指數(shù)*/#endif /* TYPE_H_INCLUDED*/main.c#include qjy.hint main() COORD size = SCR_COL, SCR_ROW; /*窗口緩沖區(qū)大小*/ gh_std_out = GetStdHandle(STD_OUTPUT_HANDLE); /* 獲取標準輸出設備句柄*/ gh_std_in = GetStdHandle(STD_INPUT_HANDLE); /* 獲取標準輸入設備句柄*/ SetConsoleTitle(gp_sys_name); /*設置窗口標題*/ SetConsoleScreenBufferSize(gh_std_out, size); /*設置窗口緩沖區(qū)大小80*25*/ LoadData(); /*數(shù)據(jù)加載*/ InitInterface(); /*界面初始化*/ RunSys(&gp_head); /*系統(tǒng)功能模塊的選擇及運行*/ CloseSys(gp_head); /*退出系統(tǒng)*/ return 0;/* * 函數(shù)名稱: ClearScreen * 函數(shù)功能: 清除屏幕信息. * 輸入?yún)?shù): 無 * 輸出參數(shù): 無 * 返 回 值: 無 * * 調用說明: */void ClearScreen(void) CONSOLE_SCREEN_BUFFER_INFO bInfo; COORD home = 0, 0; unsigned long size; GetConsoleScreenBufferInfo( gh_std_out, &bInfo );/*取屏幕緩沖區(qū)信息*/ size = bInfo.dwSize.X * bInfo.dwSize.Y; /*計算屏幕緩沖區(qū)字符單元數(shù)*/ /*將屏幕緩沖區(qū)所有單元的字符屬性設置為當前屏幕緩沖區(qū)字符屬性*/ FillConsoleOutputAttribute(gh_std_out, bInfo.wAttributes, size, home, &num_written); /*將屏幕緩沖區(qū)所有單元填充為空格字符*/ FillConsoleOutputCharacter(gh_std_out, , size, home, &num_written); return;/* * 函數(shù)名稱: ShowMenu * 函數(shù)功能: 在屏幕上顯示主菜單, 并設置熱區(qū), 在主菜單第一項上置選中標記. * 輸入?yún)?shù): 無 * 輸出參數(shù): 無 * 返 回 值: 無 * * 調用說明: */void ShowMenu() CONSOLE_SCREEN_BUFFER_INFO bInfo; CONSOLE_CURSOR_INFO lpCur; COORD size; COORD pos = 0, 0; int i, j; int PosA = 2, PosB; char ch; GetConsoleScreenBufferInfo(gh_std_out, &bInfo ); size.X = bInfo.dwSize.X; size.Y = 1; SetConsoleCursorPosition(gh_std_out, pos); for (i=0; i 5; i+) /*在窗口第一行第一列處輸出主菜單項*/ printf( %s , ga_main_menui); GetConsoleCursorInfo(gh_std_out, &lpCur); lpCur.bVisible = TRUE; SetConsoleCursorInfo(gh_std_out, &lpCur); /*隱藏光標*/ /*申請動態(tài)存儲區(qū)作為存放菜單條屏幕區(qū)字符信息的緩沖區(qū)*/ gp_buff_menubar_info = (CHAR_INFO *)malloc(size.X * size.Y * sizeof(CHAR_INFO); SMALL_RECT rcMenu = 0, 0, size.X-1, 0 ; /*將窗口第一行的內(nèi)容讀入到存放菜單條屏幕區(qū)字符信息的緩沖區(qū)中*/ ReadConsoleOutput(gh_std_out, gp_buff_menubar_info, size, pos, &rcMenu); /*將這一行中英文字母置為紅色,其他字符單元置為白底黑字*/ for (i=0; iAttributes = BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED; ch = (char)(gp_buff_menubar_info+i)-Char.AsciiChar); if (ch = A & ch = a & ch Attributes |= FOREGROUND_RED; /*修改后的菜單條字符信息回寫到窗口的第一行*/ WriteConsoleOutput(gh_std_out, gp_buff_menubar_info, size, pos, &rcMenu); COORD endPos = 0, 1; SetConsoleCursorPosition(gh_std_out, endPos); /*將光標位置設置在第2行第1列*/ /*將菜單項置為熱區(qū),熱區(qū)編號為菜單項號,熱區(qū)類型為0(按鈕型)*/ i = 0; do PosB = PosA + strlen(ga_main_menui); /*定位第i+1號菜單項的起止位置*/ for (j=PosA; jPosB; j+) gp_scr_attj |= (i+1) 2; /*設置菜單項所在字符單元的屬性值*/ PosA = PosB + 4; i+; while (i5); TagMainMenu(gi_sel_menu); /*在選中主菜單項上做標記,gi_sel_menu初值為1*/ return;/* * 函數(shù)名稱: TagMainMenu * 函數(shù)功能: 在指定主菜單項上置選中標志. * 輸入?yún)?shù): num 選中的主菜單項號 * 輸出參數(shù): 無 * 返 回 值: 無 * * 調用說明: */void TagMainMenu(int num) CONSOLE_SCREEN_BUFFER_INFO bInfo; COORD size; COORD pos = 0, 0; int PosA = 2, PosB; char ch; int i; if (num = 0) /*num為0時,將會去除主菜單項選中標記*/ PosA = 0; PosB = 0; else /*否則,定位選中主菜單項的起止位置: PosA為起始位置, PosB為截止位置*/ for (i=1; inum; i+) PosA += strlen(ga_main_menui-1) + 4; PosB = PosA + strlen(ga_main_menunum-1); GetConsoleScreenBufferI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基金公司產(chǎn)品管理辦法
- 冰箱裝修知識培訓課件
- 腸道健康學術課件
- 肝膽脾胃科護理課件
- 福清畢業(yè)考數(shù)學試卷
- 肝病中醫(yī)教學課件
- 肛裂中醫(yī)課件
- 高處作業(yè)培訓課件
- 東城三年級期中數(shù)學試卷
- 東莞高二聯(lián)考數(shù)學試卷
- 公文寫作技能題庫及答案
- 2025年廣東省中考語文試卷真題(含答案解析)
- 遼寧省“三支一扶”招募考試真題2024
- 多能工培訓方案
- 學生自信心培養(yǎng)的教育心理學研究
- 2025廣西專業(yè)技術人員公需科目培訓考試答案
- 2024年山東高中學業(yè)水平合格考試化學試卷真題(含答案詳解)
- 國開機考答案-工程力學(本)(閉卷)
- 骨病病理知識
- 鄰硝基苯甲酸項目可行性研究報告模板
- 關于房屋建筑和市政工程界定文件
評論
0/150
提交評論