C#课程设计—自动取款机模拟软件设计_第1页
C#课程设计—自动取款机模拟软件设计_第2页
C#课程设计—自动取款机模拟软件设计_第3页
C#课程设计—自动取款机模拟软件设计_第4页
C#课程设计—自动取款机模拟软件设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、*学院课程设计说明书(2012/2013学年第一学期)课程名称 : 软件程序设计 题 目 : 自动提款机模拟软件 专业班级 : 学生姓名 : 放羊娃 学 号: 指导教师 : 设计周数 : 2周 设计成绩 : 2013年1月18日目 录 1、课程设计目的 2、系统的分析与设计 2.1需求分析 2.1.1 课设任务 2.1.2 课设要求 2.2系统的设计 2.2.1 数据库的分析与设计 2.2.2逻辑层次的设计 2.3程序设计 2.3.1 程序流程图 2.3.2系统实施 3、课程设计总结或结论 4、参考文献1、 课程设计目的通过c#课程设计,使学生能将学到的面向对象的程序设计思想应用到具体的工作和

2、学习中,加深对类与对象的理解。进一步巩固所学的c#及数据库的相关理论知识,提高分析和解决实际问题的能力。2、系统的分析与设计 ATM机很方便,没有休息日,上班时间也长,除了换钱的半个小时左右,可以通宵达旦的工作。几乎相当于3个银行工作人员倒班干活。大大提高了银行效率,节约了人力和储户的时间。缺点是,有些人不会使用,会产生吞卡等现象,给部分人带来麻烦。但随着人们素质放入提高,这些缺点的影响已经越来越小了。2.1需求分析2.1.1 课设任务(1)根据技术要求和现有开发环境,分析题目。(2)选定设计方案,包括,软件功能结构,画出软件框架结构图,关键程序流程图, 数据库中表的结构设计等。(4)使用C#

3、语言和.net框架,并结合数据库,实现软件。(5)调试,修改并完善程序。2.1.2 课设要求(1) 仿某银行的运行界面。(2) 用户凭正确的卡号和密码进入系统(若输入密码错误次数达到上限,锁定账号)。(3) 取款、交费、转账、查询余额、修改密码等功能。(4) 其他功能(包括开户,存款,销户等功能)。2.2系统的设计(1)输入:用户通过键盘进行输入。(2)性能:可使用户在无任何经验的情况下进行操作ATM自助式服务。(3)功能方面:取款、查询余额、修改密码、记录查询、交费、转账。2.2.1 数据库的分析与设计由自动提款机模拟软件系统的需求分析我们可以知道,本系统应为windows应用窗体的设计,据

4、提供的实验环境及以前所学的理论知识,采用SQL数据库,根据自动提款机模拟软件的功能要求,在Database1数据库中建立两张表来存储信息,分别为userinfo和recordinfo。userinfo表中用来存储用户的卡号,密码,用户名,余额及用于卡号锁定的字段表2-1 用户基本信息表(userinfo)列名数据类型长度允许为空是否为主键说明Yonghunvarchar20否是卡号 mima nvarchar20否否密码yuemoney是否余额recordInfo表中用于存储用户的卡号,用户名,存取结余,主要用于数据库的更新操作。表2-2 用户操作信息表(recordInfo)列名数据类型长度

5、允许为空是否为主键说明 yonghunvarchar19否是卡号标识shijiandatetime否否操作时间leixingnvarchar20是否操作类型kayuedecimal(18,0)是否交易金额2.2.2逻辑层次的设计 本次课设的自动提款机模拟软件系统可以使用户进行登录、取款、转账、查询余额、修改密码、记录查询和交费等基本业务。 ATM自动提款机结构基本框图:退出系统交费查询余额修改密码存款取款转账启动登陆界面主菜单图2-1 ATM系统的基本框图2.3程序设计用户进入后,点击用户登录进入登陆界面,在登录窗口中输入卡号和密码,判断卡号与密码是否正确,若卡号与密码正确则进入用户操作界面,

6、并根据用户的相关操作给用户提供相应的服务。若卡号与密码不正确,弹出对话框提示用户确认卡号和密码错误后重新输入,并对输入错误次数进行计数,若输入密码错误次数大于3次,则锁定该帐号。2.3.1 程序流程图软件设计程序流程图如图2-2所示: 图2-2程序流程图2.3.2系统实施本系统主要通过运用C#的Windows窗体的设计进行开发和实施,主要通过如下几个功能模块来完成系统的具体的实施过程:(1)用户登陆窗体:通过登陆界面可以进行用户的登陆过程,进而实现相应的用户操作。即当用户名与密码都正确时用户就可以登陆进行所需的操作,其界面如图2-3所示: 图2-3登陆界面代码如下:namespace Wind

7、owasd public partial class Form1 : Form public Form1() InitializeComponent(); int c; public static string lockID; private void button4_Click(object sender, EventArgs e) maskedTextBox1.Text = ; private void button3_Click(object sender, EventArgs e) if (maskedTextBox2.Text.Trim() != ) SqlConnection co

8、nn = new SqlConnection(Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True); conn.Open(); string ssql = select * from userinfo where yonghu= + maskedTextBox2.Text.Trim() + ; SqlCommand ccmd = new SqlCommand(ssql, conn);

9、 SqlDataReader dr1 = ccmd.ExecuteReader(); if (dr1.Read() dr1.Close(); lockID = maskedTextBox2.Text.Trim().ToString(); string isornot = select mima from userinfo where yonghu= + maskedTextBox2.Text.Trim().ToString() + ; SqlCommand cmd0 = new SqlCommand(isornot, conn); SqlDataReader drr = cmd0.Execut

10、eReader(); if (drr.Read() & drrmima.ToString() = 1) MessageBox.Show(您的帐号已被锁定,请与银行管理员联系!); drr.Close(); else drr.Close(); string sql = select * from userinfo where yonghu= + maskedTextBox2.Text.Trim().ToString() + and mima= + maskedTextBox1.Text.Trim().ToString() + ; SqlCommand cmd = new SqlCommand(s

11、ql, conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read() maskedTextBox2.Text = dryonghu.ToString(); Form2 frm = new Form2(); frm.Show(); this.Hide(); else if (this.c+ sqje) if (sqje % 100 = 0) MessageBox.Show(请在秒内取款); decimal leftmoney = jine - sqje; string ssql = Update userinfo set yue = +

12、 leftmoney + where yonghu = + Form1.lockID + ; SqlCommand ccmd = new SqlCommand(ssql, conn); MessageBox.Show(取款成功); int i = ccmd.ExecuteNonQuery(); if (i = 1) maskedTextBox1.Text = ; else MessageBox.Show(本机只提供以百元为单位的金额,请正确输入金额!); maskedTextBox1.Text = ; else MessageBox.Show(您的余额不足!); maskedTextBox1.

13、Text = ; conn.Close(); private void Form3_Load(object sender, EventArgs e) (4) 存款窗体:通过该界面用户可以从自己的账户中进行取存款操作,但是存款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,其界面如图2-6所示: 图2-6 存款界面代码如下:namespace Windowasd public partial class Form4 : Form public Form4() InitializeComponent(); private void button3_Click(object sende

14、r, EventArgs e) maskedTextBox1.Text = ; private void button2_Click(object sender, EventArgs e) Form2 frm = new Form2(); frm.Show(); this.Hide(); private void button1_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Datab

15、ase1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True); conn.Open(); string sql = SELECT * FROM userinfo WHERE yonghu= + Form1.lockID + ; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); decimal jine = Convert.ToDecimal(dr2); decimal sq

16、je = Convert.ToDecimal(maskedTextBox1.Text); string presentname = Convert.ToString(dr1); string cardid = + Form1.lockID + ; decimal change = sqje; string time = Convert.ToString(DateTime.Now); dr.Close(); if (sqje % 100 = 0) MessageBox.Show(操作正在,请稍侯); decimal leftmoney = jine + sqje; string ssql = U

17、pdate userinfo set yue = + leftmoney + where yonghu = + Form1.lockID + ; SqlCommand ccmd = new SqlCommand(ssql, conn); MessageBox.Show(存款成功!); maskedTextBox1.Text = ; int i = ccmd.ExecuteNonQuery(); if (i = 1) maskedTextBox1.Text = ; else MessageBox.Show(操作失败,请重试!, 提示:, MessageBoxButtons.OK, Message

18、BoxIcon.Error); else MessageBox.Show(本机只提供以百元为单位的金额,请正确输入金额!); private void Form4_Load(object sender, EventArgs e) (6)转账窗体:通过该界面用户可以给除自己外的其他账户进行转账,其界面如图2-7所示: 图2-7转账窗口代码如下:namespace Windowasd public partial class Form5 : Form public Form5() InitializeComponent(); private void button3_Click(object se

19、nder, EventArgs e) SqlConnection conn = new SqlConnection(Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True); conn.Open(); string sql = SELECT * FROM userinfo WHERE yonghu= + Form1.lockID + ; SqlCommand cmd = new SqlC

20、ommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); decimal jine = Convert.ToDecimal(dr2); string wo = Convert.ToString(dr1); decimal sqje = Convert.ToDecimal(maskedTextBox1.Text); dr.Close(); if (jine sqje) MessageBox.Show(正在操作,请稍侯); decimal leftmoney = jine - sqje; string ssql =

21、Update userinfo set yue = + leftmoney + where yonghu = + Form1.lockID + ; SqlCommand ccmd = new SqlCommand(ssql, conn); int i = ccmd.ExecuteNonQuery(); if (i = 1) string sqql = select * from userinfo where yonghu= + maskedTextBox2.Text.Trim() + ; SqlCommand cmdd = new SqlCommand(sqql, conn); SqlData

22、Reader drr = cmdd.ExecuteReader(); if (drr.Read() decimal je = Convert.ToDecimal(drr2); string presentname = wo; string cardid = + Form1.lockID + ; decimal change = sqje; string time = Convert.ToString(DateTime.Now); je = je + sqje; drr.Close(); string sqql1 = Update userinfo set yue= + je + where y

23、onghu= + maskedTextBox2.Text.Trim() + ; SqlCommand cmmdd = new SqlCommand(sqql1, conn); int n = cmmdd.ExecuteNonQuery(); if (n = 1) MessageBox.Show(转账成功!); maskedTextBox2.Text = ; maskedTextBox1.Text = ; else MessageBox.Show(转账失败!); maskedTextBox2.Text = ; maskedTextBox1.Text = ; else MessageBox.Sho

24、w(操作失败,请重试!, 提示:, MessageBoxButtons.OK, MessageBoxIcon.Error); else else MessageBox.Show(您的余额不足,请重新输入金额!); maskedTextBox1.Text = ; private void button1_Click(object sender, EventArgs e) maskedTextBox1.Text = ; private void button2_Click(object sender, EventArgs e) Form2 frm = new Form2(); frm.Show()

25、; this.Hide(); private void Form5_Load(object sender, EventArgs e) private void label2_Click(object sender, EventArgs e) (7)交费窗体:通过该界面用户可以自行交费,其界面如图2-8所示: 图2-8 交费窗口代码如下:namespace Windowasd public partial class Form6 : Form public Form6() InitializeComponent(); private void maskedTextBox1_MaskInputRe

26、jected(object sender, MaskInputRejectedEventArgs e) private void button1_Click(object sender, EventArgs e) Form2 frm = new Form2(); frm.Show(); this.Hide(); private void button2_Click(object sender, EventArgs e) maskedTextBox1.Text = ; private void button3_Click(object sender, EventArgs e) SqlConnec

27、tion conn = new SqlConnection(Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True); conn.Open(); string sql = SELECT * FROM userinfo WHERE yonghu= + Form1.lockID + ; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); decimal jine = Convert.ToDecimal(dr2); decimal sqje = Convert.ToDecimal(maskedTextBox1.Text); string presentname = Convert.ToString(dr1); string

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论