老师管理系统毕业设计论文.doc_第1页
老师管理系统毕业设计论文.doc_第2页
老师管理系统毕业设计论文.doc_第3页
老师管理系统毕业设计论文.doc_第4页
老师管理系统毕业设计论文.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1 系统需求说明本系统的最终用户为宿舍楼管理员,本宿舍楼的学生。(1)入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。另外,为了管理上的方便,同一院系的学生的宿舍一般在一起,相应地会有其所在的院系名称。(2)每间宿舍都有唯一的宿舍号,入校时,宿舍会装公用电话机,相应地就有宿舍电话号码。和宿舍的人员(3)宿舍楼在指定的时间关门(比如晚上11点),若有同学晚于关门时间回宿舍,需通知宿舍楼管理员,同时应登记晚归学生学号,宿舍号,时间和晚归原因,以利于学校的管理和查证。(4)每当放寒假或暑假时,同学们大部分都会回家;每当“五一”或“十一”放假时,同学们也有很多不会留在宿舍。为加强学校对同学假期安全的管理,离校的同学应登记离校时间,待返校后记录返校时间,以便学校查证和管理。基于以上的需求:(1)宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息和夜归的详细信息和学生离返校的信息。以利于对整个宿舍楼的全面管理。(2)当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;或者学生转换专业,他们记录中院系的信息也要作相应的修改等等。(3)本宿舍楼的学生能查询其所在的宿舍的所有信息,2 数据库结构设计 (1)概念结构设计使用E-R图表示对数据库中要存储的信息及语义进行详细描述;(2)逻辑结构设计住宿学生表:属性名类型长度备注学号char20住宿学生学号姓名char20住宿学生姓名性别char4专业char40学生专业宿舍号char6住宿学生宿舍号入住时间date8新生搬入时间宿舍表:属性名类型长度备注宿舍号char6宿舍电话char15密码表:属性名类型长度备注用户明char20密码char20用户类型tnyint 1管理员或学生离校表:属性名类型长度备注学号char20离校学生姓名宿舍号char6离校学生宿舍号离校时间date 8学生离校时间返回时间date8学生返校时间详细描述将E-R图转换成关系模型的过程以及对关系模式的规范化,至少达到3NF)(3)(3)物理结构设计以表格形式详细描述系统需要的基本表及属性、视图和索引,对基本表的主键、候选键、外键及被参照表进行说明,对基本表中数据的约束条件进行说明。3 系统功能设计学生部分:1、处理用户注册 2、处理用户登录 3、用户可以查询学生信息。4、用户可以修改用户自己密码。管理员部分:1、处理管理员登录 2、管理员可以查询学生信息。3、管理员可以插入与查询学生夜归信息。4、管理员可以查询在校与离校学生信息。5、管理员可以修改管理员密码4 系统实现(1)本软件是基于SQL Sever 2000和Visual C+6.0的软件开发环境和至少奔腾以上处理器以上(2)首先按照上边所设计的逻辑结构,创建数据库,并输入部分数据,例如在密码表中输入用户名为ys密码为1用户类型为管理员和一个用户名为wj密码为0的学生类型的数据。 利用系统自带的ODBC数据库管理器建立一个名为“宿舍管理”的数据源。 (3)建立名为“宿舍管理”的工程。设计用户登录窗口说明:登录串口分为两种一种是管理员登录,一种为用户登录 (1)添加对话框类为psw,并在psw类中添加CDatabase类型的变量m_database和Crecordset类型的变量m_recordset;并且添加相应的全局变量extern CString username,userpower;(2)添加消息相应函数,并编写如下代码UpdateData(true);if(!m_database.IsOpen ()if(m_database.Open(_T(宿舍管理)m_crecordset.m_pDatabase=&m_database;CString sql,select;if(m_select.GetCurSel()=0)select=管理员;elseselect=学生;sql.Format(select * from 密码表 where 用户名=%s and 密码=%s and 用户类型=%s,m_username,m_psw,select);m_crecordset.Open(CRecordset:forwardOnly,sql);if(m_crecordset.GetRecordCount ()=0)MessageBox(用户名密码错误);else userpower=select;CDialog:OnOK();m_crecordset.Close ();m_database.Close ();elseMessageBox(不能打开数据库); 设计启动界面。加载MFC组建Csplash并设置启动时间为1500ms相应的代码如下:int CSplashWnd:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CWnd:OnCreate(lpCreateStruct) = -1)return -1;/ Center the window.CenterWindow();/ Set a timer to destroy the splash screen.SetTimer(1, 1500, NULL);return 0; 在资源中加入一张位图IDB_BITMAP1并且在Ondraw函数中加入下列代码,以实现单文档背景void CMy2View:OnDraw(CDC* pDC)CMy2Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);CBitmap m_Bitmap;m_Bitmap.LoadBitmap(IDB_BITMAP3);CDC memDC;/设备上下文memDC.CreateCompatibleDC(pDC);/创建内存设备上下文memDC.SelectObject(&m_Bitmap);/将位图选人设备上下文BITMAP m_Bmp;/声明BITMAP对象m_Bitmap.GetBitmap(&m_Bmp);/获得位图信息int x = m_Bmp.bmWidth;/获得位图的宽度int y = m_Bmp.bmHeight;/获得位图的高度CRect rect;/声明区域对象GetClientRect(rect);/获得编辑框客户区域pDC-StretchBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,x,y,SRCCOPY);/绘制位图背景memDC.DeleteDC();/ TODO: add draw code for native data here 设计用户注册对话框运行后效果 图为输入注册相关信息后的界面void zhuce:OnOK() UpdateData(1);if(!m_database.IsOpen()if(!m_database.Open(_T(宿舍管理)MessageBox(不能打开数据库!);if(!(m_name&m_zhuanye&m_sno)MessageBox(输入信息不完整,不能入库!);elseCString strSQL,sex;if(m_sex.GetCurSel()=0)sex=男;elsesex=女;strSQL.Format(insert into 住宿学生 (学号,姓名, 性别,专业,宿舍号, 入住时间) values(%s,%s,%s,%s,%s,%s),m_sno,m_name,sex,m_zhuanye,m_roomsno,m_data);m_database.ExecuteSQL(strSQL);MessageBox(注册成功!,学生注册);m_database.Close();CString str;str.Format(学号:%s性别:%s姓名:%srn专业:%s宿舍号:%s入住时间:%srn,m_sno,m_name,sex,m_zhuanye,m_roomsno,m_data); m_sql+=str; UpdateData(0);/CDialog:OnOK(); 学生查询和管理员查询工具栏中的两个“学生查询”和“管理员查询”对应于一个对话框。只是查询时查询的结果处理不同,当时学生查询时,只能查自己的,管理员课以查看全部学生时,运行界面:当是管理员时,其查询界面为:列表控件初始化代码:BOOL stu_check:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_list.InsertColumn(0,学号);m_list.InsertColumn(1,姓名);m_list.InsertColumn(2,性别);m_list.InsertColumn(3,专业);m_list.InsertColumn(4,宿舍号);m_list.InsertColumn(5,住宿时间);CRect r;m_list.GetWindowRect(&r);int wid=r.Width ();for(int i=0;i6;i+)m_list.SetColumnWidth(i,wid/6);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE其查询相应的代码为:void stu_check:OnOK() / TODO: Add extra validation hereUpdateData(1);if(!m_database.IsOpen()if(!m_database.Open(_T(宿舍管理)MessageBox(Cannot open database!,信息查询);return;CString strSQL,s;m_recordset.m_pDatabase=&m_database;if(userpower!=管理员)strSQL.Format(select * from 住宿学生 where 学号=%s,m_sno); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);elses.Format(select * from 住宿学生); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,s);if(m_recordset.GetRecordCount()=0)MessageBox(宿舍没有此人!,学生信息查询); m_recordset.Close();m_database.Close();return;m_list.DeleteAllItems();m_recordset.MoveFirst();int i=0;while(!m_recordset.IsEOF()CString temp;m_list.InsertItem(i,temp); m_list.SetItemText(i,0,m_recordset.m_column1 ); m_list.SetItemText(i,1,m_recordset.m_column2 ); m_list.SetItemText(i,2,m_recordset.m_column3 ); m_list.SetItemText(i,3,m_recordset.m_column4 ); m_list.SetItemText(i,4,m_recordset.m_column5 ); m_list.SetItemText(i,5,m_recordset.m_column6 ); i+; m_recordset.MoveNext(); UpdateData(0);m_database.Close();当学生毕业需要删除时:当按下删除时界面删除相应代码为:UpdateData(1);if(!m_database.IsOpen()if(!m_database.Open(_T(宿舍管理)MessageBox(Cannot open database!,信息查询);return;CString strSQL;m_recordset.m_pDatabase=&m_database; strSQL.Format(select * from 住宿学生 where 学号=%s,m_sno); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);int i=m_list.GetNextItem(-1,LVNI_SELECTED);CString sql=(m_list.GetItemText(i,0);if(sql=)MessageBox(请选择一行);elseif(MessageBox(您确定要删除吗?,删除询问,MB_OKCANCEL|MB_ICONQUESTION)=IDOK) CString s; s.Format(delete 住宿学生 where 学号=%s,m_sno);m_database.ExecuteSQL(s); MessageBox(删除成功!,提示); UpdateData(0); refreshlist();m_database.Close();其中在删除中用到刷新函数refresh().其相应的代码为:void stu_check:refreshlist()UpdateData(1);m_list.DeleteAllItems();if(!m_database.IsOpen()if(m_database.Open(_T(宿舍管理)CString strSQL,s;m_recordset.m_pDatabase=&m_database;if(userpower!=管理员)strSQL.Format(select * from 住宿学生 where 学号=%s,m_sno); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);elses.Format(select * from 住宿学生); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,s); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);m_recordset.MoveFirst();int i=0;while(!m_recordset.IsEOF()CString temp;m_list.InsertItem(i,temp); m_list.SetItemText(i,0,m_recordset.m_column1 ); m_list.SetItemText(i,1,m_recordset.m_column2 ); m_list.SetItemText(i,2,m_recordset.m_column3 ); m_list.SetItemText(i,3,m_recordset.m_column4 ); m_list.SetItemText(i,4,m_recordset.m_column5 ); m_list.SetItemText(i,5,m_recordset.m_column6 ); i+; m_recordset.MoveNext(); UpdateData(0);m_database.Close();学生与管理员密码修改:添加确认消息函数;UpdateData(1);if(!m_database.IsOpen()if(!m_database.Open(_T(宿舍管理)MessageBox(不能打开数据库!);m_recordset.m_pDatabase=&m_database;CString strSQL;strSQL.Format(select * from 密码表 where 用户名=%s and 密码=%s ,m_username,m_oldpsw); m_recordset.Open(CRecordset:forwardOnly,strSQL);if(m_recordset.IsBOF()/记录集为空MessageBox(用户密码不正确,请重新输入);elseif(m_newpsw!=m_newpsw2)MessageBox(两次输入密码不一致,请重新输入);elsestrSQL.Format(update 密码表 set 密码=%swhere 用户名=%s,m_newpsw2,m_username);m_database.ExecuteSQL(strSQL);MessageBox(密码修改成功);UpdateData(0);m_recordset.Close(); m_database.Close();管理员具有查询学生离校的情况:查询代码:void stu_check1:OnOK() / TODO: Add extra validation hereUpdateData(1);if(userpower!=管理员)MessageBox(非管理员不能进行此项操作!); return;elseif(!m_database.IsOpen()if(!m_database.Open(_T(宿舍管理)MessageBox(Cannot open database!,信息查询);return;CString strSQL;m_recordset.m_pDatabase=&m_database; strSQL.Format(select * from 离校 where 学号=%s,m_sno); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);if(m_recordset.GetRecordCount()=0)MessageBox(宿舍没有此人!,学生信息查询); m_recordset.Close();m_database.Close();return;m_list.DeleteAllItems();m_recordset.MoveFirst();int i=0;while(!m_recordset.IsEOF()CString temp;m_list.InsertItem(i,temp); m_list.SetItemText(i,0,m_recordset.m_column1 ); m_list.SetItemText(i,1,m_rec

温馨提示

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

评论

0/150

提交评论