面向对象程序设计课程设计报告

合集下载

C-shap课程设计报告

C-shap课程设计报告

《面向对象程序设计C#》期末课程设计报告 / 学年第学期姓名:______________学号:______________班级:______________指导教师:______________计算机科学与工程学院2012一、主要内容及要求:创建一个应用程序,实现下面的UML图。

Step1:(共60分,其中Account类编写10分,SavingAccount和Checking类的编写分别25分)创建Account类,作为各种账户的基类。

然后用继承来创建两个专用的账户类:SavingAccount(储蓄账户)类和CheckingAccount(支票账户)类。

(1)SavingAccount类,从Account派生其新特征:A.储蓄账户能获得利息,增加一个属性interestRate 表示利率。

B.着时间的推移,储蓄账户可以获得利息,所以为SavingAccount类增加一个addInterest()方法(注:未在UML图中画出),用于把利息增加到原balance上。

利息的计算规则为interestRate*balance;(2)CheckingAccount类,从Account派生新特征:A.帐户允许有透支额度,增加属性overdraftProtection表示最大透支额度。

B.取款规则发生了改变:如果当前余额足够支付要提取的金额amount ,按照常规进行处理。

如果当前余额不够,但帐户有透支额度,那么所差的部分作为透支处理。

透支处理规则:比较amount(当前提款金额)和balance(当前帐户余额)若当前透支额amount-balance>overdraftProtection,那么整个交易应该放弃,提款失败。

否则提款后的balance应为0,提款后的最大透支额度overdraftProtection应该为原有最大透支额度减去(amount-balance )。

(3)再看Account类其withdraw行为要在其具体的子类中才能确定,故将其withdraw方法设计成一个抽象方法,由子类去改写。

c++课程设计报告书

c++课程设计报告书

河南城建学院《面向对象程序设计》课程设计报告书设计题目:企业人事管理系统指导老师:崔雪冰蔡照鹏张妍琰学生学号:*****************同组人员:于文文、梁泽玉、宋应取时间:2011年12月28日目录第1章选题 (2)1.1题目背景 (2)1.2系统实现的具体分工 (2)1.2.1 标题 (2)1.2.2题目要求 (2)1.3开发环境 (2)2.1实现功能 (3)2.2概要设计(涉及类的框图) (3)2.3界面设计 (4)第3章系统实现 (5)3.1涉及知识点 (5)3.2系统运行(主要运行界面抓图) (5)3.3源程序代码 (8)第4章结束语(心得体会) (19)第1章选题1.1 题目背景企业人事管理系统是企业管理中的一个重要内容,随着时代的进步,企业人员数量也不断增加、分工的不断细化、各个行业间联系的不断密切,对人事管理的要求也不断提高。

早期的人工方式的管理系统已不适合现代企业的公司的发展,实现企业人事管理的系统化、规范化、自动化,是现代企业管理的首选。

1.2系统实现的具体分工系统分为职工类、职工数据类、权限设置类以及主函数等几大模块,其中职工类实现对公司职工个人基本信息的描述,职工数据类实现公司对职工的维护,权限设置类实现对使用者的操作权限设置功能,main() 函数实现对程序主界面的引导。

1.2.1 标题企业人事管理系统1.2.2 题目要求设计一个小型人事管理系统,假设公司只有经理、业务经理、普通职工,需要描述他们的信息,如职工编号、姓名、电话、住址等信息,且需要设置系统操作权限,实现界面的转换,增、删、查、改、显示功能。

1.3开发环境Visual C++ 6.0机型:方正电脑处理器名称:Intel(R)Core(TM)********************硬盘驱动器:WDC WD1600AAJS-22WAAO系统内存:金士顿内存2GB显示卡:NVIDIA GeFORCE 9400 GT显示器:方正科技FG981-W9操作系统:Microsoft Windows XP Professional第2章设计内容2.1实现功能系统主要包括企业系统管理人员对企业职工信息的增、删、查、改等功能和普通职工对职工信息的查看功能。

C++课程设计报告(复数计算器)

C++课程设计报告(复数计算器)

南京信息工程大学《面向对象程序设计》课程设计实验报告课程名:面向对象程序设计专业:网络工程班级:2班作者:张煜荻、吴辉煌、张一东日期:2011年5~6月实验内容题目:设计一个复数计算器。

要求:1)所设计的复数计算器可以进行+、-、×运算。

2)设计输入重载函数,要求能接收从键盘输入a+b i形式的复数,在程序中可以识别出实部、虚部并进行赋值。

3)设计算器测试程序,对加减法进行测试,要求在两位数以内,对乘法进行测试,乘法要求为一位数的运算。

小组分工程序源码#include<iostream>#include<cmath>#define EPS 1e-5//定义精度为10^-5using namespace std;namespace NameCalculator //定义空间NameCalculator{class Calculator //定义Calculator类{private:double Real,Image; //私有成员:实部Real、虚部Image public:Calculator(double real=0,double image=0) //构造函数{Real=real;Image=image;}int operator==(Calculator &com); //等于重载Calculator operator+(Calculator &com); //加法重载Calculator operator-(Calculator &com); //减法重载Calculator operator*(Calculator &com); //乘法重载Calculator operator*=(Calculator &com);//乘法赋值重载friend istream & operator>>(istream &is,Calculator &com); //输入重载friend ostream & operator<<(ostream &os,Calculator &com); //输出重载};int Calculator::operator==(Calculator &com) //重载等于{if(Real==com.Real && Image==com.Image)return 1;elsereturn 0;}Calculator Calculator::operator+(Calculator &com) //加法重载{Calculator sum;sum.Real=Real+com.Real;sum.Image=Image+com.Image;return sum;}Calculator Calculator::operator-(Calculator &com) //减法重载{Calculator sub;sub.Real=Real-com.Real;sub.Image=Image-com.Image;return sub;}Calculator Calculator::operator*(Calculator &com) //乘法重载{Calculator multi;multi.Real=Real*com.Real-Image*com.Image;multi.Image=Real*com.Image+Image*com.Real;return multi;}Calculator Calculator::operator*=(Calculator &com) //重载乘法赋值{double nReal=Real*com.Real-Image*com.Image;double nImage=Real*com.Image+Image*com.Real;Real=nReal;Image=nImage;return *this;}istream & operator>>(istream &is,Calculator &com) //重载输入{cout<<"请输入复数:";char s[20];is>>s; //用字符串形式接受输入的复数int len=strlen(s);int n=0,sign=1;com.Image=com.Real=0;for(int k=0;k<len;k++){if((s[k]<'0'||s[k]>'9')&&(s[k]!='+'&&s[k]!='-'&&s[k]!='i')){cout<<"输入错误"<<endl;return is;}}for(k=0;k<len;) //检查输入字符串{if(n!=0 &&(s[k]=='-'||s[k]=='+')) //字符是否是符号{com.Real=sign*n;n=0; //将原n*sign值赋给实部,将n清零,准备接受虚部的值}if(s[k]=='-') //字符为负号{sign=-1;k++;}if(s[k]=='+') //字符为正号{sign=1;k++;}if(s[k]=='i') //字符为'i'{if(k!=len-1) //判断字符'i'是否为最后一个字符cout<<"error\n";elsecom.Image=sign*n; //复数对象接受完成,用sign*n为虚部赋值break;}while(s[k]>='0'&&s[k]<='9') //字符在0~9之间,则将字符转换成数值{n=n*10+s[k]-'0';k++;}}if(s[len-1]!='i'&&n!=0) //如果最后一个字符不是'i',则没有虚部{com.Real=n*sign;}return is;}ostream & operator<<(ostream &os,Calculator &com) //重载输出{if(fabs(com.Image)<EPS) //如果虚部为0os<<com.Real; //只输出实部else if((fabs(com.Real)<EPS)) //如果实部为0os<<com.Image<<"i"; //只输出虚部else if(com.Image>0)os<<com.Real<<"+"<<com.Image<<"i";elseos<<com.Real<<com.Image<<"i"; //虚部为正return os;}void Add() //加法运算函数{Calculator num1,num2,sum,zero(0,0);cout<<"加法计算\n"<<"最少输入两个复数,并且以0结束\n";cout<<"第1个复数:";cin>>num1;cout<<"第2个复数:";cin>>num2;sum=num1+num2;cout<<"第3个复数:";cin>>num1;int i=4;while(!(num1==zero)){sum=sum+num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"加法结果是:"<<sum<<endl;cout<<"请按回车键继续\n";cout.flush();cin.get();cin.get();}void Sub() //减法运算函数{Calculator num1,num2,sub,zero(0,0);cout<<"最少输入两个复数,并且以0结束\n";cout<<"第1个复数:";cout<<"第2个复数:";cin>>num2;sub=num1-num2;cout<<"第3个复数:";cin>>num1;int i=4;while(!(num1==zero)){sub=sub-num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"减法结果是:"<<sub<<endl;cout<<"请按回车键继续\n";cout.flush();cin.get();cin.get();}void Mul() //乘法运算函数{Calculator num1,num2,mul,zero(0,0);cout<<"乘法计算\n"<<"最少输入两个复数,并且以零结束\n";cout<<"第1个复数:";cin>>num1;cout<<"第2个复数:";cin>>num2;mul=num1*num2;cout<<"第3个复数:";cin>>num1;int i=4;while(!(num1==zero)){mul*=num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"乘法结果是:"<<mul<<endl;cout<<"请按回车键继续\n";cout.flush();cin.get();}}using namespace NameCalculator;int main() //主函数{char Choise[20];do{system("cls"); //清屏cout<<"1:复数加法\n";cout<<"2:复数减法\n";cout<<"3:复数乘法\n";cout<<"0:退出程序\n\n";cout<<"请选择:";cin>>Choise;if(strcmp(Choise,"1")==0)Add();else if(strcmp(Choise,"2")==0)Sub();else if(strcmp(Choise,"3")==0)Mul();else if(strcmp(Choise,"0")==0){break;}else{cout<<"\n输入错误,按回车键继续\n";cin.get();cin.get();}}while((strcmp(Choise,"0")));return 0;}测试结果实验总结本实验的难点在于:如何让程序识别输入的“复数字符串”。

面向对象课程设计报告

面向对象课程设计报告

面向对象课程设计报告一、引言面向对象课程设计是计算机科学与技术专业的一门重要课程,通过设计和实现一个完整的面向对象程序,培养学生的面向对象设计思维和编程能力。

本报告旨在介绍我所设计的面向对象课程设计,包括设计背景、需求分析、设计方案、实现细节和测试验证等内容。

二、设计背景本次面向对象课程设计的背景是设计一个学生信息管理系统。

随着教育事业的发展,学校中的学生数量不断增加,学生信息的管理越来越复杂。

传统的学生信息管理方式已经无法满足现代教育管理的需求,需要采用更加高效和智能的信息管理系统。

三、需求分析学生信息管理系统需要具备以下功能:1. 学生信息维护:包括学生基本信息的录入、修改和删除等操作。

2. 成绩管理:包括成绩录入、查询和统计等功能。

3. 课程管理:包括课程信息的录入、查询和修改等操作。

4. 成绩报表生成:根据学生成绩生成报表,方便教师和学校进行评估和分析。

5. 权限管理:不同用户有不同的权限,需要进行用户和权限管理。

四、设计方案根据需求分析,我设计了以下类:1. Student类:表示学生信息,包含学生id、姓名、性别、年龄等属性。

2. Course类:表示课程信息,包含课程id、名称、教师等属性。

3. Grade类:表示学生成绩,包含学生id、课程id、分数等属性。

4. User类:表示系统用户,包含用户id、用户名、密码等属性。

5. Report类:表示成绩报表,包含学生id、课程id、平均分等属性。

6. System类:表示学生信息管理系统,包含各种操作方法。

五、实现细节1. 数据存储:使用数据库来存储学生信息、课程信息、成绩信息和用户信息等数据。

2. 数据库设计:根据类的属性设计数据库表结构,每个类对应一个表,表中的字段对应类的属性。

3. 系统界面:设计一个图形界面,方便用户进行操作,包括学生信息录入、成绩查询、课程管理等功能。

4. 系统功能实现:根据需求设计各个功能的实现方法,包括学生信息维护、成绩管理、课程管理等操作。

面向对象程序设计(C++课程设计报告)

面向对象程序设计(C++课程设计报告)
打开线数据文件Line.dat,可以显示出文件里面的线图形。
(2)问题描述:
使用MFC,应用MFC中已有函数以及画图类完成一个划线程序,使得能用鼠标在MFC视图中划出一道可以自定义线的格式的线,然后完成拾取、保存以及读取工作。
(3)问题分析:
该题目需要我们在熟练运用MFC的基础上,对MFC中函数进行掌握,并学会划线类地应用。首先需要我们完成划线操作利用buttondown和buttonup两个消息响应函数,然后将所有的线的属性放入vector容器中,实现线的存储,利用两边之和约等于第三边完成线的选取工作,再利用文本输入输出流完成保存和读取。
void CHuaxianView::OnMenuitem32771()
{
// TODO: Add your command handler code here
dialog a;
a.DoModal();
m_b=a.m_b;
m_r =a.m_r;
m_w =a.m_w;
m_y =a.m_y;
}
在ChuaxianView类的OnLButtonDown()函数中完成记录起始点的工作:
// TODO: add draw code for native data here
for(int i = 0; i < m_vLines.size() ;i++)
m_vLines[i].Draw(pDC);//将容器中所有线进行重绘
}
在ChuaxianView类的对话框函数中完成数据输入与更新:
void CHuaxianView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

《 面向对象程序设计》课程设计实验报告

《 面向对象程序设计》课程设计实验报告

《面向对象程序设计》课程设计实验报告指导教师小组成员:专业班级: 2010级计算机科学与技术专业开设时间:2011-2012(一)目录1.任务1 (2)1.1 任务介绍 (2)1.2 小组成员任务分配 (2)1.3.1设计思想及主要流程图 (2)1.3.1主要程序清单 (2)1.3.1 运行结果及分析 (4)1.3.2设计思想及主要流程图 (2)1.3.2主要程序清单 (2)1.3.2 运行结果及分析 (4)1.3.3设计思想及主要流程图 (2)1.3.3主要程序清单 (2)1.3.3 运行结果及分析 (4)2.任务2 (2)2.1 任务介绍 (2)2.2 小组成员任务分配 (2)2.3设计思想及主要流程图 (2)2.3主要程序清单 (2)2.3 运行结果及分析 (4)3收获、体会和建议 (4)任务1.按照要求设计类 1.根据输出设计类设计类就是根据数据封装的要求,抽象出适合的类。

有如下测试程序和测试程序的输出结果,要求设计类Welcome 。

void main() { Welcome we; Welcome you(we); you.Display();you.Set(“Thank you.”);cout<<you.Get()<<endl; you.talk(); you.Display();}测试程序的输出结果如右: 设计类Welcome 的原则 1)在头文件Cpp1.h 中声明类 2)在Cpp1.cpp 中实现类3)使用内联函数定义Display()函数2.使用类改写程序编写一个求方程02=++c bx ax 的根的程序,用三个函数分别求当ac b 42+大于零、等于零和小于零时方程的根。

要求从主函数输入a 、b 、c 的值并输出结果。

使用面向过程的解法一般是把变量设为double 型,适用库函数cmath 进行计算。

请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。

C++面向对象课程设计报告(局域网聊天程序)

C++面向对象课程设计报告(局域网聊天程序)

XXXXX大学C++面向对象课程设计报告院(系):计算机工程学院专业:计算机网络工程学生姓名: XXXXXX班级:_网络081__学号: 200807255题目:局域网聊天程序起迄日期:_2010.12.20 – 2010.12.31设计地点: XX理工大学2#401指导教师: XXXXXX完成日期: 2010 年 12 月 31 日C++面向对象课程设计报告:局域网聊天程序2 目录一需求分析 (3)1.1 客户机端 (3)1.2 服务器端 (3)二设计内容 (4)2.1 程序整体结构 (4)2.2 各部分子模块功能 (5)2.3 各子模块代码编写 (6)三调试分析 (7)3.1 实际完成情况 (7)3.2 出现的问题及解决方案 (7)3.3 可以改进的地方 (8)3.4 可以扩充的功能 (9)四用户手册 (10)4.1 程序主界面 (10)4.2 获取本地信息 (10)4.3 发送信息 (11)4.4 接收信息 (11)4.5 总体演示 (11)五设计总结 (12)六参考文献 (13)七附录 (14)一需求分析此次开发的网络聊天工具可作为个人的交流工具使用,通信的安全性不是很高,但要求信息的响应速度要较快,让用户充分享受到网络即时消息的方便和快捷。

本聊天工具由服务器端程序和客户端程序两部分组成,整体采用C++平台开发,没有使用管理数据库。

服务器和与客户端都包含与用户的交互式界面,它有必要的界面的按钮,向用户提供网络即时消息的功能。

本聊天需要包含如下本功能:1.1 客户机端✓获取本地IP地址✓获取本地通信端口✓获取远程IP地址✓获取本地主机名✓获取从服务器端发送过来的信息✓给服务器发送用户自定义的数据1.2 服务器端✓获取本地IP地址✓获取本地通信端口✓获取远程IP地址✓获取本地主机名✓获取从服务器端发送过来的信息✓向客户机发送用户自定义的数据3C++面向对象课程设计报告:局域网聊天程序二设计内容2.1 程序整体结构42.2 各部分子模块功能5C++面向对象课程设计报告:局域网聊天程序2.3 各子模块代码编写1)WM_INITDIALOG模块switch(UMsg){case WM_INITDIALOG:CLIENT.INIT_MYSOCKET(hwndDlg);===========================================void MYSOCKET::INIT_MYSOCKET(HWND &hwndDlg){ WSAStartup(0x0101, &wsaData);udp_sd=socket(AF_INET, SOCK_DGRAM, 0);bind(udp_sd, (LPSOCKADDR)&Local_PC, sizeof(Local_PC));WSAAsyncSelect(udp_sd, hwndDlg, WM_USER+1, FD_READ);}2)IDOK模块switch(LOWORD(wParam)){case IDOK:CLIENT.MYSOCK_SEND(hwndDlg);break;===========================================void MYSOCKET::MYSOCK_SEND(HWND &hwndDlg){ GetDlgItemText(hwndDlg, IDC_SEND, Buffer, sizeof(Buffer));sendto(udp_sd, Buffer, strlen(Buffer), 0, (struct sockaddr *)&Remote_PC, len);}3)IDCANCEL模块case IDCANCEL:CLIENT.END_MYSOCKET(hwndDlg);EndDialog(hwndDlg, 0);break;===========================================void END_MYSOCKET(HWND &hwndDlg){ WSAAsyncSelect(udp_sd, hwndDlg, 0, 0);closesocket(udp_sd);WSACleanup();}4)FD_READ模块case WM_USER+1:switch(LOWORD(lParam)){case FD_READ:CLIENT.MYSOCK_RECV(hwndDlg);break;}===========================================void MYSOCKET::MYSOCK_RECV(HWND &hwndDlg){recv(udp_sd, Buffer, sizeof(Buffer), 0);SetDlgItemText(hwndDlg, IDC_RECV, Buffer);}6三调试分析3.1 实际完成情况经过几天的学习及调试,该“局域网聊天程序”仅仅能实现点对点通信,不能实现一对多、多对多、多对一等通信模式,也就是说,只能开启一个客户机和一个服务器,若有多个程序副本在运行,则可能导致接收以及发送数据的混乱。

面向对象程序设计课程实验总结报告

面向对象程序设计课程实验总结报告

舉申科按衣專课程实验报告课程名称:面向对象程序设计院系:专业班级:____________学号:__________姓名:_______________指导教师:____________实验一.面向过程的整型栈编程 (1)1. 需求分析 (1)1.1题目要求 (1)1.2需求分析 (1)2. 系统设计 (2)2.1概要设计 (2)2.2详细设计 (3)4. 软件测试 (4)5. 特点与不足 (4)5.1技术特点 (4)5.2不足和改进的建议 (5)6. 过程和体会 (5)6.1遇到的主要问题和解决方法 (5)6.2课程设计的体会 (5)7. 源码和说明 (5)7.1文件清单及其功能说明 (5)7.2用户使用说明书 (5)7.3源代码 (5)实验二.面向对象的整型栈编程 (12)1. 需求分析 (12)1.1题目要求 (12)1.2需求分析 (12)2. 系统设计 (13)2.1概要设计 (13)2.2详细设计 (13)3. 软件开发 (14)4. 软件测试 (14)5. 特点与不足 (14)5.1技术特点 (14)5.2不足和改进的建议 (15)6. 过程和体会 (15)7. ......................................................................................................................................... 源码和说明. (15)7.1文件清单及其功能说明 (15)7.2用户使用说明书 (15)7.3源代码 (15)实验三.基于算符重载的整型栈编程 (19)1. 需求分析 (19)1.1题目要求 (19)1.2需求分析 (19)2. 系统设计 (20)2.1概要设计 (20)2.2详细设计 (20)3. 软件开发 (20)4. 软件测试 (20)5. 特点与不足 (21)5.1技术特点 (21)5.2不足和改进的建议 (21)6. 过程和体会 (21)6.1遇到的主要问题和解决方法 (21)6.2课程设计的体会 (21)7. 源码和说明 (21)7.1文件清单及其功能说明 (21)7.2用户使用说明书 (21)7.3源代码 (21)实验四.面向对象的整型队列编程 (25)1. 需求分析 (25)1.1题目要求 (25)1.2需求分析 (25)2. 系统设计 (26)3. 软件开发 (26)4. 软件测试 (26)5. 特点与不足 (26)5.1技术特点 (26)5.2不足和改进的建议 (26)6. 过程和体会 (26)6.1遇到的主要问题和解决方法 (26)6.2课程设计的体会 (27)7. ..................................................................................................................................... 源码和说明 (27)7.1文件清单及其功能说明 (27)7.2用户使用说明书 (27)7.3源代码 (27)实验五.基于组合的整型队列编程 (31)1. 需求分析 (31)1.1题目要求 (31)1.2需求分析 (31)2. 系统设计 (31)3. 软件开发 (32)4. 软件测试 (32)5. 特点与不足 (32)5.1技术特点 (32)5.2不足和改进的建议 (32)6. 过程和体会 (32)6.1遇到的主要问题和解决方法 (32)6.2课程设计的体会 (32)7. 源码和说明 (33)7.1文件清单及其功能说明 (33)7.2用户使用说明书 (33)7.3源代码 (33)实验六.基于继承的整型队列编程 (37)1. 需求分析 (37)1.1题目要求 (37)1.2需求分析 (38)2. 系统设计 (38)3. 软件开发 (38)4. 软件测试 (38)5. 特点与不足 (38)5.1技术特点 (38)5.2不足和改进的建议 (38)6. 过程和体会 (39)7. .......................................................................................................................................... 源码和说明. (39)7.1文件清单及其功能说明 (39)7.2用户使用说明书 (39)7.3源代码 (39)实验一.面向过程的整型栈编程1. 需求分析1.1题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

福建农林大学计算机与信息学院计算机类课程设计报告课程名称:面向对象程序设计课程设计课程设计题目:高校学生宿舍信息管理系统*名:***系:计算机科学与技术专业:计算机科学与技术年级:学号:************指导教师:***职称:讲师2011年5月28 日福建农林大学计算机与信息学院计算机类课程设计结果评定目录1.设计目的 (4)2.设计要求 (4)2.1功能需求 (4)2.2性能需求 (5)2.3数据库选择 (6)2.4环境 (6)3.设计方案 (6)3.1系统功能模块图 (7)4.设计内容 (9)4.1系统主界面的设计 (9)4.2对程序中用到的SQL Sever相关操作方法进行封装 (10)4.3实现对相关信息的快速查看 (13)4.4显示学生信息(用户信息) (16)4.5学生管理模块 (17)5.总结 (20)参考文献 (21)高校学生宿舍信息管理系统1.设计目的学生宿舍管理系统对于一个学校来说是必不可少的组成部分。

目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。

而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。

当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。

信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。

21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。

我们针对如此,设计了一套学生宿舍管理系统。

学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。

由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。

这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。

本系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的报表生成、修改功能,能够快速的查询学校所需的住宿信息。

2.设计要求目前,我们学校的宿舍管理采用的还是人工来进行管理的, 面对目前学校发展的实际状况,我们通过实地调研之后,对宿舍管理系统的设计开发做了一个详细的概述。

2.1功能需求2.1.1 基本功能需求本课题要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。

系统在实现上应该具有如下功能:1.系统要求用户必须输入正确的用户名和密码才能进入系统。

2.系统应该提供学生住宿情况的基本登记。

3.系统应提供学生每学期学生的离校处理。

4.系统应提供宿舍楼报修的详细登记。

5.系统应提供宿舍楼违规详细情况登记。

6.系统应提供查询功能,以方便用户对学生基本信息的查询(要实现按多种条件的查询)。

7.系统应提供增加、删除、修改用户帐户的功能。

8.系统还应具有添加、修改、删除学生基本信息的功能。

2.1.2 报表需求学生宿舍管理系统的某些信息应当能够以报表形式打印出来。

基本上应该能够实现扣分统计、和卫生评比的报表打印功能。

(由于时间问题,改功能尚未实现)2.1.3 用户界面需求学生宿舍管理系统应提供简单、层次关系明了、清晰的操作界面,使用户一目了然。

尽可能的为用户的录入、查询等功能操作提供方便。

快捷按钮的创建也是非常需要的,以方便用户操作。

2.2性能需求2.2.1系统安全性学生宿舍管理系统中的增加用户、学生毕业离校等的某些模块都是相联系在一起的,所以在系统的管理权限上应当进行严格控制,具体思想如下:1.要想对该学生宿舍管理系统进行操作就应当具有某些操作权限。

没有权限的用户将不能通过任何渠道来登录该系统,查看该系统的任何信息和数据,以确保系统的严密性和安全性。

2.在上述要求基础上可以为该系统设定三种登录方式,程序开始运行所有功能将是不可使用的,只有系统管理员登录、普通用户登录和只读用户三个窗口可以使用,没有系统管理员或者普通用户的用户名和密码任何人都不能登录该系统进行操作。

3.在具体实现时还应为系统管理员和普通用户设定不同的权限,系统管理员应当可以使用系统的所有模块,普通用户对于大部分的很关键的模块是无权使用的。

只读用户只能观看数据对任何模块都无权修改。

2.3数据库选择数据库是数据管理的最新技术,是计算机科学的重要分支。

十年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件。

由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。

我们选用的是SQL Server 2005。

2.4环境本系统是以Windows系统为操作平台,用C#编程语言和SQL Server 2005数据库来实现高校学生宿舍管理系统所需功能的。

3.设计方案【设计题目】高校学生宿舍信息管理系统我们将宿舍管理系统分为五个大的模块:系统管理模块、资源管理模块、学生管理模块、报修管理模块、违规管理模块。

【系统特点】本系统主要特点是根据面向对象程序设计的思想:封装,继承,多态来实现。

如:对Sql Sever操作方法的封装,对窗体设计代码的封装,对主窗体的继承以及实现多态。

在整体设计中,我们将宿舍管理系统分为五个大的模块:系统管理模块、资源管理模块、学生管理模块、报修管理模块、违规管理模块。

每个模块将实现不同的功能。

下面将具体进行介绍,括号里面是小组成员的名字,代表分工负责完成的模块。

3.1系统功能模块图系统功能模块图3.1.1系统管理模块(黄莹)系统分支(管理员帐号模块)功能模块图系统管理模块包括:管理员注册,管理员更新,退出系统三个部分。

1. 管理员注册:实现系统管理人员信息的注册。

2. 管理员更新:实现系统管理人员以及其他人员信息的修改与更新。

3. 退出系统:实现正常退出宿舍管理系统。

3.1.2资源管理模块(陈清兰)系统分支(宿舍管理模块)功能模块图宿舍管理模块包括:宿舍楼管理、宿舍管理两个大的部分。

1.宿舍楼管理:管理学校的宿舍楼信息(地理区域,宿舍楼号)。

2.宿舍管理:管理学生宿舍的住宿情况(地理区域,宿舍楼号,床位数,性别)。

3.1.3学生管理模块(苏永权)系统分支(学生管理模块)功能模块图信息查询模块基本上包括:信息登记,入住登记(要实现按多种条件的查询)。

1. 信息登记:实现每个学生基本信息情况的录入功能。

2. 入住登记:实现每个学生宿舍的分配功能。

3.1.4报修管理模块(林满堂)系统分支(报修管理模块)功能模块图报修模块基本上包括:报修登记,维修反馈。

1.报修登记:纪录宿舍楼的报修情况2.维修反馈:对报修记录进行跟踪并记录反馈情况。

3.1.5违规管理模块(林志龙)系统分支(违规管理模块)功能模块图出入登记模块包括:违规登记、处理意见、两个功能模块。

1.违规登记:详细登记宿舍楼的违规情况。

2.处理意见:对违规情况进行处理并登记情况。

4.设计内容在系统功能模块介绍时,我们将宿舍管理系统分为五个大的模块:系统管理模块、资源管理模块、学生管理模块、报修管理模块、违规管理模块。

下面是我负责的功能模块:4.1系统主界面的设计具体实现:根据功能模块图对主界面进行相关菜单,按钮的,及主窗体的设计。

并在窗体底部添加状态工具栏,调用TIMER控件来实现实时显示系统时间功能。

整个窗体按照面向对象的封装思想将窗体设计类跟功能实现类进行了分离。

这样就使得整个程序更容易维护。

4.2对程序中用到的SQL Sever相关操作方法进行封装设计思想:我希望把程序中对SQL Sever的增、删、查、改的所有方法都整合到一个类中,然后当使用到某个方法的时候可以直接从该类中调用。

所以,我封装了一个DBHelper类来实现这个思想。

当然以下很多代码中都会引用到这个DBHelper类,所以经常会看到如:DBHelper.GetResult(sql);DBHelper.connection.Close();DBHelper.GetDsqlResult(sql);等调用语句。

DBHelper类的主要实现代码:class DBHelper{private static SqlCommand cmd = null;private static SqlDataReader dr = null;//数据库连接字符串private static string connectionString = "Data Source =.\\SQL2005; Initial Catalog = Virgo; Integrated Security=SSPI";//数据库连接Connection对象public static SqlConnection connection = new SqlConnection(connectionString);public DBHelper(){ }#region返回结果集public static SqlDataReader GetResult(string sql){try{cmd = new SqlCommand();mandText = sql;cmd.Connection = connection;cmd.Connection.Open();dr = cmd.ExecuteReader();return dr;}catch (Exception ex){MessageBox.Show(ex.Message);return null;}finally{//dr.Close();//cmd.Connection.Close();}}#endregion#region对Select语句,返回int型结果集public static int GetSqlResult(string sql){try{cmd = new SqlCommand();mandText = sql;cmd.Connection = connection;cmd.Connection.Open();int a = (int)cmd.ExecuteScalar();return a;}catch (Exception ex){MessageBox.Show(ex.Message);return -1;}finally{cmd.Connection.Close();}}#endregion#region对Update,Insert和Delete语句,返回该命令所影响的行数public static int GetDsqlResult(string sql){try{cmd = new SqlCommand();mandText = sql;cmd.Connection = connection;cmd.Connection.Open();cmd.ExecuteNonQuery();return 1;}catch (Exception ex){MessageBox.Show(ex.Message);return -1;}finally{cmd.Connection.Close();}}#endregion}4.3实现对相关信息的快速查看设计思想:我希望通过点击主窗口的一个菜单按钮可以快速的浏览相关常用信息如:学生住宿信息,宿舍维修记录,违规记录以及正在处理的业务等等学生信息查询(快速查询):具体实现:在窗口初始化的时候,查询数据库中DB_StuInfo ,DB_DormRegister两张表,通过stuNo字段进行连接,把相关记录显示在窗体中ListView控件中。

相关文档
最新文档