2023年12月27日发(作者:强珍)
网吧会员管理系统
一 可行性分析
管理和决策,提高运行效率和经营效益,以计算机为代表的信息技术被广泛采用,并与管理科学、系统科学等结合起来,构建了全新的管理信息系统学科。计算机的应用已普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作,这大大地阻碍了社会经济的发展。为了适应现代社会人们高度强烈的时间观念,网吧信息管理系统软件为网吧办公带来了极大的方便。作为网吧信息管理系统的一部分,网吧会员管理系统对会员的管理具有无可比拟的优点。例如,检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。这些优点极大地提高网吧管理的效率,也是网吧的科学化、正规化管理的重要条件。
经济可行性:由于网吧人口流动比较大,会员数量比较多,如果没有一个好的管理系统,其业务过程中产生的数据将得不到及时的存储和处理,显得比较杂乱无章,难以分析,比较和归纳,会浪费大量的人力、物力和时间。其次,开发本系统不需要很高的成本,开发时间短,是网吧能够在短时间内就可以达到很好的管理效果。
技术可行性:网吧会员管理系统整体简单,不需要大量的技术和专业知识。普通程序员只要在了解网吧的工作流程的基础上就可以开发出来,唯一值得注意的地方就是系统的安全性。
出于对安全方面的考虑,本系统主要针对网吧管理员而设计。
系统流程图如图1所示:
管理员登录
功能选择
数据处理
退出
图1 系统流程图
二 需求分析
1 系统目标
系统应具有方便、强大的资料管理和良好的人机界面,使网吧管理员易于操作,便于浏览。系统的健壮性、扩展性良好。系统的安全性好,通过密码和权限的管理使用户的数据不受到侵害。系统的动态信息交互功能强,系统根据不同的管理员的权限开放不同的处理权限。、
系统功能介绍
本系统分为管理员和超级管理员,管理员能够对会员进行添加,删除,信息的修改,充值等操作。超级管理员拥有管理员的一起操作,并且能够对管理员添加,删除,修改信息。
本系统的E-R图如图2所示:
图2 系统E-R图
2 网吧会员管理数据库设计
管理员表如表1所示:
表1 管理员信息表
列名
Aname
Apwd
数据类型
varchar
varchar
宽度
20
20
字段描述
管理员姓名,主键
管理员密码
会员基本信息表如表2所示:
表2 会员基本信息表
列名
Vid_num
Vage
Vlevel
Vid
Vpwd
数据类型
varchar
int
varchar
varchar
varchar
宽度
18
4
10
30
50
字段描述
身份证号,唯一
年龄,大于18
会员级别
会员号,主键,外键
会员密码
会员消费信息表如表3所示:
表3 会员消费信息表
列名
Vid
Vcostph
Vmoney
数据类型
varchar
int
int
宽度
30
4
4
字段描述
会员号
每小时的花费
账户余额
三 总体设计
本系统属于B/S架构,页面总体设计反应了整个系统的界面组成结构。由于非常重视安全方面的问题,本系统主要为管理员设计,管理员其中包括超级管理员拥有对会员的添加,删除,修改等操作。系统HIPO图如图3所示:
会员系统
超级管理员
管理员
修添改加管管理理员员
信息
删除管理员
添加会员
查看会员信息
修改会员信息
删除会员
为会员充值
查看会员信息
修改会员信息
添加会员
删除会员
为会员充值
图3 系统HIPO图
功能介绍:本系统分为超级管理员和管理员。管理员可以添加,修改,删除会员的信息,并且可以为会员充值,超级管理员除了拥有普通管理员的权限外还能够添加,修改,删除管理员。
四 详细设计
实现思路:本系统设置有拥有不同权限的管理员,根据登录账号的不同,可以调转到不同的页面,实现不同的功能。其中,超级管理员和普通管理员对会员的权限是相同的,都是查看,添加,删除,修改,超级管理员还拥有对普通管理员的查看,添加,修改,删除。
1 普通管理员查看会员信息模块
当管理员登录系统后,通过选择查看会员信息功能,可以查看任何会员的信息,并且可以通过搜索选择所要查看的会员的信息。
普通管理员登录
N
存在?
Y
进入系统
选择查看功能
完成,退出系统
图4 普通管理员功能图
2 普通管理员添加会员模块
管理员进入系统后,首先选择添加会员功能,然后输入所要添加会员的姓名,年龄,密码,充值等信息,可根据所充的值设置级别,并且只能在首次充值的时候设置级别。
进入系统
选择添加会员功能
输入会员信息
完成,退出系统
图6 普通管理员添加会员
3 普通管理员修改员信息模块
管理员进入系统后,首先选择修改功能,然后输入要修改会员的ID ,进行查找,可以修改会员的密码。
进入系统
选择修改功能
查找会员
修改信息
完成,退出系统
图7 普通管理员修改会员信息
4 普通管理员删除会员模块
管理员进入系统后,首先选择删除功能,如果向只删除固定ID的会员可以借助查找功能,还可以同时删除多个会员。
进入系统
选择删除功能
查找会员
删除会员
完成,退出系统
图8 普通管理员删除会员
5 普通管理员为会员充值模块
当会员来充值时,管理员首先选择充值功能,然后查找所要充值会员的ID,最后输入所要充的值。
进入系统
选择充值功能
查找会员
为会员充值
完成,退出系统
图9 普通管理员给会员充值
6 超级管理员查看普通管理员模块
当超级管理员登录系统后,通过选择查看管理员信息功能,可以查看任何管理员的信息,并且可以通过搜索选择所要查看的管理员的信息。
超级管理员登录
N
存在?
Y
进入系统
选择查看功能
完成,退出系统
图10 超级管理员查看会员信息
7 超级管理员添加普通管理员模块
超级管理员进入系统后,首先选择添加管理员功能,然后输入所要添加管理员的姓名,密码等信息。
进入系统
选择添加管理员功能
输入管理员信息
完成,退出系统
图11 超级管理员添加管理员
8 超级管理员修改普通管理员模块
超级管理员进入系统后,首先选择修改管理员信息功能,然后输入要修改管理员的ID,进行查找,可以修改管理员的密码。
进入系统
选择管理员信
息修改功能
查找管理员
修改信息
完成,退出系统
图12 超级管理员修改普通管理员模块
9 超级管理员删除普通管理员模块
超级管理员进入系统后,首先选择删除功能,如果向只删除固定ID的管理员可以借助查找功能,还可以同时删除多个管理员。
进入系统
选择删除管理员功能
查找管理员
删除管理员
完成,退出系统
图13 超级管理员删除普通管理员
五 编码与实现
1 管理员登录模块
根据登录名称的不同分别跳转到不用的页面来进行操作。
public partial class _Default :
{ protected void Button1_Click(object sender, EventArgs e)
{ SqlConnection conn = new
SqlConnection(tings["connString"]);
();
string sql = @"select * from Administrator where Aname='" +
+ "' and Apwd='" + + "'";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader sdr = eReader();
if (() == true)
{();
Session["UserName"] = ;
ct("admin/");
}
else if ( == "admin" && == "admin")
{ Session["UserName"] = "admin";
("
}
else
{
Session["UserName"] = null;
("");
}
}
}
2 查看会员信息模块
public partial class AddInfototables :
{protected void Page_Load(object sender, EventArgs e)
{SqlConnection conn = new
SqlConnection(tings["connString"]); string sql =
@"select * from VIPInfo where Vid_num='" + Session["values1"]+ "'";
SqlCommand cmd = new SqlCommand();
tion=conn;
dText=@"select Vid from VIPInfo where
Vid_num='"+Session["id"]+"'";
hValue("Vid_num",Session["id"]);
();
if (Session["id"] == null)
{ goto next; }
else
{ string res = eScalar().ToString();
int money = 32(Session["money"]);
if (money > 0 && money <= 200)
{ dText = @"insert into Bronze(Vid,Vcostph,Vmoney) values('"
+ res + "','3.0','" + Session["money"] + "')";
}
else if (money <= 500)
{ dText = @"insert into Silver(Vid,Vcostph,Vmoney) values('" +
res + "','2.0','" + Session["money"] + "')";
}
else
{ dText = @"insert into Golden(Vid,Vcostph,Vmoney) values('"
+ res + "','1.0','" + Session["money"] + "')";
}
eNonQuery();
();
}
next:
if (!Back)
{ bind();}
}
public void bind()
{
PagedDataSource ps = new PagedDataSource();
int curpage = 32();
SqlConnection con = new
SqlConnection(tings["connString"]);
string sql = "select * from VIPInfo";
DataSet ds = new DataSet();
();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
(ds);
urce = ds;
nd();
aging = true;
e = false;
ze = 20;
= ng(ze);
dex = curpage - 1;
d = true;
d = true;
d = true;
d = true;
if (curpage == 1)
{d = false;
d = false;
}
urce = ds;
nd();
= ng(unt);
int final = 32();
if (curpage == unt||final==0)
{d = false;
d = false;
}
();
}
protected void LinkButtonOne_Click(object sender, EventArgs e)
{ = "1";
();
}
protected void LinkButtonUp_Click(object sender, EventArgs e)
{ = ng(32() - 1);
();
}
protected void LinkButtonNext_Click(object sender, EventArgs e)
{ = ng(32() + 1);
();
}
protected void LinkButtonBack_Click(object sender, EventArgs e)
{ = ;
();
}
protected void ButtonSearch_Click(object sender, EventArgs e)
{
PagedDataSource ps = new PagedDataSource();
int curpage = 32();
SqlConnection con = new
SqlConnection(tings["connString"]);
string sql = "";
if ( == "")
{ sql = @"select * from VIPInfo ";
}
else
{
//sql = @"select * from Users where Uname like '%" +
+ "%'";
sql = @"select * from VIPInfo where Vid ='" + + "'";
}
DataSet ds = new DataSet();
();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
(ds);
urce = ds;
nd();
aging = true;
e = false;
ze = 20;
= ng(ze);
dex = curpage - 1;
d = true;
d = true;
d = true;
d = true;
if (curpage == 1)
{d = false;
d = false;
}
urce = ds;
nd();
= ng(unt);
int final = 32();
if (curpage == unt || final == 0)
{ d = false;
d = false;
}
();
}
}
3 修改会员信息模块
public partial class VIPInfoxiugai :
{protected void Page_Load(object sender, EventArgs e)
{if (!Back)
{ string hid = tring["id"].ToString();
SqlConnection conn = new
SqlConnection(tings["connString"]);
();
string sql = @"select * from VIPInfo where Vid='" + hid + "'";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader sdr = eReader();
if (())
{ = sdr["Vid"].ToString();
= sdr["Vpwd"].ToString();
}
();
}
}
protected void ButtonOk_Click(object sender, EventArgs e)
{
SqlConnection conn = new
SqlConnection(tings["connString"]);
();
string sql = @"update VIPInfo set Vpwd='" + + "' where
Vid='" + + "'";
SqlCommand cmd = new SqlCommand(sql, conn);
eNonQuery();
();
("");
er("");
}
}
4 删除会员模块
public partial class VIPdelete :
{public void bind()
{PagedDataSource ps = new PagedDataSource();
int curpage = 32();
SqlConnection con = new
SqlConnection(tings["connString"]);
string sql = "select * from VIPInfo";
DataSet ds = new DataSet();
();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
(ds);
aging = true;
e = false;
ze = 20;
= ng(ze);
dex = curpage - 1;
d = true;
d = true;
d = true;
d = true;
if (curpage == 1)
{d = false;
d = false;
}
urce = ds;
yNames = new string[] { "Vid" };
nd();
= ng(unt);
int final = 32();
if (curpage == unt||final==0)
{d = false;
d = false;
}
();
}
protected void Page_Load(object sender, EventArgs e)
{ if (!Back)
{bind();
}
protected void LinkButtonOne_Click(object sender, EventArgs e)
{ = "1";
();
}
protected void LinkButtonUp_Click(object sender, EventArgs e)
{ = ng(32() - 1);
();
}
protected void LinkButtonNext_Click(object sender, EventArgs e)
{ = ng(32() + 1);
();
}
protected void LinkButtonBack_Click(object sender, EventArgs e)
{ = ;
();
}
protected void ButtonDelete_Click(object sender, EventArgs e)
{SqlConnection sqlcon = new
SqlConnection(tings["connString"]);
for (int i = 0; i <= - 1; i++)
{CheckBox cbox = (CheckBox)[i].FindControl("CheckBox1");
if (d == true)
{string sqlstr = "delete from VIPInfo where Vid='" +
ys[i].Value + "'";
SqlCommand sqlcom = new SqlCommand(sqlstr, sqlcon);
();
eNonQuery();
();
}
}
();
bind();
}
}
5 给会员充值模块
public partial class add :
{ string level = "";
protected void Page_Load(object sender, EventArgs e)
{if (!Back)
{ string hid = tring["id"].ToString();
SqlConnection conn = new
SqlConnection(tings["connString"]);
();
string sql = @"select * from VIPInfo where Vid='" + hid + "'";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader sdr = eReader();
if (())
{ = sdr["Vid"].ToString();
Session["HuiId"] = ;
= sdr["Vpwd"].ToString();
level = sdr["Vlevel"].ToString();
}
();
}
}
protected void ButtonOk_Click(object sender, EventArgs e)
{Session["Lmoney"] = ;
SqlConnection conn = new
SqlConnection(tings["connString"]);
();
string sql = "";
if (level == "Golden")
{
sql = @"update Golden set Vmoney='" + + "' where
Vid='" + + "'";
}
else if (level == "Silver")
{ sql = @"update Silver set Vmoney='" + + "' where
Vid='" + + "'";
}
else
{ sql = @"update Bronze set Vmoney='" + + "' where
Vid='" + + "'";
}
SqlCommand cmd = new SqlCommand(sql, conn);
eNonQuery();
();
("");
er("");
}
}
6 添加管理员模块
public partial class ADDadministrators :
{protected void ButtonClear_Click(object sender, EventArgs e)
{ = "";
= "";
}
protected void ButtonADD_Click(object sender, EventArgs e)
{ try
{SqlConnection conn = new
SqlConnection(tings["connString"]);
();
string sql = @"select * from Administrator where Aname='" +
+ "'";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader sdr = eReader();
if (() == true)
{
("");
();
}
else
{
();
();
dText = @"insert into
Administrator(Aname,Apwd,Aright) values('" + + "','" +
+ "','只能对会员的信息进行操作')";
eNonQuery();
();
ct("");
}
}
catch (Exception ex)
{
("");
}
}
}
7 删除管理员
public partial class Deladministrator :
{ void bind()
{
PagedDataSource ps = new PagedDataSource();
int curpage = 32();
SqlConnection con = new
SqlConnection(tings["connString"]);
string sql = "select * from Administrator";
DataSet ds = new DataSet();
();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
(ds);
aging = true;
e = false;
ze = 20;
= ng(ze);
dex = curpage - 1;
d = true;
d = true;
d = true;
d = true;
if (curpage == 1)
{ d = false;
d = false;
}
urce = ds;
yNames = new string[] { "Aname" };
nd();
= ng(unt);
int final = 32();
if (curpage == unt||final==0)
{ d = false;
d = false;
}
();
}
protected void Page_Load(object sender, EventArgs e)
{if (!Back)
{ bind();}
}
protected void LinkButtonOne_Click(object sender, EventArgs e)
{ = "1";
();
}
protected void LinkButtonUp_Click(object sender, EventArgs e)
{ = ng(32() - 1);
();
}
protected void LinkButtonNext_Click(object sender, EventArgs e)
{ = ng(32() + 1);
();
}
protected void LinkButtonBack_Click(object sender, EventArgs e)
{ = ;
();
}
protected void ButtonDelete_Click(object sender, EventArgs e)
{SqlConnection sqlcon = new
SqlConnection(tings["connString"]);
for (int i = 0; i <= - 1; i++)
{CheckBox cbox = (CheckBox)[i].FindControl("CheckBox1");
if (d == true)
{string sqlstr = "delete from Administrator where Aname='" +
ys[i].Value + "'";
SqlCommand sqlcom = new SqlCommand(sqlstr, sqlcon);
();
eNonQuery();
();}
}
();
bind();
}
}
六 结论
通过本次课设,我的综合能力有了很大的进步:基本知识能够应用到实际上来,应用能力有所提升;而此次课设又融合了数据库语言、SQL Server的使用、VC#软件的使用,跨学科综合能力有所发展;课设要求严格,不容马虎,治学态度有点提高;而要将课设成功完成,又要综合考虑诸多实际元素,理论联系实际的能力也有所发展。总之,这次课设是很有意义的。再从时间上来说挺及时的,我们刚刚结课,然后就进行了这次课设,基本知识得到巩固,凝练,升华,挺充实的。
通过这次课设,让我意识到了自身的不足。也知道了技术不过硬,练习不够多,甚至是太少。在用到Sql语句的时候已经不是太清楚了,这都是由于自己练习不够的缘故。
自己的设计思路还是不够成熟,在设计的时候考虑的不够周全,导致后续工作无法运行,还需要自己认真修改。在做一些构造的时候总是不够清晰,使得在做的时候感觉到真的无法进行下去了。有时候做事情要换个角度思考,自己坚持的思路不一定是最好的,在无法进行下去的时候我们转换一些思考角度也许会收到意想不到的效果。
我们的知识还是过少,比如:在把存入到Sql server中的日期转换为时间的时候就让人很困惑,查找了好多的资料才得到解决的方法,我们还是不能真正的全面的了解Sql server的用法,在一些方面是值得我们深入研究的和学习的。
参考文献
[1]王珊,萨师煊.《数据库系统概论》(第4版) [M].北京:高等教育出版社,2006
[2]苗雪兰.《数据库系统原理及应用教程》[M].北京:机械工业出版社,2005
[3] 张海藩.《软件工程》[M].北京:人民邮电出版社,2003
X

更多推荐
管理员,会员,系统,网吧
发布评论