《“飞天”自行车租赁管理系统.doc》由会员分享,可在线阅读,更多相关《“飞天”自行车租赁管理系统.doc(30页珍藏版)》请在三一办公上搜索。
1、一、项目开发概述1(一)项目背景1二、调研及可行性分析2(一)市场需求分析2(二)技术可行性21、技术可行性2(三)操作可行性分析21、先进管理方式22、经济可行性23、运行可行性24、易用性25、法律可行性2三、任务概述2(一)项目目标2(二)功能2(三)性能31、网络化32、智能化33、美观易用的界面3四、网络技术实现3(一)产生背景及必要性3(二)具体实施31、解决方案32、开发环境33、用户界面34、管理系统各模块介3五、基本数据流程和处理流程流程图3(一)处理流程31、系统管理员控制流程32、借车处理流程43、还车处理流程4六、系统详细设计5(一)初步想法5(二)软件需求分析概述51
2、、软件结构设计52、功能需求与模块的关系6(三)人工处理过程61、人工借还62、人工寻车63、尚未解决的问题6(四)数据库结构设计61、系统E-R图7(五)逻辑结构设计71、各数据项的逻辑结构设计说明72、系统逻辑结构图7(六)数据库结构设计71、管理员表82、自行车表83、用户表8七、详细设计任务8(一)系统设计模块81、登录界面82、自行车库11(二)用户管理模块111、会员管理112、会员注册153、会员信息修改15(三)用户借车模块161、查询自行车162、借还查询18(四)自行车管理模块221、自行车管理222、添加自行车253、修改自行车信息26八、设计总结27九、项目开发意义28
3、参考文献28“飞天”自行车租赁管理系统()摘要:本文针对当前大学校园学生拥有及使用自行车的现状,立足高校园区的实际,提出了一种解决方案“飞天”自行车网上租赁服务项目,通过对自行车的统一管理和开展租赁业务,减少学生用车不方便现象的发生。通过问卷调查及结果分析,方案的可行性得到了较为严谨的论证。本方案立意新颖,有良好的应用价值,所提出的具体实施方案,也对当今校园自行车问题的解决有着很好的借鉴和指导意义。关键词:自行车;管理;系统设计 ;数据库;Visual Studio2008;SQL Server 2005一、项目开发概述(一)项目背景一骑黄红学子倚,半打驿站笑脸迎。这是高校中的一道人性化的风景
4、线校园自行车借还服务项目。学生、教职工们可以凭借有效证件方便地在各个自行车借还点处借、还自行车。这项服务方便了学生、教职工们的出行,为之节省了一定的时间,意义深刻。然而在为全校几千学子服务的同时,我们的服务队同学却还要每天手工整理、登记和统计自行车的借还情况,工序繁杂、费时劳神。为减轻相关工作人员的负担,同时减少工作出错率、展现为同学服务的精神,我们小组决定开发一套旨在更好地为同学们服务的“飞天自行车租赁服务系统”。二、调研及可行性分析(一)市场需求分析学生群体是用车的大户,有大批自行车闲置,因此是本服务项目的主市场和原料来源。我们采用问卷的方式对同学们进行了调查(调查问卷与结果分析见附)。通
5、过整理调查信息,我们发现学生普遍对自行车投入较多,但使用率却相对不高,并且大多数同学都表示愿意摆脱这一困境,乐意接受租车业务。基于此,我们认为,本工作站拥有广阔的市场,方案运行所需的市场条件得到了满足。(二)技术可行性1、技术可行性 开发工具:VS2008 数据库环境:SQL Server 2005 系统环境:Microsoft Windows 2000或以上版本。 系统实现依靠相对熟悉的c语言和SQL Server2008数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作。(三)操作可行性分析1、先进管理方式 通过向管理技术人员调查和咨询,我们对自行车服务系统的维护管理有一个确
6、切、系统的认识。我们发现,完全可以借鉴图书馆的图书管理系统对工作站实施管理。其中,网络登记管理的方式随着网络技术的发展也变得极具可行性。2、经济可行性本软件采用的是字符界面操作,一方面节省了开发时间,另一方面也避免了因为开发平台的限制而面临的技术难关。在经济和时间上也是符合我们小组的预算的。软件投入使用后,用户要有一定的字符界面操作适应期。由于数据储存方式简单,功能要求不高,在用户需求没有明显提高的情况下,软件的维护是易于进行的,这给用户减轻了一定的使用和维护经济负担。3、运行可行性本软件主要使用对象是大学生,大学生的计算机基础是足够好的,软件的使用者技术水平是可以保证的。4、易用性本系统是直
7、接面对用户的,而用户往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。5、法律可行性本软件是专用软件,具有较强的针对性。在我们的编码和设计中,除了参阅相关的资料,不涉及已存在的设计专利、不侵犯国家、学校的相关制度,因此具法律可行性。三、任务概述(一)项目目标减轻自行车服务队同学的工作负担、节省经费;提高自行车借还登记处理速度;减少登记出错率;更好、更有效地为同学、教职工服务。(二)功能自行车以编号形式的录入、删除、修改、查询、检索;设立管理面板,使系统管理员拥有本系统数据
8、处理的所有权限;对自行车借还的登记;对借还记录进行检查以发现车辆未归还等异常情况。(三)性能1、网络化在该系统中,各工作机与用户机通过网络互联,较容易的实现了数据的处理与反馈。网络化是一种趋势,所有的工作、学习、生活在这时都被赋予了鲜明的网络特色,该工作站的提出也顺应了网络化发展的需求。2、智能化从技术的角度讲,智能化就是自动化,本系统可以随时自动记录自行车的使用情况,包括出借和归还时间、租借人具体信息、使用时间长度等。充分利用了网络化的优势,方便服务与大众同时减轻管理员的劳动强度。3、美观易用的界面系统设基于Form窗体的管理界面,管理员可以通过系统界面对系统进行管理。把复杂繁多的系统功能设
9、置变为直观易用的窗体界面,大大降低了对网络管理员的高要求,提高了系统的易用性。四、网络技术实现(一)产生背景及必要性大量的数据需要处理,易使人感到无所适从。而且如果人工笔记处理,则其准确性和及时性很难得到保证。网络硬件的降价、网络软件功能的日益强大使得校园网络化的普及程度越来越高。(二)具体实施1、解决方案本自行车租赁管理系统采用基于Visual Studio 2008设计的应用窗体与SQL 2005所创建的数据库相结合的应用模式。用户(分学生用户与管理用户)通过打开登录界面向服务器(SERVER)提交请求,包括对数据库的查询、修改、删除等。服务器负责对请求进行处理,需要返回时,服务器会自动将
10、信息返回到用户界面。2、开发环境硬件:现在市场上所用的PC都可以满足其要求软件:Visual Studio 2008数据库:Microsoft SQL Server2005客户机平台:支持Windows 98/2000、Windows XP/Windows73、用户界面用户界面是一个集成化的信息平台,基本上实现与数据库的接口,即实现网上查询租车信息、网上预定等功能。4、管理系统各模块介自行车出租管理模块:负责自行车的入库、租出、收费、收回等,它是整个租赁管理系统中最活跃的模块;一般管理模块:是指向对前面的用户界面,比如新闻的添加、信息的发布等;监管部模块:其所对应的页面功能是检阅自行车出租管理
11、部、购买维修部及财会部的页面情况,对其进行监督管理,发现问题,及时解决。五、基本数据流程和处理流程流程图(一)处理流程1、系统管理员控制流程系统管理员控制流程2、借车处理流程借车处理流程3、还车处理流程还车处理流程六、系统详细设计(一)初步想法本系统为简单起见,采用了数据文件的数据储存方法,这是由于精力和时间限制所造成的。本简单版本只考虑了只有一个工作站的情况,因此,不用考虑数据文件间的同步问题。(二)软件需求分析概述本系统的工作范围为在校园里,提供了自行车借还、管理等服务,主要服务对象为学校里的师生们。目的是为服务站的工作人员、师生提供进一步的便利,使工作、使用更加有效和愉快。1、软件结构设
12、计为进一步说明本系统的事务流程,我们作出了本系统的事务型软件结构图(ER图)如下:自行车管理系统E-R图2、功能需求与模块的关系为说明各项功能需求的实现同主要模块的分配关系,下面以矩阵图说明:借车模块还车模块每日整顿模块登陆验证查询可用自行车更新自行车状态更新用户使用记录生成未归还车辆(三)人工处理过程1、人工借还本软件系统要在服务站设置值班人员,用户来借还车时,为用户派用或者回收车辆。2、人工寻车每日整顿车辆时,要求值班人员根据当日未归还车辆表去看看找回缺失车辆。3、尚未解决的问题多服务站模式问题:本系统只能应用于只有一个自行车服务站的情况,对于多个服务站,本系统暂时无法胜任;智能化程度问题
13、:本系统还未实现全自动的智能借还车辆模式,需要工作人员时刻在服务站进行人工服务。(四)数据库结构设计1、系统E-R图系统E-R图(五)逻辑结构设计1、各数据项的逻辑结构设计说明实体:用户User实体:使用记录实体:服务人员实体:自行车2、系统逻辑结构图系统逻辑结构图(六)数据库结构设计本系统使用的数据库管理系统为SQL Server 2005,下面介绍本系统数据库的结构设计。1、管理员表本管理系统具有管理员表LoginInfo,用于存储管理员身份的数据,其模式如表3.1所示。字段名数据类型允许空备注IDint否用户ID,主键UserNamevarchar(50)否用户姓名UserPasswor
14、dvarchar(50)否用户密码LoginInfo(管理员)表2、自行车表存储自行车信息的表Book,如表3.2所示,用于存放本管理系统中所有已录入的自行车信息。字段名数据类型允许空备注NOvarchar(50)否图书ID,自动增加,主键Namevarchar(50)否车名Typevarchar(50)是类型Pricenchar(50)是价格Statevarchar(50)是状态Timedatetime是借还时间Introductionvarchar(50)是评价Book(自行车)表3、用户表存储用户信息的表Users,模式如表3.3所示。该表存放了所有用户的详细信息,借车和还车都对该表进行
15、操作。字段名数据类型允许空备注Numbernchar(10)否用户编号,自动增加,主键Namenvarchar(50)否用户姓名Sexnchar(10)是用户性别IDnvarchar(18)否身份证Addressnvarchar(50)是地址Telnvarchar(11)是电话Pwdnvarchar(50)否密码Bikenvarchar(50)是所借的车Users(自行车借还)表七、详细设计任务在详细设计阶段,我们按之前的概要设计,结合实际的编程可实现性,设计了3个模块,模块对应共同的数据结构,说明如下:(一)系统设计模块1、登录界面主要代码:private void DOLogin(stri
16、ng paramUserName, string paramPassword, string paramCode, string paramGetcheckCode) int returnValue = 0; BULogin myBULogin = new BULogin(); returnValue = myBULogin.DoLogin(paramUserName, paramPassword, paramCode, paramGetcheckCode); if (radioButton1.Checked|radioButton2.Checked=true ) switch (return
17、Value) case 0: /1.用户名不存在 MessageBox.Show(用户名不存在!); txtUserName.Clear(); txtPassword.Clear(); txtCode.Clear(); CodeImage(GetcheckCode(); break; case 1: /2.密码错误 MessageBox.Show(密码错误!); txtPassword.Clear(); txtCode.Clear(); CodeImage(GetcheckCode(); break; case 2: MessageBox.Show(验证码错误!); txtPassword.C
18、lear(); txtCode.Clear(); CodeImage(GetcheckCode(); break; case 3: /3.登录成功 frmintroduction myfrmintroduction = new frmintroduction(); myfrmintroduction.Show(); this.Hide(); this.DialogResult = DialogResult.No; break; default: break; else MessageBox.Show(请选择权限!); private void btnLogin_Click(object sen
19、der, EventArgs e) string paramUserName = this.txtUserName.Text.Trim(); string paramPassword = this.txtPassword.Text.Trim(); string paramCode = this.txtCode.Text.ToLower(); string paramGetcheckCode = this.strTwo.ToLower(); this.DOLogin(paramUserName, paramPassword, paramCode, paramGetcheckCode); stri
20、ng strTwo = ; private void frmLogin_Load_1(object sender, EventArgs e) CodeImage(GetcheckCode(); private void btnCancel_Click(object sender, EventArgs e) Close(); private void lkblCode_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e) CodeImage(GetcheckCode(); private void linkLabel1_Lin
21、kClicked(object sender, LinkLabelLinkClickedEventArgs e) frmPeopleAdd fpla = new frmPeopleAdd(); fpla.Show(); 2、自行车库(二)用户管理模块1、会员管理主要代码:private void btHome_Click(object sender, EventArgs e) frmintroduction myfrmintroduction = new frmintroduction(); myfrmintroduction.Show(); this.Hide(); this.DialogR
22、esult = DialogResult.No; public void frmPeoplesql() /打开数据库 SqlConnection mySqlConnection = new SqlConnection(Conn); mySqlConnection.Open(); string sqlQuery = SELECT * FROM Users; SqlCommand mySqlCommand = new SqlCommand(sqlQuery, mySqlConnection); mySqlCommand.ExecuteNonQuery(); SqlDataAdapter mySql
23、DataAdapter = new SqlDataAdapter(mySqlCommand); /填充数据库 DataSet myDs = new DataSet(); mySqlDataAdapter.Fill(myDs); /关闭数据库 mySqlConnection.Close(); this.dgvPeople.DataSource = myDs.Tables0; private void frmPeople_Load(object sender, EventArgs e) frmPeoplesql(); private void Find(string paramNumber) BU
24、People myBUPeople = new BUPeople(); DataTable myDataTable = new DataTable(); myDataTable = myBUPeople.BUSearch(paramNumber); this.dgvPeople.DataSource = myDataTable; private void btFind_Click(object sender, EventArgs e) string paramNumber = this.txtNumber.Text.Trim(); Find(paramNumber); private void
25、 btAdd_Click(object sender, EventArgs e) frmPeopleAdd myfrmPeopleAdd = new frmPeopleAdd(); myfrmPeopleAdd.Show(); private void button1_Click(object sender, EventArgs e) frmPeoplesql(); private void Update1() int selectCount = this.dgvPeople.SelectedRows.Count; if (selectCount = 0) MessageBox.Show(请选
26、择要更新的行!); string paramNumber = this.dgvPeople.SelectedRows0.Cells0.Value.ToString(); string paramName = this.dgvPeople.SelectedRows0.Cells1.Value.ToString(); string paramSex = this.dgvPeople.SelectedRows0.Cells2.Value.ToString(); string paramID = this.dgvPeople.SelectedRows0.Cells3.Value.ToString();
27、 string paramAddress = this.dgvPeople.SelectedRows0.Cells4.Value.ToString(); string paramTel = this.dgvPeople.SelectedRows0.Cells6.Value.ToString(); string parampwd = this.dgvPeople.SelectedRows0.Cells8.Value.ToString(); string paramPictures = this.dgvPeople.SelectedRows0.Cells7.Value.ToString(); fr
28、mPeopleUpdate myfrmPeopleUpdate = new frmPeopleUpdate(paramNumber, paramName, paramSex, paramID, paramAddress, paramTel, parampwd, paramPictures); if (myfrmPeopleUpdate.ShowDialog() = DialogResult.No) frmPeoplesql(); private void btUpdate_Click(object sender, EventArgs e) Update1(); private int DoDe
29、lete(string paramNumber) int returnValue = 0; BUPeople myBUPeople = new BUPeople(); returnValue = myBUPeople.BUDelete(paramNumber); return returnValue; private void btDelete_Click(object sender, EventArgs e) string paramNumber = string.Empty; int selectCount = this.dgvPeople.SelectedRows.Count; if (
30、selectCount = 0) MessageBox.Show(请选择要删除的行!); int returnValue = 0; for (int i = 0; i selectCount; i+) paramNumber = this.dgvPeople.SelectedRowsi.Cells0.Value.ToString(); if (MessageBox.Show(您确定要删除编码为 + paramNumber + 的信息吗?, 提示信息, MessageBoxButtons.OKCancel) = DialogResult.Cancel) return; for (int i =
31、0; i 0) MessageBox.Show(删除成功!); frmPeoplesql(); else MessageBox.Show(删除不成功!); 2、会员注册3、会员信息修改(三)用户借车模块1、查询自行车主要代码:public void frmBooksql() /打开数据库 SqlConnection mySqlConnection = new SqlConnection(Conn); mySqlConnection.Open(); string sqlQuery = SELECT * FROM Book; SqlCommand mySqlCommand = new SqlCom
32、mand(sqlQuery, mySqlConnection); mySqlCommand.ExecuteNonQuery(); SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(mySqlCommand); /填充数据库 DataSet myDs = new DataSet(); mySqlDataAdapter.Fill(myDs); /关闭数据库 mySqlConnection.Close(); this.dgvBook.DataSource = myDs.Tables0; private void dgvBook_DataErro
33、r(object sender, DataGridViewDataErrorEventArgs e) if (e.Exception != null & e.Context = DataGridViewDataErrorContexts.Commit) MessageBox.Show(CustomerID value must be unique.); private int DoDelete(string paramNo) int returnValue = 0; BUBook myBUBook = new BUBook(); returnValue = myBUBook.BUDelete(
34、paramNo); return returnValue; private void Search(string paramNo, string paramName, string paramTyre, string paramState) BUBook myBUBook = new BUBook(); DataTable myDataTable = new DataTable(); myDataTable = myBUBook.BUSearch(paramNo, paramName, paramTyre, paramState); this.dgvBook.DataSource = myDa
35、taTable; private void CheckBike_Load(object sender, EventArgs e) frmBooksql(); BUBook myBUBook = new BUBook(); DataTable myDt = new DataTable(); myDt = myBUBook.BUTyre(); this.cmbTyre.DataSource = myDt; this.cmbTyre.DisplayMember = Tyre; this.cmbTyre.ValueMember = Tyre; this.cmbTyre.SelectedValue.ToString(); this.cmbTyre.Text = ; private void btFind_Click(object sender, EventArgs e) string paramNo = this.txtNo.Text.Trim(); strin
链接地址:https://www.31ppt.com/p-2525939.html