C++程序設(shè)計(jì)課程設(shè)計(jì)說明書學(xué)生成績管理信息系統(tǒng)設(shè)計(jì)與開發(fā)_第1頁
C++程序設(shè)計(jì)課程設(shè)計(jì)說明書學(xué)生成績管理信息系統(tǒng)設(shè)計(jì)與開發(fā)_第2頁
C++程序設(shè)計(jì)課程設(shè)計(jì)說明書學(xué)生成績管理信息系統(tǒng)設(shè)計(jì)與開發(fā)_第3頁
C++程序設(shè)計(jì)課程設(shè)計(jì)說明書學(xué)生成績管理信息系統(tǒng)設(shè)計(jì)與開發(fā)_第4頁
C++程序設(shè)計(jì)課程設(shè)計(jì)說明書學(xué)生成績管理信息系統(tǒng)設(shè)計(jì)與開發(fā)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、c+程序設(shè)計(jì)課程設(shè)計(jì)說明書題目:學(xué)生成績管理信息系統(tǒng)設(shè)計(jì)與開發(fā) 學(xué)生姓名: 學(xué) 號: 200812010228 院 (系): 理 學(xué) 院 專 業(yè): 數(shù)學(xué)與應(yīng)用數(shù)學(xué) 指導(dǎo)教師: 2010 年 6 月 15 日陜 西 科 技 大 學(xué)c+程序設(shè)計(jì)課程設(shè)計(jì)任務(wù)書理學(xué)院 數(shù)學(xué)與應(yīng)用數(shù)學(xué) 專業(yè) 數(shù)學(xué)082班級 姓名: 學(xué)號: 200812010228題目: 學(xué)生成績管理信息系統(tǒng)設(shè)計(jì)與開發(fā) 課程設(shè)計(jì)從 2010 年 5 月 10日起到 2010 年 7月 2 日1、課程設(shè)計(jì)的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等):1)、設(shè)計(jì)內(nèi)容: 制作學(xué)生成績管理系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)錄入、數(shù)據(jù)刪除、數(shù)據(jù)瀏覽以及數(shù)據(jù)查詢

2、等功能。2)、課程設(shè)計(jì)的要求:包括系統(tǒng)設(shè)計(jì)要求,開發(fā)環(huán)境要求,技術(shù)文檔要求三部分。系統(tǒng)設(shè)計(jì)要求:a) 學(xué)生成績管理系統(tǒng)中不同使用單位(用戶)的學(xué)生人數(shù)事先無法確定b) 該學(xué)生成績管理系統(tǒng)要求有學(xué)生成績錄入,查詢,修改,刪除,保存文件c) 系統(tǒng)使用文字菜單,用戶通過選擇菜單項(xiàng)的編號,實(shí)現(xiàn)系統(tǒng)對子模塊的調(diào)用也可用windows界面下的菜單欄、彈出式菜單、下拉菜單。d) 每個班級每門課程的成績可以從學(xué)生的成績總表提取出子表并存儲成一個文本文件,以便在windows的notebook或者microsoft word下打印,規(guī)定該文本文件名由班級號和課程名拼音字符串構(gòu)成輸入班級號和課程名字符串后自動生成

3、文件名如班,語文,則文件名為:c1yuwen.txt e) 每個學(xué)生學(xué)習(xí)的課程有語文,英語,數(shù)學(xué),物理,化學(xué),生物f) 學(xué)生的成績總表結(jié)構(gòu)約定為(學(xué)號,姓名,課程名,平時成績,期末成績,總評成績)總評成績由程序自動計(jì)算,總評成績平時成績30期末成績70g) 學(xué)號是一個9位整數(shù)構(gòu)成的字符串, 學(xué)號的編碼規(guī)則:入學(xué)年份+在讀年級+在讀班級+班內(nèi)編號;入學(xué)年份用4位整數(shù)構(gòu)成字符串,如2003年入學(xué)則表示為:”2003”;在讀年級用1位整數(shù)構(gòu)成字符串,如正在1年級讀書則表示為:”1”;在讀班級用2位整數(shù)構(gòu)成字符串,如正在1班讀書則表示為:”01”;班內(nèi)編號用2位整數(shù)構(gòu)成字符串,如在班內(nèi)編號為23號則表

4、示為:”23”開發(fā)環(huán)境要求:軟件環(huán)境:windows98/windowsxp/windows2000,visual c+硬件環(huán)境:計(jì)算機(jī)(pen4cpu, 256mram,60g以上硬盤,輸入輸出設(shè)備)技術(shù)文檔要求:按照軟件工程技術(shù)文檔編寫要求進(jìn)行。要求流程圖繪制規(guī)范,模塊功能描述清晰,數(shù)據(jù)字典齊全。程序流程圖如下:程序設(shè)計(jì)學(xué)生成績管理系統(tǒng)能有效地管理每個學(xué)生的各科成績,還可以管理學(xué)生的基本信息以及課程信息。該系統(tǒng)能簡便地實(shí)行相關(guān)記錄的查詢,添加,修改,刪除操作。接下來,我詳細(xì)介紹一下學(xué)生成績表中記錄的查詢,添加,修改,刪除功能,以及實(shí)現(xiàn)這些功能的相關(guān)代碼。學(xué)生基本信息表,課程信息表的功能和功

5、能實(shí)現(xiàn)代碼與此表類似。實(shí)驗(yàn)討論c+程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)收獲與總結(jié)1、實(shí)驗(yàn)總結(jié)a)、實(shí)驗(yàn)完成了題目的要求。b)、編寫代碼基本上能夠滿足編程規(guī)范的要求,代碼的變量命名,以及注釋的書寫,基本能按照要求進(jìn)行。b)、將數(shù)據(jù)結(jié)構(gòu)中的知識復(fù)習(xí)到,并且學(xué)會創(chuàng)新,在代碼的編寫中,學(xué)習(xí)了編程規(guī)范,學(xué)習(xí)了結(jié)構(gòu)化編程。運(yùn)行軟件主界面:添加模塊:修改模塊:修改王浩的信息刪除梁磊峰的成績:導(dǎo)出模塊:參考程序:/ dlgrealbj.cpp : implementation file/#include stdafx.h#include student.h#include dlgrealbj.h/#include cscore

6、.h#include accessconn.h#include tianjiadlg.h#include excel.h#include comdef.h#include dlgxls.h#ifdef _debug#define new debug_new#undef this_filestatic char this_file = _file_;#endif/ cdlgrealbj dialogbool m_basc=true;int m_ncol=0;cdlgrealbj:cdlgrealbj(cwnd* pparent /*=null*/): cdialog(cdlgrealbj:idd

7、, pparent)/afx_data_init(cdlgrealbj)m_strcombo = _t();/afx_data_initm_bpanduan=true;/m_basc=true;/m_ncol=0;void cdlgrealbj:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(cdlgrealbj)ddx_control(pdx, idc_button_xiugai, m_btnxiugai);ddx_control(pdx, idc_button_tianjia, m_bt

8、ntianjia);ddx_control(pdx, idc_button_manage, m_btnmanage);ddx_control(pdx, idc_button_out, m_btnout);ddx_control(pdx, idc_button_delete, m_btndelete);ddx_control(pdx, idc_list_class, m_listclass);ddx_control(pdx, idc_combo_class, m_comboclass);ddx_cbstring(pdx, idc_combo_class, m_strcombo);/afx_dat

9、a_mapbegin_message_map(cdlgrealbj, cdialog)/afx_msg_map(cdlgrealbj)on_cbn_selchange(idc_combo_class, onselchangecomboclass)on_bn_clicked(idc_button_tianjia, onbuttontianjia)on_bn_clicked(idc_button_delete, onbuttondelete)on_bn_clicked(idc_button_xiugai, onbuttonxiugai)on_notify(lvn_columnclick, idc_

10、list_class, oncolumnclicklistclass)on_notify(nm_rclick, idc_list_class, onrclicklistclass)on_bn_clicked(idc_button_out, onbuttonout)/afx_msg_mapend_message_map()/ cdlgrealbj message handlersvoid cdlgrealbj:onok() / todo: add extra validation herereturn ;/cdialog:onok();bool cdlgrealbj:oninitdialog()

11、 cdialog:oninitdialog();/ todo: add extra initialization herecreatdlglist();m_strcombo=一班;updatedata(false);/updatedata();showclassdata();return true; / return true unless you set the focus to a control / exception: ocx property pages should return falsevoid cdlgrealbj:showclassdata()cscore m_score;

12、caccessconn m_conn;_recordsetptr m_set;_bstr_t vsql;/if(!m_conn.m_pconnection-state)/messagebox(hi);m_conn.oninitaccessconn();switch(m_comboclass.getcursel()case 0:vsql=select * from student where 班級=一班;m_strcombo=一班;break;case 1:vsql=select * from student where 班級=二班;m_strcombo=二班;break;case 2:vsql

13、=select * from student where 班級=三班;m_strcombo=三班;break;if(m_listclass.getitemcount()0) m_listclass.deleteallitems();m_conn.getrecordset(vsql);if(m_conn.m_precordset-adoeof)m_conn.cutconn();return ;m_set=m_conn.getrecordset(vsql);m_set-movefirst();while(!m_set-adoeof)m_score.m_strno=(lpcstr)(_bstr_t)

14、m_set-getcollect(學(xué)號);m_score.m_strname=(lpcstr)(_bstr_t)m_set-getcollect(姓名);m_score.m_strclass=(lpcstr)(_bstr_t)m_set-getcollect(班級);m_score.m_strsex=(lpcstr)(_bstr_t)m_set-getcollect(性別);m_score.m_fchinese=m_set-getcollect(語文);m_score.m_fmaths=m_set-getcollect(數(shù)學(xué));m_score.m_fenglish=m_set-getcolle

15、ct(英語);m_score.m_fphysics=m_set-getcollect(物理);m_score.m_fchemistry=m_set-getcollect(化學(xué));m_score.m_fbiology=m_set-getcollect(生物);m_score.m_fsports=m_set-getcollect(體育);changestr(m_score);m_set-movenext();/m_score.m_strname=(_bstr_t)m_set-getcollect(學(xué)號);/m_score.m_strname=(_bstr_t)m_set-getcollect(學(xué)號

16、);m_conn.cutconn();void cdlgrealbj:creatdlglist()cstring str13=學(xué)號,姓名,班級,性別,語文,數(shù)學(xué),英語,物理,化學(xué),生物,體育,總分,平均分;int nindex=0;m_listclass.setextendedstyle(lvs_ex_gridlines|lvs_ex_fullrowselect|lvs_ex_subitemimages);for(;nindexmodifystyle(0,ccs_noresize,0);*/*m_listclass.insertitem(0,你好);m_listclass.setitemtex

17、t(0,1,不好);*/del void cdlgrealbj:onmeasureitem(int nidctl, lpmeasureitemstruct lpmeasureitemstruct) /del /del / todo: add your message handler code here and/or call default/del if(nidctl=idc_list_class)/del lpmeasureitemstruct-itemheight=1000;/del cdialog:onmeasureitem(nidctl, lpmeasureitemstruct);/d

18、el /del void cdlgrealbj:changestr()/del /del cscore scr;/del cstring str;/del /m_listclass.getitemcount();/del str.format(,scr.m_strno);/del /del void cdlgrealbj:changestr(cscore m_scr)cscore scr=m_scr;cstring str;int n=m_listclass.getitemcount();int i=0;if(scr.m_strclass!=m_strcombo) return ;m_list

19、class.insertitem(n,scr.m_strno);m_listclass.setitemtext(n,+i,scr.m_strname);m_listclass.setitemtext(n,+i,scr.m_strclass);m_listclass.setitemtext(n,+i,scr.m_strsex);str.format(%4.1f,scr.m_fchinese);m_listclass.setitemtext(n,+i,str);str.format(%4.1f,scr.m_fmaths);m_listclass.setitemtext(n,+i,str);str.

20、format(%4.1f,scr.m_fenglish);m_listclass.setitemtext(n,+i,str);str.format(%4.1f,scr.m_fphysics);m_listclass.setitemtext(n,+i,str);str.format(%4.1f,scr.m_fchemistry);m_listclass.setitemtext(n,+i,str);str.format(%4.1f,scr.m_fbiology);m_listclass.setitemtext(n,+i,str);str.format(%4.1f,scr.m_fsports);m_

21、listclass.setitemtext(n,+i,str);str.format(%4.1f,scr.fscore();m_listclass.setitemtext(n,+i,str);str.format(%4.1f,scr.faverage();m_listclass.setitemtext(n,+i,str);m_listclass.setitemdata(n,n);void cdlgrealbj:onselchangecomboclass() / todo: add your control notification handler code hereshowclassdata(

22、);/updatedata();void cdlgrealbj:onbuttontianjia() / todo: add your control notification handler code herem_bpanduan=true;ctianjiadlg dlg(this);dlg.domodal();/cscore score;/*if(idok=dlg.domodal()if(dlg.m_bwrite)/messagebox(hello);dlg.destroywindow();onbuttontianjia();elsemessagebox(hi);*/score.m_strn

23、o=dlg.m_strno;/del cscore cdlgrealbj:rescore()/del /del ctianjiadlg dlg;/del cscore score;/del if(dlg.domodal()!=idok) return score;/del /del void cdlgrealbj:onbuttondelete() / todo: add your control notification handler code herecstring str;caccessconn m_conn;/int nindex=-1;/nindex=m_listclass.getn

24、extitem(nindex, lvni_selected);position pos=m_listclass.getfirstselecteditemposition();if(pos=null)messagebox(請選擇你要刪除的一行);return ;int nindex=m_listclass.getnextselecteditem(pos);str=m_listclass.getitemtext(nindex,0);if(messagebox(你確定要刪除+str+這行數(shù)據(jù)嗎?,刪除功能,mb_okcancel)!=idok)return ;_bstr_t vsql=delete

25、from student where 學(xué)號=+str+;_recordsetptr m_set;m_conn.oninitaccessconn();/m_set=m_conn.getrecordset();trym_set=m_conn.getrecordset(select * from student);m_conn.executesql(vsql);m_set-update();catch(_com_error e)messagebox(失敗);return ;messagebox(成功刪除“+str+”);m_conn.cutconn();showclassdata();void cd

26、lgrealbj:onbuttonxiugai() / todo: add your control notification handler code herem_bpanduan=false;int nindex=-1;nindex=m_listclass.getnextitem(nindex, lvni_selected);if(nindex=-1)messagebox(請選擇你要修改的一行);return ;ctianjiadlg dlg(this);dlg.domodal();void cdlgrealbj:oncolumnclicklistclass(nmhdr* pnmhdr,

27、lresult* presult) nm_listview* pnmlistview = (nm_listview*)pnmhdr;/ todo: add your control notification handler code here/*cstring str13=學(xué)號,姓名,班級,性別,語文,數(shù)學(xué),英語,物理,化學(xué),生物,體育,總分,平均;static bis=0;cscore m_score;int nindex= pnmlistview-isubitem;_bstr_t vsql;if(bis)vsql=select * from student where 班級=+m_strc

28、ombo+ order by +strnindex+ asc;elsevsql=select * from student where 班級=+m_strcombo+ order by +strnindex+ desc;caccessconn m_conn;m_conn.oninitaccessconn();m_conn.getrecordset(vsql);if(m_conn.m_precordset-adoeof)m_conn.cutconn();return ;_recordsetptr m_set;m_set=m_conn.getrecordset(vsql);m_set-movefi

29、rst();if(m_listclass.getitemcount()0) m_listclass.deleteallitems();while(!m_set-adoeof)m_score.m_strno=(lpcstr)(_bstr_t)m_set-getcollect(學(xué)號);m_score.m_strname=(lpcstr)(_bstr_t)m_set-getcollect(姓名);m_score.m_strclass=(lpcstr)(_bstr_t)m_set-getcollect(班級);m_score.m_strsex=(lpcstr)(_bstr_t)m_set-getcol

30、lect(性別);m_score.m_fchinese=m_set-getcollect(語文);m_score.m_fmaths=m_set-getcollect(數(shù)學(xué));m_score.m_fenglish=m_set-getcollect(英語);m_score.m_fphysics=m_set-getcollect(物理);m_score.m_fchemistry=m_set-getcollect(化學(xué));m_score.m_fbiology=m_set-getcollect(生物);m_score.m_fsports=m_set-getcollect(體育);changestr(m_

31、score);m_set-movenext();m_conn.cutconn();bis=+bis%2;*/if(pnmlistview-isubitem=m_ncol)m_basc=!m_basc;elsem_basc=true;m_ncol=pnmlistview-isubitem;m_listclass.sortitems(comparefun,(dword)&m_listclass);*presult = 0;void cdlgrealbj:onrclicklistclass(nmhdr* pnmhdr, lresult* presult) / todo: add your contr

32、ol notification handler code herecmenu menu,*psubmenu;menu.loadmenu(idr_menu);psubmenu=menu.getsubmenu(0);cpoint point;getcursorpos(&point);int nindex=-1;nindex=m_listclass.getnextitem(nindex, lvni_selected);if(nindex=-1)return ;/*if(m_listclass.getitemcount()m_listclass.getitemcount() return ;*/psu

33、bmenu-trackpopupmenu(tpm_leftalign,point.x,point.y,this);/messagebox(hello);*presult = 0;int callback cdlgrealbj:comparefun(lparam lparam1,lparam lparam2,lparam lparamsort)clistctrl *plistctrl = (clistctrl*)lparamsort;int rvalue=0;int nitem1,nitem2;lvfindinfo findinfo;findinfo.flags=lvfi_param;findi

34、nfo.lparam=lparam1;nitem1=plistctrl-finditem(&findinfo,-1);findinfo.lparam=lparam2;nitem2=plistctrl-finditem(&findinfo,-1);if(nitem1 = -1)|(nitem2 = -1) return 0;cstring str1,str2;str1=plistctrl-getitemtext(nitem1,m_ncol);str2=plistctrl-getitemtext(nitem2,m_ncol);if(m_ncol=0)&(m_ncol num2) rvalue =

35、1;else rvalue = -1;elseif(num1 = num2) rvalue = 0;else if(num1 adoeof)excelapp.quit();rgmyrge.releasedispatch(); wsmysheet.releasedispatch(); wssmysheets.releasedispatch(); wbmybook.releasedispatch(); wbsmybooks.releasedispatch(); excelapp.releasedispatch(); m_conn.cutconn();return ;m_conn.m_precord

36、set-movefirst();rgmyrge.setitem(_variant_t(long)1),_variant_t(long)1),_variant_t(學(xué)號);/*rgmyrge.getitem(_variant_t(long)1),vtmissing);rgmyrge.setcolumnwidth(_variant_t(long)12);*/rgmyrge.setitem(_variant_t(long)1),_variant_t(long)2),_variant_t(姓名);rgmyrge.setitem(_variant_t(long)1),_variant_t(long)3)

37、,_variant_t(班級);rgmyrge.setitem(_variant_t(long)1),_variant_t(long)4),_variant_t(性別);rgmyrge.setitem(_variant_t(long)1),_variant_t(long)5),_variant_t(語文);rgmyrge.setitem(_variant_t(long)1),_variant_t(long)6),_variant_t(數(shù)學(xué));rgmyrge.setitem(_variant_t(long)1),_variant_t(long)7),_variant_t(英語);rgmyrge.

38、setitem(_variant_t(long)1),_variant_t(long)8),_variant_t(物理);rgmyrge.setitem(_variant_t(long)1),_variant_t(long)9),_variant_t(化學(xué));rgmyrge.setitem(_variant_t(long)1),_variant_t(long)10),_variant_t(生物);rgmyrge.setitem(_variant_t(long)1),_variant_t(long)11),_variant_t(體育);rgmyrge.setitem(_variant_t(lon

39、g)1),_variant_t(long)12),_variant_t(總分);rgmyrge.setitem(_variant_t(long)1),_variant_t(long)13),_variant_t(平均);for(int i=2,j=0;!m_conn.m_precordset-adoeof;i+,j=0)string=(lpcstr)(_bstr_t)m_conn.m_precordset-getcollect(學(xué)號);rgmyrge.setitem(_variant_t(long)i),_variant_t(long)+j),_variant_t(string); strin

40、g=(lpcstr)(_bstr_t)m_conn.m_precordset-getcollect(姓名);rgmyrge.setitem(_variant_t(long)i),_variant_t(long)+j),_variant_t(string); string=(lpcstr)(_bstr_t)m_conn.m_precordset-getcollect(班級);rgmyrge.setitem(_variant_t(long)i),_variant_t(long)+j),_variant_t(string); string=(lpcstr)(_bstr_t)m_conn.m_prec

41、ordset-getcollect(性別);rgmyrge.setitem(_variant_t(long)i),_variant_t(long)+j),_variant_t(string); string.format(%s,(lpcstr)(_bstr_t)m_conn.m_precordset-getcollect(語文);rgmyrge.setitem(_variant_t(long)i),_variant_t(long)+j),_variant_t(string); string.format(%s,(lpcstr)(_bstr_t)m_conn.m_precordset-getco

42、llect(數(shù)學(xué));/messagebox(m_conn.m_precordset-getcollect(數(shù)學(xué));rgmyrge.setitem(_variant_t(long)i),_variant_t(long)+j),_variant_t(string); string.format(%s,(lpcstr)(_bstr_t)m_conn.m_precordset-getcollect(英語);rgmyrge.setitem(_variant_t(long)i),_variant_t(long)+j),_variant_t(string); string.format(%s,(lpcstr)(_bstr_t)m_conn.m_precordset-getcollect(物理);rgmyrge.setitem(_variant_t(long)i),_variant_t(long)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論