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

上传人:b****6 文档编号:4753769 上传时间:2022-12-08 格式:DOCX 页数:25 大小:582.94KB
下载 相关 举报
c#与net课程设计报告ATM交易管理系统.docx_第1页
第1页 / 共25页
c#与net课程设计报告ATM交易管理系统.docx_第2页
第2页 / 共25页
c#与net课程设计报告ATM交易管理系统.docx_第3页
第3页 / 共25页
c#与net课程设计报告ATM交易管理系统.docx_第4页
第4页 / 共25页
c#与net课程设计报告ATM交易管理系统.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

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

《c#与net课程设计报告ATM交易管理系统.docx》由会员分享,可在线阅读,更多相关《c#与net课程设计报告ATM交易管理系统.docx(25页珍藏版)》请在冰豆网上搜索。

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

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

 

 

《C#与.NET》课程设计报告

 

学院计算机学院、软件学院

专业计算机科学与技术

学生学号

学生姓名

指导教师

日期

 

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所示:

 

 

图1ATM系统的基本框图

2.2.3界面的设计

根据个人业务界面所提供的按钮,用户可以进行取款,存款、查询余额,修改密码等操作,个人业务界面如图2所示:

图2个人业务界面

2.3程序设计

用户进入系统后,点击用户登录进入登陆界面,在登录窗口中输入卡号和密码,判断卡号与密码是否正确,若卡号与密码正确则进入用户操作界面,并根据用户的相关操作给用户提供相应的服务。

若卡号与密码不正确,弹出对话框提示用户确认卡号和密码错误后重新输入,并对输入错误次数进行计数,若输入密码错误次数大于3次,则锁定该帐号。

2.3.1程序流程图

软件设计程序流程图如图3所示:

图3 程序流程图

2.3.2系统实施

本系统主要通过运用C#的Windows窗体的设计进行开发和实施,主要通过如下几个功能模块来完成系统的具体的实施过程:

(1)用户登陆窗体:

通过登陆界面可以进行用户的登陆过程,进而实现相应的用户操作。

即当用户名与密码都正确时用户就可以登陆进行所需的操作,其界面如图所示:

图 登陆界面

具体实现的代码如下:

namespaceATM自动取款机设计

{publicpartialclassfrmzuichu:

Form

{publicfrmzuichu()

{

InitializeComponent();

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

Form1form1=newForm1();

this.Hide();

form1.Show();

}

privatevoidbutton3_Click(objectsender,EventArgse)

{

Application.ExitThread();

Application.Exit();

}

}

}

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

publicinta=0;

publicstringb;

publicinti=0;

publicstaticstring帐号;

publicstaticstring密码;

privatevoidbutton12_Click(objectsender,EventArgse)

{

stringconnString=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ziliaoku.mdf;IntegratedSecurity=True;UserInstance=True";

SqlConnectionconn=newSqlConnection(connString);

stringsql="SELECT锁定FROMxinxiWHERE帐号='"+textBox2.Text.Trim()+"'";

using(SqlConnectionconna=newSqlConnection(connString))

{

conn.Open();

SqlCommandcmd=newSqlCommand(sql,conn);

SqlDataReaderdr=cmd.ExecuteReader();

if(dr.Read())

{

b=dr["锁定"].ToString();

}

dr.Close();

}

stringsql1="SELECT*FROMxinxiWHERE帐号='"+textBox2.Text.Trim()+"'";

stringsql2="SELECT*FROMxinxiWHERE帐号='"+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();

frmMainmain=newfrmMain();

main.Show();

this.Hide();

}

else

{

a=a+1;

if(a>2)

{

OperateDB.ExecuteNonQuery("UPDATExinxiSET锁定='1'WHERE帐号='"+textBox2.Text.Trim()+"'");

frmTunKatunka=newfrmTunKa();

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("软件错误!

");

//}

}

privatevoidbutton13_Click(objectsender,EventArgse)

{

textBox1.Text="";

textBox1.Text="";

}

privatevoidgroupBox1_Enter(objectsender,EventArgse)

{

}

privatevoidtextBox2_MouseEnter(objectsender,EventArgse)

{

textBox2.Focus();

}

privatevoidtextBox1_MouseEnter(objectsender,EventArgse)

{

textBox1.Focus();

}

privatevoidtextBox2_KeyPress(objectsender,KeyPressEventArgse)

{

if(e.KeyChar==(char)13)//13表示回车

{

textBox1.Focus();

}

}

privatevoidtextBox1_KeyPress(objectsender,KeyPressEventArgse)

{

if(e.KeyChar==(char)13)

button12_Click(sender,e);

}

privatevoidForm1_Load(objectsender,EventArgse)

{

textBox2.Focus();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

frmzuichuzuichu=newfrmzuichu();

this.Hide();

zuichu.Show();

}

}

(2)个人业务窗体:

根据界面所提供的按钮用户可以进行取款,存款,查询余额等操作,其界面如图所示:

图 个人业务界面

具体实现的代码如下:

privatevoidbutton1_Click(objectsender,EventArgse)

{

frmQuKuanqukuan=newfrmQuKuan();

qukuan.Show();

this.Hide();

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

frmCunKuancunkuan=newfrmCunKuan();

//frmCKQRckqr=newfrmCKQR();

cunkuan.Show();

this.Hide();

//Thread.Sleep(5000);

//cunkuan.Close();

//ckqr.Show();

}

privatevoidbutton3_Click(objectsender,EventArgse)

{

frmYuEChaXunyuechaxun=newfrmYuEChaXun();

yuechaxun.Show();

this.Hide();

}

privatevoidbutton4_Click(objectsender,EventArgse)

{

frmXiuGaiMiMaxiugaimima=newfrmXiuGaiMiMa();

xiugaimima.Show();

this.Hide();

}

privatevoidbutton7_Click(objectsender,EventArgse)

{

frmShaoDeng3shaodeng3=newfrmShaoDeng3();

shaodeng3.Show();

this.Close();

}

(3)取款窗体:

通过该界面用户可以从自己的账户中进行取款操作,但是取款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,当用户余额不足以提取时提示余额不足,其界面如图所示:

图 取款界面

具体实现的代码如下:

publicpartialclassfrmQuKuan:

Form

{

publicfrmQuKuan()

{

InitializeComponent();

}

publicintabc;

privatevoidbutton12_Click(objectsender,EventArgse)

{

stringab=textBox1.Text.Trim();

inta=Convert.ToInt16(ab);

stringconnString=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ziliaoku.mdf;IntegratedSecurity=True;UserInstance=True";

SqlConnectionconn=newSqlConnection(connString);

stringsql="SELECT储蓄FROMxinxiWHERE帐号='"+Form1.帐号+"'";

using(SqlConnectionconna=newSqlConnection(connString))

{

conn.Open();

SqlCommandcmd=newSqlCommand(sql,conn);

SqlDataReaderdr=cmd.ExecuteReader();

if(dr.Read())

{

stringbc=dr["储蓄"].ToString();

abc=Convert.ToInt32(bc);

}

dr.Close();

}

if(a<=abc)

{

if(a!

=0)

{

if((a%100)==0)

{

if(OperateDB.ExecuteNonQuery("DECLARE@xcintEXECUTEdbo.StoredProcedure1'"+Form1.帐号?

+"','"+textBox1.Text.Trim()+"',@xcOUT")==1)

{

frmShaoDeng1shaodeng1=newfrmShaoDeng1();

frmTiQuXianJintiquxianjin=newfrmTiQuXianJin();

frmMainmain=newfrmMain();

shaodeng1.Show();

shaodeng1.Focus();

this.Close();

}

}

else

{

frmQKTSqkts=newfrmQKTS();

qkts.Show();

qkts.Focus();

this.Hide();

}

}

else

{

this.Hide();

//Thread.Sleep(5000);

//qkje1.Close();

////this.Focus();

//timer5.Start();

}

}

else

{

textBox1.Text="";

frmYEBZyebz=newfrmYEBZ();

yebz.Show();

yebz.Focus();

this.Hide();

}

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

frmMainmain=newfrmMain();

this.Hide();

main.Show();

}

privatevoidbutton13_Click(objectsender,EventArgse)

{

textBox1.Text="";

}

}

(4)查询余额窗体:

在业务类型窗体上点击余额查询,可查询当前用户银行卡上的可用余额,其界面如图所示:

图 查询余额界面

具体实现的代码如下:

publicpartialclassfrmYuEChaXun:

Form

{

publicfrmYuEChaXun()

{

InitializeComponent();

}

privatevoidfrmYuEChaXun_Load(objectsender,EventArgse)

{

stringconnString=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ziliaoku.mdf;IntegratedSecurity=True;UserInstance=True";

SqlConnectionconn=newSqlConnection(connString);

stringsql="SELECT储蓄FROMxinxiWHERE帐号='"+Form1.帐号+"'";

using(SqlConnectionconna=newSqlConnection(connString))

{

conn.Open();

SqlCommandcmd=newSqlCommand(sql,conn);

SqlDataReaderdr=cmd.ExecuteReader();

if(dr.Read())

{

textBox1.Text=dr["储蓄"].ToString();

}

dr.Close();

}

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

this.Close();

frmMainmain=newfrmMain();

main.Show();

}

privatevoiddataGridView1_CellContentClick(objectsender,DataGridViewCellEventArgse)

{

//stringsql="SELECT储蓄FROMxinxiWHERE帐号="+Form1.帐号+"'";

//DataSetmyDs=OperateDB.ExecuteDataset(sql);

//dataGridView1.DataSource=myDs.Tables[0].DefaultView;

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

frmShaoDeng3shaodeng3=newfrmShaoDeng3();

shaodeng3.Show();

this.Close();

}

}

(5)修改密码窗体:

通过该界面用户可以给自己的账户进行修改密码的操作,两次输入的新密码一样将修改成功,否则将失败,其界面如图所示:

图修改密码界面

具体实现的代码如下:

publicpartialclassfrmXiuGaiMiMa:

Form

{

publicfrmXiuGaiMiMa()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(textBox3.Text.Trim()==textBox2.Text.Trim())

{

try

{

if(OperateDB.ExecuteNonQuery("UPDATExinxiSET密码='"+textBox2.Text.Trim()+"'WHERE帐号='"+Form1.帐号+"'")==1)

{

frmXGCGxgcg=newfrmXGCG();

xgcg.Show();

xgcg.Focus();

this.Hide();

}

else

{

frmXGSBxgsb=newfrmXGSB();

xgsb.Show();

xgsb.Focus();

this.Hide();

}

}

catch

{

MessageBox.Sho

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1