




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、天津理工大學 聾人工學院C+C+語言課程設計語言課程設計專 業(yè): 網(wǎng)絡工程 年 級: 2015 級一班 姓 名: 胡志沖 學 號: 成 績: 完成日期: 20161220 目 錄第一章第一章 簡簡 介介.11.1 設計題目.11.2 指導教師.1第二章第二章 圖書管理系統(tǒng)圖書管理系統(tǒng)設計意義設計意義.22.1 設計內(nèi)容概述.22.2 需求分析.22.3 設計意義.2第三章第三章 總體設計總體設計.33.1 系統(tǒng)運行環(huán)境.33.2 系統(tǒng)結構圖.33.3 系統(tǒng)各模塊的功能.43.4 對象數(shù)據(jù)結構.7第四章第四章 詳細設計詳細設計.84.1 程序源代碼.84.1.1 登陸模塊 .84.1.2 注冊模
2、塊 .114.1.3 主菜單模塊 .134.1.4 編輯模塊 .174.1.5 查詢模塊 .274.1.6 瀏覽模塊 .344.1.7 設置模塊 .394.1.8 組合框模塊 .414.1.9 圖書信息模塊 .434.1.10 資源文件 .454.2 系統(tǒng)測試.554.2.1 登陸對話框 .554.2.2 編輯對話框 .584.2.3 瀏覽對話框 .624.2.4 查詢對話框 .664.2.5 設置對話框 .714.2.6 退出 .734.2.7 測試結束運行 .734.3 問題分析.73C+語言課程設計1第五章第五章 結結 論論.80參考文獻參考文獻.81C+語言課程設計1第一章簡 介1.1
3、 設計題目圖書管理系統(tǒng)1.2 指導教師C+語言課程設計2第二章 圖書管理系統(tǒng)設計意義2.1 設計內(nèi)容概述本課程設計圖書管理系統(tǒng),必修要滿足使用方便、操作靈活和數(shù)據(jù)安全等設計需求。本系統(tǒng)在設計時應滿足以下幾個目標:1 1采用人機對話的操作方式,界面設計美觀友好,操作靈活、方便、快捷、準確數(shù)據(jù)保存安全可靠。2 2實現(xiàn)對圖書信息的管理功能。3 3系統(tǒng)運行穩(wěn)定、安全可靠。2.2 需求分析信息技術的飛速發(fā)展給圖書企業(yè)的管理帶來了全新的變革.采用圖書管理系統(tǒng)對圖書企業(yè)的經(jīng)營運作進行全程管理.不僅可以使企業(yè)擺脫以往人工管理產(chǎn)生的一系列問題,而且可以提高管理效率、降低管理成本、增加經(jīng)濟效益。通過管理系統(tǒng)對圖書
4、企業(yè)的發(fā)展進行規(guī)劃,可以收集大量關鍵可靠的數(shù)據(jù)。企業(yè)決策層分析這些數(shù)據(jù),做出合理決策,及時調(diào)整,使之能夠更好地遵循市場的銷售規(guī)律,適應市場的變化,從而讓企業(yè)能夠在激烈的行業(yè)競爭中占據(jù)一席之地。2.3 設計意義1 1有助于加深我們對 C+程序設計這門課程的理解,我們在課堂上學的都是基礎理論知識,對于如何用程序語言來描述所學知識還是有一定難度。通過課程設計,我們可以真正理解其內(nèi)涵。 2 2有利于我們邏輯思維的鍛煉,程序設計能直接有效地訓練學生的創(chuàng)新思維、培養(yǎng)分析問題、解決問題能力。即使是一個簡單的程序,依然需要學生有條不理的構思。 3 3有利于培養(yǎng)嚴謹認真的學習態(tài)度,在程序設計過程里,當我們輸入程
5、序代碼的時候,如果不夠認真或細心,那么可能就導致語法錯誤,從而無法得出運行結果。那么,這個我們反復調(diào)試,反復修改的過程,其實也是對我們認真嚴謹治學的一個鍛煉。C+語言課程設計3第三章 總體設計3.1 系統(tǒng)運行環(huán)境1.硬件環(huán)境PC 機2.軟件環(huán)境 操作系統(tǒng):Windows 10 開發(fā)工具:Visual studio 20103.2 系統(tǒng)結構圖圖書管理系統(tǒng)結構圖如圖 3.1 所以。該系統(tǒng)包括:添加、修改、刪除、查詢、瀏覽等。 圖 3.1 系統(tǒng)的功能模塊圖C+語言課程設計43.3 系統(tǒng)各模塊的功能表 3.2 主要類介紹類名派生自說明CtianjinAppCWinApp為初始化應用程序 Window
6、應用程序基類的派生類LoginCDialog用戶登錄對話框RegisterCDialog注冊對話框CtianjinDlgCDialog主程序界面對話框staCStatic由于直接用 CStatic 創(chuàng)建的靜態(tài)文本控件的樣式是默認,但不是理想的效果,故再次繼承 CStatic,可以重新改變樣式。buttonCButton由于直接用CButton創(chuàng)建的按鈕控件的樣式是默認,但不是理想的效果,故再次繼承CButton,可以重新改變樣式。ExploreCDialog瀏覽對話框ComboxCComboBox由于直接用 CComboBox 創(chuàng)建的組合框控件的樣式是默認,但不是理想的效果,故再次繼承 CCo
7、mboBox,可以重新改變樣式。enteringCDialog編輯對話框EditPriceCEdit由于直接用 CEdit 創(chuàng)建的編輯框的功能還不夠,所以再次繼承 CEdit,可以多加功能-限制輸入字符queryCDialog查詢對話框SettingCDialog設置對話框AboutCDialog關于對話框表 3.3 主要函數(shù)介紹源文件函數(shù)名稱功能描述Explore.cppOnInitDialogOpenFileOnClickedButton1OnClickedButton2ExchangeBook對對話框進行初始化處理打開文件函數(shù)響應“升序”按鈕實現(xiàn)排序該圖書信息響應“升序”按鈕實現(xiàn)排序該圖
8、書信息交換各對象的數(shù)據(jù)C+語言課程設計5表 3.4 主要函數(shù)介紹源文件函數(shù)名稱功能描述CtianjinDlg.cppOnInitDialogOnPaintOnQueryDragIconOnTimerUpdateFileOnExitOnEnterOnAboutOnQueryOnSettingOnExplore對對話框進行初始化處理對對話框繪制部分應用窗口系統(tǒng)獲取鼠標圖標用于實現(xiàn)定時控制功能用于實現(xiàn)更新文件來計算收了幾本書響應“退出”按鈕實現(xiàn)退出本程序響應“編輯”按鈕實現(xiàn)啟動編輯對話框響應“關于”按鈕實現(xiàn)啟動關于對話框響應“查詢”按鈕實現(xiàn)啟動查詢對話框響應“設置”按鈕實現(xiàn)啟動設置對話框響應“瀏覽”
9、按鈕實現(xiàn)啟動瀏覽對話框表 3.5 主要函數(shù)介紹源文件函數(shù)名稱功能描述Entering.cppOnInitDialogOnCtlColor OnBnClickedOkCheckInputOnCloseOnLvnItemchangedList1OnBnClickedOk2OnBnClickedOk3OnLvnColumnclickList1OnNMClickList1OnBnClickedButton1對對話框進行初始化處理控件窗口函數(shù) 用于畫出控件菜單處理添加記錄信息檢查輸入的內(nèi)容是否為空輸入記錄信息關閉該對話框某個項已經(jīng)發(fā)生變化響應“刪除”按鈕實現(xiàn)刪除該圖書信息響應“修改”按鈕實現(xiàn)修改該圖書信
10、息單擊列,用于勾選全部當鼠標單擊列表視圖控件時產(chǎn)生響應“清空”按鈕實現(xiàn)修改該圖書信息C+語言課程設計6表 3.6 主要函數(shù)介紹源文件函數(shù)名稱功能描述query.cppOnInitDialogOnBnClickedRadio1OnBnClickedRadio2OnBnClickedRadio3OnBnClickedRadio4OnBnClickedRadio5OnBnClickedButton1QueryNumQueryNameQueryAuthorQueryPressQueryAnyOpenFileTipinsertOnBnClickedButton2對對話框進行初始化處理響應“書號”按鈕實現(xiàn)
11、選擇該方式查詢響應“書名”按鈕實現(xiàn)選擇該方式查詢響應“作者”按鈕實現(xiàn)選擇該方式查詢響應“出版社”按鈕實現(xiàn)選擇該方式查詢響應“任何內(nèi)容”按鈕實現(xiàn)選擇該方式查詢關閉該對話框查詢書號函數(shù)查詢書名函數(shù)查詢作者函數(shù)查詢出版社函數(shù)查詢?nèi)魏魏瘮?shù)打開文件提示用于告訴用戶找到了多少本將已找到的幾本書插入在顯示上響應“查詢”按鈕實現(xiàn)根據(jù)該方式查詢C+語言課程設計73.4 對象數(shù)據(jù)結構 每個對象記錄著每本書的信息,為了保護數(shù)據(jù)安全,故把其的這些成員變量聲明為private,就是說在類外的話,不能直接調(diào)用對象的成員變量名來賦值或者獲取其值,這就達到了保護數(shù)據(jù),但是在某個時候遇到數(shù)據(jù)不對可能需要修改,這時就要加成員函數(shù)
12、來修改或者獲取,而且把成員函數(shù)聲明為public,由于在類外需要正常調(diào)用,故聲明為公開。其表如下。 表 3.7 主要變量介紹變量名類型功能描述NameNumAuthorPressTimePriceCharCharCharCharCharDouble書名書號作者出版社時間價格表 3.8 主要函數(shù)介紹源文件函數(shù)名稱功能描述book.cppSetNameSetNumSetAuthorSetPressSetTimeSetPriceGetNameGetNumGetAuthorGetPressGetTimeGetPrice設置當前對象的成員變量 name 的值設置當前對象的成員變量 num 的值設置當前對
13、象的成員變量 Author 的值設置當前對象的成員變量 Press 的值設置當前對象的成員變量 Time 的值設置當前對象的成員變量 Price 的值獲取當前對象的成員變量 name 的值獲取當前對象的成員變量 Num 的值獲取當前對象的成員變量 Author 的值獲取當前對象的成員變量 Press 的值獲取當前對象的成員變量 Time 的值獲取當前對象的成員變量 Price 的值C+語言課程設計8第四章 詳細設計4.1 程序源代碼4.1.1 登陸模塊Login.h#pragma once#includetianjinDlg.h#include afxwin.h/ Login 對話框class
14、 Login : public CDialogDECLARE_DYNAMIC(Login)int a;public:Login(CWnd* pParent = NULL); / 標準構造函數(shù)virtual Login();/ 對話框數(shù)據(jù)enum IDD = IDD_LOGIN ;protected:virtual void DoDataExchange(CDataExchange* pDX);CtianjinDlg dlg;DECLARE_MESSAGE_MAP()public:virtual BOOL OnInitDialog();afx_msg void OnClose();CString
15、 user;CString password;afx_msg void OnBnClickedOk();CButton regis;afx_msg void OnBnClickedButton1();Login.cpp#include stdafx.h#include tianjin.h#include Login.h#include afxdialogex.h#include Register.hIMPLEMENT_DYNAMIC(Login, CDialog)Login:Login(CWnd* pParent /*=NULL*/): CDialog(Login:IDD, pParent),
16、 user(_T()C+語言課程設計9, password(_T()Login:Login()void Login:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT3, user);DDX_Text(pDX, IDC_EDIT4, password);DDX_Control(pDX, IDC_BUTTON1, regis);BEGIN_MESSAGE_MAP(Login, CDialog)ON_WM_CLOSE()ON_BN_CLICKED(IDOK, &Login:OnBn
17、ClickedOk)ON_BN_CLICKED(IDC_BUTTON1, &Login:OnBnClickedButton1)END_MESSAGE_MAP()BOOL Login:OnInitDialog()CDialog:OnInitDialog();a=0;/初始化a的值為0 用于判斷該值是否退出本程序 當輸入密碼錯誤,就使該a的值增加1CRect r;/矩形的類,數(shù)據(jù)成員是 矩形左上角的x的坐標,矩形左上角Y的坐標,矩形右下角x的坐標,矩形右下角Y的坐標CString user;this-GetClientRect(&r);/是獲得窗口的當前的客戶區(qū),把各坐標值保存在r對象。this-
18、MoveWindow(600,300,r.right,r.bottom);/根據(jù)上面獲得窗口的大小,來調(diào)整并且移動。GetPrivateProfileString(login,user,NULL,user.GetBuffer(20),20,./setting.ini);/從setting.ini配置文件中的login節(jié)名中獲取該user鍵名的值并保存在user的值,如果找不到該鍵名,則保存第三個參/數(shù)的值 即默認的值 表示未注冊的賬號,反之 找到了該值,表示已經(jīng)注冊了if(user!=NULL)/用于判斷上面獲得的值是否已經(jīng)注冊過 如注冊過,則執(zhí)行if()后邊的語句regis.EnableWi
19、ndow(0);/在該函數(shù)的參數(shù)賦值為0 表示禁止指定的控件接受鼠標和鍵盤的輸入 由于該已經(jīng)注冊過的。regis.SetWindowTextA(已注冊);/指定該控件的內(nèi)容設為 ”已注冊用于提示C+語言課程設計10return TRUE;void Login:OnClose()CDialog:OnClose();void Login:OnBnClickedOk()this-UpdateData(1);/將各控件中的數(shù)據(jù)保存到相應的變量分別為”user“ ” password“if(!user.IsEmpty()&!password.IsEmpty()/檢查該各變量的值是否為空,如該值為空,就執(zhí)
20、行else后邊的語句CString user1,password1;/定義兩個字符串類變量 用于從配置文件的注冊過的用戶及密碼的值保存在該變量的GetPrivateProfileString(login,user,NULL,user1.GetBuffer(20),20,./setting.ini);/從本身程序的當前的setting.ini配置/文件中的login節(jié)名中獲取該user鍵名的值并保存在user1的值,如果找不到該鍵名,則保存默認值為”NULL“GetPrivateProfileString(login,password,NULL,password1.GetBuffer(20),2
21、0,./setting.ini);/如同上面的方法if(user=user1&password=password1)/對比各值是否一致,滿足此條件表示該用戶名及密碼都是正確,可以登陸,即執(zhí)行if()后邊的語句this-ShowWindow(SW_HIDE);/把該對話框的顯示方式為隱藏dlg.DoModal();/啟動主窗口的對話框CDialog:OnOK();elsea+;/密碼錯誤次數(shù)if(a3)/如超過3次的錯誤密碼就執(zhí)行if()后邊的語句CDialog:OnCancel();return;/調(diào)用關閉該對話框的函數(shù) CString d;d.Format(用戶名或者密碼錯誤%d次 超過三次
22、錯誤即將自動退出,a);MessageBox(d,登陸提示,MB_OK|MB_ICONWARNING);/用于提示密碼錯誤 以避免令人覺得這程序有問題else C+語言課程設計11MessageBox(用戶名或者密碼的字符串為空,登陸提示,MB_OK|MB_ICONWARNING);/當該值為空,則執(zhí)行該語句 用于提示。void Login:OnBnClickedButton1()Register dialog;/定義注冊對話框的對象變量dialog.DoModal();/啟動 注冊對話框;4.1.2 注冊模塊Register.h#pragma once#include afxwin.h/ R
23、egister 對話框class Register : public CDialogDECLARE_DYNAMIC(Register)public:Register(CWnd* pParent = NULL); / 標準構造函數(shù)virtual Register();/ 對話框數(shù)據(jù)enum IDD = IDD_REGISTER ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:afx_msg void OnBnClickedOk();CString
24、 user;CString password;CString password1;Register.cpp#include stdafx.h#include tianjin.h#include Register.h#include afxdialogex.h/ Register 對話框IMPLEMENT_DYNAMIC(Register, CDialog)Register:Register(CWnd* pParent /*=NULL*/): CDialog(Register:IDD, pParent), user(_T(), password(_T()C+語言課程設計12, password1
25、(_T()Register:Register()void Register:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, user);DDX_Text(pDX, IDC_EDIT6, password);DDX_Text(pDX, IDC_EDIT3, password1);BEGIN_MESSAGE_MAP(Register, CDialog)ON_BN_CLICKED(IDOK, &Register:OnBnClickedOk)END_MESSAGE_MAP()v
26、oid Register:OnBnClickedOk()this-UpdateData();/默認值是 TRUE,即從控件傳給變量if(!user.IsEmpty()&!password.IsEmpty()&!password1.IsEmpty()/各變量的字符串是否為空,如都不為空,則執(zhí)行 if()后邊的語句繼續(xù)注冊if(password=password1)/新密碼與第二次新密碼對比下,如相等,則繼續(xù)執(zhí)行注冊,反之不繼續(xù)注冊if(IDOK=MessageBox(確定要注冊該賬號嗎?,注冊提示,MB_OKCANCEL| MB_ICONQUESTION )/輸出提示 是否要確定注冊,如點擊確認
27、返回值為 IDOKWritePrivateProfileString(login,user,user,./setting.ini);/向該 setting.ini 配置文件中的 login 節(jié)名中設置該 user 鍵名的值為 user的值WritePrivateProfileString(login,password,password,./setting.ini);HWND button; /定義窗口句柄this-GetParent()-GetDlgItem(IDC_BUTTON1,&button);/獲取當前窗口的父窗口句柄(登陸對話框) ,然后通過父窗口句柄獲取指定參數(shù) ID 為 IDC_
28、BUTTON1 的子元素的句柄并綁定 button 窗口句柄:SetWindowTextA(button,已注冊);/改變指定 button 窗口句柄的文本內(nèi)容為已注冊。:EnableWindow(button,0);/第二個參數(shù)的值為 0 表示禁止指定的控件接受鼠標和鍵盤的輸入MessageBox(已經(jīng)成功注冊該賬號:+user+!,注冊提示,MB_OK| MB_ICONASTERISK );/注冊成功輸出提示 CDialog:OnCancel(); else C+語言課程設計13MessageBox(新密碼與第二次新密碼不一致 請注意輸入正確!,密碼提示,MB_OK|MB_ICONEXCL
29、AMATION );else MessageBox(用戶名或者密碼的字符串為空,注冊提示,MB_OK|MB_ICONWARNING);4.1.3 主菜單模塊tianjinDlg.h#pragma once#include button.h#include sta.h#includeentering.h#includequery.h#includeSetting.h#includeExplore.h/ CtianjinDlg 對話框class CtianjinDlg : public CDialogEx/ 構造public:CtianjinDlg(CWnd* pParent = NULL); /
30、 標準構造函數(shù)/ 對話框數(shù)據(jù)enum IDD = IDD_TIANJIN_DIALOG ;protected:virtual void DoDataExchange(CDataExchange* pDX);/ 實現(xiàn)protected:HICON m_hIcon;CToolBar toolbar;CStatusBar statusbar;CImageList toolimag;CImageList toolhotimag;button but2;int a;int b;virtual BOOL OnInitDialog();afx_msg void OnPaint();afx_msg HCURS
31、OR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:afx_msg void OnTimer(UINT_PTR nIDEvent);button but1;C+語言課程設計14void UpdateFile();sta stat,stat1;afx_msg void OnExit();afx_msg void OnEnter();afx_msg void OnAbout();protected:public:afx_msg void OnQuery();afx_msg void OnSetting();afx_msg void OnExplore(
32、);tianjinDlg.cpp#include stdafx.h#include tianjin.h#include tianjinDlg.h#include afxdialogex.h#includeAbout.h#ifdef _DEBUG#define new DEBUG_NEW#endifCtianjinDlg:CtianjinDlg(CWnd* pParent /*=NULL*/): CDialogEx(CtianjinDlg:IDD, pParent)m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CtianjinDlg:DoD
33、ataExchange(CDataExchange* pDX)CDialogEx:DoDataExchange(pDX);DDX_Control(pDX, IDOK, but1);DDX_Control(pDX, TIC, stat);BEGIN_MESSAGE_MAP(CtianjinDlg, CDialogEx)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_WM_TIMER()ON_COMMAND(1006, &CtianjinDlg:OnExit)ON_COMMAND(1001, &CtianjinDlg:OnEnter)ON_COMMAND(1003, &C
34、tianjinDlg:OnQuery)ON_COMMAND(1004, &CtianjinDlg:OnSetting)ON_COMMAND(1005, &CtianjinDlg:OnAbout)ON_COMMAND(1002, &CtianjinDlg:OnExplore)END_MESSAGE_MAP()BOOL CtianjinDlg:OnInitDialog()C+語言課程設計15CDialogEx:OnInitDialog();CBitmap bit7;bit0.LoadBitmapA(IDB_BITMAP1);bit1.LoadBitmapA(IDB_BITMAP2);bit2.Lo
35、adBitmapA(IDB_BITMAP3);bit3.LoadBitmapA(IDB_BITMAP4);bit4.LoadBitmapA(IDB_BITMAP5);bit5.LoadBitmapA(IDB_BITMAP6);bit6.LoadBitmapA(IDB_BITMAP8);toolimag.Create(70,50,ILC_COLOR|ILC_MASK,0,0);for(int i=0;i6;i+)toolimag.Add(&biti,ILC_MASK);toolhotimag.Create(58,60,ILC_COLOR|ILC_MASK,0,0);toolhotimag.Add
36、(&bit6,ILC_COLOR16);toolbar.Create(this);UINT buttons6=1001,1002,1003,1004,1005,1006;toolbar.SetButtons(buttons,6);char buttontext7=編輯,瀏覽,查詢,設置,關于,退出;for(int i=0;i6;i+)toolbar.SetButtonText(i,buttontexti);toolbar.GetToolBarCtrl().SetImageList(&toolimag);toolbar.GetToolBarCtrl().SetHotImageList(&tool
37、hotimag);toolbar.SetSizes(CSize(80,80),CSize(70,50);toolbar.GetToolBarCtrl().SetStyle(CCS_TOP|TBSTYLE_FLAT);statusbar.Create(this);UINT pens3=100,101,102;statusbar.SetIndicators(pens,3);statusbar.SetPaneText(0,作者:胡志沖);UpdateFile();statusbar.SetPaneText(2,CTime:GetCurrentTime().Format(%Y:%m:%d:%H:%M:
38、%S);for(int i=0;iRepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);return TRUE; / 除非將焦點設置到控件,否則返回 TRUEvoid CtianjinDlg:OnPaint()if (IsIconic()C+語言課程設計16elseCRect dialogrect;this-GetClientRect(dialogrect);CDC pic;CBitmap pic1;BITMAP info;pic1.LoadBitmapA(IDB_BITMAP7);pic1.GetBitmap(&
39、info);CPaintDC dc(this);pic.CreateCompatibleDC(&dc);pic.SelectObject(&pic1);dc.StretchBlt(0,0,dialogrect.right,dialogrect.bottom,&pic,0,0,info.bmWidth,info.bmHeight,SRCCOPY);CDialogEx:OnPaint();HCURSOR CtianjinDlg:OnQueryDragIcon()return static_cast(m_hIcon);void CtianjinDlg:OnTimer(UINT_PTR nIDEven
40、t)CRect dialogrect;this-GetClientRect(dialogrect);statusbar.SetPaneText(2,CTime:GetCurrentTime().Format(%Y:%m:%d:%H:%M:%S);stat.MoveWindow(a,dialogrect.bottom-402,260,50);if(a=dialogrect.right-270)b=1;else if(a=50)b=0;if(b=0)a+=20;elsea-=20;CDialogEx:OnTimer(nIDEvent);void CtianjinDlg:OnExit()CDialo
41、gEx:OnCancel();void CtianjinDlg:OnEnter()entering enter;C+語言課程設計17enter.DoModal();UpdateFile();void CtianjinDlg:UpdateFile()CFile file(data.txt,CFile:modeRead|CFile:modeNoTruncate|CFile:modeCreate);CString stat;stat.Format(已經(jīng)收錄%d 本的書,file.GetLength()/95);file.Close();statusbar.SetPaneText(1, stat);v
42、oid CtianjinDlg:OnQuery()query quer;quer.DoModal();void CtianjinDlg:OnSetting()Setting set;set.DoModal();void CtianjinDlg:OnExplore()Explore explore;explore.DoModal();void CtianjinDlg:OnAbout()About aboutdlg;aboutdlg.DoModal();4.1.4 編輯模塊Entering.h#pragma once#include afxcmn.h#include afxwin.h#includ
43、e editprice.h/ entering 對話框class entering : public CDialogDECLARE_DYNAMIC(entering)public:entering(CWnd* pParent = NULL); / 標準構造函數(shù)virtual entering();/ 對話框數(shù)據(jù)C+語言課程設計18enum IDD = IDD_ENTERING ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:CListCtrl
44、listctrl;/列表框控件對象virtual BOOL OnInitDialog();/初始化函數(shù)afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);/控件窗口函數(shù) 用于畫出控件CComboBox year,mo,day;char *name,*num,*autho,*pr,*time,*price;afx_msg void OnBnClickedOk();CString booknum,bookname,author,press;int index;int a;int deletes;bool Check();v
45、oid Input(int Inde,int c);afx_msg void OnClose();afx_msg void OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult);afx_msg void OnBnClickedOk2();afx_msg void OnBnClickedOk3();afx_msg void OnLvnColumnclickList1(NMHDR *pNMHDR, LRESULT *pResult);afx_msg void OnNMClickList1(NMHDR *pNMHDR, LRESULT *pRe
46、sult);EditPrice EdPrice;CString price1;afx_msg void OnBnClickedButton1();entering.cpp #include stdafx.h#include tianjin.h#include entering.h#include afxdialogex.h/ entering 對話框IMPLEMENT_DYNAMIC(entering, CDialog)entering:entering(CWnd* pParent /*=NULL*/): CDialog(entering:IDD, pParent), booknum(_T()
47、, bookname(_T(), author(_T()C+語言課程設計19, press(_T(), price1(_T()entering:entering()void entering:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Control(pDX, IDC_LIST1, listctrl);DDX_Control(pDX, IDC_COMBO1, year);DDX_Control(pDX, IDC_COMBO4, mo);DDX_Text(pDX, IDC_EDIT1, booknum);DD
48、X_Text(pDX, IDC_EDIT2, bookname);DDX_Text(pDX, IDC_EDIT3, author);DDX_Text(pDX, IDC_EDIT4, press);DDX_Control(pDX, IDC_COMBO3, day);DDV_MaxChars(pDX, bookname, 15);DDX_Control(pDX, IDC_EDIT5, EdPrice);DDX_Text(pDX, IDC_EDIT5, price1);DDV_MaxChars(pDX, booknum, 14);DDV_MaxChars(pDX, author, 10);DDV_M
49、axChars(pDX, press, 15);DDV_MaxChars(pDX, price1, 6);BEGIN_MESSAGE_MAP(entering, CDialog)ON_WM_CTLCOLOR()ON_BN_CLICKED(IDOK, &entering:OnBnClickedOk)ON_WM_CLOSE()ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, &entering:OnLvnItemchangedList1)ON_BN_CLICKED(IDOK2, &entering:OnBnClickedOk2)ON_BN_CLICKED(IDOK3, &
50、entering:OnBnClickedOk3)ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST1, &entering:OnLvnColumnclickList1)ON_NOTIFY(NM_CLICK, IDC_LIST1, &entering:OnNMClickList1)ON_BN_CLICKED(IDC_BUTTON1, &entering:OnBnClickedButton1)END_MESSAGE_MAP()BOOL entering:OnInitDialog()CDialog:OnInitDialog();listctrl.SetExtendedStyle(
51、LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);/設置該列表框控件的擴張風格 允許整行選中 畫出網(wǎng)格線 允許添加單選按鈕控件C+語言課程設計20listctrl.InsertColumn(0,書名,0,100,2);/在該列表框控件中的第 0 列的設置為“書名” ,其寬度為 100listctrl.InsertColumn(1,書號,0,100);listctrl.InsertColumn(2,作者,0,60);listctrl.InsertColumn(3,出版社,0,100);listctrl.InsertColumn(4
52、,出版日期,0,90);listctrl.InsertColumn(5,價格,0,50);listctrl.SetBkColor(RGB(255,0,0);/設置該列表框控件的背景顏色為listctrl.SetTextBkColor (RGB(0,250,12);/設置該列表框控件的文本背景顏色listctrl.SetTextColor (RGB(0,25,250);/設置該列表框控件的文字顏色CString nu;for(int i=2000;i2020;i+)nu.Format(%d,i);year.AddString(nu);/向“年的組合框控件中插入數(shù)據(jù) 比如 2010 2011年fo
53、r(int i=1;i=12;i+)if(i10)nu.Format(0%d,i);/向“月的組合框控件中插入數(shù)據(jù) 比如 1 2 3 月elsenu.Format(%d,i);mo.AddString(nu);for(int i=1;i=31;i+)if(i10)nu.Format(0%d,i);/向“日的組合框控件中插入數(shù)據(jù) 比如 1 2 3 日elsenu.Format(%d,i);day.AddString(nu);CFile file(data.txt,CFile:modeRead);/打開文件 a=file.GetLength()/95;/總文件的大小除以每一本圖書的文件大小等于幾本
54、書 char *text=new char20;/開辟 20 個類型 char for(int i=0;iGetClientRect(&dd);pWnd-GetWindowRect(&dd);pDC-SetTextColor(RGB(160,32,240);if(CTLCOLOR_EDIT=CTLCOLOR_EDIT)pWnd-GetWindowRect(&dd);return hbr;void entering:OnBnClickedOk()/添加記錄信息if(Check()/判斷該值是否繼續(xù)輸入還是不輸入for(int i=0;i=0&listctrl.GetItemCount()inde
55、x)/判斷該值是否已經(jīng)選圖書信息 如已選擇該圖書信息,則執(zhí)行 if 后邊的語句Input(index,0);/達到符合字符輸入及已選該圖書信息的條件就執(zhí)行添加記錄,第一個參數(shù)是在該列表框的未尾的位置,第二個參數(shù) 1 表示添加記錄行為 非 1 表示修改記錄行為elseMessageBox(該未選項目,無法修改,提示);/彈出消息框用于提示bool entering:Check()this-Invalidate();/進行更新顯示的函數(shù)this-UpdateWindow();/使窗口立即重繪this-UpdateData();/默認值是 TRUE,即從控件傳給變量CClientDC dc(this
56、);/關聯(lián)本窗口(this) ,在目標窗口的任何一部分進行繪圖,包含邊界與標題dc.SetBkMode(TRANSPARENT);/設置文字背景為透明(transparent)dc.SetTextColor(RGB(255,0,0);/設置文字顏色為紅色-RGB(255,0,0)int n=0;/用于判斷符合的次數(shù)?如輸入文字都不為空,即符合這條件 就是n=5 if(bookname.IsEmpty()/判斷該字符是否為空?如為空,則執(zhí)行 if()后邊的的語句dc.TextOutA(820,65,該字符為空);/向關聯(lián)的窗口設備上下文輸出文字 用于提示else;n+;/不為空的話,就使 n 的
57、值增加 1if(booknum.IsEmpty()dc.TextOutA(820,113,該字符為空);C+語言課程設計23elsen+;if(author.IsEmpty()dc.TextOutA(820,155,該字符為空);elsen+;if(press.IsEmpty()dc.TextOutA(820,200,該字符為空);elsen+;if(price1.IsEmpty()dc.TextOutA(820,235,該字符為空);elsen+;if(0year.GetCurSel()|0mo.GetCurSel()|0day.GetCurSel()/判斷該是否選項dc.TextOutA(
58、875,287,該未選);elseif(nUpdateData(0);/由于默認值是 TRUE,即從控件傳給變量,需要改為 FALSE,表示從變量傳給控件。void entering:OnClose()CFile file(data.txt,CFile:modeWrite|CFile:modeCreate);/第一個參數(shù)data.txt表示指定該文件名,第二個參數(shù)的值表示以寫入模式char *text=new char20;/開辟 20 個類型 charfor(int i=0;ilistctrl.GetItemCount();i+)/根據(jù)列表框的多少行相應循環(huán)多少次listctrl.GetIt
59、emText(i,0,text,20);/向該列表框控件的第 i 的行的第 0列的獲取內(nèi)容并保存在 text 的值file.Write(text,20);/向磁盤關聯(lián)的文件寫入 text 的值listctrl.GetItemText(i,1,text,20);file.Write(text,20);listctrl.GetItemText(i,2,text,10);file.Write(text,10);listctrl.GetItemText(i,3,text,20);file.Write(text,20);listctrl.GetItemText(i,4,text,15);file.Wri
60、te(text,15);listctrl.GetItemText(i,5,text,10);file.Write(text,10);delete text,name,num,autho,pr,time;file.Close();CDialog:OnClose();void entering:OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult)LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR);int SelectCount=0;/選項次數(shù)for(int i=0;i=0;i-)/根據(jù)列表框的多少行相應
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 盾構機采購合同范本
- Unit 1 Hello!(教學設計)-2024-2025學年冀教版(三起)(2024)英語三年級上冊
- 投資地皮合同范本
- 2《走月亮》教學設計-2024-2025學年語文四年級上冊統(tǒng)編版
- 21古詩詞三首《山居秋暝》(教學設計)-2024-2025學年統(tǒng)編版語文五年級上冊
- 3《蜀道難》《蜀相》教學設計 2023-2024學年統(tǒng)編版高中語文選擇性必修下冊
- 清油罐合同范本
- 20肥皂泡教學設計-2023-2024學年三年級下冊語文統(tǒng)編版
- 貨物抵賬合同范本
- 4公民的基本權利和義務 第三課時《國家尊重和保障人權》教學設計-2024-2025學年道德與法治六年級上冊統(tǒng)編版
- 《船舶精通急救》全套教學課件
- 什么叫績效考勤管理制度
- 外墻噴漆施工合同協(xié)議書
- 《積極心理學(第3版)》 課件 第2章 心理流暢體驗
- 軟件系統(tǒng)平臺項目實施方案
- 陜西延長石油集團礦業(yè)公司招聘筆試題庫2024
- 《力與形變》教學課件(一)
- 浙江省中小學心理健康教育課程標準
- 遼寧省大連市莊河市2023-2024學年七年級下學期期末數(shù)學試題
- 壘球教案完整版本
- 2024年南京鐵道職業(yè)技術學院單招職業(yè)傾向性測試題庫附答案
評論
0/150
提交評論