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

下载本文档

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

文档简介

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

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

3、1.2课设要求(1)仿某银行的运行界面。(2)用户凭正确的卡号和密码进入系统(若输入密码错误次数达到上限,锁定账号)(3)取款、交费、转账、查询余额、修改密码等功能。(4) 其他功能(包括开户,存款,销户等功能)。2.2系统的设计(1)输入:用户通过键盘进行输入。(2) 性能:可使用户在无任何经验的情况下进行操作ATM自助式服务。(3)功能方面:取款、查询余额、修改密码、记录查询、交费、转账。2.2.1数据库的分析与设计由自动提款机模拟软件系统的需求分析我们可以知道,本系统应为windows应用窗体的设计,据提供的实验环境及以前所学的理论知识,采用SQL数据库,根据自动提款机模拟软件的功能要求

4、,在Databasel数据库中建立两张表来存储信息,分别为userinfo和recordi nfo 。useri nfo表中用来存储用户的卡号,密码,用户名,余额及用于卡号锁定的字段表2-1用户基本信息表(userinfo)列名数据类型长度允许为空是否为主键说明Yonghun varchar20否是卡号miman varchar20否否密码yuemoney是否余额recordI nfo表中用于存储用户的卡号,用户名,存取结余,主要用于数据库的更新操作。表2-2用户操作信息表(recordI nfo)列名数据类型长度允许为空是否为主键说明yonghun varchar19否是卡号标识shijia

5、 ndatetime否否操作时间leixi ngn varchar20是否操作类型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登陆界面代码如下:namespaceWindowasdpublic partial classForml : Formpublic Form1()lni

7、tializeComponent();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() !=)SqlConnectionconn=newSqlConnection (DataSource=.SQLEXPRESS;AttachDbFilename=|Data

8、Directory|Database1.mdf;lntegrated 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);SqlDataReader dr1 = ccmd.ExecuteReader();if (dr1.Read()dr1.Close();lockI

9、D = maskedTextBox2.Text.Trim().ToString();string isornot = select mima from userinfo where yonghu= + maskedTextBox2.Text.Trim().ToString() + ;SqlCommand cmdO = new SqlCommand (isornot, conn);SqlDataReader drr = cmdO.ExecuteReader();if (drr.Read() & drr mima .ToString() = 1)MessageBox.Show(您的帐号已被锁定,请

10、与银行管理员联系!”);drr.Close();elsedrr.Close();string sql = select * from userinfo where yonghu= +maskedTextBox2.Text.Trim().ToString() + and mima= + maskedTextBox1.Text.Trim().ToString() + ;SqlCommand cmd = new SqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader();if (dr.Read()maskedTextBox2.Text =

11、 dr yonghu .ToString();Form2 frm = new Form2();frm.Show();this.Hide();elseif (this.c+ sqje)if (sqje % 100 = 0)MessageBox.Show(请在秒内取款);decimal leftmoney = jine - sqje;string ssql = Update userinfo set yue = + leftmoney + where yonghu = +Forml .lockID +SqlCommand ccmd = new SqlCommand(ssql, conn);Mess

12、ageBox.Show(取款成功”);int i = ccmd.ExecuteNonQuery();if (i = 1)maskedTextBoxl.Text =;elseMessageBox.Show(本机只提供以百元为单位的金额,请正确输入金额!);maskedTextBoxl.Text =;elseMessageBox.Show(您的余额不足!”);maskedTextBoxl.Text =;conn.Close();private void Form3_Load( object sender, EventArgs e)(4) 存款窗体:通过该界面用户可以从自己的账户中进行取存款操作,但

13、是存款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,其界面如图2-6所示:返回修改确认图2-6存款界面 代码如下:namespaceWindowasdpublic partial classForm4 : Formpublic Form4()lnitializeComponent();private void button3_Click( object sender, EventArgs e)maskedTextBox1.Text =private void button2_Click( object sender, EventArgs e)Form2 frm = new Fo

14、rm2();frm.Show();this.Hide();private void button1_Click( object sender, EventArgs e)SqlConnectionconn=newSqlConnection (DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;lntegrated Security=True;Connect Timeout=30;User Instance=True);conn.Open();string sql = SELECT * FROM userinfo

15、 WHERE yonghu= + Forml .lockID +;SqlCommand cmd = new SqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader();dr.Read();decimal jine = Convert .ToDecimal(dr2);decimal sqje = Convert.ToDecimal(maskedTextBoxl.Text);string presentname = Convert .ToString(dr1);string cardid =+ Forml .lockID +;decim

16、al change = sqje;string time = Convert.ToString(DateTime.Now);dr.Close();if (sqje % 100 = 0)MessageBox.Show(操作正在,请稍侯 );decimal leftmoney = jine + sqje;string ssql = Update userinfo set yue = + leftmoney + where yonghu = +Forml .lockID +;SqlCommand ccmd = new SqlCommand(ssql, conn);MessageBox.Show(存款

17、成功! ”);maskedTextBoxl.Text =;int i = ccmd.ExecuteNonQuery();if (i = 1)maskedTextBoxl.Text =;elseMessageBox.Show(操作失败,请 重试!,提示:, MessageBoxButtons.OK,MessageBoxIcon.Error);else MessageBox.Show(”本机只提供以百元为单位的金额,请正确输入金额!);private void Form4_Load( object sender, EventArgs e)(6)转账窗体:通过该界面用户可以给除自己外的其他账户进行转

18、账,其界面如图2-7所示:TF图2-7转账窗口代码如下:namespaceWindowasdpublic partial classForm5 : Formpublic Form5()lnitializeComponent();private void button3_Click( object sender, EventArgs e)SqlConnectionconnnewSqlConnection (DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;lntegrated Security=True;Co

19、nnectTimeout=30;User Instance=True);conn.Open();string sql = SELECT * FROM userinfo WHERE yonghu= + Forml .lockID +;SqlCommand cmd = new SqlCommand (sql, conn);SqlDataReader dr = cmd.ExecuteReader();dr.Read();decimal jine = Convert.ToDecimal(dr2);string wo = Convert.ToString(dr1);decimal sqje = Conv

20、ert.ToDecimal(maskedTextBoxl.Text);dr.Close();if (jine sqje)MessageBox.Show(正在操作,请稍侯 11);decimal leftmoney = jine - sqje;string ssql = Update userinfo set yue = + leftmoney + where yonghu = +Form1.locklD +;SqlCommand ccmd = new SqlCommand(ssql, conn);+ ;int i = ccmd.ExecuteNonQuery();if (i = 1)strin

21、g sqql = select * from userinfo where yonghu= + maskedTextBox2.Text.Trim()SqlCommand cmdd = new SqlCommand (sqql, conn);SqlDataReader drr = cmdd.ExecuteReader();if (drr.Read()decimal je = Convert.ToDecimal(drr2);string presentname = wo;string cardid =+ Form1 .lockID +;decimal change = sqje;string ti

22、me = Convert .ToString(DateTime .Now);je = je + sqje;drr.Close();string sqql1 = Update userinfo set yue= + je + where yonghu= + maskedTextBox2.Text.Trim() + ;SqlCommand cmmdd = new SqlCommand(sqql1, conn);int n = cmmdd.ExecuteNonQuery();if (n = 1)MessageBox.Show(转账成功! ”);maskedTextBox2.Text =;masked

23、TextBoxl.Text =;elseMessageBox.Show(转账失败!”);maskedTextBox2.Text =;maskedTextBoxl.Text =;elseMessageBox.Show(操作失败,请重试!,提示:,MessageBoxButtons.OK, MessageBoxIcon.Error);elseelseMessageBox.Show(您的余额不足,请重新输入金额!”);maskedTextBox1.Text =;private void button1_Click( object sender, EventArgs e)maskedTextBox1.

24、Text =;private void button2_Click( object sender, EventArgs e)Form2 frm = new Form2();frm.Show();this.Hide();private void Form5_Load( object sender, EventArgs e)private void label2_Click( object sender, EventArgs e)2-8所示:(7) 交费窗体:通过该界面用户可以自行交费,其界面如图图2-8交费窗口 代码如下:namespaceWindowasdpublic partial clas

25、sForm6 : Formpublic Form6()lnitializeComponent();private void maskedTextBox1_MasklnputRejected( object sender, MasklnputRejectedEventArgs 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)m

26、askedTextBox1.Text =private void button3_Click( object sender, EventArgs e)SqlConnectionconn=newSqlConnection (DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;lntegrated Security=True;Connect Timeout=30;User Instance=True);conn.Open();string sql = SELECT * FROM userinfo WHERE yo

27、nghu= + Forml .lockID +;SqlCommand cmd = new SqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader();dr.Read();decimal jine = Convert .ToDecimal(dr2);decimal sqje = Convert.ToDecimal(maskedTextBoxl.Text);string presentname = Convert .ToString(dr1);string cardid =+ Forml .lockID +;decimal change

28、 = sqje;string time = Convert.ToString(DateTime.Now);dr.Close();if (jine sqje)MessageBox.Show(操作正在,请稍侯 );decimal leftmoney = jine - sqje;string ssql = Update userinfo set yue = + leftmoney + where yonghu = +Forml .lockID +;SqlCommand ccmd = new SqlCommand(ssql, conn);MessageBox.Show(交费成功! ”);maskedT

29、extBoxl.Text =;int i = ccmd.ExecuteNonQuery();if (i = 1)maskedTextBoxl.Text =;elseMessageBox.Show(操作失败,请 重试!,提示:, MessageBoxButtons.OK,MessageBoxIcon.Error);elseMessageBox.Show(您的余额不足!”);maskedTextBoxl.Text =;private void Form6_Load( object sender,EventArgs e) (9 )修改密码窗体:通过该界面用户可以给自己的账户进行修改密码的操作,两次输

30、入的新密码一样将修改成功,否则将失败,其界面如图2-9所示:图2-9修改密码代码如下:namespaceWindowasdpublic partial classForm7 : Formpublic Form7()lnitializeComponent();private void button1_Click( object sender, EventArgs e) Form2 frm = new Form2();frm.Show();this.Hide();private void button3_Click( object sender, EventArgs e)SqlConnection

31、 (Data Security=True;Connectwhere yonghu= +SqlConnectionconn=newSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;lntegratedTimeout=30;User Instance=True);conn.Open();string password1 = maskedTextBox2 .Text .Trim ().ToString();string password2 =maskedTextBox3 .Text .Trim ().ToString()

32、;if (password1 = password2)string sqql = Update userinfo set mima = + password1 +Form1 .lockID +;SqlCommand cmdd = new SqlCommand (sqql, conn);int i = cmdd.ExecuteNonQuery();if (i = 1)MessageBox.Show(密码修改成功!”);maskedTextBox2.Text =;maskedTextBox3.Text =;elseMessageBox.Show(密码修改失败,请重试!);elseMessageBo

33、x.Show(两次输入密码不一至!);maskedTextBox3.Text =;maskedTextBox2.Text =;private void button2_Click( object sender, EventArgs e)maskedTextBox2.Text =;maskedTextBox3.Text =;private void Form7_Load( object sender, EventArgs e)(10)查询余额窗体:在业务类型窗体上点击余额查询,可查询当前用户银行卡上的可用余额,其界面如图 2-10所示:图2-10余额查询代码如下:namespaceWindowasdpublic partial classForm8 : Formpublic Form8()lnitializeComponent();priv

温馨提示

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

最新文档

评论

0/150

提交评论