铂金教师管理系统课程设计说明6354497.doc

上传人:本田雅阁 文档编号:2174019 上传时间:2019-02-25 格式:DOC 页数:29 大小:866.52KB
返回 下载 相关 举报
铂金教师管理系统课程设计说明6354497.doc_第1页
第1页 / 共29页
铂金教师管理系统课程设计说明6354497.doc_第2页
第2页 / 共29页
铂金教师管理系统课程设计说明6354497.doc_第3页
第3页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《铂金教师管理系统课程设计说明6354497.doc》由会员分享,可在线阅读,更多相关《铂金教师管理系统课程设计说明6354497.doc(29页珍藏版)》请在三一文库上搜索。

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+课程设计中,我会颇多,学习到了很多东西。我加强了对计算机语言的学习,对它有的更深入的认识。总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。像教室管理系统这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。而这些问题不是我们平时只靠课本就能解决的。所以,锻炼了我们用已掌握的知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。在老师和同学的帮助下,通过自己的努力,终于完成了这次教室管理系统的课程设计。通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。总而言之,这次C+程序设计实践让我收获很大。 参考文献1 杜茂康,李昌兵,曹慧英,王永. C+面向对象程序设计. 第2版. 北京: 电子

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1