




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华北科技学院课程设计说明书面向对象程序设计(c+)课程设计说明书 设计题目: 铂金教室管理系统 第1页 共 25 页目录第一章 绪论21.1设计总说明21.2关键字21.3课题意义21.4课题目的31.5研究范围3第二章 系统说明42.1系统总体框架42.2类的实现5第三章 系统总设计63.1选择63.1.1选择界面63.1.2登陆界面的代码63.2登录113.2.1登陆界面113.2.2登陆界面的代码113.3教室信息管理主界面143.3.1主界面143.3.2主界面的代码143.4查询183.4.1查询界面183.2.2查询的代码183.5添加213.5.1添加界面213.5.2主要实现代
2、码21第四章 总结24参考文献25华北科技学院课程设计说明书第一章 绪论1.1设计总说明为了培养和锻炼自身的计算机信息软件设计和开发能力,使自己能独立开发软件。通过本系内的课程设计课题的安排,我根据自身的能力程度,选择了教室管理系统,用于教室的日常管理。通过此课程的设计,结合有关的知识和相关技术资料,如:面向对象程序设计(c+),对这个课本一学期的学习对程序设计有了很好的认识了,能够独立编写程序实现对教室信息的添加、查询以及和保存的操作。结合有关的知识和相关技术资料,有一个很好的教室管理系统,使教室的管理更加便捷。过去落后的教室管理系统已经不适应现代社会的需求了,急需出现一套更符合学校需要的新
3、一代教室管理系统。查询历史数据模块:教室容量、类型、功能、使用情况等,通过该教室管理系统地运行,使办公人员可以轻松快捷的完成对教室管理的任务,提高教室信息管理效率,使教室的使用情况简单化、明了化。1.2关键字教室管理系统;c+;mfc1.3课题意义当今时代,计算机信息已成为我们日常生活不可或缺的一部分。运用计算机技术可以实现很多复杂繁琐的功能,增加信息处理速度。随着网络用户要求的不断提高及计算机科学的迅速发展,,这些技术越来越纯熟,越来越丰富化。本课题的研究对于大学的教室管理有较大的好处,大学里教室数量较多,上课和学生自习的流动性强,这就为教室的管理带来一些困难,传统的教室管理方式耗人力较多,
4、随着时代的发展,它就显得跟不上时代的步伐,为了能够更加有效的耗人力少的管理教室,也为了能够适应时代的发展,很有必要利用计算机,运用程序开发软件来开发一个教室管理系统。1.4课题目的课程设计的目的是总结及运用一学期来所学的知识,训练我们灵活应用所学c+知识,独立完成问题分析、总结设计、详细设计和编程实现等软件开发全过程的综合实践能力。巩固、深化理论知识,提高编程水平,并在此过程中培养我们严谨的科学态度和良好的工作作风及团结协作的精神。1.5研究范围主要用于教室卡管理系统,它可以帮助我们有效、准确、并且高效实现的完成查询事件。此系统操作方便效率。系统实现的主要有学生查询和管理员对教室信息的添加、保
5、存、删除等。第二章 系统说明2.1系统总体框架用户选择界面管理员学生用户名登录密码查询退出输入编号管理添加显示结果保存查询输入退出确认输入编号保存显示结果结束启动系统后,首先进入用户选择。其中学生子系统可以通过输入条件查询所需信息,管理员子系统可以根据界面提示对教室信息进行添加、删除、查询、保存等操作。2.2类的实现实现描述教室的类classroom,记录系统中现有那些教室信息。此类包含的数据成员有,教室编号bianhao,容纳人数renshu,教室功能gongneng,教室类型leixing,使用情况shiyong。第三章 系统总设计3.1选择3.1.1选择界面图 选择对话框操作员操作程序时
6、需要选择用户性质,学生可直接进入查询界面,管理员则进入登录界面。3.1.2登陆界面的代码cmydlg:cmydlg(cwnd* pparent /*=null*/): cdialog(cmydlg:idd, pparent)/afx_data_init(cmydlg)/ note: the classwizard will add member initialization here/afx_data_init/ note that loadicon does not require a subsequent destroyicon in win32m_hicon = afxgetapp()-
7、loadicon(idr_mainframe);void cmydlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(cmydlg)/ note: the classwizard will add ddx and ddv calls here/afx_data_mapbegin_message_map(cmydlg, cdialog)/afx_msg_map(cmydlg)on_wm_paint()on_wm_querydragicon()on_bn_clicked(idc_button2
8、, onmanager)on_bn_clicked(idc_button1, onstudent)/afx_msg_mapend_message_map()/ cmydlg message handlersbool cmydlg:oninitdialog()cdialog:oninitdialog();/ set the icon for this dialog. the framework does this automatically/ when the applications main window is not a dialogseticon(m_hicon, true);/ set
9、 big iconseticon(m_hicon, false);/ set small icon/ todo: add extra initialization herereturn true; / return true unless you set the focus to a control/ if you add a minimize button to your dialog, you will need the code below/ to draw the icon. for mfc applications using the document/view model,/ th
10、is is automatically done for you by the framework.void cmydlg:onpaint() if (isiconic()cpaintdc dc(this); / device context for paintingsendmessage(wm_iconerasebkgnd, (wparam) dc.getsafehdc(), 0);/ center icon in client rectangleint cxicon = getsystemmetrics(sm_cxicon);int cyicon = getsystemmetrics(sm
11、_cyicon);crect rect;getclientrect(&rect);int x = (rect.width() - cxicon + 1) / 2;int y = (rect.height() - cyicon + 1) / 2;/ draw the icondc.drawicon(x, y, m_hicon);else cpaintdc dc(this); crect rect; getclientrect(&rect); cdc dcmem; dcmem.createcompatibledc(&dc); cbitmap bmpbackground; bmpbackground
12、.loadbitmap(idb_bitmap1); /idb_bitmap是你自己的图对应的id bitmap bitmap; bmpbackground.getbitmap(&bitmap); cbitmap *pbmpold=dcmem.selectobject(&bmpbackground); dc.stretchblt(0,0,rect.width(),rect.height(),&dcmem,0,0, bitmap.bmwidth,bitmap.bmheight,srccopy); / the system calls this to obtain the cursor to dis
13、play while the user drags/ the minimized window.hcursor cmydlg:onquerydragicon()return (hcursor) m_hicon;void cmydlg:onmanager() / todo: add your control notification handler code here updatedata(true); cdialog:onok();denglu m; m.domodal();void cmydlg:onstudent() updatedata(true); cdialog:onok();chx
14、 m; m.domodal();3.2登录3.2.1登陆界面图 登陆对话框 操作员用户性质选择为管理员时必须输入登陆口令,包括用户名和密码,只有输入正确的登录口令操作员才能进入教室管理系统的管理界面进行操作。3.2.2登陆界面的代码denglu:denglu(cwnd* pparent /*=null*/): cdialog(denglu:idd, pparent)/afx_data_init(denglu)/ note: the classwizard will add member initialization here/afx_data_initvoid denglu:dodataexc
15、hange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(denglu)/ note: the classwizard will add ddx and ddv calls here/afx_data_mapbegin_message_map(denglu, cdialog)/afx_msg_map(denglu)on_wm_paint()on_bn_clicked(idc_button1, onqrdl)/afx_msg_mapend_message_map()/ denglu message handlersvoi
16、d denglu:onpaint() cpaintdc dc(this); / device context for painting crect rect; getclientrect(&rect); cdc dcmem; dcmem.createcompatibledc(&dc); cbitmap bmpbackground; bmpbackground.loadbitmap(idb_bitmap2); /idb_bitmap是你自己的图对应的id bitmap bitmap; bmpbackground.getbitmap(&bitmap); cbitmap *pbmpold=dcmem
17、.selectobject(&bmpbackground); dc.stretchblt(0,0,rect.width(),rect.height(),&dcmem,0,0, bitmap.bmwidth,bitmap.bmheight,srccopy);/ do not call cdialog:onpaint() for painting messagesvoid denglu:onqrdl() updatedata(true); cdialog:onok();gongneng dlg1;cstring aa,bb;this-getdlgitemtext(idc_edit1,aa);thi
18、s-getdlgitemtext(idc_edit2,bb);if(aa=123)&(bb=123) dlg1.domodal();elsemessagebox(用户名或密码错误,0);exit(0);3.3教室信息管理主界面3.3.1主界面 图 主界面对话框 从这个主界面对话框我们能很清楚的看到操作员可以通过主界面对话框中的按钮提示对教室信息就操作,包括:查询、添加、删除、保存 。 3.3.2主界面的代码gongneng:gongneng(cwnd* pparent /*=null*/): cdialog(gongneng:idd, pparent)/afx_data_init(gongne
19、ng)/afx_data_initvoid gongneng:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(gongneng)ddx_control(pdx, idc_list1, m_list1);/afx_data_mapbegin_message_map(gongneng, cdialog)/afx_msg_map(gongneng)on_bn_clicked(idc_button1, onbutton1)on_bn_clicked(idc_button2, onbutton2)on
20、_bn_clicked(idc_button3, onbutton3)on_bn_clicked(idc_button4, onbutton4)on_bn_clicked(idc_button5, onbutton5)on_wm_paint()/afx_msg_mapend_message_map()/ gongneng message handlersvoid gongneng:onbutton1() chx c;c.domodal();void gongneng:onbutton2() add add;if(add.domodal()cstring s;m_list1.insertitem
21、(0,);s.format(%s,add.m_bianhao); m_list1.setitemtext(0,0,s); m_list1.setitemtext(0,1,add.m_renshu); s.format(%s,add.m_renshu); m_list1.setitemtext(0,1,s);s.format(%s,add.m_gongneng); m_list1.setitemtext(0,2,s);s.format(%s,add.m_leixing); m_list1.setitemtext(0,3,s);s.format(%s,add.m_shiyong); m_list1
22、.setitemtext(0,4,s);void gongneng:onbutton3() :shellexecute(null, open, file.txt, null, null, sw_shownormal);void gongneng:onbutton4() if(this-messagebox(确定删除吗?,删除,mb_okcancel)=1)if(m_list1.getselectedcount()=0;i-)if(m_list1.getitemstate(i,lvis_selected)m_list1.deleteitem(i);bool gongneng:oninitdial
23、og() cdialog:oninitdialog();m_list1.setextendedstyle(lvs_ex_flatsb|lvs_ex_fullrowselect|lvs_ex_headerdragdrop|lvs_ex_oneclickactivate|lvs_ex_gridlines);m_list1.insertcolumn(0,编号,lvcfmt_center,110,0);m_list1.insertcolumn(1,人数,lvcfmt_center,110,1);m_list1.insertcolumn(2,功能,lvcfmt_center,110,2);m_list1
24、.insertcolumn(3,类型,lvcfmt_center,110,3); m_list1.insertcolumn(4,是否使用,lvcfmt_center,110,4);return true; / return true unless you set the focus to a control / exception: ocx property pages should return falsevoid gongneng:onbutton5() fstream out;int i=0;out.open(file.txt,ios:out|ios:binary);for(i=0;m_
25、list1.getitemtext(i,1)!=;i+) for(int j=0;j6;j+)out m_list1.getitemtext(i,j);afxmessagebox(保存成功!);void gongneng:onpaint() cpaintdc dc(this); / device context for painting crect rect; getclientrect(&rect); cdc dcmem; dcmem.createcompatibledc(&dc); cbitmap bmpbackground; bmpbackground.loadbitmap(idb_bi
26、tmap5); bitmap bitmap; bmpbackground.getbitmap(&bitmap); cbitmap *pbmpold=dcmem.selectobject(&bmpbackground); dc.stretchblt(0,0,rect.width(),rect.height(),&dcmem,0,0, bitmap.bmwidth,bitmap.bmheight,srccopy); / do not call cdialog:onpaint() for painting messages3.4查询3.4.1查询界面图 查询教室信息的界面 此窗口、教室可由操作员提供
27、的教室编号,通过点击查询来显示教室的基本信息,包括:容纳人数、教室类型功能、是否在使用。3.2.2查询的代码chx:chx(cwnd* pparent /*=null*/): cdialog(chx:idd, pparent)/afx_data_init(chx)m_bianhao = _t();m_renshu = _t();m_gongneng = _t();m_leixing = _t();m_shiyong = _t();/afx_data_initvoid chx:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx
28、);/afx_data_map(chx)ddx_text(pdx, idc_edit1, m_bianhao);ddx_text(pdx, idc_edit2, m_renshu);ddx_text(pdx, idc_edit3, m_gongneng);ddx_text(pdx, idc_edit4, m_leixing);ddx_text(pdx, idc_edit5, m_shiyong);/afx_data_mapbegin_message_map(chx, cdialog)/afx_msg_map(chx)on_bn_clicked(idc_button1, onchx)on_wm_
29、paint()/afx_msg_mapend_message_map()/ chx message handlersvoid chx:onchx() ifstream in;char buffer20;cstring a10000;int i=0;in.open(file.txt,ios:in);while(!in.eof()in.getline(buffer,15, );ai=buffer;i+;updatedata();for(i=0;i900;i+)if(ai=m_bianhao)m_renshu=ai+1;m_gongneng=ai+2; m_leixing=ai+3; m_shiyo
30、ng=ai+4;updatedata(false);void chx:onpaint() cpaintdc dc(this); / device context for painting crect rect; getclientrect(&rect); cdc dcmem; dcmem.createcompatibledc(&dc); cbitmap bmpbackground; bmpbackground.loadbitmap(idb_bitmap4); bitmap bitmap; bmpbackground.getbitmap(&bitmap); cbitmap *pbmpold=dc
31、mem.selectobject(&bmpbackground); dc.stretchblt(0,0,rect.width(),rect.height(),&dcmem,0,0, bitmap.bmwidth,bitmap.bmheight,srccopy); / do not call cdialog:onpaint() for painting messages3.5添加3.5.1添加界面 图 添加对话框操作员输入教室的编号、人数、功能、类型、是否使用信息,然后点击保存将信息添加进主界面,点击退出重新进入主界面。3.5.2主要实现代码add:add(cwnd* pparent /*=nu
32、ll*/): cdialog(add:idd, pparent)/afx_data_init(add)m_bianhao = _t();m_renshu = _t();m_gongneng = _t();m_leixing = _t();m_shiyong = _t();/afx_data_initvoid add:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(add)ddx_text(pdx, idc_edit1, m_bianhao);ddx_text(pdx, idc_edit2,
33、m_renshu);ddx_text(pdx, idc_edit3, m_gongneng);ddx_text(pdx, idc_edit4, m_leixing);ddx_text(pdx, idc_edit5, m_shiyong);/afx_data_mapbegin_message_map(add, cdialog)/afx_msg_map(add)on_bn_clicked(idc_button1, onsave)on_bn_clicked(idc_button2, oncancel)on_wm_paint()/afx_msg_mapend_message_map()/ add me
34、ssage handlersvoid add:oncancel() cdialog:oncancel();void add:onsave() updatedata(true); cdialog:onok();fstream file;file.open(file.txt,ios:in|ios:out|ios:app);updatedata(true);filem_bianhao m_renshu m_gongneng m_leixing m_shiyong ;file.close();messagebox(保存成功);bool add:oninitdialog() cdialog:oninit
35、dialog();/ todo: add extra initialization herereturn true; / return true unless you set the focus to a control / exception: ocx property pages should return falsevoid add:onpaint() cpaintdc dc(this); / device context for painting crect rect; getclientrect(&rect); cdc dcmem; dcmem.createcompatibledc(
36、&dc); cbitmap bmpbackground; bmpbackground.loadbitmap(idb_bitmap3); bitmap bitmap; bmpbackground.getbitmap(&bitmap); cbitmap *pbmpold=dcmem.selectobject(&bmpbackground); dc.stretchblt(0,0,rect.width(),rect.height(),&dcmem,0,0, bitmap.bmwidth,bitmap.bmheight,srccopy); / do not call cdialog:onpaint()
37、for painting messages第四章 总结经过一个学期对c+面向对象的程序设计的学习,我学习到了基本的理论知识,了解到了c+语言设计的思想,这些知识都为我的课程实践和进一步学习打下了坚实的基础。在为期一周的c+课程设计中,我会颇多,学习到了很多东西。我加强了对计算机语言的学习,对它有的更深入的认识。总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。像教室管理系统这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。而这些问题不是我们平时只靠课本就能解决的。所以,锻炼了我们用已掌握的知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题
38、的能力。在老师和同学的帮助下,通过自己的努力,终于完成了这次教室管理系统的课程设计。通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。总而言之,这次c+程序设计实践让我收获很大。 参考文献1 杜茂康,李昌兵,曹慧英,王永. c+面向对象程序设计. 第2版. 北京: 电子工业出版社,20112孔鹏. visual c+6.0 完全自学手
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务费用核算自动化工具集
- 销售代理委托协议条款扩展文件
- 特种工种安全培训课件
- 特种工安全培训教学课件
- 企业知识管理与员工培训资源库
- 文件归档方案办公场景表格
- 特气系统安全培训课件
- 9.1 几何图形说课稿-2025-2026学年初中数学人教版五四制六年级下册-人教版五四制2012
- 人事后勤月度工作总结
- 2025建筑项目施工合同范本
- 可爱的中国教案全册
- 小数除法竖式专项计算144题(有答案)
- 频谱监测及瞬态信号捕获技术课件
- 平凉市崆峒区大寨乡柳沟村地热水矿产资源开发利用方案
- 隧道安全质量培训课件
- 六年级上册语文期末复习句子专项训练及答案
- 2019人教版高中英语选择性必修一UNIT 1 People of Achievement 单词表
- 电力变压器基础知识课件
- JJG 373-1997四球摩擦试验机
- GB/T 37785-2019烟气脱硫石膏
- GB/T 29343-2012木薯淀粉
评论
0/150
提交评论