本人是在读大二软件工程学生,本c#开发的系统适合初学者借鉴与参考的简单的管理系统,系统有些内容为了方便做的简单,有兴趣可以自己开发,欢迎大家积极讨论交流,如有需要可以给小编留言。话不多说,直接上教学!!
资源公开在百度网盘:
链接:https://pan.baidu.com/s/1Vr0gRDLoeH3vUnqJ1OpYoA
提取码:ngjh
系统目录
前言
本人是在读软件工程专业学生,此系统为实训开发,只是一个基础框架,还有很多内容有待完善,大家可以在评论区一起交流学习,此处会奉上尽可能详细的教学以及源代码,此系统开源的源码仅限制学习使用,仅限制学习使用!!
一、开发环境
本项目系统基于Windows11,Visual Studio2022,SqlServer2008、Navicat Premium 12、窗体美化工具WinFormSkin
二、系统功能设计
本网咖管理系统能满足网咖的日常需求,其中包括:会员注册、修改密码、会员充值、会员注销、会员上机、会员下机、会员换机、信息查询以及管理员注册、退出系统、注销登录、帮助、关于作者等功能。
1. 会员模块
- 1 会员注册模块
输入符合格式的用户名和密码即可注册成功。
- 2 修改密码模块
输入正确的用户名和旧密码后输入两次一样的新密码即可修改密码。
- 3 会员充值模块
当用户余额不足时可通过查找会员号和输入金额来进行充值。
- 4 会员注销模块
可以注销用户的当前账号。
- 5 会员上机模块
会员选择主机进行登记即可进行使用。
- 6 会员下机模块
会员使用完毕后将上机信息、下机时间以及消费金额等信息即可完成下机。
- 7 会员换机模块
当会员当前使用的机器出现故障时,输入当前机器信息和想要换的机器信息,并将信息存储起来即可完成换机操作。
- 8 信息查询模块
当会员忘记自己的信息时可查询到自己的所有信息。
2. 系统模块
2.1管理员注册模块
本系统的所有操作都有管理员进行,在登录界面点击管理员注册输入符合要求的管理员账号以及两次相同的密码即可注册成功用于操作的管理员账号。
2.2 退出系统模块
点击退出系统按钮会关闭网咖管理系统。
2.3 注销登录模块
点击菜单栏注销按钮会退出当前登录的网吧管理系统,回到登录页面。
2.4 帮助模块
点击帮助按钮会弹出一些问题的解决办法。
2.5 关于作者模块
点击关于作者按钮会弹出作者信息以及作者联系方式等。
本系统功能模块设计如图1.1所示。
图1.1 飞天网咖管理系统功能模块图
三、系统数据库设计
SQLServer 自增主键创建语法:identity(seed, increment) 其中 seed 起始值 increment 增量
不懂得同学自行百度,此处不予以给出。
1. 管理员信息表(admin)
是用来存储管理员用户名和密码的,包括管理员用户名(admin)、密码(password)。管理员信息表结构如表1.2所示。
字段名称 | 数据类型 | 是否允许为空 | 字段说明 |
admin | char(10) | 否 | 管理员用户名 |
password | int | 否 | 密码 |
表1.2 管理员信息表(admin)
2. 会员信息表(vip)
是用来存储会员信息的,包括会员编号(vid)、会员账号(vnum)、会员密码(vpassword)、卡上余额(vbalance)、以及办卡时间(vtime)。会员信息表如表1.3所示。(vid为主键需设置为自增主键)
字段名称 | 数据类型 | 是否允许为空 | 字段说明 |
vid | int | 否 | 会员编号 |
vnum | varchar(20) | 否 | 会员账号 |
vpassword | varchar(20) | 否 | 会员密码 |
vbalance | int | 是 | 卡上余额 |
vtime | datetime | 否 | 办卡时间 |
表1.3 会员信息表(vip)
3. 电脑信息表(pc)
是用来存储电脑信息的,包括电脑编号(pcid)、状态(pcstate)、电脑描述(pcnode)。电脑信息表如表1.4所示。(pcid为主键需设置为自增主键)
字段名称 | 数据类型 | 是否允许为空 | 字段说明 |
pcid | int | 否 | 电脑编号 |
pcstate | int | 否 | 状态 |
pcnode | varchar(300) | 否 | 电脑描述 |
表1.4 电脑信息表(pc)
4. 上机记录表(onlinepc)
是用来存储上机记录的,包括记录编号(onid)、会员编号(vid)、电脑编号(pcid)、上机时间(begintime)、下机时间(endtime)、下机费用(price)。上机记录表如表1.5所示。(onid为主键需设置为自增主键)
字段名称 | 数据类型 | 是否允许为空 | 字段说明 |
onid | int | 否 | 记录编号 |
vid | int | 否 | 会员编号 |
pcid | int | 否 | 电脑编号 |
begintime | datetime | 是 | 上机时间 |
endtime | datetime | 是 | 下机时间 |
price | int | 是 | 上机费用 |
表1.5 电脑信息表(onlinepc)
四、系统实现
1. 系统架构
本系统采用了.NET Framework 4.6的系统框架。建立了网咖管理系统解决方案,使用using引用了程序集,创建了12个项目的Windows窗体,分别是会员注册、修改密码、会员充值、会员注销、会员上机、会员下机、会员换机、信息查询以及管理员注册、登录、帮助、关于作者。系统整体架构图如图2.1所示。
图2.1 系统架构图
图2.1系统架构图创建的类属性里存储了一些的公共方法,在程序中可直接引用,节省了一些重复代码的书写,program为程序接口,ValidCode是绘制验证码公共方法,DBwangba和SqlHelper封装数据库操作,大量减少重复代码使用,同时调用lrisskin4.dll对form窗体进行了美化处理如图2.2所示。
图2.2 工具类管理员注册模块
2. 管理员注册模块
使用此系统需要一个管理员账户进行登录,点击“还没有,点我注册!”超链接会跳转如图所示的界面,如果用户时第一次使用必须先进行注册。输入符合规则的账号和两次一样的密码点击注册按钮即可注册成功。如图2.3所示。
图2.3 管理员注册页面
实现过程:
在“注册”按钮事件Button-click中获取用户输入的账号和密码,调用SqlConnection方法将输入的账号的密码更新到数据库中,且注册的用户名必须为六个字符,密码也只能为六位,不符合规则则不能注册成功。若符合以上规则,则将对应的数据更新到数据库中。完成注册管理员操作,注册成功的账号可以用于正常登录此网咖管理系统。
3. 登录模块
登录时会显示如图所示的界面,管理员输入正确的用户名、密码以及验证码按登录按键即可登录成功。如果输入的用户名不正确则提示用户不存在,不能登录成功;如果输入的用户名正确,密码错误,则提示密码输入错误,不能登录成功;如果输入的用户名和密码都正确,输入的验证码不正确,则提示验证码不正确,不能登录成功;点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。如图2.4所示。
图2.4 系统登录页面
实现过程:
在“登录“按钮事件Button-click中获取用户输入的账号和密码,实例化ValidCode类,作为参数调用Bitmap中的方法将用户名和密码传递到方法中,如果存在该用户信息则返回“登录成功”,否则返回“null”。使用if语句返回结果进行判断,正确则显示信息,错误提示错误信息。上方滚动显示通过两个timer控件来实现,登录成功后显示主界面。
4. 飞天网吧管理系统主界面模块
登录成功后即显示如图所示的界面。可以根据界面点击按钮进行操作,按下不同的按钮会弹出不同的界面,不同的界面可以实现不同的功能。主界面左下角显示”欢迎使用”;右下角会实时显示当前时间;中心左侧有“会员信息表”,“电脑信息表”,“上机记录表”,可以通过点击按钮实现不同表的查看。左上角使用menustrip尽心不同页面的显示。右上角是电脑的编号,通过按钮的灰亮状态可以观察出该电脑是否在使用(灰色状态表示正在使用,亮的状态表示无人使用)。右下角的方框内输入会员编号即可对该会员进行对应的操作。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。如图2.5所示。
图2.5 系统主界面页面
实现过程:
通过添加toolscrip控件,将控件民命为索要显示的功能添加相应的图标,如系统设计,会员管理等功能完成界面,并通过show()命令进行窗体间的跳转;添加datagreatview控件实现会员信息表,电脑信息表,以及上机记录表的显示;添加groupbox完成如图所示的会员管理部分的功能。添加timer控件完成当前时间的显示。
5. 会员注册模块
点击主界面的会员注册按钮会显示如图所示的界面,输入想要注册的账号和两次一样的密码和账户余额点击注册按钮即可注册成功(账号和密码必须都为六个字符),点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。如图2.6所示。
图2.6 会员注册页面
实现过程:
在“注册“按钮事件Button-click中获取用户输入的账号和密码,调用SqlConnection方法将输入的账号的密码更新到数据库中,且注册的用户名必须为六个字符,密码也只能为六位,不符合规则则不能注册成功。如果想要注册的用户名已经存在,则会提示用户“该用户已经存在!”如果输入的账号密码以及用户名没有重复,则提示“注册成功!”则注册成功,注册的会员账号可以用于正常登录本网咖的进行上机,换机,下机等操作。
6. 信息查询模块
点击主界面的查询按钮会显示如图的界面,输入正确的会员卡号和密码即可查询出对应会员的卡上余额和办卡时间。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。如图2.7所示。
图2.7 会员信息查询页面
实现过程:
用户输入会员卡号点击查询按钮后系统将用户输入的会员卡号赋值给qe,判断是否为空后连接数据库。判断是否连接成功,团转窗口致用户信息表,用条件语句进行查询,如读取到结果将读取到的结果显示出来,如果没有读取到结果则显示“没有该用户!”,点击关闭按钮会关闭该界面。输出数据完成该操作。
7. 会员充值模块
点击主界面的会员充值按钮后即可显示如图所示的界面,在下拉菜单中可以选择会员卡号,输入符合格式的充值金额点击充值按钮即可充值成功。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。如图2.8所示。
图2.8 会员充值页面
实现过程:
点击主界面的会员充值按钮后会显示该界面,调用SqlConnection方法与数据库相连接,查询数据库中的cardInfo(会员卡号)一栏的数据,调用dataset函数实现将数据显示在combobox中。接着将输入的金额利用SqlCommand函数传递到数据库中,更新数据库。点击充值操作完成对应的操作,如果输入的金额不是数字则提示“请输入数字!”。
8. 会员上机模块
点击主界面的会员上机按钮会显示如图所示的界面,会员选择主机,输入卡号和密码即可上机时间点击上机按钮,即可上级成功。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。如图2.9所示。
图2.9 会员上机页面
实现过程:
点击主界面的会员上机按钮后会显示该界面,调用SqlConnection方法与数据库相连接,查询数据库中的PCInfo表中的PCId(电脑编号)一栏的数据,调用dataset函数实现将数据显示在combobox中。接着将输入的会员卡号和密码利用SqlCommand函数传递到数据库中,判断是否存在该用户,以及用户密码是否正确。并用Format函数更新后的电脑状态,以及上机时间会员卡号等信息更新到数据库,点击上机操作完成对应的操作。
9. 会员换机模块
点击主界面的会员换机按钮会显示如图所示的界面,当会员当前使用的机器出现故障时,输入当前机器信息和想要换的机器信息,并将信息存储起来即可完成换机操作。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。如图2.10所示。
图2.10 会员换机页面
实现过程:
点击主界面的会员换机按钮后会显示该界面,调用SqlConnection方法与数据库相连接,查询数据库中的PCInfo表中的PCId(电脑编号)一栏的数据,并判断PCUse这一列的状态,如果是1(使用中)则调用dataset函数实现将数据显示在combobox1中。相同的原理调用SqlConnection方法与数据库相连接,查询数据库中的PCInfo表中的PCId(电脑编号)一栏的数据,并判断PCUse这一列的状态,如果是0(未使用)则调用dataset函数实现将数据显示在combobox2中.点击换机即可完成对应的操作。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。
10. 会员下机模块
点击主界面的会员下机按钮会显示如图所示的界面,会员使用完毕后点击会员下机选择对用的机器即可显示对应的使用人的会员卡号以及上机时间、下机时间、上机用时、本次费用等信息。点击下机即可完成操作。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。如图2.11所示。
图2.11 会员下机页面
实现过程:
点击主界面的会员下机按钮后会显示该界面,调用SqlConnection方法与数据库相连接,查询数据库中的PCInfo表中的PCId(电脑编号)一栏的数据,并判断PCUse这一列的状态,如果是1(使用中)则调用dataset函数实现将数据显示在combobox1中。调用datatime函数获取上机时间和系统当前时间,用系统当前时间减去上机时间即可得出上机用时,15元一小时不满一小时的按一小时计算。并将数据更新到数据库中,点击下机按钮即可完成对应的操作。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。
11. 修改密码模块
点击修改密码按钮会显示如图所示的界面,输入会员号和旧密码并输入两次相同的新密码点击修改按钮即可修改成功。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。如图2.12所示。
图2.12 会员修改密码页面
实现过程:
在button_click中获取用户输入的会员卡号,作为参数调用SqlDataReader和SqlCommand 方法来对数据库进行更新,查询旧密码是否与新输入的密码一致,则一致则提示“新密码不能与原密码相同!”;若输入的密码与原密码不一致且输入的两次密码相同且符合输入规则和要求,则将数据更新到数据库中,点击修改按钮完成对应的操作。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。
12. 会员注销模块
点击会员注销按钮会显示如图所示的界面,会显示所有会员的信息,选择相应的会员点击注销按钮即可注销成功。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。如图2.13所示。
图2.13 会员注销页面
实现过程:
点击主界面的会员注销按钮后会显示该界面,调用SqlConnection方法与数据库相连接,查询数据库中的cardId表中ID、会员账号、账户余额、注册时间列的信息,调用dataset函数实现将数据显示在datagreatview中。用户选择一行会员信息进行操作,系统将选中的会员信息在数据库中进行delete操作。点击注销按钮完成对应的操作。点击取消按钮后显示确认和取消按钮,点击确认即可退出系统。
13.帮助模块
点击菜单栏帮助按钮会显示如图所示的界面,显示“如遇任何问题请联系作者QQ”,点击确定按钮即可关闭当前窗口回到主窗体。如图2.14所示。
图2.14 帮助页面
实现过程:
点击主界面的菜单栏帮助按钮后会显示该界面,使用对话框messagebox向用户展示消息,用MessageBoxButtons在对话框添加一个确定按钮,点击确认即可关闭当前窗口回到主窗体。
14. 关于作者模块
点击菜单栏关于作者按钮会显示如图所示的界面,显示系统版本、作者、联系方式、版权等,关闭当前窗口即可回到主窗体。如图2.15所示。
图2.15 关于作者页面
实现过程:
点击主界面的菜单栏帮助按钮后会显示该界面,使用lable控件text属性填写文字说明,关闭当前窗口即可回到主窗体。
总结
由于时间和技术条件的限制,还存在一些不足之处,有些功能有待完善。比如应该增加会员注销后的一系列后续的操作。这些应在进一步进行系统调查和需求分析后进一步完善。简而言之,一个真正与时俱进的软件必须有一个不断改进的过程。欢迎小伙伴们一起来交流讨论!