版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、股票信息系統(tǒng)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)(師范班)1 * 指導(dǎo)教師: *【摘要】 股票信息系統(tǒng)主要是以股民作為使用對(duì)象而開發(fā)的。其系統(tǒng)開發(fā)的任務(wù)主要包括數(shù)據(jù)庫(kù)的設(shè)計(jì)與維護(hù)、客戶端應(yīng)用程序的開發(fā)等兩個(gè)方面。對(duì)于前者要求建立起的數(shù)據(jù)庫(kù)具有完整性和一致性,且具有一定的數(shù)據(jù)安全性如用戶需要密碼才能使用等,而對(duì)于后者則要求程序界面友好、功能完備等特點(diǎn)。經(jīng)過分析,本系統(tǒng)選用Microsoft公司的 Visual C+6.0作為前端開發(fā)工具,利用其提供的集成開發(fā)環(huán)境及各種控件,來達(dá)到對(duì)股票信息進(jìn)行管理(主要包括增加、刪除、查詢、分析)的目的?!娟P(guān)鍵詞】股票信息系統(tǒng)、Visual C+
2、 6.0、管理、實(shí)現(xiàn)、程序設(shè)計(jì)Stock Information SystemZhang Sheng-ying 10502 Advisor:Song KaoMajor in Computer Science and Technology College of Mathematics and Computer Science【Abstract】Stock Information System is mainly used by investors as the development of targeted. Its main task of system development include
3、s two aspects of the development,such as database design and maintenance, the development of client application. For the former requirement to establish a database with the integrity and consistency, and has a certain amount of data security such as the user needs a password to use.Requirements for
4、the latter friendly program interface , complete function, etc.After analysis, the system chosen Microsoft's Visual C + +6.0 as the front-end development tools, the use of its integrated development environment and a variety of controls, to achieve information on the stock management (inclu
5、ding add, delete, query, analysis) of purpose.【Keywords】Stock Information System、Visual C+ 6.0、Management、Achieve、Programming1引言隨著市場(chǎng)經(jīng)濟(jì)的不斷發(fā)展,國(guó)家經(jīng)濟(jì)實(shí)力的不斷提升和全民經(jīng)商熱潮的不斷出現(xiàn),股票作為股份有限公司在籌集資本時(shí)向出資人發(fā)行的股份憑證,也越來越多地飛入了尋常百姓家。在我們周圍的人中,就有很多人在炒股。股票成為了投資的一個(gè)好途徑,但正如許多股評(píng)欄目所說的那樣,股市有風(fēng)險(xiǎn),入市需謹(jǐn)慎。很多人靠股票發(fā)了家,也有很多人因?yàn)樗チ撕芏鄸|西。股市的跌宕起伏
6、在近兩年表現(xiàn)的尤為明顯。股市的波動(dòng),給人世間帶來了多少的悲喜苦辣,一個(gè)個(gè)故事和傳奇在股市上被創(chuàng)造和演繹著。這時(shí),股民們就需要有個(gè)工具,能夠幫助股民更好得掌握市場(chǎng)動(dòng)態(tài),更好地理財(cái)。股票信息系統(tǒng)正是這樣的一個(gè)工具。股票信息系統(tǒng)能夠?qū)崿F(xiàn)對(duì)股票數(shù)據(jù)的收集、查詢、增刪、分析,得到有價(jià)值的信息,可以個(gè)性化地設(shè)定自己需要的信息,從而幫助股民更好得掌握市場(chǎng)動(dòng)態(tài),更好地理財(cái)。應(yīng)用在個(gè)人股票交易中,作為一種輔助軟件,提高對(duì)市場(chǎng)的把握,使股民獲取最大收益。2系統(tǒng)簡(jiǎn)介2.1系統(tǒng)概述“股票信息系統(tǒng)”是專門為股民掌握市場(chǎng)動(dòng)態(tài),更好地理財(cái)而開發(fā)的股票信息系統(tǒng)。該軟件集成了股票搜集、查詢、分析等多種實(shí)用的功能。本軟件的前臺(tái)采
7、用目前流行的面向?qū)ο蟮木幊陶Z言Visual C+6.0開發(fā),后臺(tái)采用SQL數(shù)據(jù)庫(kù)。軟件的界面美觀大綱,軟件運(yùn)行穩(wěn)定。 2.2總體設(shè)計(jì)本系統(tǒng)主要包括登錄模塊、管理員設(shè)置模塊、個(gè)人股票交易模塊、股票信息模塊、股名及代碼查詢模塊、股市新聞模塊、股票收益計(jì)算器模塊、走勢(shì)分析模塊等內(nèi)容。股票信息系統(tǒng)登錄管理員設(shè)置個(gè)人股票交易走勢(shì)分析股票收益計(jì)算器股名及代碼查詢股市新聞股票信息圖 股票信息系統(tǒng)主模塊2.3運(yùn)行環(huán)境簡(jiǎn)介Visual C+Visual C+包含了兩套完整的Windows應(yīng)用程序開發(fā)系統(tǒng),即使用Win32 API來開發(fā)用C編寫的Windows應(yīng)用程序和開發(fā)基于MFC的Windows應(yīng)用程序,此外
8、Visual C+也包括ActiveX模塊庫(kù)(ActiveX Template Library,ATL),可以用它來開發(fā)在Internet上使用的ActiveX控件,還可以制作基于MFC的ActiveX控件,還可以設(shè)計(jì)基于C或C+的動(dòng)態(tài)鏈接庫(kù)(DLL).SQL Server 2000SQL Server2000的全名是Microsoft SQL Server 2000,是大名鼎鼎的微軟公司生產(chǎn)的一款軟件產(chǎn)品,2000是其版本號(hào)。在2000之前還有SQL Server6.5、SQL Server7.0,在2000之后還有SQL Server 2005等。 Microsoft SQL Server
9、 2000擴(kuò)展了Microsoft SQL Server7.0版的性能、可靠性、質(zhì)量和易用性。Microsoft SQL Server 2000增加了集中新的功能如下:全面支持XML(XML(eXtended Mark Language)譯為可擴(kuò)展標(biāo)記語言)支持構(gòu)建SQL Server 2000聯(lián)合服務(wù)器用戶自定義函數(shù)對(duì)視圖建立索引擴(kuò)展新的數(shù)據(jù)類型支持多個(gè)SQL Server 2000實(shí)例支持大規(guī)模集群64GB的AWE內(nèi)存支持(AVE(Advanced Windows Edxtension,Windows高級(jí)擴(kuò)展))由此, Microsoft SQL Server 2000成為大規(guī)模聯(lián)機(jī)事務(wù)處
10、理(OLTP)、數(shù)據(jù)倉(cāng)庫(kù)和電子商務(wù)應(yīng)用程序的優(yōu)秀數(shù)據(jù)庫(kù)平臺(tái)。邏輯角度的SQL Server 2000數(shù)據(jù)庫(kù)呈現(xiàn)為各種數(shù)據(jù)對(duì)象。這些數(shù)據(jù)對(duì)象是用于編寫數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)和管理數(shù)據(jù)庫(kù)的單位。主要包括:數(shù)據(jù)表、視圖、索引、數(shù)據(jù)類型、存儲(chǔ)過程和觸發(fā)器。本系統(tǒng)主要用到數(shù)據(jù)庫(kù)的數(shù)據(jù)表。 MsChart控件 MsChart(6.0或5.0版)是Windows系統(tǒng)中Visual studio自帶的一個(gè)ACTIVEX控件,它功能強(qiáng)大,應(yīng)用廣泛,具有以下特點(diǎn): · 支持隨機(jī)數(shù)據(jù)和隨機(jī)數(shù)組,動(dòng)態(tài)顯示。 · 支持所有主要的圖表類型。 · 支持三維顯示。 MsChart具有45個(gè)屬性,9個(gè)方法
11、,49 事件,可靈活編程,可實(shí)現(xiàn)各類表的顯示。 注意:使用前要先注冊(cè)(即在運(yùn)行里輸入“regsvr32 Mscomct2.ocx”)3數(shù)據(jù)庫(kù)設(shè)計(jì)1、Admin表Admin表用于存儲(chǔ)管理員信息。Admin表的結(jié)構(gòu)如下表所示:Admin表的結(jié)構(gòu)字段名稱數(shù)據(jù)類型字段大小可否為空說明userNamechar10NOT NULL用戶名passwordchar10NOT NULL密碼數(shù)據(jù)庫(kù)連接類:CAdminSet 頭文件:AdminSet.h數(shù)據(jù)來源:管理員設(shè)置模塊進(jìn)行錄入2、UserStock表UserStock表用于存儲(chǔ)個(gè)人股票的買入賣出情況。UserStock表的結(jié)構(gòu)如下表所示: UserStoc
12、k表的結(jié)構(gòu)字段名稱數(shù)據(jù)類型字段大小可否為空說明stockNamechar8NOT NULL股名stockIDchar6NOT NULL股票代碼stockStylechar7NOT NULL股票類型todaykpchar10NOT NULL今日開盤zdchar10NOT NULL漲跌dtimechar10NOT NULL日期jyslchar10NOT NULL交易數(shù)量jyjgchar10NOT NULL交易價(jià)格statechar10NULL交易狀態(tài)數(shù)據(jù)庫(kù)連接類:CUserStockSet 頭文件:UserStockSet.h數(shù)據(jù)來源:個(gè)人股票交易模塊進(jìn)行錄入3、Stock表Stock表用于存儲(chǔ)股
13、票各個(gè)時(shí)段的價(jià)格信息。Stock表的結(jié)構(gòu)如下表所示:Stock表字段名稱數(shù)據(jù)類型字段名稱可否為空說明stockNamechar8NOT NULL股名stockIDchar6NOT NULL股票代碼dtimechar10NOT NULL日期price1char10NOT NULL9:30am價(jià)格price2char10NOT NULL10:30價(jià)格price3char10NOT NULL11:30am價(jià)格price4char10NOT NULL2:00價(jià)格price5char10NOT NULL3:00價(jià)格數(shù)據(jù)庫(kù)連接類:CRecordset 頭文件:StockSet.h數(shù)據(jù)來源:股票信息模塊進(jìn)行
14、錄入4、ShangHaiStock表ShangHaiStock表用于存儲(chǔ)上海股票的股名及代碼。ShangHaiStock表的結(jié)構(gòu)如下表所示:ShangHaiStock表字段名稱數(shù)據(jù)類型字段名稱可否為空說明stockNamechar8NOT NULL股名stockIDchar6NOT NULL股票代碼數(shù)據(jù)庫(kù)連接類:ShangHaiStockSet 頭文件:ShangHaiStockSet.h5、ShenZhenStock表ShenZhenStock表用于存儲(chǔ)深圳股票的股名及代碼。ShenZhenStock表的結(jié)構(gòu)如下表所示:ShenZhenStock表字段名稱數(shù)據(jù)類型字段名稱可否為空說明stoc
15、kNamechar8NOT NULL股名stockIDchar6NOT NULL股票代碼數(shù)據(jù)庫(kù)連接類:ShenZhenStockSet 頭文件:ShenZhenStockSet.h6、Stock2表相當(dāng)于一個(gè)臨時(shí)表。用于存儲(chǔ)符合查詢條件的某一股的價(jià)格相關(guān)信息。Stock2表的結(jié)構(gòu)如下表所示:Stock2表字段名稱數(shù)據(jù)類型字段名稱可否為空說明stockNamechar8NULL股名stockIDchar6NULL股票代碼dtimechar10NULL時(shí)間pricefloat8NULL價(jià)格數(shù)據(jù)庫(kù)連接類:CStockSet2 頭文件:StockSet2.h數(shù)據(jù)來源:走勢(shì)分析模塊查詢符合條件的信息注意
16、:每個(gè)數(shù)據(jù)庫(kù)連接類的父類都是CRecordset4.詳細(xì)設(shè)計(jì)4.1、登錄模塊1實(shí)現(xiàn)目標(biāo)登錄模塊功能是完成用戶登錄本系統(tǒng)的操作,用戶登錄對(duì)話框的設(shè)計(jì)如下圖所示。+2設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_LOGIN_DIALOG,文本框內(nèi)容為“登錄系統(tǒng)”,為該資源添加名為CLoginDlg的類。(2)從Controls面板上向Dialog資源中添加2個(gè)Static、2個(gè)Edit,2個(gè)Button,1個(gè)Picture控件。更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如下表所示:(Static、Picture控件略)表 資源設(shè)置IDPropertiesMember Vari
17、ablesTypeMemberIDC_NAME_EDIT默認(rèn)CStringm_NameIDC_PWD_ EDIT選中PassWordCStringm_PwdIDC_LOGIN_BUTTONCaption 登錄IDCANCELCaption 退出3代碼分析(1)在類中添加變量外部變量,用來判定是否登錄成功。bool success;(2)在頭文件添加頭文件#include "StockSystemSet.h"(3)為“登錄”按鈕添加void OnLoginButton() 函數(shù),添加代碼如下:/創(chuàng)建用戶表記錄集CStockSystemSet Rst; CString sql;
18、UpdateData();success=FALSE;sql = "select * from Admin where userName='"sql = sql + m_Name;sql = sql + "' and password='"sql = sql + m_Pwd;sql = sql +"'" /檢查用戶名是否輸入if(m_Name.IsEmpty() AfxMessageBox("用戶名不能為空!");return;/檢查密碼是否輸入if(m_Pwd.IsEmpty()
19、AfxMessageBox("密碼不能為空!");return; /判定是否打開數(shù)據(jù)表if (!Rst.Open(AFX_DB_USE_DEFAULT_TYPE,sql) MessageBox("打開失??!");return; /密碼正確進(jìn)入主控臺(tái),并分配用戶權(quán)限if(!Rst.IsEOF() AfxMessageBox("登錄成功!");success=TRUE;CDialog:OnOK(); /密碼錯(cuò)誤處理elseAfxMessageBox("登錄失敗!");return; 下面在CStockSystemApp
20、中添加代碼,使對(duì)話框在啟動(dòng)時(shí)首先打開登錄對(duì)話框。在主窗口選擇OnInitDialog函數(shù),該函數(shù)將打開登錄對(duì)話框,如果用戶不是通過單擊“登錄”按鈕關(guān)閉對(duì)話框,則返回false,具體代碼如下。SetDialogBkColor(RGB(230,230,250),RGB(0,0,0); /前面RGB為背景顏色,后面為字體顏色CLoginDlg dlg;if(dlg.DoModal()=IDCANCEL) /判定是否打開對(duì)話框 return false; .return TRUE; 4.2、管理員設(shè)置模塊1.實(shí)現(xiàn)目標(biāo)管理員設(shè)置模塊用于添加、刪除、查看管理員信息,管理員設(shè)置對(duì)話框的設(shè)計(jì)如下圖所示。2設(shè)計(jì)
21、步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_ADMINISTRATOR,文本框內(nèi)容為“管理員設(shè)置”,為該資源添加名為CAdminDlg的類。(2)從Controls面板上向Dialog資源中添加3個(gè)Static、3個(gè)Edit,3個(gè)Button,1個(gè)Group Box,1個(gè)List Control控件。更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如下表所示:(Static、Group Box、控件略)表 資源設(shè)置IDPropertiesMember VariablesTypeMemberIDC_EDIT1CStringm_AdminNameIDC_EDIT2選中PassWord
22、CStringm_AdminPwd1IDC_EDIT2選中PassWordCStringm_AdminPwd2ID_ADD_ADMINCaption 增加ID_DEL_ADMINCaption 刪除IDCANCELCaption 退出IDC_LIST1View 選ReportCListCtrlm_ctrList3代碼分析(1)在頭文件添加頭文件#include "StockSystemSet.h"(2)添加BOOL OnInitDialog()函數(shù),此函數(shù)用于初始化Tab控件、為L(zhǎng)istControl控件賦值,其代碼如下:CDialog:OnInitDialog();/列表
23、框第一列為“用戶名”m_ctrList.InsertColumn(0,"用戶名",LVCFMT_CENTER,217,0); /列表框第二列為“密碼”m_ctrList.InsertColumn(1,"密 碼",LVCFMT_CENTER,217,1); /選中時(shí)是一整行m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES);CAdminSet SU;CString mSqlStr,c;mSqlStr = "SELECT userName,password FROM
24、Admin" /數(shù)據(jù)庫(kù)查詢if (!SU.Open(AFX_DB_USE_DEFAULT_TYPE, mSqlStr) /判定是否打開數(shù)據(jù)表 AfxMessageBox("用戶表打開失敗!");return TRUE;/ GetODBCFieldCount()獲取記錄集中的字段總數(shù)short nFields=SU.GetODBCFieldCount(); while( !SU.IsEOF() ) / GetItemCount()返回列表視圖控件中項(xiàng)的數(shù)目int nIndex = m_ctrList.GetItemCount(); short index = 0;/
25、通過指定列位置來獲取數(shù)據(jù)SU.GetFieldValue(index,c); char s50;for(int i = 0; i<c.GetLength();i+) si = c.GetAt(i);si = '0'LV_ITEM lvitemAdd = 0;lvitemAdd.mask = LVIF_TEXT; /lvitemAdd.iItem = nIndex ;lvitemAdd.iSubItem = 0;lvitemAdd.pszText = s ;m_ctrList.InsertItem(&lvitemAdd); /插入項(xiàng)for( index = 1; i
26、ndex < nFields; index+ ) LV_ITEM lvitemAdd = 0;/通過指定列位置來獲取數(shù)據(jù)SU.GetFieldValue( index, c ); for(i = 0; i<c.GetLength();i+)si = c.GetAt(i);si = '0'lvitemAdd.mask = LVIF_TEXT;lvitemAdd.iItem = nIndex ;lvitemAdd.iSubItem = index;lvitemAdd.pszText = s;m_ctrList.SetItem(&lvitemAdd);SU.Mov
27、eNext();this->UpdateData();return TRUE; (3)為“添加”按鈕添加OnAddAdmin()函數(shù),用于添加一條記錄在數(shù)據(jù)表里,并更新在List Control控件上。添加代碼如下:UpdateData(true);CAdminSet p;CString s,mSqlStr; /檢查數(shù)據(jù)的合法性if(m_AdminName.IsEmpty() MessageBox("用戶名不能為空!");m_AdminName = ""m_AdminPwd1 = ""m_AdminPwd2 = "&q
28、uot;else if(m_AdminPwd2.IsEmpty() | m_AdminPwd1.IsEmpty() MessageBox("密碼不能為空!");m_AdminPwd1 = ""m_AdminPwd2 = "" /驗(yàn)證密碼與確認(rèn)密碼是否一致else if( m_AdminPwd1 != m_AdminPwd2) MessageBox("兩次密碼不一致!");m_AdminPwd1 = ""m_AdminPwd2 = ""else mSqlStr = "
29、SELECT userName,password FROM Admin" /數(shù)據(jù)庫(kù)查詢if (!p.Open(AFX_DB_USE_DEFAULT_TYPE, mSqlStr) AfxMessageBox("管理表打開失??!");return;/添加新用戶p.AddNew();p.m_userName=m_AdminName;p.m_password=m_AdminPwd1;static int i=0; s=(LPCTSTR)CString(p.m_userName); m_ctrList.InsertItem(i,s); s=(LPCTSTR)CString(
30、p.m_password); m_ctrList.SetItemText(i,1,s); i=i+1;/把新的記錄存在數(shù)據(jù)源里p.Update();p.MoveNext(); /指定當(dāng)前記錄為最后一條記錄AfxMessageBox("添加成功!");m_AdminName = ""m_AdminPwd1 = ""m_AdminPwd2 = ""UpdateData(false); (4)為“刪除”按鈕添加OnDelAdmin()函數(shù),用于刪除數(shù)據(jù)表的一條記錄,同時(shí)更新在List Control控件上。添加代碼如下:
31、/得到第一個(gè)備選者Item的位置 int i=m_ctrList.GetSelectionMark();if(0>i) MessageBox("請(qǐng)選擇一條記錄進(jìn)行刪除!"); return; UpdateData(TRUE);CAdminSet p;CString mSqlStr;mSqlStr.Format("SELECT * FROM Admin where userName='%s'",m_ctrList.GetItemText(i,0); /數(shù)據(jù)庫(kù)查詢if (!p.Open(AFX_DB_USE_DEFAULT_TYPE,
32、mSqlStr) AfxMessageBox("用戶表打開失??!");return; /刪除該用戶p.Delete(); /刪除類表中的該用戶m_ctrList.DeleteItem(i);p.Close();UpdateData(false);4.3、個(gè)人股票交易模塊1實(shí)現(xiàn)目標(biāo)個(gè)人股票交易模塊用于添加、刪除、顯示股票銷售信息,個(gè)人股票交易對(duì)話框的設(shè)計(jì)如下圖所示。2設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_STOCKJOBBING,文本框內(nèi)容為“個(gè)人股票交易”,為該資源添加名為StockJobDlg的類。(2)從Controls面板上向Dialog
33、資源中添加11個(gè)Static、7個(gè)Edit,3個(gè)Button,2個(gè)Group Box,1個(gè)Date Time Picker,1個(gè)Combo Box,1個(gè)List Control控件,3個(gè)Picture。更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如下表所示:(Static、Group Box、Picture控件略)表 資源設(shè)置IDPropertiesMember VariablesTypeMemberIDC_GMCStringm_gumingIDC_GPDM CStringm_stockIDIDC_GPLXEnter listbox items上海A股上海B股深圳A股深圳B股CStringm_s
34、tockstyleIDC_JRKP CStringm_todaykpIDC_ZDCStringm_zdIDC_DATETIMEPICKER1Format選Short DateCDateTimeCtrlm_dateIDC_JYSLCStringm_jyslIDC_JYJGCStringm_jyjgIDC_STATECStringm_stateIDC_LIST1View 選ReportCListCtrlm_ctrListIDC_ADD_STOCKCaption 買入IDC_DEL_STOCKCaption 賣出IDC_CANCELCaption退出3代碼分析略,與“管理員設(shè)置模塊”類似。4.4、股
35、票信息模塊1實(shí)現(xiàn)目標(biāo)股票信息模塊用于添加、刪除、顯示股票各個(gè)時(shí)段的價(jià)格信息,股票信息對(duì)話框的設(shè)計(jì)如下圖所示。2設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_STOCKJOBBING,文本框內(nèi)容為“個(gè)人股票交易”,為該資源添加名為StockDlg的類。(2)從Controls面板上向Dialog資源中添加13個(gè)Static、7個(gè)Edit,3個(gè)Button,1個(gè)Group Box,1個(gè)Date Time Picker,1個(gè)List Control控件。更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如下表所示:(Static、Group Box控件略)表 資源設(shè)置IDPropert
36、iesMember VariablesTypeMemberIDC_STONAME1CStringm_stockNameIDC_STOCKID1 CStringm_stockIDIDC_DATETIMEPICKER1Format選Short DateCDateTimeCtrlm_dtimeIDC_PRICE1CStringm_price1IDC_PRICE2CStringm_price2IDC_PRICE3CStringm_price3IDC_PRICE4CStringm_price4IDC_PRICE5CStringm_price5IDC_LIST1View 選ReportCListCtrlm
37、_ListIDC_ADD_STOCKCaption 添加IDC_DEL_STOCKCaption 刪除IDCANCELCaption退出3代碼分析略,與“管理員設(shè)置模塊”類似。4.5、股名及代碼查詢模塊本模塊分為上海股票名稱及代碼查詢模塊和深圳股票名稱及代碼查詢模塊。下面著重介紹上海股票名稱及代碼查詢模塊,深圳股票名稱及代碼查詢模塊與上海股票名稱及代碼查詢模塊類似,就不具體介紹了。1實(shí)現(xiàn)目標(biāo)股名及代碼查詢模塊用于根據(jù)股名和股票代碼中的一方來查詢另一方,上海股票名稱及代碼查詢對(duì)話框的設(shè)計(jì)如下圖所示。2設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_STOCKJOBBING,文
38、本框內(nèi)容為“個(gè)人股票交易”,為該資源添加名為StockDlg的類。(2)從Controls面板上向Dialog資源中添加3個(gè)Static、2個(gè)Edit,3個(gè)Button,1個(gè)Group Box,1個(gè)Picture,2個(gè)Radio Button。更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如下表所示:(Static、Group Box控件略表 資源設(shè)置IDPropertiesMember VariablesTypeMemberIDC_STOCKNAMECStringm_stockNameIDC_STOCKIDCStringm_stockIDIDC_STATICCaption 上海股票IDC_SKI
39、PCaption 轉(zhuǎn)至深圳股票查詢頁(yè)面ID_QUERYCaption 查詢IDCANCELCaption退出IDC_STATICType:IconImage:IDI_ICON6IDC_QUERYIDCaption 查股票代碼選中GroupIDC_QUERYNAMECaption 查股票名稱3代碼分析(1)在頭文件添加頭文件#include "QUERY2.h"#include "ShangHaiStockSet.h" (2) 為“查詢”按鈕添加OnQuery()函數(shù),用于查詢股票名稱火信息。添加代碼如下:UpdateData(true);/判斷用戶是否選
40、擇記錄int i=GetCheckedRadioButton(IDC_QUERYID,IDC_QUERYNAME);UpdateData(TRUE);ShangHaiStockSet p;CString mSqlStr;mSqlStr = "SELECT * FROM ShangHaiStock" /數(shù)據(jù)庫(kù)查詢if (!p.Open(AFX_DB_USE_DEFAULT_TYPE, mSqlStr) AfxMessageBox("用戶表打開失??!");return; /選擇查詢方式為查股票代碼 if(i=IDC_QUERYID) p.m_stockNam
41、e.TrimLeft();/去左邊空格 p.m_stockName.TrimRight();/去右邊空格 m_stockName.TrimLeft(); m_stockName.TrimRight(); /查詢數(shù)據(jù)表中是否有符合條件的股票名稱while( !p.IsEOF() && p.m_stockName!=m_stockName) p.MoveNext();p.m_stockName.TrimLeft();/去左邊空格 p.m_stockName.TrimRight();/去右邊空格 m_stockName.TrimLeft(); m_stockName.TrimRigh
42、t(); /數(shù)據(jù)表中存在符合查詢條件的股票信息if(p.m_stockName=m_stockName) m_stockID=p.m_stockID;UpdateData(false); /數(shù)據(jù)表中不存在符合查詢條件的股票信息if(p.IsEOF() /彈出提示對(duì)話框MessageBox("該股票不是上海股票!跳轉(zhuǎn)至深圳股票查詢頁(yè)面");/退出該對(duì)話框OnCancel(); QUERY2 dlg; /打開深圳股票查詢對(duì)話框dlg.DoModal(); /選擇查詢方式為查股票名稱if(i=IDC_QUERYNAME) while( !p.IsEOF() &&
43、p.m_stockID!=m_stockID) p.MoveNext(); /數(shù)據(jù)表中存在符合查詢條件的股票信息if(p.m_stockID=m_stockID) m_stockName=p.m_stockName;UpdateData(false); /數(shù)據(jù)表中不存在符合查詢條件的股票信息if(p.IsEOF() MessageBox("該股票不是上海股票!跳轉(zhuǎn)至深圳股票查詢頁(yè)面");OnCancel(); QUERY2 dlg;dlg.DoModal(); (3)為“轉(zhuǎn)至深圳股票查詢頁(yè)面”按鈕添加OnSkip()函數(shù),用于跳轉(zhuǎn)至深股查詢,代碼如下:OnCancel();
44、/退出上海股票查詢頁(yè)面QUERY2 dlg;dlg.DoModal(); 4.6、股市新聞模塊1實(shí)現(xiàn)目標(biāo)股市模塊用于查詢網(wǎng)絡(luò)上的股市新聞,上股市新聞對(duì)話框的設(shè)計(jì)如下圖所示。2設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_STOCKNEWS,文本框內(nèi)容為“股市新聞”,為該資源添加名為CExlorerDlg的類。(2)從Controls面板上向Dialog資源中添加1個(gè)Static,4個(gè)Button,1個(gè)Combo Box.最重要的是要向工程導(dǎo)入Microsoft Web Browser控件,為對(duì)話框添加該控件。更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如下表所示。表 資源設(shè)
45、置IDPropertiesMember VariablesTypeMemberIDC_STATICCaption 地址欄:IDC_LIULAN_BUTTONCaption 瀏覽IDCANCELCaption 退出IDC_FORWARD_BUTTONCaption 前進(jìn) IDC_BACKUP_BUTTONCaption后退 IDC_COMBO1Enter listbox items:IDC_EXPLORER1默認(rèn)3代碼分析 (1) 為“瀏覽”按鈕添加OnLiulanButton()函數(shù),用于瀏覽網(wǎng)頁(yè)上的股票新聞。添加代碼如下:CString szURL;m_Address.GetWindowTe
46、xt(szURL);if(szURL!="") /將瀏覽器連接到一個(gè)不固定的URL m_Explorer.Navigate(szURL,0,0,0,0);m_Address.AddString(szURL);(2)為“前進(jìn)”按鈕添加OnForwardButton()函數(shù),用于網(wǎng)頁(yè)瀏覽的前進(jìn)。添加代碼如下:m_Explorer.GoForward();(3)為“后退”按鈕添加OnBackupButton()函數(shù),用于網(wǎng)頁(yè)瀏覽的后退。添加代碼如下: m_Explorer.GoBack();4.7、股票收益計(jì)算器模塊1實(shí)現(xiàn)目標(biāo)股票收益計(jì)算器模塊用于計(jì)算股票的投資效益以及保本價(jià)格。
47、股票收益對(duì)話框的設(shè)計(jì)如下圖所示。2設(shè)計(jì)步驟(1)向項(xiàng)目中添加一個(gè)新Dialog資源,資源ID為IDD_CALCULATOR,文本框內(nèi)容為“股票收益計(jì)算器”,為該資源添加名為CCalculator的類。(2)從Controls面板上向Dialog資源中添加21個(gè)Static,2個(gè)Button,10個(gè)Edit Box,6個(gè)Radio Button,4個(gè)Group Box。更改資源的屬性,并為資源設(shè)置相對(duì)應(yīng)的變量,如下表所示。(Static控件和Group Box控件略)表 資源設(shè)置IDPropertiesMember VariablesTypeMemberIDOKCaption計(jì)算IDCANCEL
48、Caption退出IDC_MRJG doublem_mrjgIDC_MRSLintm_mrslIDC_YJBLdoublem_yjblIDC_XJGLdoublem_xjglIDC_GPGLdoublem_gpglIDC_MCJGdoublem_mcjgIDC_MRCBdoublem_mrcbIDC_MCCBdoublem_mccbIDC_CBHJdoublem_cbhjIDC_SYdoublem_syIDC_AMODE1Caption 計(jì)算投資效益 選中GroupIDC_AMODE2Caption計(jì)算保本賣出價(jià)格IDC_CMODE1Caption上海A股選中GroupIDC_CMODE2Ca
49、ption上海B股IDC_CMODE3Caption 深圳A股IDC_CMODE4Caption 深圳B股3代碼分析 (1) 為“計(jì)算”按鈕添加OnCalCulator()函數(shù),用于計(jì)算股票的收益情況。添加代碼如下:UpdateData();int i,j;double mcje,mcjg1,jsfbl=0;/判斷用戶是否選擇記錄i=GetCheckedRadioButton(IDC_AMODE1,IDC_AMODE2);j=GetCheckedRadioButton(IDC_CMODE1,IDC_CMODE4);double mrje=m_mrjg*m_mrsl;/ 買入金額 /選擇計(jì)算項(xiàng)目
50、為計(jì)算投資效益if (i=IDC_AMODE1) mcje =m_mcjg*(m_mrsl+m_gpgl);/ 賣出金額 /選擇計(jì)算項(xiàng)目為計(jì)算保本賣出價(jià)格,賣出價(jià)格為0else m_mcjg=0.0;mcje=0.0;double yj1=0.0;double yj2=0.0;double yhs1=0.0;double yhs2=0.0;double ghf1=0.0;double ghf2=0.0;double jsf1=0.0;double jsf2=0.0;double buyyhsbl=0;double sellyhsbl=0.1; /選擇交易對(duì)象為上海A股if(j=IDC_CMOD
51、E1)yj1=opdata(mrje*m_yjbl/100);yj1= yj1>10?yj1:10;yhs1=opdata(mrje*buyyhsbl/100);ghf1=10.0; /選擇計(jì)算項(xiàng)目為計(jì)算保本賣出價(jià)格if(i=IDC_AMODE2) m_mrcb=opdata(yj1+yhs1+ghf1+jsf1);m_mcjg=opdata(m_xjgl-m_mrjg*m_mrsl-m_mrcb-ghf1)/(m_mrsl+m_gpgl)*(m_yjbl/100+buyyhsbl/100)-(m_mrsl+m_gpgl); mcjg1=opdata(m_xjgl-m_mrjg*m_mrsl-m_mrcb-ghf1-10.0)/(m_mrsl+m_gpgl)*(buyyhsbl/100)-(m_mrsl+m_gpgl);if (m_mcjg*(m_mrsl+m_gpgl)*m_yjbl/100<10.0)m_mcjg = mcjg1;mcje = m_mcjg*(m_mrsl+m_gpgl);/
溫馨提示
- 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年綜合性商業(yè)大樓施工承包合同版B版
- 醫(yī)院視頻監(jiān)控室年終總結(jié)(3篇)
- 勞動(dòng)仲裁案管轄權(quán)異議申請(qǐng)書(32篇)
- 基于嵌入式linux課程設(shè)計(jì)
- 工程力學(xué)課程設(shè)計(jì)感想
- 中藥學(xué)執(zhí)業(yè)藥師職業(yè)資格考試考點(diǎn)習(xí)題及答案解析
- 中小學(xué)學(xué)生欺凌和校園暴力預(yù)防指導(dǎo)手冊(cè)
- 自制環(huán)保顏色課程設(shè)計(jì)
- 《戰(zhàn)機(jī)代號(hào)中國(guó)》課件
- 探索博物館課程設(shè)計(jì)
- 國(guó)家應(yīng)急救援員(五級(jí))理論考核試題及答案
- 材料測(cè)試方法智慧樹知到期末考試答案2024年
- 總務(wù)工作總結(jié)和計(jì)劃
- 2024年湖北省工業(yè)建筑集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 藝術(shù)療法策劃方案
- 航空基礎(chǔ)英語課件
- 游泳隊(duì)集訓(xùn)計(jì)劃書
- 橡膠制品行業(yè)的社會(huì)責(zé)任與可持續(xù)發(fā)展
- 遠(yuǎn)景風(fēng)機(jī)倒塔事故分析報(bào)告
- 全新特種設(shè)備安全操作培訓(xùn)課件完整版下載
- 廣東省廣州市名校2024屆中考聯(lián)考物理試卷含解析
評(píng)論
0/150
提交評(píng)論