收藏 分销(赏)

c与net课程设计报告ATM交易管理系统.doc

上传人:丰**** 文档编号:2934649 上传时间:2024-06-11 格式:DOC 页数:18 大小:830.50KB 下载积分:8 金币
下载 相关 举报
c与net课程设计报告ATM交易管理系统.doc_第1页
第1页 / 共18页
c与net课程设计报告ATM交易管理系统.doc_第2页
第2页 / 共18页


点击查看更多>>
资源描述
《C#与.NET》课程设计报告 学 院 计算机学院、软件学院 专 业 计算机科学与技术 学 生 学 号 学 生 姓 名 指 导 教 师 日 期 C# 课程设计 ATM自动取款机 1、课程设计目的 (1)通过本次设计掌握使用c#语言中窗体的建立,各个控件的使用,以及界面的设计 (2)进一步巩固所学的C#及数据库的相关理论知识,提高分析和解决实际问题的能力 (3)初步掌握使用C#工具设计一个具体实例的方法,包括软件的设计,调试的全过程 2、系统的分析与设计 ATM应用系统为更进一步的提供银行交易服务,实现24小时不间断自助服务,对提高银行间的业务竞争能力有很大的帮助。通过ATM系统的项目实施和建设可以更进一步的提供自身竞争力,紧跟网路技术的潮流,为银行业务的进一步的电子化、自动化迈出坚实的一步。本次课设实现了一个银行业务自动取款系统,客户通过ATM系统可以实现基本的业务操作。 2.1需求分析 2.1.1 课设任务 (1)根据技术要求和现有开发环境,分析题目 (2)选定设计方案 (3)画出软件框架结构图,关键程序流程图 (4)使用C#语言和.net框架,并结合数据库,实现软件 (5)调试,修改并完善程序 2.1.2 课设要求 (1)仿某银行ATM的运行界面 (2)凭正确的卡号和密码进入系统 (3)实现存款、取款、余额查询登记本业务操作 2.2系统的设计 本系统属于中小型的银行取款系统,可以为银行用户提供各项基本服务,通过本系统可以达到以下目标: (1)功能方面:取款、存款、修改密码、余额查询 (2)性能:可使用户在无任何经验的情况下进行操作ATM自助式服务 2.2.1 数据库的分析与设计 本次数据库是利用ACCESS建立,共包含三张表userInfo、cardInfo、transInfo。表的具体要求如下: 表一userInfo 列名 数据类型 长度 允许为空 是否为主键 说明 customerID int 4 否 是 客户唯一编号,自增 customerName nvarchar 10 否 否 客户姓名 customerPID nvarchar 18 否 否 身份证号 Telephone nvarchar 13 否 否 客户电话 Address nvarchar 50 否 否 地址 表二 cardInfo 列名 数据类型 长度 允许为空 是否为主键 说明 cardID char 19 否 是 卡号 cardType nvarchar 5 否 否 卡类型 savingType nvzrchar 8 否 否 存款类型 openDate datetime 20 否 否 开户日期 openMoney money 50 是 否 交易金额 Balance money 50 是 否 余额 passWord char 6 否 否 密码 isLoss bit 否 否 是否挂失 customerID int 4 否 否 客户编号 表三 transInfo 列名 数据类型 长度 允许为空 是否为主键 说明 transId int 4 否 是 交易明细号 transData datatime 8 否 否 交易日期 transType char 4 否 否 交易类型 cardID char 19 否 否 卡号 transMoney money 50 否 否 交易金额 表的实现: 表一: 表二: 表三: 2.2.2逻辑层次的设计 本次课设的自动提款机模拟软件系统可以使用户进行登录、取款、存款、查询余额、修改密码等基本业务。 ATM系统基本结构框图如图1所示: 启动系统 进入系统界面 用户登录 退出系统 取款 存款 余额查询 转账 修改密码 返回 图1 ATM系统的基本框图 2.2.3界面的设计 根据个人业务界面所提供的按钮,用户可以进行取款,存款、查询余额,修改密码等操作,个人业务界面如图2所示: 图2 个人业务界面 2.3程序设计 用户进入系统后,点击用户登录进入登陆界面,在登录窗口中输入卡号和密码,判断卡号与密码是否正确,若卡号与密码正确则进入用户操作界面,并根据用户的相关操作给用户提供相应的服务。若卡号与密码不正确,弹出对话框提示用户确认卡号和密码错误后重新输入,并对输入错误次数进行计数,若输入密码错误次数大于3次,则锁定该帐号。 2.3.1 程序流程图 软件设计程序流程图如图3所示: 图3 程序流程图 2.3.2系统实施 本系统主要通过运用C#的Windows窗体的设计进行开发和实施,主要通过如下几个功能模块来完成系统的具体的实施过程: (1)用户登陆窗体:通过登陆界面可以进行用户的登陆过程,进而实现相应的用户操作。即当用户名与密码都正确时用户就可以登陆进行所需的操作,其界面如图所示: 图 登陆界面 具体实现的代码如下: namespace ATM自动取款机设计 { public partial class frmzuichu : Form { public frmzuichu() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { Form1 form1 = new Form1(); this.Hide(); form1.Show(); } private void button3_Click(object sender, EventArgs e) { Application.ExitThread(); Application.Exit(); } } } public partial class Form1 : Form { public Form1() { InitializeComponent(); } public int a = 0; public string b; public int i = 0; public static string 帐号; public static string 密码; private void button12_Click(object sender, EventArgs e) { string connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ziliaoku.mdf;Integrated Security=True;User Instance=True"; SqlConnection conn = new SqlConnection(connString); string sql = "SELECT 锁定FROM xinxi WHERE 帐号='" + textBox2.Text.Trim() + "'"; using (SqlConnection conna = new SqlConnection(connString)) { conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { b = dr["锁定"].ToString(); } dr.Close(); } string sql1 = "SELECT * FROM xinxi WHERE 帐号='" + textBox2.Text.Trim() + "'"; string sql2 = "SELECT * FROM xinxi WHERE 帐号='" + textBox2.Text.Trim() + "'AND 密码='" + textBox1.Text.Trim() + "'"; //try //{ if (OperateDB.ExecuteReader(sql1)) { if (b == "0") { if (OperateDB.ExecuteReader(sql2)) { 帐¨º号? = textBox2.Text.Trim(); 密¨¹码? = textBox1.Text.Trim(); frmMain main = new frmMain(); main.Show(); this.Hide(); } else { a = a + 1; if (a > 2) { OperateDB.ExecuteNonQuery("UPDATE xinxi SET 锁定='1' WHERE 帐号='" + textBox2.Text.Trim() + "'"); frmTunKa tunka = new frmTunKa(); tunka.Show(); this.Hide(); } else { MessageBox.Show("密码不正确,请重新输入!注意最多可输入三次!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } else { MessageBox.Show("该帐号已被锁定,请与银行管理员联系!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MessageBox.Show("此用户不存在,请重新输入帐号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } //} //catch //{ // MessageBox.Show("软件错误!"); //} } private void button13_Click(object sender, EventArgs e) { textBox1.Text = ""; textBox1.Text =""; } private void groupBox1_Enter(object sender, EventArgs e) { } private void textBox2_MouseEnter(object sender, EventArgs e) { textBox2.Focus(); } private void textBox1_MouseEnter(object sender, EventArgs e) { textBox1.Focus(); } private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)13)//13表示回车 { textBox1.Focus(); } } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)13) button12_Click(sender, e); } private void Form1_Load(object sender, EventArgs e) { textBox2.Focus(); } private void button1_Click(object sender, EventArgs e) { frmzuichu zuichu = new frmzuichu(); this.Hide(); zuichu.Show(); } } (2)个人业务窗体:根据界面所提供的按钮用户可以进行取款,存款,查询余额等操作,其界面如图所示: 图 个人业务界面 具体实现的代码如下: private void button1_Click(object sender, EventArgs e) { frmQuKuan qukuan = new frmQuKuan(); qukuan.Show(); this.Hide(); } private void button2_Click(object sender, EventArgs e) { frmCunKuan cunkuan = new frmCunKuan(); //frmCKQR ckqr = new frmCKQR(); cunkuan.Show(); this.Hide(); //Thread.Sleep(5000); //cunkuan.Close(); //ckqr.Show(); } private void button3_Click(object sender, EventArgs e) { frmYuEChaXun yuechaxun = new frmYuEChaXun(); yuechaxun.Show(); this.Hide(); } private void button4_Click(object sender, EventArgs e) { frmXiuGaiMiMa xiugaimima = new frmXiuGaiMiMa(); xiugaimima.Show(); this.Hide(); } private void button7_Click(object sender, EventArgs e) { frmShaoDeng3 shaodeng3 = new frmShaoDeng3(); shaodeng3.Show(); this.Close(); } (3)取款窗体:通过该界面用户可以从自己的账户中进行取款操作,但是取款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,当用户余额不足以提取时提示余额不足,其界面如图所示: 图 取款界面 具体实现的代码如下: public partial class frmQuKuan : Form { public frmQuKuan() { InitializeComponent(); } public int abc; private void button12_Click(object sender, EventArgs e) { string ab = textBox1.Text.Trim(); int a = Convert.ToInt16(ab); string connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ziliaoku.mdf;Integrated Security=True;User Instance=True"; SqlConnection conn = new SqlConnection(connString); string sql = "SELECT 储蓄 FROM xinxi WHERE 帐号='" + Form1.帐号 + "'"; using (SqlConnection conna = new SqlConnection(connString)) { conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { string bc = dr["储蓄"].ToString(); abc=Convert .ToInt32 (bc); } dr.Close(); } if (a <= abc) { if (a != 0) { if ((a % 100) == 0) { if (OperateDB.ExecuteNonQuery("DECLARE @xc int EXECUTE dbo.StoredProcedure1'" + Form1.帐号? + "','" + textBox1.Text.Trim() + "',@xc OUT") == 1) { frmShaoDeng1 shaodeng1 = new frmShaoDeng1(); frmTiQuXianJin tiquxianjin = new frmTiQuXianJin(); frmMain main = new frmMain(); shaodeng1.Show(); shaodeng1.Focus(); this.Close(); } } else { frmQKTS qkts = new frmQKTS(); qkts.Show(); qkts.Focus(); this.Hide(); } } else { this.Hide(); //Thread.Sleep(5000); //qkje1.Close(); ////this.Focus(); //timer5.Start(); } } else { textBox1.Text = ""; frmYEBZ yebz = new frmYEBZ(); yebz.Show(); yebz.Focus(); this.Hide(); } } private void button1_Click(object sender, EventArgs e) { frmMain main = new frmMain(); this.Hide(); main.Show(); } private void button13_Click(object sender, EventArgs e) { textBox1.Text = ""; } } (4)查询余额窗体:在业务类型窗体上点击余额查询,可查询当前用户银行卡上的可用余额,其界面如图所示: 图 查询余额界面 具体实现的代码如下: public partial class frmYuEChaXun : Form { public frmYuEChaXun() { InitializeComponent(); } private void frmYuEChaXun_Load(object sender, EventArgs e) { string connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ziliaoku.mdf;Integrated Security=True;User Instance=True"; SqlConnection conn = new SqlConnection(connString); string sql = "SELECT 储蓄 FROM xinxi WHERE 帐号='" + Form1.帐号 + "'"; using (SqlConnection conna = new SqlConnection(connString)) { conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { textBox1.Text = dr["储蓄"].ToString(); } dr.Close(); } } private void button1_Click(object sender, EventArgs e) { this.Close(); frmMain main = new frmMain(); main.Show(); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { //string sql = "SELECT 储蓄 FROM xinxi WHERE 帐号=" + Form1.帐号 + "'"; //DataSet myDs = OperateDB.ExecuteDataset(sql); //dataGridView1.DataSource = myDs.Tables[0].DefaultView; } private void button2_Click(object sender, EventArgs e) { frmShaoDeng3 shaodeng3 = new frmShaoDeng3(); shaodeng3.Show(); this.Close(); } } (5)修改密码窗体:通过该界面用户可以给自己的账户进行修改密码的操作,两次输入的新密码一样将修改成功,否则将失败,其界面如图所示: 图 修改密码界面 具体实现的代码如下: public partial class frmXiuGaiMiMa : Form { public frmXiuGaiMiMa() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (textBox3.Text.Trim() == textBox2.Text.Trim()) { try { if (OperateDB.ExecuteNonQuery("UPDATE xinxi SET 密码='" + textBox2.Text.Trim() + "' WHERE 帐号='" + Form1.帐号 + "'") == 1) { frmXGCG xgcg = new frmXGCG(); xgcg.Show(); xgcg.Focus(); this.Hide(); } else { frmXGSB xgsb = new frmXGSB(); xgsb.Show(); xgsb.Focus(); this.Hide(); } } catch { MessageBox.Show("软件错误!"); } } } private void button2_Click(object sender, EventArgs e) { frmMain main = new frmMain(); this.Close(); main.Show(); } } (6)存款窗体:通过该窗体用户可以将现金存入自己的账户。界面设计如图所示: 具体实现的代码如下: public partial class frmCunKuan : Form { public frmCunKuan() { InitializeComponent(); } private void frmCunKuan_Load(object sender, EventArgs e) { } private void label1_Click(object sender, EventArgs e) { } private void butt
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服