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

下载本文档

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

文档简介

1、C课程设计自动取款机模拟软件设计解读C课程设计自动取款机模拟软件设计解读55/55薂PAGE55虿莆芆膀肄羁芁膂蝿薄蚇蝿螆袁莄蒃蝿膆肈莈膄螂肃蚄衿蒄葿羇袆蚂袂蚁罿羆袀薆莃薂袅袂聿芄羆蒀肅薂蚃肄腿袇莇聿螇蒂蒂莅艿肅螈蚈芅莂芁节莈蚇腿芇羇节芄薃莈羅莆肀蒅膃肃螄蒈蒇螇虿膇肃螂羅袂螅膈芈薅羃袅羂羂芇蕿袇莆虿薄膄肂薅羀蒇螄蕿莂莅肂膈肆莀蒆葿膁莂膂莆蒇罿羄荿膄薃节羈袈薈蚆艿羃袄莁芆艿膇肄艿蚂肅蒁薄蒆肀袆膀蒁肂薁肆袇虿芄肀蒄芃蚁莄芈芈羅羀芃蒅蚁袆蚈袈蒃袀肁蒂螁膅聿蒇膅莈肄芁袁芅膆螈袇芈袃蒂羁薃薇莇莅膈蚂蚃肀肅羈羆肇聿莁蚀膀莃荿薅蒅罿蒄袁膀羅薆膄芇衿膃肃芀膃羇肈蚄衿羂肀莀螆莇蚇莆蝿羄芁蒀肄螈芆袄虿螃薂薀薆腿袅

2、薆蕿薂螃虿袄芆螈肄葿芁螀蝿膂蚇莇螆莀莄羁蝿蚄肈羆膄芀肃膂衿羂葿薅袆芀袂腿罿薄袀膅莃膀袅莁聿螃羆羈肅肀蚃蚂腿莅莇薇螇羀蒂袃艿蚃螈膆芅袀芁袀莈膅腿螅羇螁芄肁莈蒃莆蚈蒅蚁肃节蒈羅螇芇膇蚁螂蒃袂芃膈袆薅薁袅蒀羂袅蕿蒆莆膇薄蚂肂膄羀肅螄肇莂羃肂蚆肆袈蒆羇膁袀膂羄蒇蒇羄羇膄膁节蒆袈肆蚆袇羃莂莁螄艿蚅肄螈蚂薃蒁肂蒆薈袆蚈蒁薀薁薄袇膇芄薈蒄螂蚁袂芈螇羅蒈芃肃蚁蒅蚈莆蒃莈肁羀螁蚃聿羅膅莈肄芁袁芅膆螈袇芈袃蒂羁薃薇莇莅膈蚂蚃肀肅羈羆肇聿莁蚀膀莃荿薅蒅罿蒄袁膀羅薆膄芇衿膃肃芀膃羇肈蚄衿羂肀莀螆莇蚇莆蝿羄芁蒀肄螈芆袄虿螃薂薀薆腿袅薆蕿薂螃虿袄芆螈肄葿芁螀蝿膂蚇莇螆莀莄羁蝿蚄肈羆膄芀肃膂衿羂葿薅袆芀袂腿罿薄袀膅莃膀袅莁

3、聿螃羆羈肅肀蚃蚂腿莅莇薇螇羀蒂袃艿蚃螈膆芅袀芁袀莈膅腿螅羇螁芄肁莈蒃莆蚈蒅蚁肃节蒈羅螇芇膇蚁螂蒃袂芃膈袆薅薁袅蒀羂袅蕿蒆莆膇薄蚂肂膄羀肅螄肇莂羃肂蚆肆袈蒆羇膁袀膂羄蒇蒇羄羇膄膁节蒆袈肆蚆袇羃莂莁螄艿蚅肄螈蚂薃蒁肂蒆薈袆蚈蒁薀薁薄袇膇芄薈蒄螂蚁袂芈螇羅蒈芃肃蚁蒅蚈莆蒃莈肁羀螁蚃聿羅膅莈肄芁袁芅膆螈袇芈袃蒂羁薃薇莇莅膈蚂蚃肀肅羈羆肇聿莁蚀膀莃荿薅蒅罿蒄袁膀羅螃膄蒃衿莀肃薇膃膃肈袁衿膈肀薇螆薄蚇蚃蝿芁芁蚇肄羅芆肁虿羀薂螆薆莆袅螃蕿蝿螃袆袄蒃螈芁葿薈螀羆膂袄莇羃莀薁羁肆蚄芅羆蒁芀莀膂膆羂蚆薅膂螈肈蚈膆肃肆蚃薀蚈膁罿芆莁芃蒆节薈袀膀莆袃蚄肅肄蒈虿莁蒅膁肅蚄蒂荿蒈莈薅蚃蒆芃膄荿蒁蕿蚅羁薃膆蚂艿芀螀螅薃羄螅

4、莄腿罿肂聿袁莅莅袁聿肂罿腿莄螅羄薃螅螀芀艿蚂膆薃羁蚅蕿蒁荿膄芃蒆蚃薅莈蒈荿蒂蚄肅膁蒅莁虿蒈肄肅蚄袃莆膀袀薈节蒆芃莁芆罿膁蚈薀蚃肆肃膆蚈肈螈膂肄蚆蒀膆螁莀袈蒁蒄芅节肆葿薁羈羃袅袄蚀羆芈薈羈芁芆蒃莂袆芁蝿肇螃莃莆肄螆肀羀膇肁螄羅薂蚇衿芁芇蚃膅薄芄薇薈膈莇袁薆膃螂薇蚁莀蒇蒃螃螃蒃蒇莀蚁薇螂膃薆袁莇膈薈薇芄薄膅蚃芇芁衿蚇薂羅螄肁膇羀肀螆肄莆莃螃肇蝿芁袆莂蒃芆芁羈薈芈羆蚀袄袅羃羈薁葿肆节芅蒄蒁袈莀螁膆蒀蚆肄膂螈肈蚈膆肃肆蚃薀蚈膁罿芆莁芃蒆节薈袀膀莆袃蚄肅肄蒈虿莁蒅膁肅蚄蒂荿蒈莈薅蚃蒆芃膄荿蒁蕿蚅羁薃膆蚂艿芀螀螅薃羄螅莄腿罿肂聿袁莅C课程设计自动取款机模拟软件设计解读学院课程设计说明书2012/2013学

5、年第一学期)课程名称:软件程序设计题目:自动提款机模拟软件专业班级:学生姓名:放羊娃学号:指导教师:设计周数:2周设计成绩:2013年1月18日目录1、课程设计目的2、系统的解析与设计3、课程设计总结或结论4、参照文件1、课程设计目的经过c#课程设计,使学生能将学到的面向对象的程序设计思想应用到详尽的工作和学习中,加深对类与对象的理解。进一步牢固所学的c#及数据库的相关理论知识,提高解析和解决实责问题的能力。2、系统的解析与设计ATM机很方便,没有休息日,上班时间也长,除了换钱的半个小时左右,可以通宵达旦的工作。几乎相当于3个银行工作人员倒班干活。大大提高了银行效率,节约了人力和储户的时间。缺

6、点是,有些人不会使用,会产生吞卡等现象,给部分人带来麻烦。但随着人们素质放入提高,这些缺点的影响已经越来越小了。课设任务1)依照技术要求和现有开发环境,解析题目。2)选定设计方案,包括,软件功能结构,画出软件框架结构图,要点程序流程图,数据库中表的结构设计等。4)使用C#语言和.net框架,并结合数据库,实现软件。5)调试,更正并完满程序。课设要求(1)仿某银行的运行界面。(2)用户凭正确的卡号和密码进入系统(若输入密码错误次数达到上限,锁定账号)。3)取款、交费、转账、盘问余额、更正密码等功能。4)其他功能(包括开户,存款,销户等功能)。(1)输入:用户经过键盘进行输入。(2)性能:可使用户

7、在无任何经验的情况下进行操作ATM自助式服务。(3)功能方面:取款、盘问余额、更正密码、记录盘问、交费、转账。数据库的解析与设计由自动提款机模拟软件系统的需求解析我们可以知道,本系统应为windows应用窗体的设计,据供应的实验环境及以前所学的理论知识,采用SQL数据库,依照自动提款机模拟软件的功能要求,在Database1数据库中建立两张表来储藏信息,分别为userinfo和recordinfo。userinfo表中用来储藏用户的卡号,密码,用户名,余额及用于卡号锁定的字段表2-1用户基本信息表(userinfo)列名数据种类长度赞同为空可否为主键说明Yonghunvarchar20否是卡号

8、mimanvarchar20否否密码yuemoney是否余额recordInfo表中用于储藏用户的卡号,用户名,存取结余,主要用于数据库的更新操作。表2-2用户操作信息表(recordInfo)列名数据种类长度赞同为空可否为主键说明yonghunvarchar19否是卡号表记shijiandatetime否否操作时间leixingnvarchar20是否操作种类kayuedecimal(18,0)是否交易金额逻辑层次的设计本次课设的自动提款机模拟软件系统可以使用户进行登录、取款、转账、盘问余额、修改密码、记录盘问和交费等基本业务。ATM自动提款机结构基本框图:启动登陆界面退出系统存款主菜单取款

9、交费转账更正密码盘问余额图2-1ATM系统的基本框图用户进入后,点击用户登录进入登陆界面,在登录窗口中输入卡号和密码,判断卡号与密码可否正确,若卡号与密码正确则进入用户操作界面,并依照用户的相关操作给用户供应相应的服务。若卡号与密码不正确,弹出对话框提示用户确认卡号和密码错误后重新输入,并对输入错误次数进行计数,若输入密码错误次数大于3次,则锁定该帐号。程序流程图软件设计程序流程图如图2-2所示:图2-2程序流程图系统推行本系统主要经过运用C#的Windows窗体的设计进行开发和推行,主要经过以下几个功能模块来完成系统的详尽的推行过程:(1)用户登陆窗体:经过登陆界面可以进行用户的登陆过程,进

10、而实现相应的用户操作。即当用户名与密码都正确时用户就可以登陆进行所需的操作,其界面如图2-3所示:图2-3登陆界面代码以下:namespaceWindowasdpublicpartialclassForm1:FormpublicForm1()InitializeComponent();intc;publicstaticstringlockID;privatevoidbutton4_Click(objectsender,EventArgse)maskedTextBox1.Text=;privatevoidbutton3_Click(objectsender,EventArgse)if(maske

11、dTextBox2.Text.Trim()!=)SqlConnectionconn=newSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;IntegratedTimeout=30;UserInstance=True);SqlConnection(DataSecurity=True;Connectconn.Open();stringssql=select*fromuserinfowhereyonghu=+maskedTextBox2.Text.Trim()+;SqlCommandccmd=newSqlCommand

12、(ssql,conn);SqlDataReaderdr1=ccmd.ExecuteReader();if(dr1.Read()dr1.Close();lockID=maskedTextBox2.Text.Trim().ToString();stringisornot=selectmimafromuserinfowhereyonghu=+maskedTextBox2.Text.Trim().ToString()+;SqlCommandcmd0=newSqlCommand(isornot,conn);SqlDataReaderdrr=cmd0.ExecuteReader();if(drr.Read

13、()&drrmima.ToString()=1)MessageBox.Show(您的帐号已被锁定,请与银行管理员联系!);drr.Close();elsedrr.Close();stringsql=select*fromuserinfowhereyonghu=+maskedTextBox2.Text.Trim().ToString()+andmima=+maskedTextBox1.Text.Trim().ToString()+;SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReaderdr=cmd.ExecuteReader();if(dr.Rea

14、d()maskedTextBox2.Text=dryonghu.ToString();Form2frm=newForm2();frm.Show();this.Hide();elseif(this.c+sqje)if(sqje%100=0)MessageBox.Show(请在秒内取款);decimalleftmoney=jine-sqje;stringssql=Updateuserinfosetyue=+leftmoney+whereyonghu=+Form1.lockID+;SqlCommandccmd=newSqlCommand(ssql,conn);MessageBox.Show(取款成功

15、);inti=ccmd.ExecuteNonQuery();if(i=1)maskedTextBox1.Text=;elseMessageBox.Show(本机只供应予百元为单位的金额,请正确输入金额!);maskedTextBox1.Text=;elseMessageBox.Show(您的余额不足!);maskedTextBox1.Text=;conn.Close();privatevoidForm3_Load(objectsender,EventArgse)(4)存款窗体:经过该界面用户可以从自己的账户中进行取存款操作,但是存款的金额必定在规定范围内且为100元的整数倍,否则无法进行操作,

16、其界面如图2-6所示:图2-6存款界面代码以下:namespaceWindowasdpublicpartialclassForm4:FormpublicForm4()InitializeComponent();privatevoidbutton3_Click(objectsender,EventArgse)maskedTextBox1.Text=;privatevoidbutton2_Click(objectsender,EventArgse)Form2frm=newForm2();frm.Show();this.Hide();privatevoidbutton1_Click(objectse

17、nder,EventArgse)SqlConnectionconn=newSqlConnection(DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True);conn.Open();stringsql=SELECT*FROMuserinfoWHEREyonghu=+Form1.lockID+;SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReader

18、dr=cmd.ExecuteReader();dr.Read();decimaljine=Convert.ToDecimal(dr2);decimalsqje=Convert.ToDecimal(maskedTextBox1.Text);stringpresentname=Convert.ToString(dr1);stringcardid=+Form1.lockID+;decimalchange=sqje;stringtime=Convert.ToString(DateTime.Now);dr.Close();if(sqje%100=0)MessageBox.Show(操作正在,请稍侯);d

19、ecimalleftmoney=jine+sqje;stringssql=Updateuserinfosetyue=+leftmoney+whereyonghu=+Form1.lockID+;SqlCommandccmd=newSqlCommand(ssql,conn);MessageBox.Show(存款成功!);maskedTextBox1.Text=;inti=ccmd.ExecuteNonQuery();if(i=1)maskedTextBox1.Text=;elseMessageBox.Show(操作失败,请重试!,提示:,MessageBoxButtons.OK,MessageBo

20、xIcon.Error);elseMessageBox.Show(本机只供应予百元为单位的金额,请正确输入金额!);privatevoidForm4_Load(objectsender,EventArgse)(6)转账窗体:经过该界面用户可以给除自己外的其他账户进行转账,其界面如图2-7所示:图2-7转账窗口代码以下:namespaceWindowasdpublicpartialclassForm5:FormpublicForm5()InitializeComponent();privatevoidbutton3_Click(objectsender,EventArgse)SqlConnect

21、ionconn=newSqlConnection(DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True);conn.Open();stringsql=SELECT*FROMuserinfoWHEREyonghu=+Form1.lockID+;SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReaderdr=cmd.ExecuteReader();dr.

22、Read();decimaljine=Convert.ToDecimal(dr2);stringwo=Convert.ToString(dr1);decimalsqje=Convert.ToDecimal(maskedTextBox1.Text);dr.Close();if(jinesqje)MessageBox.Show(正在操作,请稍侯);decimalleftmoney=jine-sqje;stringssql=Updateuserinfosetyue=+leftmoney+whereyonghu=+Form1.lockID+;SqlCommandccmd=newSqlCommand(s

23、sql,conn);inti=ccmd.ExecuteNonQuery();if(i=1)stringsqql=select*fromuserinfowhereyonghu=+maskedTextBox2.Text.Trim()+;SqlCommandcmdd=newSqlCommand(sqql,conn);SqlDataReaderdrr=cmdd.ExecuteReader();if(drr.Read()decimalje=Convert.ToDecimal(drr2);stringpresentname=wo;stringcardid=+Form1.lockID+;decimalcha

24、nge=sqje;stringtime=Convert.ToString(DateTime.Now);je=je+sqje;drr.Close();stringsqql1=Updateuserinfosetyue=+je+whereyonghu=+maskedTextBox2.Text.Trim()+;SqlCommandcmmdd=newSqlCommand(sqql1,conn);intn=cmmdd.ExecuteNonQuery();if(n=1)MessageBox.Show(转账成功!);maskedTextBox2.Text=;maskedTextBox1.Text=;elseM

25、essageBox.Show(转账失败!);maskedTextBox2.Text=;maskedTextBox1.Text=;elseMessageBox.Show(操作失败,请重试!,提示:,MessageBoxButtons.OK,MessageBoxIcon.Error);elseelseMessageBox.Show(您的余额不足,请重新输入金额!);maskedTextBox1.Text=;privatevoidbutton1_Click(objectsender,EventArgse)maskedTextBox1.Text=;privatevoidbutton2_Click(ob

26、jectsender,EventArgse)Form2frm=newForm2();frm.Show();this.Hide();privatevoidForm5_Load(objectsender,EventArgse)privatevoidlabel2_Click(objectsender,EventArgse)(7)交费窗体:经过该界面用户可以自行交费,其界面如图2-8所示:图2-8交费窗口代码以下:namespaceWindowasdpublicpartialclassForm6:FormpublicForm6()InitializeComponent();privatevoidmas

27、kedTextBox1_MaskInputRejected(objectsender,MaskInputRejectedEventArgse)privatevoidbutton1_Click(objectsender,EventArgse)Form2frm=newForm2();frm.Show();this.Hide();privatevoidbutton2_Click(objectsender,EventArgse)maskedTextBox1.Text=;privatevoidbutton3_Click(objectsender,EventArgse)SqlConnectionconn=

28、newSqlConnection(DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True);conn.Open();stringsql=SELECT*FROMuserinfoWHEREyonghu=+Form1.lockID+;SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReaderdr=cmd.ExecuteReader();dr.Read();d

29、ecimaljine=Convert.ToDecimal(dr2);decimalsqje=Convert.ToDecimal(maskedTextBox1.Text);stringpresentname=Convert.ToString(dr1);stringcardid=+Form1.lockID+;decimalchange=sqje;stringtime=Convert.ToString(DateTime.Now);dr.Close();if(jinesqje)MessageBox.Show(操作正在,请稍侯);decimalleftmoney=jine-sqje;stringssql

30、=Updateuserinfosetyue=+leftmoney+whereyonghu=+Form1.lockID+;SqlCommandccmd=newSqlCommand(ssql,conn);MessageBox.Show(交费成功!);maskedTextBox1.Text=;inti=ccmd.ExecuteNonQuery();if(i=1)maskedTextBox1.Text=;elseMessageBox.Show(操作失败,请重试!,提示:,MessageBoxButtons.OK,MessageBoxIcon.Error);elseMessageBox.Show(您的余

31、额不足!);maskedTextBox1.Text=;privatevoidForm6_Load(objectsender,EventArgse)(9)更正密码窗体:经过该界面用户可以给自己的账户进行更正密码的操作,两次输入的新密码相同将更正成功,否则将失败,其界面如图2-9所示:图2-9更正密码代码以下:namespaceWindowasdpublicpartialclassForm7:FormpublicForm7()InitializeComponent();privatevoidbutton1_Click(objectsender,EventArgse)Form2frm=newForm

32、2();frm.Show();this.Hide();privatevoidbutton3_Click(objectsender,EventArgse)SqlConnectionconn=newSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;IntegratedTimeout=30;UserInstance=True);SqlConnection(DataSecurity=True;Connectconn.Open();stringpassword1=maskedTextBox2.Text.Trim().ToSt

33、ring();stringpassword2=maskedTextBox3.Text.Trim().ToString();if(password1=password2)stringsqql=Updateuserinfosetmima=+password1+whereyonghu=+Form1.lockID+;SqlCommandcmdd=newSqlCommand(sqql,conn);inti=cmdd.ExecuteNonQuery();if(i=1)MessageBox.Show(密码更正成功!);maskedTextBox2.Text=;maskedTextBox3.Text=;elseMessageBox.Show(密码更正失败,请重试!);elseMessageBox.Show(两次输入密码不一至!);maskedTextBox3.Text=;maskedTextBox2.Text=;privatevoidbutton2_Click(objectsender,EventArgse)maskedTextBox2.Text=;maskedTextBox3.Text=;privatevoidForm7_Load(objectsender,EventArgse)10)盘问余额窗体:在业务种类窗体上点击余额盘问,可盘问当前用户银行卡上的可用余额,其界面如图2

温馨提示

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

评论

0/150

提交评论