版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*学院(C#程序设计)课程设计说明书课程名称 :C#软件程序设计题 目 : 自动提款机模拟软件专业班级 :学生姓名 :放羊娃 学 号: 指导教师 :设计周数 : 2周2013年1月12号1、 课程设计目的(1)系统功能实现用户在提款机上提取现金,查询余额,修改密码等业务。(2)掌握使用C#的使用方法,包括软件的设计,调试的全过程。(3)通过本次设计掌握使用c#语言中窗体的建立,各个控件的使用,以及界面的设计。2、系统的分析与设计ATM是最普遍的自动银行设备,可以提供最基本的银行基本业务。取款机系统向用户提供一个方便、简单、及时、随时随地可以随心所欲存取款的互联的现代计算机化的网络系统。最为自助
2、式金融服务终端,除了提供金融服务外,ATM自动提款机还具有维护,测试,管理等多种功能。2.1需求分析 课设任务(1)根据技术要求和现有开发环境,分析题目(2)选定设计方案(3)画出软件框架结构图,关键程序流程图(4)使用C#语言和.net框架,并结合数据库,实现软件(5)调试,修改并完善程序 课设要求(1)模仿银行ATM的运行界面。(2)凭正确的卡号和密码进入系统。(3)实现取款,余额查询,修改密码,交费,转账操作。2.2系统的设计(1)输入:用户通过键盘进行输入。(2)性能:可使用户在无任何经验的情况下进行操作ATM自助式服务。(3)功能方面:取款、查询余额、修改密码、记录查询、交费、转账。
3、 数据库的分析与设计本次课设涉及到的数据库有ACCESS数据库和SQL数据库。ACCESS数据库是由美国微软公司于年推出的微机数据库管理系统,它是0ffice办公软件中一个重要的组成部分。它具有较强的数据处理功能,便于生成各种数据对象,能够利用web检索和发布数据等优点。与ACCESS数据库相比,SQLServer数据库属于大型数据库,SQLServer数据库是基于.ne t的一个重要数据源,它是美国微软公司开发的一款关系型数据库管理系统的产品。由自动提款机模拟软件系统的需求分析可知,本系统应为windows应用窗体的设计,据提供的实验环境及以前所学的理论知识,采用SQL数据库,根据自动提款机
4、模拟软件的功能要求,在AtmInfo数据库中建立两张表来存储信息,分别为CardInfo和Record。table1表中用来存储用户的卡号,密码,用户名,余额及用于卡号锁定的字段表2-1 用户基本信息表(Table1)列名数据类型长度允许为空是否为主键说明kahaonvarchar19否是卡号标识 mima nvarchar6否否密码xingmingnvarchar20是否户主姓名dianhuanvarchar11是否户主电话yuemoney是否账户余额locknvarchar2是否卡号锁定recordInfo表中用于存储用户的卡号,用户名,存取结余,主要用于数据库的更新操作。表2-2 用户操
5、作信息表(recordInfo)列名数据类型长度允许为空是否为主键说明xingmingnvarchar20是否户主姓名 kahaonvarchar19否是卡号标识acctimedatetime否是操作时间acctiyenvarchar20是否操作类型exchangemoneydecimal(18,0)是否交易金额逻辑层次的设计本次课设的自动提款机模拟软件系统可以使用户进行登录、取款、转账、查询余额、修改密码、输入3次密码不对,自动锁定和交费等基本业务。 ATM系统基本结构框图如图2-1所示:启动软件用户登录系统主页退出系统取款余额查询转账修改密码记录查询交费图2-1 ATM系统的基本框图 程序
6、流程图软件设计程序流程图如图2-2所示:图2-2程序流程图系统实施本系统主要通过运用C#的Windows窗体的设计进行开发和实施,主要通过如下几个功能模块来完成系统的具体的实施过程:(1)用户登陆窗体:通过登陆界面可以进行用户的登陆过程,进而实现相应的用户操作。即当用户名与密码都正确时用户就可以登陆进行所需的操作,其界面如图2-3所示:图2-3登陆界面具体实现的代码如下:staticpublicstring jikahao;privatevoid btnLogin_Click(object sender, EventArgs e) string connString = "Data
7、Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|数据库a.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sql = "select*from UserInfor where kahao='" + txtUsername.Text.Trim().ToLower() + "
8、'and mima='"+txtPassword.Text.Trim() + "'"SqlCommand cmd = newSqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader();if (dr.Read() jikahao = dr"kahao".ToString();frmMain frm = newfrmMain(); frm.Show();this.Hide(); else MessageBox.Show("用户名或密码错误!")
9、; dr.Close(); conn.Close();privatevoid txtUsername_TextChanged(object sender, EventArgs e) txtUsername.Focus(); privatevoid txtUsername_MouseHover(object sender, EventArgs e) txtUsername.Focus(); privatevoid txtPassword_MouseHover(object sender, EventArgs e) txtPassword.Focus(); privatevoid txtUsern
10、ame_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar = (char)13) txtUsername.Focus(); privatevoid txtPassword_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar = (char)13) txtPassword.Focus(); privatevoid btnReset_Click(object sender, EventArgs e) txtUsername.Text = "" t
11、xtPassword.Text = "" privatevoid button3_Click(object sender, EventArgs e) MessageBox.Show("请取出你的卡¡");this.Hide(); privatevoid Form1_Load(object sender, EventArgs e) (2)主窗体:通过主窗体可以进行用户的办理业务过程,进而实现相应的用户操作。具体实现的代码如下:privatevoid button4_Click(object sender, EventArgs e) Form3 f
12、rm = newForm3(); frm.Show(); privatevoid button2_Click(object sender, EventArgs e) Form6 frm = newForm6(); frm.Show();this.Hide(); privatevoid button5_Click(object sender, EventArgs e) Form4 frm = newForm4(); frm.Show();this.Hide(); privatevoid button1_Click(object sender, EventArgs e) Form5 frm = n
13、ewForm5(); frm.Show();this.Hide(); privatevoid button3_Click(object sender, EventArgs e) Form2 frm = newForm2(); frm.Show();this.Hide(); (3)取款窗体:通过该界面用户可以从自己的账户中进行取款操作,但是取款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,当用户余额不足以提取时提示余额不足,其界面如图2-4所示:图2-4取款界面具体实现的代码如下:string connString = "Data Source=.SQLEXPRESS;
14、AttachDbFilename=|DataDirectory|数据库a.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sql = "SELECT * FROM UserInfor WHERE kahao='" + Form1.jikahao + "'"SqlCommand cmd = newSqlCom
15、mand(sql, conn);SqlDataReader dr = cmd.ExecuteReader(); dr.Read();decimal jine = Convert.ToDecimal(dr4);decimal sqje = Convert.ToDecimal(textBox1.Text);decimal change = sqje;string presentname = Convert.ToString(dr1);string time = Convert.ToString(DateTime.Now); dr.Close();if (jine > sqje) if (sq
16、je % 100 = 0) decimal leftmoney = jine - sqje;string ssql = "Update UserInfor set yue = '" + leftmoney + "' where kahao ='" + Form1.jikahao + "'"SqlCommand ccmd = newSqlCommand(ssql, conn);int i = ccmd.ExecuteNonQuery();if (i = 1) if (i= 1) MessageBox.Sh
17、ow("请取款,30秒后自动关闭!"); else MessageBox.Show("交易记录保存失败!"); else MessageBox.Show("操作失败,重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show("提供以百元为单位的金额,请正确输入!"); textBox1.Text = "" else MessageBox.Show("余额不足!"
18、;); textBox1.Text = "" conn.Close();frmMain frm = newfrmMain(); frm.Show();this.Hide(); privatevoid button2_Click(object sender, EventArgs e) frmMain frm = newfrmMain(); frm.Show();this.Hide(); (4)查询余额窗体:在业务类型窗体上点击余额查询,可查询当前用户银行卡上的可用余额,其界面如图2-5所示:图2-5查询余额界面具体实现的代码如下:privatevoid button1_Cli
19、ck(object sender, EventArgs e) frmMain frm = newfrmMain(); frm.Show();this.Hide(); privatevoid button2_Click(object sender, EventArgs e) frmMain frm = newfrmMain(); frm.Show();this. Hide(); privatevoid textBox1_TextChanged(object sender, EventArgs e) privatevoid Form6_Load(object sender, EventArgs e
20、) string connString = "Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|数据库a.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sql = "select*from UserInfor where kahao='" + Form1.jik
21、ahao + "'"SqlCommand cmd = newSqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); label3.Text = dr"yue".ToString().Trim(); privatevoid label3_Click(object sender, EventArgs e) (5)交费窗体:通过该界面用户可以给自家的水费进行交费,其界面如图2-6所示:图2-6 交费界面具体实现的代码如下:privatevoid button1_C
22、lick(object sender, EventArgs e) string connString = "Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|数据库a.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sql = "SELECT * FROM UserInfor WH
23、ERE kahao='" +Form1 .jikahao + "'"SqlCommand cmd = newSqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader(); dr.Read();decimal jine = Convert.ToDecimal(dr4);decimal sqje = Convert.ToDecimal(textBox1.Text);string presentname = Convert.ToString(dr4);string cardid = "
24、'" + Form1.jikahao + "'"decimal change = sqje;string time = Convert.ToString(DateTime.Now); dr.Close();if (jine > sqje) MessageBox.Show("操作正在进行,请稍侯");decimal leftmoney = jine - sqje;string ssql = "Update UserInfor set yue = '" + leftmoney + "
25、9; where kahao ='" + Form1.jikahao + "'"SqlCommand ccmd = newSqlCommand(ssql, conn);MessageBox.Show("交费成功!"); textBox1.Text = ""int i = ccmd.ExecuteNonQuery();if (i = 1) textBox1.Text = "" else MessageBox.Show("操作失败,请重试!", "提示:"
26、;, MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show(" 您的余额不足!"); textBox1.Text = "" frmMain frm = newfrmMain(); frm.Show();MessageBox.Show("缴费成功!");this.Hide(); privatevoid button2_Click(object sender, EventArgs e) frmMain frm = newfrmMain(); frm.Show()
27、;this.Hide(); privatevoid textBox1_TextChanged(object sender, EventArgs e) privatevoid Form5_Load(object sender, EventArgs e) (6)转账窗体:通过该界面用户可以给除自己外的其他账户进行转账,其界面如图2-7所示:图2-7 转账界面具体实现的代码如下:string connString = "Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|数据库a.mdf;Integrated Security=T
28、rue;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sql = "SELECT * FROM UserInfor WHERE kahao='" + Form1.jikahao + "'"SqlCommand cmd = newSqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader(); dr.Rea
29、d();decimal jine = Convert.ToDecimal(dr4);string wo = Convert.ToString(dr1);decimal sqje = Convert.ToDecimal(textBox2.Text); dr.Close();if (jine > sqje) MessageBox.Show("转账成功");decimal leftmoney = jine - sqje;string ssql = "Update UserInfor set yue = '" + leftmoney + "
30、;' where kahao ='" + Form1.jikahao + "'"SqlCommand ccmd = newSqlCommand(ssql, conn);int i = ccmd.ExecuteNonQuery();if (i = 1) string sqql = "select * from UserInfor where kahao='" + textBox1.Text.Trim() + "'"SqlCommand cmdd = newSqlCommand(sqql,
31、 conn);SqlDataReader drr = cmdd.ExecuteReader();if (drr.Read() decimal je = Convert.ToDecimal(drr4);string presentname = wo;string cardid = "'" + Form1.jikahao + "'"decimal change = sqje;string time = Convert.ToString(DateTime.Now); je = je + sqje; drr.Close();string sqql
32、1 = "Update UserInfor set yue='" + je + "'where kahao='" + textBox1.Text.Trim() + "'"SqlCommand cmmdd = newSqlCommand(sqql1, conn);int n = cmmdd.ExecuteNonQuery();if (n = 1) MessageBox.Show("转账成功!"); textBox1.Text = "" textBox2.Text =
33、 "" else MessageBox.Show("转账失败!"); textBox1.Text = "" textBox2.Text = "" string sqll5 = "insert UserInfor1(kahao,acctime,exchangemoney) values('" + Form1.jikahao + "','" + presentname + "','" + change + "&
34、#39;)"SqlCommand cmd5 = newSqlCommand(sqll5, conn); else else MessageBox.Show("您的余额不足,请重新输入金额!"); textBox2.Text = "" conn.Close(); privatevoid button3_Click(object sender, EventArgs e) frmMain frm = newfrmMain(); frm.Show();this.Hide(); privatevoid button2_Click(object sende
35、r, EventArgs e) textBox1.Text = "" textBox2.Text = "" (7)修改密码窗体:通过该界面用户可以给自己的账户进行修改密码的操作,两次输入的新密码一样将修改成功,否则将失败,其界面如图2-8所示:图2-8 修改密码界面具体实现的代码如下:if (textBox2.Text.Trim() = textBox3.Text.Trim() string connString = "Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|数据库a.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sqlCheckPwd = "select count(*)from UserInfor where kahao='"+Form1.jikahao+"'and mima='" + textBox1.Text.Trim() +
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 训练后肌肉放松
- 冲击腰带设计分享
- 年底新员工工作总结
- 消化内科的宣教
- 2025版神经科疾病特征表现及护理培训
- 车间消防生产安全培训
- 黑蒜的制作方法
- 2025版压力性溃疡常见症状及护理要领
- 墓碑设计施工合同2025年版
- 老龄化社会背景下的护理行业分析
- 信息检索与利用课件 第2章 信息检索
- 2024年俄罗斯热熔基包装胶粘剂行业应用与市场潜力评估
- 2023年广东高考地理真题(原卷版)
- OGSM战略规划框架:实现企业目标的系统化方法论
- 高三5月大联考作文“新技术”“新产业”“新质生产力”导写
- 脑梗塞合并糖尿病的健康宣教
- 新能源汽车高压系统的电源电力转换与控制技术
- 高等数学(上册)
- 内伤(中医骨伤科学十三五教材)
- 煤矿每日一题题库带答案
- GB/T 34244-2017液体除菌用过滤芯技术要求
评论
0/150
提交评论