1、C#课程设计银行个人账户管理系统C#课程设计报告题目:银行个人账户管理系统专 业: 网络工程 班 级: 网络 101 计算机科学与信息学院1 需求分析1.1 系统概述在没有使用银行管理系统前,采取的是人工方式,相对而言耗时大,效率低且造成一定的资源浪费。我们通过设计银行管理系统,可以对银行的一般业务进行有序管理,对于客户的个人资料也不需要做大量烦琐的登记工作,变的相对简单容易操作且不用耗费大量人力财力。初步分析,该系统的主要功能是管理每个用户的信息,管理员登陆系统后,可以查看用户的信息,修改用户的信息,查看用户的余额,帮用户存、取款,开户和销户。1.2 功能性需求通过分析,该系统只有一个用户管
2、理模块,管理员登陆模块后管理用户的信息,框图如下:1.3 非功能性需求本系统采用的是基于E-R图的设计方法。根据以上情况,该系统总体目标如下:(1)以真实、准确数据为基础,以先进、有效、合理的管理方法为核心,以现代计算机技术为手段,建设银行个人账户管理系统。(2)提高银行办事效率,银行负责人及工作人员能及时、准确地掌握各种信息,为决策提供有效的依据。(3)实现内部管理电脑化,实现信息共享。(4)使银行的账户管理工作系统化、规范化、自动化,从而达到提高账户管理效率的目的。(5)使办公人员可以轻松快捷地完成对账户管理的任务。2 概念设计通过以上的分析,可以知道,该系统的实体有管理员、用户,其实体如
3、下:将以上的实体图集成为E-R图得到如下:3 逻辑设计将以上的E-R图转换为关系模型,得到如下:管理员(AdminID,AdminPassword,AdminName);账户表(账号,户名,余额,手机号码,身份证号,密码);记录表(账号,收支,金额,余额,时间,操作员);4 数据库设计4.1 数据库表属性本系统包含了如下三个表:管理员:字段名称数据类型字段长度允许空否备注AdminIDvarchar50NO主键AdminPasswordvarchar50NOAdminNamevarchar50NO账户表:字段名称数据类型字段长度允许空否备注账号intNO主键户名varchar50NO余额flo
4、atNO手机号码char11NO身份证号char18NO密码char6NO记录表:字段名称数据类型字段长度允许空否备注账号intNO收支varchar10NO金额floatNO余额floatNO时间datetimeNO操作员varchar50NO4.2 数据库表建立这里我们建表的时候没有用代码,是直接用手工添加的。4.3 预插入数据预先插入管理员的数据,以登录系统。账户表可以登录系统后创建,所以不需要预插入数据。既然无账户数据,记录表当然就没有数据。5 系统设计5.1 管理员登录5.1.1 界面登录界面居中,并且顶部留有一定空间,聚焦在工号:5.1.2 流程图流程图如下:5.1.3 主要代码点
5、击登录按钮,调用myBtnButton_Click()函数,Login.aspx.cs部分代码:protected void CheckLogin() SqlConnection con = new SqlConnection(); con.ConnectionString = server=.sqlexpress;database=银行个人账户管理系统;integrated security=true; /连接数据库的字符串 if (con.State = System.Data.ConnectionState.Closed) con.Open(); SqlCommand cmd = new
6、 SqlCommand(); cmd.CommandText = select * from 管理员 where AdminID=ID and AdminPassword=pwd; SqlParameter p = new SqlParameter(ID, this.myAdminID.Text); cmd.Parameters.Add(p); p = new SqlParameter(pwd, this.myAdminPassword.Text); cmd.Parameters.Add(p); cmd.Connection = con; SqlDataReader dr = cmd.Exec
7、uteReader(); if (dr.Read() if (drAdminPassword.ToString() = this.myAdminPassword.Text) Sessionvalid = true; /用来判断系统的登录 SessionadminName = drAdminName.ToString(); /操作员Session Response.Redirect(SystemFrame.aspx); else this.ltErrInfo.Text = alert(登录信息错误!); else this.ltErrInfo.Text = alert(登录信息错误!); pro
8、tected void myBtnButton_Click(object sender, EventArgs e) CheckLogin();5.2 后台管理正确登录后即可进去后台管理页面:后台管理页面分为三部分:顶部显示信息附有退出按钮;中部分为账户管理、创建账户、删除账户三个链接;底部是显示窗口,中部的连接页面将在这里显示。5.2.1 顶部顶部左边显示“银行个人账户管理系统”:顶部右边利用生成的操作员Session显示操作员,并有退出按钮:SystemFrame.aspx上部div代码: 银行个人账户管理系统 操作员: 5.2.2 中部SystemFrame.aspx中部div代码: 账户
9、管理 创建账户 删除账户5.2.3 底部SystemFrame.aspx底部div代码: MainFrame.aspx代码: 欢迎使用银行管理系统5.3 创建账户5.3.1 界面界面居中,并且顶部留有一定空间,聚焦在账号:5.3.2 流程图5.3.3 主要代码CreateAccount.aspx.cs部分代码:SqlConnection con = new SqlConnection();try con.ConnectionString = server=.sqlexpress;database=银行个人账户管理系统;integrated security=true; if (con.Stat
10、e = System.Data.ConnectionState.Closed) con.Open(); #region 创建账户,同时添加第一次收支记录 string sql = insert into 账户表(账号,户名,余额,手机号码,身份证号,密码) values(UserID,UserName,Money,UserTel,IDcard,pwd) insert into 记录表 (账号,收支,金额,余额,时间,操作员) values(UserID,存入,Money,Balances,DateTime,AdminName); SqlCommand cmd = new SqlCommand(
11、sql, con); SqlParameter p = new SqlParameter(UserID, this.userID.Text); cmd.Parameters.Add(p); p = new SqlParameter(UserName, this.userName.Text); cmd.Parameters.Add(p); p = new SqlParameter(Money, this.Money.Text); cmd.Parameters.Add(p); p = new SqlParameter(UserTel, this.userTel.Text); cmd.Paramet
12、ers.Add(p); p = new SqlParameter(IDcard, this.IDcard.Text); cmd.Parameters.Add(p); p = new SqlParameter(pwd, this.UserPassword.Text); cmd.Parameters.Add(p); p = new SqlParameter(Balances, this.Money.Text); cmd.Parameters.Add(p); p = new SqlParameter(DateTime, DateTime.Now); cmd.Parameters.Add(p); p
13、= new SqlParameter(AdminName, SessionadminName.ToString(); cmd.Parameters.Add(p); cmd.ExecuteNonQuery(); #endregion SessionuserNum = this.userID.Text; Sessionmoney = this.Money.Text; Sessionexplain = 存入; this.ltTip.Text = alert(创建成功!); this.userID.Text = ; this.userName.Text = string.Empty; this.Mon
14、ey.Text = string.Empty; this.userTel.Text = string.Empty; this.IDcard.Text = string.Empty; this.UserPassword.Text = string.Empty; this.userID.Focus();catch (Exception ex) this.ltTip.Text = alert(创建失败!); this.userID.Focus();finally if (con.State = System.Data.ConnectionState.Open) con.Close(); 5.3.4
15、结果输入正确信息:显示创建成功:查看数据库:账户表有了一条用户信息:记录表也有了一条存入记录:再创建一个账户,留用删除。5.4 账户管理5.4.1 登录界面界面居中,并且顶部留有一定空间,聚焦在账号:5.4.2 流程图5.4.3 进入账户显示账户信息:5.5 存款5.5.1 运行界面只需输入金额,提交就可以了:5.5.2 主要代码SaveMoney.aspx.cs部分代码:SqlConnection con = new SqlConnection();try float f1 = float.Parse(this.saveMoney.Text); float f2 = float.Parse(
16、SessionuserBalances.ToString(); float f3 = f1 + f2; /计算新的余额 con.ConnectionString = server=.sqlexpress;database=银行个人账户管理系统;integrated security=true; if (con.State = System.Data.ConnectionState.Closed) con.Open(); /更新账户金额,同时添加交易记录 string sql = update 账户表 set 余额=newMoney where 账号=userID insert into 记录表
17、 (账号,收支,金额,余额,时间,操作员) values(UserID,存入,Money,Balances,DateTime,AdminName); SqlCommand cmd = new SqlCommand(sql, con); SqlParameter p = new SqlParameter(newMoney, f3); cmd.Parameters.Add(p); p = new SqlParameter(userID, SessionUserID.ToString(); cmd.Parameters.Add(p); p = new SqlParameter(Money, this
18、.saveMoney.Text); cmd.Parameters.Add(p); p = new SqlParameter(Balances, SessionuserBalances.ToString(); cmd.Parameters.Add(p); p = new SqlParameter(DateTime, DateTime.Now); cmd.Parameters.Add(p); p = new SqlParameter(AdminName, SessionadminName.ToString(); cmd.Parameters.Add(p); cmd.ExecuteNonQuery(
19、); SessionuserBalances = f3.ToString(); /更新余额Session this.ltTip.Text = alert(存款成功!);catch (Exception ex) this.ltTip.Text = alert(存款失败!); this.saveMoney.Focus();finally if (con.State = System.Data.ConnectionState.Open) con.Close(); 5.6 取款5.6.1 运行界面取款需要再次验证密码:5.6.2 主要代码Withdrawals.aspx.cs部分代码:SqlConne
20、ction con = new SqlConnection();con.ConnectionString = server=.sqlexpress;database=银行个人账户管理系统;integrated security=true;if (con.State = System.Data.ConnectionState.Closed) con.Open();SqlCommand cmd = new SqlCommand();cmd.CommandText = select * from 账户表 where 账号=uID and 密码=pwd;SqlParameter p = new Sql
21、Parameter(uID, SessionUserID.ToString();cmd.Parameters.Add(p);p = new SqlParameter(pwd, this.UserPassword.Text); /验证输入框里的密码cmd.Parameters.Add(p);cmd.Connection = con;SqlDataReader dr = cmd.ExecuteReader();if (dr.Read() if (dr密码.ToString() = this.UserPassword.Text) if (con.State = System.Data.Connect
22、ionState.Open) con.Close(); con.ConnectionString = server=.sqlexpress;database=银行个人账户管理系统;integrated security=true; if (con.State = System.Data.ConnectionState.Closed) con.Open(); try float f1 = float.Parse(this.withdrawalsMoney.Text); float f2 = float.Parse(SessionuserBalances.ToString(); float f3
23、= f2 - f1; if (f3 = 0) this.ltTip.Text = alert(余额不足!); this.withdrawalsMoney.Focus(); return; /更新账户金额,同时添加交易记录 string sql = update 账户表 set 余额=newMoney where 账号=userID insert into 记录表 (账号,收支,金额,余额,时间,操作员) values(UserID,取出, Money, Balances, DateTime, AdminName) ; cmd = new SqlCommand(sql, con); p = ne
24、w SqlParameter(newMoney, f3); cmd.Parameters.Add(p); p = new SqlParameter(userID, SessionUserID.ToString(); cmd.Parameters.Add(p); p = new SqlParameter(Money, this.withdrawalsMoney.Text); cmd.Parameters.Add(p); p = new SqlParameter(Balances, SessionuserBalances.ToString(); cmd.Parameters.Add(p); p =
25、 new SqlParameter(DateTime, DateTime.Now); cmd.Parameters.Add(p); p = new SqlParameter(AdminName, SessionadminName.ToString(); cmd.Parameters.Add(p); cmd.ExecuteNonQuery(); SessionuserBalances = f3.ToString(); this.ltTip.Text = alert(取款成功!); catch (Exception) this.ltTip.Text = alert(取款失败!); this.withdrawalsMoney.Focus(); finally if (con.State = System.Data.ConnectionState.Open) con.Close(); else this.ltTip.Text = alert(密码错误!); else this.ltTip.Text = alert(密码错误!);5.7 收支明细5.7.1