软件工程设计计划书_第1页
软件工程设计计划书_第2页
软件工程设计计划书_第3页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程设计计划书1. 引言1.1编写目的学生宿舍管理系统对于一个学校来说是必不可少的组成部分。由于大学院校的宿舍管理数据庞大, 手工记录油太大的缺陷,因此为了代替“某某大学院校”繁琐的手工记录方法,方便宿舍管理员管理, 我们设计了这款学生宿舍管理系统软件。1.2背景说明:a. 这款软件的名称为“宿舍管理系统”。b. 本项目的提出者是 1512201班学生。c. 该软件系统应用于设备管理终端。1.3定义SDMS:Stude nt dormitory man ageme nt system学生宿舍管理系统。SQL Sever 2005 :所采用的数据库管理系统。Visual Studio 200

2、8:微软公司退出的开发环境,Visual Studio 可以用来创建 Win dows平台下Win dows应用程序和网络应用程序,也可以用来创建网络服务,智能设备应用程序和Ofice插件。B/S结构:浏览器和服务器结构,它是随着In ternet 技术的兴起,对 B/S结构的一种变化或者改进结构。1.4参考资料软件工程,SQL sever数据库设计,简明教程2. 可行性研究的前提:2.1开展宿舍管理系统项目的原因:由于现今大学生管理系统的繁琐性,舍管部人员需要付出大量的时间及精力去进行管理。为了提高管理效率以及减轻舍管部人员工作负担,所以开发大学生宿舍管理系统2.2要求A. 功能与性能:功能

3、:每所大学的在读生都会有近万人,每个学生都有不同的学号,姓名,班级,出生日期宿舍楼号等基本信息;每间寝室都有不同的床号等信息;学校需要对每个学生以及寝室的基本信息进行统一管理,以便对每个学生及寝室的信息进行查询浏览和修改性能:管理系统性能可靠 数据保密性高。B. 系统的输入与输出由管理员输入学生的学籍信息及寝室信息,对学生的宿舍寝室信息进行实时管理。输入:用户名称宿舍编号。输出:用户信息宿舍信息 备注信息。C. 处理流程进入宿舍管理系统界面,进入系统后,按照提示进行相应的操作即可D. 安全保密要求于此系统较小,所以没有设置身份认可模块,能够使用系统的人员均被鉴定为合法使用人员。2.3目标以最低

4、的成本,在最短的时间内开发具有管理学校学生宿舍和用户信息功能的学生宿舍管理系统。系统实现后,可提高宿管部人员的管理程度及效率,降低管理中的错误发生,减少信息交流的繁琐过程以及设备费用,提高管理的准确率。2.4条件,假定和限制条件说明对这项开发中给出的条件,假定和所受到的限制。如:a. 建议该系统运行的最短寿命为6年;b. 进行系统方案选择比较的时间限一星期。2.5进行可行性研究的方法通过调查分析数据库管理系统现阶段所具备的能力及实现的方法,确定主体结构,利用现阶段所能达到的能力,以最简洁,最容易的办法,边开发边测试,实现这个应用软件。2.6评价尺度在短时间内开发出的具有改善管理漏洞的较简单的管

5、理系统。3. 技术可行性1. 系统概述该系统的应用可以方便学生宿舍对广大住宿学生信息的管理,可以科学的管理学校宿舍,优化宿舍资源的使用等,同时方便管理员对学生的安全管理,可以使用改系统方便的查询学生信息。开发目标系统实现后,大大提高后勤人员的服务效率。降低后勤管理中的错误发生率,减少信息交流的烦琐过程及其带来的开销。后勤人员工作得到精简,信息的准确率得到极大提升。2处理流程和数据流程入写| 取读4. 经济可行性4.1支出A. 采购,开发及安装整套设施(包括房屋,数据通信设备,环境的保护设备,安全与保密设 备,操作系统以及软件和数据库软件)所需的金钱若干。B. 研究开发数据库的建立以及软件的转换

6、,和后期的维修和技术管理费用可忽略不计。C. 若系统工作正常,每次采购及维护所降低的成本若干。D系统升级所需费用,信息掌握情况的改进,硬件设施的提升或更替所需费用。4.2收益本系统方便了人员的管理,节约了人力资源的成本,有利于宿舍管理人员查询注入信息, 能够更好的统计宿舍人员的入住情况。极大地降低了管理人员人工管理学生信息的费用。4.3投资回收周期若系统正常工作,本系统的生命期在25年,最大支出为 X,最小收益Y,且YX预计回收周期为2到4年。若负荷工作,硬件配置损坏,将降低使用时间,缩短收益及使用时 间。4.4敏感度分析设计系统周期为1周。处理速度普遍S4P ;Ll SetFocus();r

7、eturn;if( m_strStude ntName =)AfxMessageBox(请填宿舍类型);p = (CEdit*)GetDlgltem(IDC_EDIT_ROOMTYPE); p-SetFocus();return;if( m_n Buildi ngNum = 0 )AfxMessageBox(楼号不能为零”);p = (CEdit*)GetDlgltem(IDC_EDIT_BUILDINGNUM); p-SetFocus();return;if( m_n RoomNum = 0 )AfxMessageBox(房间号不能为零”);p = (CEdit*)GetDlgltem(ID

8、C_EDIT_ROOMNUM);p-SetFocus();return;if( m_n BedNum = 0 )AfxMessageBox(床铺号不能为零”);p = (CEdit*)GetDlgItem(IDC_EDIT_BED);p-SetFocus();return;CMai nFrame* pFrame = (CMa in Frame*)AfxGetApp()-m_pMai nWnd;Cln habita ntsDoc* pDoc = (Cln habita ntsDoc*)pFrame-GetActiveDocume nt();/让用户确认操作if(this-MessageBox(确

9、定添加这条记录?,宿舍管理系统 ”,MB_YESNO)=IDNO)CDialog:O nCan cel(); return;/增加学生到数据库中STUDENT user;user.strRoomtype = m_strStude ntName;user. nBuild ingnum = m_n Buildi ngNum;user. nRoo mnum = m_n RoomNum;user. nBed num = m_n BedNum;user.strName = m_strStude ntn ame;user.strHouseTel = m_strHomeTel;user.strSex = m

10、_strSex;user.strNati onNal = m_strNati onN al;user.strMajor = m_strMajor;user.strId = m_strId;user.strRemarks = m_strRemarks;switch(pDoc-AddUser(user)case 0:/已经存在该学生了CStri ng str;str.Format( %s%d 号楼d号房间d号床铺已有学生入住!,m_strStude ntName,m _n Buildi ngNum ,m_n RoomN um,m_n BedNum ); AfxMessageBox( str );C

11、Edit* p = (CEdit*)GetDlgltem(IDC_EDIT_BED);p-SetFocus();return;break;case 1:/增加成功后刷新左边的树视图pFrame-m_pLeftView-AddUserToTree(m_strStude ntName,m_n Buildi ngNum ,m_n RoomN um,m_n BedNum); break;default:return;break;CDialog:O nOK();CHouseAccessor:Ac lessor百亠,纠 二宁肚adi ngnumm_majori onal*mremarksm_r&omtyp

12、em_s&K*-方法0Cl e Record类视图如右图,该类是OLEDB数据源类,定义了数据库中存储的学生信息class CHouseAccessorTCHAR m_major51;/专业LONG m_buildi ngnum; /楼号LONG m_roo mnum;/房间号TCHAR m_remarks51;/备注TCHAR m_studentname51;/ 学生姓名TCHAR m_housetel51;/宿舍电话TCHAR m_id51;/学号TCHAR m_sex51;性别TCHAR m_n atio nal51;/入学时间LONG m_bed num;/床铺号TCHAR m_roo

13、mtype51;/ 宿舍类型public:/定义显示方式BEGIN_COLUMN_MAP(CHouseAccessor)COLUMN_ENTRY(1, m_stude ntn ame)C0LUMN_ENTRY(2, m_roomtype) C0LUMN_ENTRY(3, m_buildi ngnum)C0LUMN_ENTRY(4, m_room num) COLUMN_ENTRY(5, m_bed num)COLUMN_ENTRY(6, m_housetel) COLUMN_ENTRY(7, m_sex)COLUMN_ENTRY(8, m_n atio nal) COLUMN_ENTRY(9,

14、 m_major) COLUMN_ENTRY(10, m_id)COLUMN_ENTRY(11, m_remarks) END_COLUMN_MAP()DEFINE_COMMAND(CHouseAccessor, _T(” SELECTstude ntn ame, roomtype, build ingnum, roo mnum, bed num, housetel, sex, n ati on al, major, id, remarks FROM house)/ You may wish to call this function if you are inserting a record

15、 and wishto/ initialize all the fields, if you are not going to explicitly set all of them. void ClearRecord()memset(this, 0, sizeof(*this);CHouse 类:CHouseA类类视图如右图,继承于CHouseAccessor类,用于对数据库进行操作。class CHouse : public CComma ndCAccessor -字段 msession 冋方法Open OpenDataSource public:HRESULT Open()/打开数据库HR

16、ESULT hr;hr = OpenDataSource();/打开数据源,并返回结果集if (FAILED(hr)return hr;return OpenRowset();/打开所有行记录的结果集HRESULT Ope nDataSource()HRESULT hr;CDataSource db;CDBPropSet dbinit(DBPROPSET_DBINIT);/ 定义数据库连接字串/设置数据库连接字串的属性dbi ni t.AddProperty(DBPROP_AUTH_CACHE_AUTHINFO, true);dbin it.AddProperty(DBPROP_AUTH_EN

17、CRYPT_PASSWORD, false);dbi ni t.AddProperty(DBPROP_AUTH_MASK_PASSWORD, false);dbi ni t.AddProperty(DBPROP_AUTH_PASSWORD, OLESTR();dbi nit.AddProperty(DBPROP_AUTH_USERID, OLESTR(Admi n);dbin it.AddProperty(DBPROP_INIT_DATASOURCE, OLESTR(StuDormMS.mdb); 打开的数据源文件文件名dbi nit.AddProperty(DBPROP_INIT_MODE,

18、 (lo ng)16);dbinit.AddProperty(DBPROP_INIT_PROMPT, (short)4);db in it.AddProperty(DBPROP_INIT_PROVIDERSTRING, OLESTR();dbi ni t.AddProperty(DBPROP_INIT_LCID, (Ion g)1033);&dbinit);/ 打开数据库文件if (FAILED(hr)return hr;retur n m_sessi on. Ope n( db);HRESULT Ope nRowset()/ Set properties for ope nCDBPropSe

19、t propset(DBPROPSET_ROWSET);propset.AddProperty(DBPROP_IRowsetCha nge, true); propset.AddProperty(DBPROP_UPDATABILITY,DBPROPVAL_UP_CHANGE |DBPROPVAL_UP_INSERT | DBPROPVAL_UP_DELETE);returnCComma ndCAccessor :Ope n( m_sessi on,NULL,&propset);CSessi onm_sessi on;ClnhabitantsApp 类:应用程序类,派生于CWinApp负责管理整

20、个程序,是整个程序的入口,用于初始化整个应用程序和完成程序结束的收尾工作。主要函数:Exitl nsta nce()退出程序函数Initln sta nce()初始化程序函数InitATL() 初始化ATL函数OnAppAbout()程序运行时函数Cln habita ntsDoc 类:文档类,派生于 CDocume n,管理程序的文档BOOL Cln habita ntsDoc:O nN ewDocume nt()if (!CDocume nt:O nN ewDocume nt() return FALSE;/打开数据库HRESULT result = m_dbHouse.Ope n();i

21、f(FAILED(result)AfxMessageBox(ope n database failed!);/设置程序标题SetTitle(学生宿舍管理系统);return TRUE;-報nbJlTLlxLi 1 sd匕万法0 CllJk.4.11 t X.t=Appi-Jj EeL lintt亶 LilULTLQ LhL libit4X.亡七田 UnXjkjijLl: ciul粪-t w : i trtn_ltHoisaF旅JCIiJhaj i I xits LddlTEAr Kaser tilid和 Clitab 11 ai.tsl d cDiftlsSeleteVsu ftwnr OiJ

22、fewDicwterklxAddUser()函数,添加用户 int Cln habita ntsDoc:AddUser(STUDENT & user)/*返回值:0已经存在-1添加失败1添加成功*/判断是否存在该学生了CStri ng strSql;strSql.Format(select * from house where roomtype = %s and buildi ngnum = %d and roomnum = %d and bed num = %d,user.strRoomtype,user. nBuildi ngnum ,user. nRoo mnum ,user. nBed

23、 nu m);CComma ndCAccessor dbHouse;long* pCo unt = new long;if(dbHouse.Ope n( m_dbHouse.m_sessio n,strSql,NULL,pCou nt) != S_OK) AfxMessageBox(error);delete pCo unt;return -1;if(dbHouse.MoveFirst() = S_OK)delete pCo unt;dbHouse.Close();return 0;delete pCo unt;dbHouse.Close();/增加学生到数据库中m_dbHouse.MoveL

24、ast();_tcscpy( m_dbHouse.m_roomtype,user.strRoomtype );m_dbHouse.m_buildi ngnum = user. nBuildi ngnum;m_dbHouse.m_roo mnum = user. nRoo mnum;m_dbHouse.m_bed num = user. nBed num;_tcscpy(m_dbHouse.m_stude ntn ame,user.strName);_tcscpy(m_dbHouse.m_major,user.strMajor);_tcscpy(m_dbHouse.m_remarks,user.

25、strRemarks);_tcscpy(m_dbHouse.m_housetel,user.strHouseTel);_tcscpy(m_dbHouse.m_id,user.strld);_tcscpy(m_dbHouse.m_sex,user.strSex);_tcscpy(m_dbHouse.m_ nati on al,user.strNati onN al);HRESULT hResult = m_dbHouse.I nsert();if( FAILED( hResult )AfxMessageBox( _T( Error inserting the curre nt record);r

26、eturn -1;return 1;/删除符合条件的学生BOOL Cln habita ntsDoc:DeleteUser(CStri ng strSql)CComma ndCAccessor dbHouse;long* pCo unt = new long;if(dbHouse.Ope n( m_dbHouse.m_sessi on, strSql,NULL,pCou nt,DBGUID_DEFAULT,FALSE) != S_OK) AfxMessageBox(error);delete pCo unt;return FALSE;delete pCo unt;dbHouse.Close()

27、;return TRUE;void CI nhabita ntsDoc:DeleteCo nte nts()/关闭数据库m_dbHouse.Close();m_dbHouse.m_sessi on. Close();CDocume nt:DeleteC onten ts();Cln habita ntsModule 类:ATL 类。Cln habita ntView类:程序视图类CLeftTreeView 类:树视图类,用于显示程序左边的树视图 添加的成员变量:protected 继承:HTREEITEM m_hHitItem;CImageList m_ImageList;添加的成员函数:Cl

28、dhabiltlLl 史机 A -CCocd!:dult*电泄 D_方法田 FindOneOf田 Lock VrlockClubnbi (sAtsVitT A典+ C?irS方迭tants BB*G 丸sSertVali dC InhB.b i tantsVs *C Dump G-e tD o cumentCLflTreViM A 类宁段叭 m.hHitlttrn* m_JmagLi st1-方法中占 CLeftTreeView 曲* AddBuildingg 0+ AddllToTri AddSctionTflT Ad.dlls er eT oTir e e AddUEfirToTree十

29、A.S5eitali d CLeftTreeVi evrDumpJ OnDraw0 OnlikL t i alVpdat e3十 OnDperateDelete OnSd. changed於* Q nUpdat Op er 0 /将数据库中的所有学生到加到树中void CLeftTreeView:AddUsersToTree()Cln habita ntsDoc* pDoc = (Cln habita ntsDoc*)GetDocume nt(); if(pDoc=NULL)return;/清空树GetTreeCtrl().DeleteAllltems();/取数据库中得所有记录CStri n

30、g strSql = select * from house;CComma ndCAccessor dbHouse;long* pCo unt = new long;if(dbHouse.Ope n(pDoc-m_dbHouse.m_sessio n,strSql,NULL,pCou nt) != S_OK) AfxMessageBox(error);delete pCo unt;return;delete pCo unt;if(dbHouse.MoveFirst() = S_OK)doAddUserToTree(dbHouse.m_roomtype,dbHouse.m_buildi ngnu

31、m, dbHouse.m_r oomnu m,dbHouse.m_bed nu m);while( dbHouse.MoveNext() = S_OK );dbHouse.Close(); void CLeftTreeView:O nlni tialUpdate()CTreeView:O nlni tialUpdate();/设置树风格:SetWi ndowLo ng(m_hWnd,GWL_STYLE,WS_VISIBLE | WS_TABSTOP| WS_CHILD | WS_BORDER| TVS_HASBUTTONS| TVS_LINESATROOT | TVS_HASLINES| TVS_DISABLEDRAGDROP|TVS_SHOWSELALWAYS);/为树视图创建图标连表Cl nhabita n

温馨提示

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

评论

0/150

提交评论