基于VC++的學(xué)生信息管理系統(tǒng)_第1頁
基于VC++的學(xué)生信息管理系統(tǒng)_第2頁
基于VC++的學(xué)生信息管理系統(tǒng)_第3頁
基于VC++的學(xué)生信息管理系統(tǒng)_第4頁
基于VC++的學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

25-《VisualC++程序設(shè)計》課程設(shè)計報告班級:計算機系軟件Z102班姓名:曹立紅學(xué)號:104431引言該次課程設(shè)計后臺數(shù)據(jù)庫連接ACCESS并創(chuàng)建數(shù)據(jù)庫應(yīng)用程序。創(chuàng)建支持數(shù)據(jù)庫的單文檔的應(yīng)用程序使用ListControl控件顯示并操作原數(shù)據(jù)庫表格內(nèi)容,其功能可實現(xiàn)表格中信息項目的添加、修改、刪除、刷新、查詢,其中查詢功能分為單條件查詢和多條件查詢兩種。二.系統(tǒng)設(shè)計1.主頁面如下:運行之后ACCESS表中的數(shù)據(jù)就會在ListControl控件中顯示通過主頁面可以對表格中信息項目進行簡單的刷新,刪除,單條件查詢(按姓名,學(xué)號,所在系,性別,出生年份的單獨查詢)和多條件查詢(按姓名,學(xué)號,所在系,性別,出生年份的組合查詢)。2.點擊添加按鈕即可進入添加對話框如下:可以輸入相關(guān)數(shù)據(jù)點擊添加按鈕之后即可在原數(shù)據(jù)表中進行添加一行,并且可以進行多次添加,點擊確定之后刷新即可在ListControl控件中顯示。3.點擊修改按鈕即可進入修改對話框如下:可以對已有的相關(guān)數(shù)據(jù)進行修改點擊確定按鈕之后即可改變原數(shù)據(jù)表中數(shù)據(jù)行,刷新即可在ListControl控件中顯示。inti=0;CStringstr,str1;while(!m_pSet->IsEOF())//m_pSetCSet類的指針用于指向原數(shù)據(jù)庫表格內(nèi)容。m_column1,m_column2,m_column3,m_column4,m_column5分別對應(yīng)原數(shù)據(jù)庫表格的學(xué)號,姓名,性別,出生日期,系所在列。{m_Clist.InsertItem(i,m_pSet->m_column1);m_Clist.SetItemText(i,1,m_pSet->m_column2);m_Clist.SetItemText(i,2,m_pSet->m_column3);intyear=m_pSet->m_column4.GetYear();intmonth=m_pSet->m_column4.GetMonth();intday=m_pSet->m_column4.GetDay();str1.Format("%d/%d/%d",year,month,day);//將原數(shù)據(jù)庫表格的第i行的相應(yīng)列列的 m_Clist.SetItemText(i,3,str1);內(nèi)容插到ListControl控件的i行各列中;m_Clist.SetItemText(i,4,m_pSet->m_column5);i++;m_pSet->MoveNext();//m_pSet所指向的行下移。}intn=m_Clist.GetItemCount();if(n==0)//如果ListControl控件中的顯示的內(nèi)容為空AfxMessageBox("sorry!沒有找到匹配項!");}b.刪除功能的實現(xiàn):voidCKeView::Onshanchu(){intn=-1;n=m_Clist.GetSelectionMark();//n為選中的行號;if(n<0)//如果沒有進行選擇則給出提示{ AfxMessageBox("請選擇刪除項!"); return;}CStrings,str;if(m_pSet->IsOpen()) m_pSet->Close();/如果此時數(shù)據(jù)庫表打開則進行關(guān)閉str=m_Clist.GetItemText(n,0);//取出第n行的第0列的字段即學(xué)號列s="select*fromstudentwhere學(xué)號='"+str+"'";m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);以S所示條件對數(shù)據(jù)庫表進行打開。m_pSet->Delete();//刪除m_pSet->Requery();Onchaxun();//調(diào)用刷新函數(shù)在ListControl控件中顯示 }c.修改功能的實現(xiàn):voidCKeView::Onxiugai(){ intn=m_Clist.GetSelectionMark();//n為選中的行號 if(n<0)//如果沒有進行選擇則給出提示 { AfxMessageBox("請選擇修改項!"); return; } CStringstr,str1,s; str=m_Clist.GetItemText(n,0);//取出第n行的第0列的字段即學(xué)號列if(m_pSet->IsOpen()) m_pSet->Close();如果此時數(shù)據(jù)庫表打開則進行關(guān)閉 str1="select*fromstudentwhere學(xué)號='"+str+"'";m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,str1);以S所示條件對數(shù)據(jù)庫表進行打開。 CXgDlgobj;//修改對話框中建立的類的對象 obj.m_xh=m_pSet->m_column1; obj.m_xm=m_pSet->m_column2; obj.m_vc1=m_pSet->m_column3; obj.m_vrq=m_pSet->m_column4;obj.m_vc2=m_pSet->m_column5;//將需要修改的的行中的各列的內(nèi)容傳遞給修改對話框的各變量中if(obj.DoModal()==IDOK)//修改完畢點擊確定后則將修改后的修改對話框的各變量中的值傳{遞給數(shù)據(jù)表中對應(yīng)行中的各列 m_pSet->Edit(); UpdateData(1);m_pSet->m_column1=obj.m_xh; m_pSet->m_column2=obj.m_xm; m_pSet->m_column3=obj.m_vc1; m_pSet->m_column4=obj.m_vrq; m_pSet->m_column5=obj.m_vc2;m_pSet->Update(); }}d.添加功能的實現(xiàn):在主頁面的“添加”按鈕中寫入下面的代碼:voidCKeView::Ontianjia(){CTjDlgobj;//定義添加對話框類的對象obj.DoModal();//打開添加對話框; }在添加對話框中的添加按鈕中加入以下代碼:voidCTjDlg::Ontj(){UpdateData(1);if(m_xuehao=="")//如果添加時學(xué)號主鍵為空則提示錯誤信息 { AfxMessageBox("請輸入完整信息項!"); return; } if(m_pSet2.IsOpen()) m_pSet2.Close();//如果此時數(shù)據(jù)庫表打開則進行關(guān)閉m_pSet2.Open();//在進行打開 m_pSet2.AddNew();//為原數(shù)據(jù)添加新的一行 m_pSet2.m_column1=m_xingming; m_pSet2.m_column2=m_xuehao; m_pSet2.m_column3=m_xb; m_pSet2.m_column4=m_time; m_pSet2.m_column5=m_xi;//將添加對話框中新設(shè)定的值依此賦給原數(shù)據(jù)庫表格中的各列;m_pSet2.Update();}刷新之后即可在ListControl控件中顯示。d.查詢功能的實現(xiàn):1.單條件查詢:選中單條件查詢的單選按鈕后則主頁面中的總查詢按鈕不可用,而每一個組框中對應(yīng)的查詢按鈕均可用,則在單條件查詢的單選按鈕中寫入以下代碼:voidCKeView::OnRadio6(){ GetDlgItem(IDC_BUTTON10)->EnableWindow(FALSE);//獲取對應(yīng)按鈕的ID并設(shè)定相應(yīng)按鈕的 GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);EnableWindow 屬性FALSE為不可用TRUE為GetDlgItem(IDC_BUTTON6)->EnableWindow(TRUE);可用;GetDlgItem(IDC_BUTTON7)->EnableWindow(TRUE);GetDlgItem(IDC_BUTTON8)->EnableWindow(TRUE);GetDlgItem(IDC_BUTTON9)->EnableWindow(TRUE);}(1)按姓名查詢:在按姓名查詢組框的查詢按鈕中寫如以下代碼:voidCKeView::Onchaxun(){UpdateData(1);if(m_pSet->IsOpen())m_pSet->Close();CStrings;s="select*fromstudentwhere姓名like'"+m_ve1+"%'";//在表中查詢姓名列與edit中的輸入的變量相匹m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);配的行。并以該條件打開數(shù)據(jù)表。m_pSet->Requery();m_Clist.DeleteAllItems();//將ListControl控件現(xiàn)有的數(shù)據(jù)項目全部刪除。Disp();//調(diào)用Disp()函數(shù)將原數(shù)據(jù)庫表中的內(nèi)容重新顯示。}(2)按學(xué)號查詢:在按學(xué)號查詢組框的查詢按鈕中寫如以下代碼:voidCKeView::Onchaxun1(){ UpdateData(1);if(m_pSet->IsOpen()) m_pSet->Close();CStrings;s="select*fromstudentwhere學(xué)號='"+m_ve2+"'";//在表中查詢學(xué)號列與edit中的輸入的變量相匹m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);配的行。并以該條件打開數(shù)據(jù)表。m_pSet->Requery();m_Clist.DeleteAllItems();//將ListControl控件現(xiàn)有的數(shù)據(jù)項目全部刪除。Disp(); //調(diào)用Disp()函數(shù)將原數(shù)據(jù)庫表中的內(nèi)容重新顯示。 }(3)按性別查詢:在按性別查詢組框的查詢按鈕中寫如以下代碼:voidCKeView::Onchaxun3(){UpdateData(1);if(m_pSet->IsOpen()) m_pSet->Close();CStrings,s1;if(m_vr1==0)//如果單選按鈕中選中第一個按鈕s1="男";//則令單選按鈕的變量賦值為“男”;elses1="女";//否則賦值為“女”;s="select*fromstudentwhere性別='"+s1+"'";m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);m_pSet->Requery();m_Clist.DeleteAllItems();Disp(); }(4)按所在系查詢:在按所在系查詢組框的查詢按鈕中寫如以下代碼:voidCKeView::Onchaxun2(){//UpdateData(1);if(m_pSet->IsOpen()) m_pSet->Close();CStrings,s1;intn=m_cc1.GetCurSel();//n為當前選中項的下標;m_cc1.GetLBText(n,s1);//獲取當前選中項的值并賦給變量s1;m_vc1=s1;//并將該變量賦給組合框的變量。UpdateData(0);s="select*fromstudentwhere系='"+m_vc1+"'";m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);m_pSet->Requery();m_Clist.DeleteAllItems();Disp(); }(5)按出生年份查詢:在按出生年份查詢組框的查詢按鈕中寫如以下代碼:voidCKeView::Onchaxun4(){ UpdateData(1);if(m_pSet->IsOpen()) m_pSet->Close();CStrings,s1,s3;if(m_vr2==0)s1=">";//如果單選按鈕選中第一項則為變量s1賦值為>elseif(m_vr2==1)s1="=";選中第二項則為變量s1賦值為=elses1="<";選中第三項則為變量s1賦值為<;s3.Format("%d",m_ve3);//將編輯框中的int類型的變量轉(zhuǎn)換為字符串類型并賦給s3;s="select*fromstudentwhereyear(出生日期)"+s1+s3;m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);m_pSet->Requery();m_Clist.DeleteAllItems();Disp();}2.多條件查詢選中多條件查詢的單選按鈕后則主頁面中的總查詢按鈕可用,而每一個組框中對應(yīng)的查詢按鈕均不可用,則在多條件查詢的單選按鈕中寫入以下代碼:voidCKeView::OnRadio7(){GetDlgItem(IDC_BUTTON10)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON6)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON7)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON8)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON9)->EnableWindow(FALSE);}在主頁面中的總查詢按鈕中寫入以下代碼:voidCKeView::Onchaxun5(){ CStrings,s1,s2,s3;UpdateData(1); if(m_vk1==1)//如果姓名的復(fù)選框被選中則為str10進行賦值以下字符串str10="姓名like'"+m_ve1+"%'"; elsestr10="";//否則為其賦空值if(m_vk2==1)//如果姓名的復(fù)選框被選中則為str11進行賦值以下字符串str11="and系='"+m_vc1+"'";elsestr11="";//否則為其賦空值 if(m_vk3==1)// 如果性別的復(fù)選框被選中 { if(m_vr1==0)//如果選中第一項則為s1賦值為”男”否則為其賦值為“女”s1="男";elses1="女";str12="and性別='"+s1+"'"; } elsestr12="";if(m_vk4==1) {if(m_vr2==0)s2=">";elseif(m_vr2==1)s2="=";elses2="<";s3.Format("%d",m_ve3);str13

溫馨提示

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

最新文檔

評論

0/150

提交評論