亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 新建 文本文檔.txt

?? database of students score.add,delect,search
?? TXT
字號:
一個簡單的學(xué)生成績管理軟件(ODBC開發(fā)) 
--------------------------------------------------------------------------------

  發(fā)表日期:2005年1月18日   出處:vckbase.com    作者:劉永超     【編輯錄入:webmaster】  
 


 
程序運(yùn)行效果截圖:
 
 

前面我寫過一篇《一個完善的ODBC數(shù)據(jù)庫程序》,大家可能看到過,有鼓勵,也有批評,但是所有這一切只有一個目的就是學(xué)好VC。我學(xué)習(xí)VC已有接近一年的時間,水平菜鳥級,而VC知識庫給大家提供了一個交流的地方,大家相互學(xué)習(xí),共同提高。感謝VC知識庫各版版主!!! 
在《一個完善的ODBC數(shù)據(jù)庫程序》我提到完善它的很多方面,做一個小軟件。我按這個思路做下去,實(shí)現(xiàn)了一些基本功能。程序采用對話框,界面按屬性頁的方式分為兩部分: “班級成績”和“年級成績”。 

程序界面如圖: 
先介紹它的使用: 
1. 選中“班級成績”時,首先選擇班級,這里我只實(shí)現(xiàn)了兩個班級管理。按開始按鈕,三個列表框顯示選中班級的三個記錄集。“開始”按鈕禁止,而其余對記錄集操作的按鈕允許。實(shí)現(xiàn)了增加記錄,刪除記錄,修改記錄,查尋記錄,記錄排序功能。比以前完善的地方主要在查尋記錄,記錄排序上。查尋可以按多中情況,而排序通過單擊列表頭實(shí)現(xiàn),可按升序和降序,每一列都可實(shí)現(xiàn)排序。因?yàn)橛昧硕嘤涗浖栽诠δ軐?shí)現(xiàn)上麻煩了很多,大家可以看源程序。大家看過以后,可能覺得班級各科目列表,老師列表用文件或數(shù)組更容易實(shí)現(xiàn),因?yàn)樗鼈冇涗泜€數(shù)有限,固定。我之所以用數(shù)據(jù)庫,是想學(xué)好ODBC,掌握多記錄集編程。增加記錄,刪除記錄,修改記錄跟以前思路相同,只是由于學(xué)生成績列表的變化引起科目成績的變化,大家在源程序中看處理過程。下面主要看一下查尋記錄和記錄排序。 

查尋記錄 

void CBaDialog::OnFind() 
{ 
// TODO: Add your control notification handler code here 
CFinDialog dlg; 
if( dlg.DoModal()==IDOK) 
{ 
this->Select(); 
m_bSet.Close(); 

if(dlg.m_Getstring2==">=") 
m_Set.m_strFilter.Format("[%s]>=%.2f",dlg.m_Getstring1,dlg.m_find); 
if(dlg.m_Getstring2=="=") 
m_Set.m_strFilter.Format("[%s]=%.2f",dlg.m_Getstring1,dlg.m_find); 
if(dlg.m_Getstring2=="<=") 
m_Set.m_strFilter.Format("[%s]<=%.2f",dlg.m_Getstring1,dlg.m_find); 
m_ListCtrlx.DeleteAllItems(); 
m_Set.Requery(); 
if(m_Set.IsEOF()) 
{ 
AfxMessageBox("沒有符合條件的記錄"); 
m_Set.Close(); 
return ; 
} 
else 
this->Show(); 

} 
} 

記錄排序 void CBaDialog::OnColumnclickList3(NMHDR* pNMHDR, LRESULT* pResult) 
{ 
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; 

if(FALSE== m_bS) 
{ 
 int k= pNMListView->iSubItem; 
 Sort(!m_bIsAsc,k); 
 m_ListCtrlx.DeleteAllItems(); 
 this->Show(); 
} 
*pResult = 0; 
} 

void CBaDialog::Sort(BOOL isAsc,int secol) 
{  
if(m_Set.IsOpen()) 
   m_Set.Close(); 
this->Select(); 
m_bSet.Close(); 
CODBCFieldInfo fieldInfo; 
m_Set.GetODBCFieldInfo(secol,fieldInfo); 
if(isAsc) 
{ 
m_Set.m_strSort=fieldInfo.m_strName+" ASC"; 
    m_bIsAsc=TRUE; 
} 
else 
{ 
m_Set.m_strSort=fieldInfo.m_strName+" DESC"; 
m_bIsAsc=FALSE; 
} 
m_Set.Requery(); 

} 

2.選中"年級成級",先選中"全部記錄"則整個年級的情況顯示出來。這時最下面的"顯示按鈕"禁止取消,按一下,年級的各科情況顯示出來。下面是"全部記錄"和"顯示記錄"。 

全部記錄 void CNaDilalog::OnAll() 
{ 
// TODO: Add your control notification handler code here 
if(m_Set.IsOpen()) 
m_Set.Close(); 
m_ListCtrlx.DeleteAllItems(); 
m_Set.m_strFilter.Empty(); 
m_Set.Open(); 
m_nRecordCount=this->Show(); 
m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]"); 
m_nRecordCount+=this->Show(); 
CString s; 
s.Format("%d",m_nRecordCount); 
GetDlgItem(IDC_STATICALL)->SetWindowText(s); 
GetDlgItem(IDC_SHOW)->EnableWindow(TRUE); 

} 

其中Show()用來顯示在列表中,如下: int CNaDilalog::Show() 
{ 

 int k=0; 

 do 
 {  
 CString s; 
 s.Format("%d",m_Set.m_column1); 
 m_ListCtrlx.InsertItem(k,s,0); 
 m_ListCtrlx.SetItemText(k,1,m_Set.m_column2); 
 s.Format("%.1f",m_Set.m_column3); 
 m_ListCtrlx.SetItemText(k,2,s); 
 s.Format("%.1f",m_Set.m_column4); 
 m_ListCtrlx.SetItemText(k,3,s); 
 s.Format("%.1f",m_Set.m_column5); 
 m_ListCtrlx.SetItemText(k,4,s); 
 s.Format("%.1f",m_Set.m_column6); 
 m_ListCtrlx.SetItemText(k,5,s); 
 s.Format("%.1f",m_Set.m_column7); 
 m_ListCtrlx.SetItemText(k,6,s); 
 s.Format("%.1f",m_Set.m_column8); 
 m_ListCtrlx.SetItemText(k,7,s); 
 s.Format("%.2f",m_Set.m_column9); 
 m_ListCtrlx.SetItemText(k,8,s); 

 k++; 
 m_Set.MoveNext(); 

 } while(!m_Set.IsEOF()); 
 m_Set.Close(); 
 return k; 
  
} 

顯示記錄 void CNaDilalog::OnShow() 
{ 
// TODO: Add your control notification handler code here 
m_ListCtrlj.DeleteAllItems(); 
  CString s;  
  m_bSet.Open(); 
  int i=0; 
  m_bSet.MoveFirst(); 
  do 
{  
  m_ListCtrlj.InsertItem(i,m_bSet.m_column1,0); 
  i++; 
  m_bSet.MoveNext(); 
} while(!m_bSet.IsEOF()); 
  m_bSet.MoveFirst(); 
  for(i=0;i<=4;i++) 
  {   
  score[i][1]=m_bSet.m_column2; 
  score[i][3]=(float)m_bSet.m_column4; 
  score[i][4]=(float)m_bSet.m_column5; 
  if(i!=4) 
  m_bSet.MoveNext(); 
  } 
  m_bSet.Close(); 

  m_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2OBJECT]"); 
  for(i=0;i<5;i++) 
  { 
score[i][1]+=m_bSet.m_column2; 
score[i][2]=score[i][1]/m_nRecordCount; 
score[i][3]+=(float)m_bSet.m_column4; 
score[i][4]+=(float)m_bSet.m_column5; 
if(!m_bSet.IsEOF()) 
  m_bSet.MoveNext(); 
  } 
  m_bSet.Close(); 
 for(i=0;i<5;i++) 
 { 
s.Format("%.1f",score[i][1]); 
m_ListCtrlj.SetItemText(i,1,s); 
s.Format("%.2f",score[i][2]); 
  m_ListCtrlj.SetItemText(i,2,s); 
  s.Format("%d",(int)score[i][3]); 
  m_ListCtrlj.SetItemText(i,3,s); 
  s.Format("%d",(int)score[i][4]); 
  m_ListCtrlj.SetItemText(i,4,s); 
} 
} 

上面的函數(shù)都是對兩個表的使用,大家可以詳細(xì)看一下。 接下來介紹一下數(shù)據(jù)庫和記錄集的情況。采用一個數(shù)據(jù)庫,內(nèi)有六個數(shù)據(jù)表。按班級分 每班有三個表:學(xué)生成級表,各科成績表,任科老師表。按記錄集分,有三個記錄集:學(xué)生成級記錄集,各科成績記錄集,任科老師記錄集。每記錄集包括所有班級相同類型表。這樣增加班級,只需增加表,記錄集不變。 

注意點(diǎn): 

1. 數(shù)據(jù)源由程序注冊,讀者提醒過在運(yùn)行前先判斷數(shù)據(jù)源是否注冊過。我通過操作注冊表設(shè)置鍵值和查尋鍵值實(shí)現(xiàn)。考慮到各主機(jī)的具體情況不同,操作系統(tǒng)不同,我沒有把這部分加入,以免損壞你的注冊表,有興趣的可以一試。 
2. 刪除記錄前可以在列表中選中,然后點(diǎn)擊刪除即可,不用對話框。修改前,選中記錄,點(diǎn)擊修改按鈕,則記錄值顯示在修改對話框中,只需修改所需改動的地方即可。 
這里沒有用這種方法,考濾的是刪除記錄需要密碼,有權(quán)限的才可以。修改可以采用這種方法,讀者可以一試。 
3. 程序達(dá)到實(shí)用的目的還有很遠(yuǎn),可以增加導(dǎo)出記錄和打印功能。增加參數(shù)設(shè)置,能增加班級,增減科目等。這需要建一個可重用基類,不很容易,我正在做。 
4.程序剛完成,優(yōu)化的比較少,層次不清晰,我正在優(yōu)化。 
最后,歡迎高手指教!  
 
 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美高清视频在线高清观看mv色露露十八| 国产又黄又大久久| 色94色欧美sute亚洲线路二| 亚洲欧美另类综合偷拍| 色综合一个色综合| 一区二区三区在线观看欧美| 欧美性猛交xxxx黑人交| 一区二区三区色| 欧美三级电影网| 久久福利视频一区二区| 精品久久久久久久人人人人传媒| 国产又黄又大久久| 国产精品久久久久精k8| 在线精品视频小说1| 婷婷中文字幕一区三区| 日韩精品最新网址| 国产成人免费网站| 亚洲人成网站影音先锋播放| 欧美日韩另类一区| 美女视频黄 久久| 国产欧美日韩在线观看| 91麻豆精品视频| 日韩不卡免费视频| 国产日韩成人精品| 91久久精品日日躁夜夜躁欧美| 亚洲国产精品尤物yw在线观看| 欧美一级片在线| 成人午夜精品在线| 五月天视频一区| 久久一区二区三区四区| 91蜜桃在线观看| 久久精品国产精品亚洲综合| 中文字幕精品综合| 精品视频资源站| 国产suv精品一区二区三区| 亚洲综合色视频| 久久久国产精品不卡| 色狠狠色狠狠综合| 精彩视频一区二区三区| 亚洲欧美成人一区二区三区| 91精品国产色综合久久ai换脸| 国产福利一区二区三区视频在线| 亚洲欧美日韩国产综合| 精品久久久久99| 色狠狠一区二区三区香蕉| 加勒比av一区二区| 亚洲国产精品一区二区www在线| 欧美精品一区二区精品网| 91麻豆国产自产在线观看| 黄色小说综合网站| 三级在线观看一区二区| 国产精品网友自拍| 日韩写真欧美这视频| 在线观看日韩电影| 成人免费视频视频在线观看免费| 日韩成人伦理电影在线观看| 亚洲欧美经典视频| 中文字幕乱码一区二区免费| 欧美mv日韩mv国产网站app| 在线一区二区视频| 成人黄色a**站在线观看| 韩国午夜理伦三级不卡影院| 亚洲h动漫在线| 一区二区日韩电影| 国产精品成人免费精品自在线观看 | 日本一区二区三区视频视频| 欧美剧在线免费观看网站| 91最新地址在线播放| 国产福利不卡视频| 精品一区二区免费在线观看| 青青草伊人久久| 午夜私人影院久久久久| 亚洲国产成人高清精品| 一级精品视频在线观看宜春院| 欧美国产激情一区二区三区蜜月| 日韩一二三区不卡| 日韩欧美激情在线| 日韩一区二区三区免费观看| 91精品国产一区二区三区蜜臀| 在线看一区二区| 欧美色欧美亚洲另类二区| 色呦呦国产精品| 91麻豆国产福利精品| 一本大道久久a久久精品综合| 成人手机在线视频| 国产成人精品一区二| 国产成人精品一区二| 国产91丝袜在线播放九色| 国产一区激情在线| 国产馆精品极品| 岛国精品一区二区| 99精品视频中文字幕| 成人高清视频免费观看| 91麻豆免费看片| 欧美日本在线观看| 日韩欧美亚洲一区二区| 欧美精品一区二区三区四区 | 亚洲国产精品欧美一二99| 亚洲国产日韩在线一区模特| 手机精品视频在线观看| 美日韩黄色大片| 国产麻豆精品95视频| 国产成人综合在线| 91麻豆精品秘密| 69成人精品免费视频| 欧美成人a视频| 亚洲国产精品av| 亚洲欧美另类在线| 蜜桃在线一区二区三区| 国产福利91精品| 在线观看日韩精品| 精品剧情在线观看| 亚洲欧洲日韩女同| 午夜精品久久久久久久99水蜜桃 | 蜜桃av噜噜一区二区三区小说| 国产在线精品免费| 色综合色狠狠天天综合色| 91麻豆精品91久久久久久清纯| 精品国产伦一区二区三区免费| 日本一区二区三区免费乱视频| 亚洲一区二区三区视频在线播放| 日韩中文字幕区一区有砖一区 | 国产成人aaa| 欧美三级日韩在线| 国产欧美一区二区三区鸳鸯浴 | 国产精品99久久久久久似苏梦涵| caoporm超碰国产精品| 欧美日韩黄色影视| 国产日韩欧美亚洲| 五月天丁香久久| 国产v综合v亚洲欧| 欧美一级搡bbbb搡bbbb| 日韩美女视频一区二区 | 国产中文一区二区三区| av网站一区二区三区| 欧美大肚乱孕交hd孕妇| 一区二区三区久久| 国产不卡在线视频| 在线播放日韩导航| 一区在线中文字幕| 国产精品99久久不卡二区| 3atv一区二区三区| 国产伦精品一区二区三区免费迷| 91福利国产成人精品照片| 国产午夜精品一区二区三区嫩草 | 国产成人午夜精品影院观看视频 | 狠狠色丁香久久婷婷综合_中| 欧美亚洲高清一区二区三区不卡| 欧美激情自拍偷拍| 久久国产人妖系列| 欧美久久婷婷综合色| 一区二区三区丝袜| 99天天综合性| 国产女人18毛片水真多成人如厕| 麻豆成人av在线| 欧美巨大另类极品videosbest | 日韩午夜三级在线| 亚洲h动漫在线| 欧洲国产伦久久久久久久| 国产精品久久久久毛片软件| 国产综合色在线| 精品99一区二区三区| 日韩av午夜在线观看| 欧美人体做爰大胆视频| 亚洲国产婷婷综合在线精品| 91麻豆免费在线观看| 中文字幕亚洲一区二区av在线| 国产成人精品免费看| 精品国产乱码久久久久久1区2区| 亚洲va在线va天堂| 欧美日韩一区二区欧美激情 | 久久久91精品国产一区二区精品 | 国产三级久久久| 国产91精品入口| 国产精品黄色在线观看| av一二三不卡影片| 亚洲精品视频在线观看网站| 色婷婷综合久久| 亚洲午夜精品在线| 91精品免费观看| 国产综合久久久久影院| 国产日韩精品视频一区| 国产成人在线影院| 亚洲欧洲精品一区二区三区不卡| av电影天堂一区二区在线观看| 亚洲男女毛片无遮挡| 欧美一a一片一级一片| 午夜不卡av免费| 日韩写真欧美这视频| 国产一区啦啦啦在线观看| 国产欧美一区二区精品性色超碰 | 国产一区二区精品久久99| 久久久久久久久99精品| 国产精品1区2区| 国产性色一区二区| 91官网在线免费观看| 亚洲黄色小视频| 欧美日韩国产精品成人| 国产精品一区二区91| 国产精品国产馆在线真实露脸 |