教室管理系统数据库应用课程设计说明书_第1页
教室管理系统数据库应用课程设计说明书_第2页
教室管理系统数据库应用课程设计说明书_第3页
教室管理系统数据库应用课程设计说明书_第4页
教室管理系统数据库应用课程设计说明书_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华 北 科 技 学 院数据库应用课程设计说明书班级: 计算B111 姓名: 熊 埠 (202109014112) 设计题目: 教室管理系统 设计时间: 2021.12.23 至 2021.1.3 指导教师: 李强丽 评 语:_ _评阅成绩: 评阅教师: 目 录华北科技学院教室管理系统1设计总说明1第1章 绪论2第2章 总体设计3系统结构设计3第3章 数据库设计与实施4数据库设计4概念分析:4逻辑设计:4物理设计:4数据库的实施5创立数据库5创立表5前台与后台的联系6第4章 前台设计与实现8登录模块8登录界面8系统的详细设计9普通学生登录界面设计9管理员登录界面设计10退出界面设计12总 结13

2、参 考 文 献14附 录15 华北科技学院教室管理系统设计总说明高校的教室管理工作量大、繁杂,人工处理非常困难。教室管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。本系统根据我校的实际情况开发,用于对学校教室的管理,主要用于管理教室。登录系统时需要访问数据库中的用户信息,从而正确确定登录身份。较为系统地对教室信息、教室使用信息和使用时间信息进行管理。查询、修改都变的非常简便,减少了管理的工作量。基于学校教室众多,为了数据的平安性,系统将教室数据保存在数据库中,以Visual C+设计前台对系统进行设计。因为教室管理系统是一项很实用的系统,所面对的数据量很大

3、,所以我们要求系统能够高效快速的处理这些数据,并且要保证数据的正确性、相容性和平安性。C+作为前台是将数据库中的数据读取出来,有助于用户对这些数据进行相应的操作,使操作更方便,更符合用户的要求。所以该系统应该要有一个良好的界面,使用户感觉很直观,使用快捷,这就是用C+所要实现的功能。关键词:Visual C+ 6.0;SQL Server;MFC;教室管理第1章 绪论本课程设计是在学习了数据库系统和C语言等有关课程后,通过实际的操作来熟悉数据库和相关软件的应用,培养独立的完成对相关课题或者工程的分析能力、设计能力和调试能力。成绩管理系统登录须有数据库中的账号信息。系统可以教室信息进行查询、修改

4、等操作,方便学校的教室管理。课程设计,着重培养的是学生的自学能力,以及独立分析互联网上和图书馆里的各种资料,用来丰富自己的知识并且提高对SQL、VC+等软件的实际操作能力。通过这次的课程设计,使我们对已经学习过的数据库课程的进一步的掌握,对知识进行最大程度的消化融汇。因此这次的课程设计对我们来说具有非常重要的作用:为以后学习工作做必要的准备和实践,提高自身对数据库开发的能力。本课题的研究对于大学的教室管理有较大的好处,大学里教室较多,上课和学生自习的流动性较强,这就为教室的管理带来了一些困难,传统的教室管理方法消耗人力较多,随着时代的开展,它就显得跟不上时代的步伐,为了能够更加有效的管理教室,

5、也为了适应时代的开展,很有必要利用计算机,运用数据库来开发一个教室管理系统。第2章 总体设计系统结构设计系统登录后进入主界面,主界面分为普通学生登录和管理员登录,用户根据自身账号进行登录,并且进行相应操作。功能设计图如图1.1.1.所示。主界面查询查询管理员登录普通学生登录修改图2.1.1 系统功能结构图第3章 数据库设计与实施3.2数据库设计3.2.1概念分析:概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型教室E-R图如图3.2.1所示:教室名称教室使用情况教室使用时间图3.2.1 实体及其属性图3.2.2逻辑设计:逻辑结构

6、是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概念结构设计阶段设计好的根本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。设计教室管理数据库,,考虑到数据库完整性,其关系模式中对实体定义的属性如下:教室表教室:教室名,使用情况,使用时间3.2.3物理设计:定义表的数据类型以及字段限制,使数据库到达一定的完整性。表的物理设计如下:表3.2.3 教室表字段名数据类型字段限制教室名称char(10)Not null使用情况char(10)Not null使用时间char(16)Not null3.3数据库的实施3.3.1创立数据库在SQL Server查询分析

7、器中键入以下代码完成数据库的建立。CREATE DATABASE 教室管理系统 ON PRIMARY ( NAME = N教室管理系统, FILENAME = NE:sql2021完全MSSQL10.MSSQLSERVERMSSQLDATA教室管理系统.mdf , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N教室管理系统_log, FILENAME = NE:sql2021完全MSSQL10.MSSQLSERVERMSSQLDATA教室管理系统_log.ldf , SIZE = 1024

8、KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GO3.3.2创立表同样在查询分析器中键入如下代码完成表的创立。use 教室数据库goREATE TABLE dbo.Table_2(教室名 nchar(10) NOT NULL,使用情况 nchar(10) NOT NULL,使用时间 nchar(16) NOT NULL) ON PRIMARYGO3.3.3前台与后台的联系创立完数据源需要与前台C+联系起来,首先是建立一个类,然后该类继承于某个数据源,然后再其中选择需要的表。联系步骤如图2.2.1,2.2.2,2.2.3:图3.3.1 创立新的类图3.3.2

9、继承于某个数据源图3.3.3 选择所需的数据表第4章 前台设计与实现4.1登录模块4登录界面运行程序首先要通过登录。图4.1.1 登录界面1图4.1.2 登录界面2登录界面的用户名访问代码如下:void CMyDlg:OnButton1() / TODO: Add your control notification handler code heregly d;xs c;UpdateData(true);if(m_qx=0 &m_zh=gly1993&m_mm=1993)d.DoModal();else if(m_qx=1 &m_zh=xs1993&m_mm=1993) c.DoModal()

10、;else MessageBox(密码错误,错误提示,MB_ICONWARNING);4.2系统的详细设计4普通学生登录界面设计普通学生登录界面设有查询教室使用情况的功能,普通学生登录界面如下图。图4 普通学生登录界面图4.2.2 普通学生查询界面图4.2.3 普通学生查询界面4管理员登录界面设计管理员登录界面设有修改和查询教室使用情况的功能,管理员登录界面如下图:图4.2.4管理员登录界面图4.2.5管理员查询界面图4.2.6管理员修改界面4退出界面的设计让传统的退出不在那么单调无聊,进而增加了一个有趣的诙谐的对话框,如下图:4.2.7 退出界面总 结通过了两周的学习终于完成了数据库课程设计

11、,很多课程上的知识点在实际应用中都显得非常匮乏,毕竟平时都是大多数背课本上的知识,在这次课程设计中,很多新东西都需要自己去查阅图书馆的书籍和靠一些同学的帮助完成的,想象不到如果是在以后的工作中,如果自己面对那么多的难题该怎么去解决,不过不用担忧,现在的课设不也正是为了以后准备的么,一步一步来吧,扎扎实实的走好每一步就好了。在课程设计的时候,我一度担忧自己完不成这个课设,毕竟以前的课设都是一周就好了,这次的课程设计给了我们两周的时间,从时间的长短上看得出这一次必定跟以前不是一个等级的设计了,两周其实也还好,因为应用的是之前做好的一个课设的成果然后在其之后加以改良,联系了数据库的知识,以前的存储功

12、能,我是用的txt文件,那样子的没有数据库来的方便、美观。当然,我也遇到了很头疼的事情,因为电脑经过了几次大修,原来的文件早已不知所去,这一次的课设我都是从头开始做起的,不过还好,因为之前做过,现在做起来也就得心应手了,不得不说课程设计还是很有用的,上次的课设也是就做了一周,但是在大脑里面留下了如此深刻的印象,这是很不可思议的事情。这次的课设很感谢几个同学的帮助,因为我之前调试程序的时候一度造成了很严重的后果,一些错误直接导致我的数据库无法翻开,必须重新建库建表,说多了都是泪,后来经过同学的帮助,我还是终于完成了我的设计,真的是非常的开心! 课程设计就是为了以后我们能更轻松的适应工作中遇到的困

13、难而设立的,这不仅对于我们的专业知识可以到达稳固效果,而且可以锻炼我们的意志,不轻易对困难低头,完善我们的个人品行。参 考 文 献1 王瑞,于速. Visual C+数据库系统开发完全手册 M. 北京:人民邮电出版社, 2006.2 朱景德,陈品华.SQL Server数据库系统技术 M. 陕西:西安电子科技大学出版社, 2021.3 王珊,萨师煊.数据库系统概论 高等教育出版社, 20064 郑阿奇 SQL Server实用教程 电子工业出版社, 2021附 录源程序清单#include stdafx.h#include 教室管理系统.h#include 教室管理系统Dlg.h#includ

14、e gly.h#include xs.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual functi

15、on overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:Do

16、DataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg dialogCMyDlg:CMyDlg(CWnd* pParent /*=NULL*/): CDialog(CMyDlg:IDD, pParent)/AFX_DATA_

17、INIT(CMyDlg)m_qx = -1;m_zh = _T();m_mm = _T();/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CMyDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CMyDlg)DDX_CBIndex(pDX, IDC_COMBO1,

18、 m_qx);DDX_Text(pDX, IDC_EDIT1, m_zh);DDX_Text(pDX, IDC_EDIT2, m_mm);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CMyDlg, CDialog)/AFX_MSG_MAP(CMyDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_CBN_EDITCHANGE(IDC_COMBO1, OnEditchangeCombo1)ON_BN_CLICKED(IDC_BUTTON1, OnButton1)ON_EN_CHANGE(IDC_EDIT1, On

19、ChangeEdit1)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg message handlersBOOL CMyDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysM

20、enu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herereturn TRUE;

21、 / return TRUE unless you set the focus to a controlvoid CMyDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the i

22、con. For MFC applications using the document/view model,/ this 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 =

23、GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_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);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to displa

24、y while the user drags/ the minimized window.HCURSOR CMyDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CMyDlg:OnCancel() exit(0);void CMyDlg:OnOK() / TODO: Add extra validation hereCDialog:OnOK();void CMyDlg:OnEditchangeCombo1()/ TODO: Add your control notification handler code herevoid CMyDlg:O

25、nButton1() / TODO: Add your control notification handler code heregly d;xs c;UpdateData(true);if(m_qx=0 &m_zh=gly1993&m_mm=1993)d.DoModal();else if(m_qx=1 &m_zh=xs1993&m_mm=1993) c.DoModal();else MessageBox(密码错误,错误提示,MB_ICONWARNING);void CMyDlg:OnChangeEdit1() / TODO: If this is a RICHEDIT control,

26、the control will not/ send this notification unless you override the CDialog:OnInitDialog()/ function and call CRichEditCtrl().SetEventMask()/ with the ENM_CHANGE flag ORed into the mask./ TODO: Add your control notification handler code here#include stdafx.h#include 教室管理系统.h#include xs.h#include tc

27、.h#include afxdb.h#include fstream.h#includestring.h#includeafxcmn.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ xs dialogxs:xs(CWnd* pParent /*=NULL*/): CDialog(xs:IDD, pParent)/AFX_DATA_INIT(xs)m_1 = _T();/AFX_DATA_INITvoid xs:DoDataExchange(CDataExchang

28、e* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(xs)DDX_Control(pDX, IDC_LIST2, m_2);DDX_Text(pDX, IDC_EDIT1, m_1);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(xs, CDialog)/AFX_MSG_MAP(xs)ON_BN_CLICKED(IDC_BUTTON2, OnButton2)ON_BN_CLICKED(IDC_BUTTON1, OnButton1)/AFX_MSG_MAPEND_MESSAGE_MAP()/ xs message handlersvo

29、id xs:OnButton2() / TODO: Add your control notification handler code hereShowWindow(SW_HIDE);tc c;c.DoModal();void xs:OnButton1() / TODO: Add your control notification handler code here UpdateData(TRUE);CDatabase database;database.Open(xb,FALSE,FALSE,ODBC;,FALSE);CString str;CRecordset set(&database

30、);m_2.DeleteAllItems();set.Open(CRecordset:dynaset,_T(select * from Table_2 where 教室名=+m_1+ );if(set.IsEOF()AfxMessageBox(查询的信息不存在!);elseint i=0;while(!set.IsEOF()m_2.InsertItem(i,);CString str1,str2,str3;set.GetFieldValue(教室名,str1);m_2.SetItemText(i,0,str1);set.GetFieldValue(使用情况,str2);m_2.SetItemT

31、ext(i,1,str2);set.GetFieldValue(使用时间,str3);m_2.SetItemText(i,2,str3);set.MoveNext();i+;set.Close();UpdateData(TRUE);database.Close();BOOL xs:OnInitDialog() CDialog:OnInitDialog(); m_2.InsertColumn(0,教室名,LVCFMT_CENTER,120,-1);m_2.InsertColumn(1,使用情况,LVCFMT_CENTER,120,-1);m_2.InsertColumn(2,使用时间,LVCFM

32、T_CENTER,120,-1);/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE#include stdafx.h#include 教室管理系统.h#include gly.h#include tc.h#include afxdb.h#include fstream.h#includestring.h#includeafxcmn.h#if

33、def _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ gly dialoggly:gly(CWnd* pParent /*=NULL*/): CDialog(gly:IDD, pParent)/AFX_DATA_INIT(gly)m_1 = _T();m_31 = _T();m_32 = _T();m_33 = _T();/AFX_DATA_INITvoid gly:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange

34、(pDX);/AFX_DATA_MAP(gly)DDX_Control(pDX, IDC_LIST1, m_2);DDX_Text(pDX, IDC_EDIT1, m_1);DDX_Text(pDX, IDC_EDIT3, m_31);DDX_Text(pDX, IDC_EDIT4, m_32);DDX_Text(pDX, IDC_EDIT5, m_33);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(gly, CDialog)/AFX_MSG_MAP(gly)ON_BN_CLICKED(IDC_BUTTON4, OnButton4)ON_BN_CLICKED(IDC_BUTT

35、ON5, OnButton5)ON_BN_CLICKED(IDC_BUTTON6, OnButton6)/AFX_MSG_MAPEND_MESSAGE_MAP()/ gly message handlersvoid gly:OnButton4() ShowWindow(SW_HIDE);tc c;c.DoModal();void gly:OnButton5() / TODO: Add your control notification handler code here UpdateData(TRUE);CDatabase database;database.Open(xb,FALSE,FAL

36、SE,ODBC;,FALSE);CString str;CRecordset set(&database);m_2.DeleteAllItems();set.Open(CRecordset:dynaset,_T(select * from Table_2 where 教室名=+m_1+ );if(set.IsEOF()AfxMessageBox(查询的信息不存在!);elseint i=0;while(!set.IsEOF()m_2.InsertItem(i,);CString str1,str2,str3;set.GetFieldValue(教室名,str1);m_2.SetItemText(i,0,str1);set.GetFieldValue(使用情况,str2);m_2.SetItemText(i,1,str2);set.GetFieldValue(使用时间,str3);m_2.SetItemText(i,2,str3);set.MoveNext();i+;set.Close();UpdateData(TRUE);database.Close();BOOL gly:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereCDialog:OnInitD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论