银行管理系统课设报告

合集下载

银行账户管理系统-课程设计报告

银行账户管理系统-课程设计报告

课程设计课程设计名称:java课程设计专业班级:计科13级03班****:***学号:****************:***课程设计时间:2015.6.22-2015.7.3计算机科学技术专业课程设计任务书银行帐户管理系统一、需求分析银行账户管理系统中,主要有以下功能:1.添加账户:主要增加账户的账号,姓名,类型以及所存的金额。

2.登陆账户:根据输入的账号以及密码,验证判断其账户的类型以进行操作。

3.存款:输入账号,并向该账号存钱。

4.取款:输入账号和密码,根据不同类型的账户进行取款或者透支取款。

5.转账:输入账号和密码,并向另外一个存在的账号转账。

6.查询账户余额:根据输入的账号和密码,查询并显示出该账户的剩余金额。

二、概要设计图1 系统模块流程图三、运行环境、开发语言运行环境:Windows 8.1,DOS,Eclipse开发语言:Java四、详细设计1程序清单表1 ATM类表2 Bank类表3 SavingAccount类表4 CresitAccount类表5 Account类方法功能void deposit()存款getxx()setxx()获取及操作2 主要代码2.1 ATM类进入银行账户管理系统,进行操作。

图2:银行账户管理系统主界面import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.util.Properties;import java.util.Scanner;public class ATM {//属性private Bank bank;//构造函数public ATM() {bank = new Bank();}//main方法public static void main(String[] args){ATM atm = new ATM();//实例化ATMBank bank = atm.bank;//标号,判断是否退出一级菜单boolean firstFlag = true;while(firstFlag){ //一级菜单System.out.println("******欢迎使用XXX银行模拟ATM系统,请按如下步骤操作******");System.out.println(" *1.用已有账户登录");System.out.println(" *2.没有账户,开户");System.out.println(" *3.退出");Scanner scanner = new Scanner(System.in);System.out.print("请选择:");try {int choice1 = scanner.nextInt();switch(choice1){case 1:scanner = new Scanner(System.in);System.out.print("请输入银行卡号:");long id = scanner.nextInt();scanner = new Scanner(System.in);System.out.print("请输入银行密码:");String password = scanner.next();Account account = bank.verifyAccount(id, password);if(account != null){ //标号,判断是否退出二级菜单boolean secondFlag = true;while(secondFlag){ //二级菜单System.out.println("******欢迎使用XXX银行模拟ATM系统,请按如下步骤操作******");System.out.println(" *1.查询账户余额");System.out.println(" *2.存款");System.out.println(" *3.取款");System.out.println(" *4.转账");System.out.println(" *5.退卡");scanner = new Scanner(System.in);System.out.print("请选择:");try {int choice2 = scanner.nextInt();switch(choice2){case 1:System.out.println("您账户的当前余额为:"+account.getBalance());break;case 2:scanner = new Scanner(System.in);System.out.print("请输入您的存款金额:");double money1 = scanner.nextDouble();bank.deposit(account, money1);break;case 3:scanner = new Scanner(System.in);System.out.print("请输入您的取款金额:");double money2 = scanner.nextDouble();bank.withdraw(account, money2);break;case 4:scanner = new Scanner(System.in);System.out.print("请输入您要转入账户的卡号:");long id2 = scanner.nextLong();Account account2 = bank.verifyAccount(id2);if(account2 != null){scanner = new Scanner(System.in);System.out.print("请输入您要转入账户的金额:");double money = scanner.nextLong();if(money <= account.balance){bank.transferAccount(account, account2, money);System.out.println("转账成功!!!");}else{System.out.println("抱歉,您账户没有足够的金额!请查看后重新选择输入!");}}else{System.out.println("抱歉,没有找到您要转入的账户信息!请核对后重新选择输入!");}break;case 5:secondFlag = false;break;default:System.out.println("没有该选项,请重新选择!");break;}} catch (Exception e) {System.out.println("选择输入不合法,请重新选择!");}}}else{System.out.println("没有此账户,请先开户!");}break;case 2://账号id由银行自动提供(从1001递增)scanner = new Scanner(System.in);System.out.print("请输入账户密码:");String passwd1 = scanner.next();scanner = new Scanner(System.in);System.out.print("请再输入账户密码:");String passwd2 = scanner.next();scanner = new Scanner(System.in);System.out.print("请输入户主姓名:");String name = scanner.next();scanner = new Scanner(System.in);System.out.print("请输入户主身份证号码:");String personId = scanner.next();scanner = new Scanner(System.in);System.out.print("请输入账户类型(0储蓄,1信用):");int type = scanner.nextInt();bank.openAccount(passwd1, passwd2, name, personId, type);break;case 3:bank.saveAccountDate();firstFlag = false;break;default :System.out.println("没有该选项,请重新选择!");break;}} catch (Exception e) {System.out.println("选择输入不合法,请重新选择!");}}System.out.println("谢谢使用!");}}2.2 Bank类对系统添加新账户,登陆已有账户,进行操作。

银行管理系统java课程设计

银行管理系统java课程设计

银行管理系统java课程设计一、教学目标本课程的目标是让学生掌握Java语言在银行管理系统中的应用。

通过本课程的学习,学生将能够理解银行管理系统的业务流程,运用Java语言实现银行管理系统的功能,并熟练使用相关开发工具。

1.掌握Java语言的基本语法和数据结构。

2.了解银行管理系统的业务流程和常用模块。

3.熟悉银行管理系统的设计原则和开发方法。

4.能够使用Java语言编写简单的银行管理系统程序。

5.能够分析银行管理系统的需求,设计合适的系统架构。

6.能够使用相关开发工具进行银行管理系统的开发和调试。

情感态度价值观目标:1.培养学生的团队协作能力和沟通能力。

2.培养学生对编程的兴趣和热情。

3.培养学生遵守编程规范和职业道德的意识。

二、教学内容本课程的教学内容主要包括三个部分:Java语言基础、银行管理系统业务流程、银行管理系统设计与实现。

1.Java语言基础:介绍Java语言的基本语法、数据结构、面向对象编程等知识。

通过讲解和示例,使学生掌握Java语言的基本编程能力。

2.银行管理系统业务流程:讲解银行管理系统的业务流程,包括客户管理、账户管理、贷款管理、结算管理等模块。

使学生了解银行管理系统的实际运作过程。

3.银行管理系统设计与实现:结合实际案例,引导学生运用Java语言设计和实现银行管理系统。

内容包括系统架构设计、模块划分、编程规范、测试与调试等。

三、教学方法本课程采用多种教学方法,包括讲授法、案例分析法、实验法等。

1.讲授法:通过讲解Java语言基础知识和银行管理系统的业务流程,使学生掌握相关理论知识。

2.案例分析法:分析实际案例,让学生了解银行管理系统的实际应用,提高学生的实际操作能力。

3.实验法:安排实验课程,让学生动手编写代码,培养学生的实际编程能力和解决问题的能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料、实验设备等。

1.教材:选用权威、实用的Java语言教材,为学生提供系统的理论知识学习。

数据库课程设计报告-银行储蓄管理系统数据库设计[2018年整理]

数据库课程设计报告-银行储蓄管理系统数据库设计[2018年整理]

数据库原理及应用课程设计报告组号:小组成员:学院:专业班级:指导老师:2017/1/10目录第1章概述 (1)1.1设计题目: (1)1.2要求完成的主要任务: (1)第2章需求分析 (6)2.1定义 (6)2.2需求规格说明概览 (6)2.3产品的一般性描述 (7)2.4产品功能 (7)2.5用户特征 (7)2.6功能划分 (7)2.7用户界面 (8)2.8可维护性 (9)2.9可理解性 (9)2.10可移植性 (9)第3章数据库表结构图 (9)3.1实体联系图 (10)3.2程序流程图 (10)第4章功能与实现 (11)4.1客户端登录功能 (11)4.2客户端主界面功能 (12)4.3客户端开户功能 (12)4.4客户端存款功能 (13)4.5客户端取款功能 (13)4.6客户端转账功能 (14)4.7客户端余额查询功能 (14)4.8客户端修改密码功能 (14)4.9客户端销户功能 (15)4.10服务器端用户注册功能 (15)4.11服务器端修改用户登密码功能 (15)第5章实现及测试 (16)5.1系统开发环境 (16)5.2主要功能模块的实现及测试 (16)5.2.1数据表的建立 (16)5.2.2数据库连接与数据提供 (16)第6章总结 (17)第7章参考文献 (17)第1章概述本软件实现银行的活期储蓄存款业务。

整套软件由客户端程序和服务器端程序构成,客户端运行在面向个人业务的银行柜台的电脑上,银行职员输入相关信息并通过网络通讯向服务器发送请求,并接受服务器端程序的应答显示处理的结果。

服务器端处理客户端的各种业务请求。

主要实现银行开户、销户、取款、存款、余额查询、转账、修改密码、打印账户明细记录等功能。

1.1 设计题目:题目:银行储蓄管理系统数据库设计本课程的设计的目的是通过实践使同学们经历数据库设计开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。

结合具体的开发案例,理解并初步掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力。

银行储蓄管理系统实验报告

银行储蓄管理系统实验报告

C++面向对象程序设计课程设计报告学生姓名: ___ __________学号: _____ __________班级: ___指导教师: ______________2022 年 6 月 19 日......................................................................................课程设计的目的是总结及运用一学期来所学的知识,训练我们灵便应用所学 C++知识,独 立完成问题分析、总结设计、详细设计和编程实现等软件开辟全过程的综合实践能力。

巩 固、深化理论知识,提高编程水平,并在此过程中培养我们严谨的科学态度和良好的工作 作风。

随着社会经济的发展,信息化程度的不断深入,银行的传统业务已不能满足客户的需 求。

当今,人们的科技意识已经有了很大的提高,在紧张忙碌的生活中已越来不习惯每天 奔波于银行营业柜台去办理各种业务,利用电子化的手段构建一个高效统一的、通用灵便 的系统来管理各种各样的业务,是当前每一个商业银行都要研究的课题。

因此如何应用计算 机技术加强银行账户管理是当前迫切需要解决的一个问题。

所以本次课程设计是摹拟银行 账户的管理,开辟一个银行个人账户管理系统。

设计思想是一切为使用者着想,操作尽量 简单明了,努力做到每一个用户都可以使用这个系统来办理自己的业务。

并且通过该银行 账户管理系统地运行,可以使办公人员轻松快捷的完成对账户管理的任务,提高招募管理 效率,是银行的账目管理工作系统化、规范化、自动化。

主要用于银行的储蓄卡管理系统,它可以帮组我们有效、准确、并且高效实现的完成 存取事件。

系统操作方便效率、安全性高、只要开户并设定好密码就可以轻松的实现存取 款。

系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功 能。

储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认 密码和保存组成。

银行帐户管理系统 Java课程设计

银行帐户管理系统 Java课程设计

课程设计For personal use only in study and research; not for commercial useFor personal use only in study and research; not for commercial use课程设计名称:java课程设计专业班级:计科09级05班学生姓名:刘品训学号:0507指导教师:王社伟课程设计时间:计算机科学与技术专业课程设计任务书银行帐户管理系统一、需求分析银行账户管理系统中,主要有以下功能:1.添加账户:主要增加账户的账号,姓名,以及所存的金额。

2.删除账户:根据输入的账号,删除该账户的信息。

3.修改账户信息:根据输入的账号,修改账户的信息。

4.查询账户信息:根据输入的账号,查询并显示出该账户的相关信息。

5.浏览:浏览数据库中的各个账户的信息。

6.存款:输入账号,并向该账号存钱,同时并记录下来。

7.贷款:输入账号和贷款单号向该账户贷款,并记录下来。

8.还钱:输入账号和贷款单号付贷款钱,同时并显示还有多少贷款未付。

二、概要设计课程设计模块图:系统流程图:三、运行环境、开发语言1:Windows xp,DOS,Microsoft SQL Server 2005;2:Java,SQL Server。

四、详细设计1 程序清单表1 程序清单2 主要代码2.1建立Bank公共类,并连接数据库import java.sql.*;import java.util.*;import javax.swing.*;public class Bank{public static String driverName = ""; //加载JDBC驱动public static String dbURL = "jdbc:; DatabaseName=银行管理系统"; //连接服务器和数据库public static String userName = "liu"; //默认用户名public static String userPwd = "518888k"; //密码public static Connection dbconn;static boolean m = true;static int N;private static Scanner scanner = new Scanner(System.in);}2.2主函数银行账户管理系统主界面public static void main(String[] srg) throws Exception{while(m){"---------------银行账户管理系统---------------");" 1:添加账户2:删除账户");" 3:修改账户信息4:查询账户信息");" 5:浏览6:存款");" 7:贷款8:还钱");" 9:退出");"-------------请输入您要进行的服务---------");N=scanner.nextInt();switch(N){case 1:insert();break;case 2:del();break;case 3:update();break;case 4:serch();break;case 5:liulan();break;case 6:cunkuan();break;case 7:daikuan();break;case 8:huanqian();break;case 9: m =false;break;default:"请在1--9之间选择");}}}2.3添加账户功能public static void insert() throws Exception{try{Class.forName(driverName);//载入驱动dbconn = DriverManager.getConnection(dbURL,userName,userPwd);//连接数据库String num=null,name=null;int jine=0;"请输入您要添加的数据");"账号");num = scanner.next();"姓名");name = scanner.next();"金额");jine= scanner.nextInt();String sql = "insert into 账户信息(账号,姓名,金额) values('"+ num +"','"+ name +"','"+ jine +"')";//向表中插入信息"信息已插入!");Statement stmt = dbconn.createStatement();stmt.executeUpdate(sql);stmt.close();}catch(Exception e){}m = true;}2.4删除账户public static void del()throws Exception{try{String num=null,name=null ;int jine=0;String a = null;Class.forName(driverName);//载入驱动dbconn = DriverManager.getConnection(dbURL,userName,userPwd);//连接数据库"---删除账户---");String sql1 = "select * from 账户信息";"请输入您要删的账号");Statement stmt1 = dbconn.createStatement();ResultSet rs = stmt1.executeQuery(sql1);num = scanner.next();int flag=0;while(!num.equals("0")){while(rs.next()){a = null;a = rs.getString("账号");if(num.equals(a)){flag=1;break;}}if(flag==1){String sql2 = "delete 账户信息where 账号= '"+ num + "'";Statement stmt2 = dbconn.createStatement();stmt2.executeUpdate(sql2);stmt2.close();"数据已删除!");break;}else{"您输入的账号错误或者不存在,请重新输入:");num = scanner.next();rs = stmt1.executeQuery(sql1);}}rs.close();stmt1.close();}catch (Exception e){}m= true;}2.5修改账户信息public static void update() throws Exception{try{String num=null,name=null ;int jine=0;String a = null;Class.forName(driverName);//载入驱动dbconn = DriverManager.getConnection(dbURL,userName,userPwd);//连接数据库"请输入您要修改账号:");String sql1 = "select * from 账户信息";Statement stmt1 = dbconn.createStatement();ResultSet rs = stmt1.executeQuery(sql1);num = scanner.next();int flag=0;while(!num.equals("0")){while(rs.next()){a = null;a = rs.getString("账号");if( num.equals(a)){"请输入您更改的姓名:");name = scanner.next();"请输入您更改的金额");jine = scanner.nextInt();flag=1;break;}}if(flag==1)break;else{"您输入的账号错误或者不存在,请重新输入:");num = scanner.next();rs = stmt1.executeQuery(sql1);}}rs.close();stmt1.close();String sql2 = "update 账户信息set 姓名= '"+ name +"' where 账号= '"+ num +"'update 账户信息set 金额= '"+ jine +"' where 账号= '"+ num +"'";Statement stmt = dbconn.createStatement();"数据已更改");stmt.executeUpdate(sql2);stmt.close();}catch (Exception e){}m = true;}2.6查询账户信息public static void serch()throws Exception{try{String num= null,name = null ;int jine=0;String a=null;Class.forName(driverName);//载入驱动dbconn = DriverManager.getConnection(dbURL,userName,userPwd);//连接数据库"---按账号查询---");"请输入账号");String sql1 = "select * from 账户信息";Statement stmt1 = dbconn.createStatement();ResultSet rs1 = stmt1.executeQuery(sql1);num = scanner.next();int flag=0;while(!num.equals("0")){while(rs1.next()){a = null;a = rs1.getString("账号");if(num.equals(a)){flag = 1;break;}}if(flag == 1){name = rs1.getString("姓名");jine = rs1.getInt("金额");break;}else{"您输入的账号错误或者不存在,请重新输入:");num = scanner.next();rs1 = stmt1.executeQuery(sql1);}}"账号姓名金额");"%s %s %s %n",num,name,jine);m = true;}catch (Exception e){}}2.7浏览全部账户信息public static void liulan()throws Exception{try{Class.forName(driverName);//载入驱动dbconn = DriverManager.getConnection(dbURL,userName,userPwd);//连接数据库String sql = "select * from 账户信息";Statement stmt = dbconn.createStatement();ResultSet rs = stmt.executeQuery(sql);"账号姓名金额");while(rs.next()){String num = rs.getString("账号");String name = rs.getString("姓名");int jine = rs.getInt("金额");"%s %s %s %n",num,name,jine);}rs.close();stmt.close();}catch (Exception e){}m = true;}2.8存款public static void cunkuan()throws Exception{try{Class.forName(driverName);//载入驱动dbconn = DriverManager.getConnection(dbURL,userName,userPwd);//连接数据库"请输入账号");String num=scanner.next();String Cundate=null;String sql1 = "select * from 账户信息";Statement stmt = dbconn.createStatement();ResultSet rs = stmt.executeQuery(sql1);int flag=0;int jine=0,jine1=0,jine2=0;while(!num.equals("0")){while(rs.next()){String a = null;a = rs.getString("账号");if( num.equals(a)){flag=1;break;}}if(flag==1){"请输入要存入的金额");jine1 = scanner.nextInt();"请输入存款的日期");Cundate =scanner.next();String sql2 = "insert into 存款(账号,存钱金额,存钱日期) values('"+ num +"','"+ jine1 +"','"+ Cundate +"')";jine2=rs.getInt("金额");jine=jine1+jine2;String sql3 = "update 账户信息set 金额= '"+ jine +"' where 账号= '"+ num +"'";"存款成功");stmt.executeUpdate(sql2);stmt.executeUpdate(sql3);break;else{"您输入的账号错误或者不存在,请重新输入:");num = scanner.next();rs = stmt.executeQuery(sql1);}}rs.close();stmt.close();}catch (Exception e){}m = true;}2.9贷款public static void daikuan()throws Exception{try{Class.forName(driverName);//载入驱动dbconn = DriverManager.getConnection(dbURL,userName,userPwd);//连接数据库String sql1 = "select * from 账户信息";Statement stmt1 = dbconn.createStatement();ResultSet rs = stmt1.executeQuery(sql1);String num=null,dainum=null,daidate=null;int daijine=0;"请输入您的账号");"账号");num = scanner.next();int flag=0;while(!num.equals("0")){while(rs.next()){String a = null;a = rs.getString("账号");if(num.equals(a)){flag = 1;break;}}if(flag == 1)"请输入您的贷款单号");dainum = scanner.next();"请输入您要贷的金额");daijine= scanner.nextInt();"请输入您贷款的日期");daidate=scanner.next();String sql = "insert into 贷款(账号,贷款单号,贷款金额,贷款日期) values('"+ num +"','"+ dainum +"','"+ daijine +"','"+ daidate +"')";"贷款成功!");Statement stmt = dbconn.createStatement();stmt.executeUpdate(sql);stmt.close();break;}else{"您输入的账号错误或者不存在,请重新输入:");num = scanner.next();rs = stmt1.executeQuery(sql1);}}}catch(Exception e){}m = true;}2.10还钱public static void huanqian()throws Exception{try{Class.forName(driverName);//载入驱动dbconn = DriverManager.getConnection(dbURL,userName,userPwd);//连接数据库String sql1 = "select * from 账户信息";String sql2 = "select * from 贷款";//String sql3 = "select * from 贷款";Statement stmt1 = dbconn.createStatement();Statement stmt2 = dbconn.createStatement();ResultSet rs1 = stmt1.executeQuery(sql1);ResultSet rs2 = stmt2.executeQuery(sql2);//ResultSet rs3 = stmt.executeQuery(sql3);String num=null,dainum=null,huandate=null;int huanjine=0;"请输入您的账号");"账号");num = scanner.next();int flag=0;int b=0;while(!num.equals("0")){while(rs1.next()){String a = null;a = rs1.getString("账号");if(num.equals(a)){flag = 1;break;}}if(flag == 1){"请输入您的贷款单号");dainum = scanner.next();while(!dainum.equals("0")){//String c= null;//c = rs2.getString("贷款单号");//int d=0;//d=rs2.getInt("贷款金额");//int g=0;//g=rs1.getInt("金额");while(rs2.next()){//"aaa");String c= null;c = rs2.getString("贷款单号");//"%s %n",c);if(dainum.equals(c)){b = 1;break;}}if(b == 1){"请输入您要还的金额");huanjine= scanner.nextInt();"请输入您还钱的日期");huandate= scanner.next();String sql4 = "insert into 还钱(账号,贷款单号,还钱金额,还钱日期) values('"+ num +"','"+ dainum +"','"+ huanjine +"','"+ huandate +"')";"还钱成功!");int d=0;d=rs2.getInt("贷款金额");int e=0;e=d-huanjine;String sql6 = "update 贷款set 贷款金额= '"+ e +"' where 账号= '"+ num +"'";stmt2.executeUpdate(sql6);if(e>=0){"您还有" + e+ "未付");}else{ int f=0;f=0-e;"您多支付了"+f+"多支付的金额已存入您的账户");int g=0;g=rs1.getInt("金额");int h=0;h=f+g;String sql5 = "update 账户信息set 金额= '"+ h +"' where 账号= '"+ num +"'";stmt1.executeUpdate(sql5);}stmt2.executeUpdate(sql4);break;}else{"您输入的贷款单号错误或者不存在,请重新输入:");dainum = scanner.next();rs2 = stmt2.executeQuery(sql2);}}}else{"您输入的账号错误或者不存在,请重新输入:");num = scanner.next();rs1 = stmt1.executeQuery(sql1);}}}catch(Exception e){}m = true;}五、调试与分析问题1:遇到的第一个问题是如何用java连接数据库,根据查资料以及问同学才学会;问题2:是在写还钱这一模块,用了4重循环,无法同步实现账号和贷款单号的同步判定,经过自己仔细的调试,才发现问题,用不同的表进行逐步循环才解决问题;问题3:在贷款和还钱这一模块,在还钱的时候,忘记设置贷款表内的数据与还钱要同步。

软件工程课程设计_银行储蓄系统

软件工程课程设计_银行储蓄系统

银行储蓄系统系统设计报告目录一、引言 (3)1.编写目的 (3)2.项目背景 (3)3.开发人员 (3)4.参考文献 (3)二、问题定义 (4)1.目标 (4)2.系统功能 (4)三、可行性研究分析 (4)四、需求分析 (5)1. 功能需求分析 (5)2. 建立功能模型和数据需求 (5)3. 建立逻辑模型 (13)4. 建立行为模型 (14)5. 性能需求分析 (14)6. 系统可用性和可靠性需求分析 (14)五、概要设计报告 (15)1 数据库概要设计 (15)2 系统总体设计 (16)3 测试计划 (17)4 接口设计 (17)5 运行设计 (18)6 出错处理设计 (18)7 安全保密设计 (18)8 维护设计 (18)六、详细设计报告 (19)1 用户界面设计 (19)2 测试用例及预测结果 (25)七、运行环境和编译环境说明书 (27)1 开发编译环境 (27)2 运行使用环境 (27)3 错误处理 (27)八、总结报告 (28)1一、引言1、编写目的为了规范化软件开发,提高开发过程的能见度,便于控制和管理软件开发过程,提高软件质量,降低开发风险,减少需求变更,便于日后的维护工作,文档定制了软件开发的细节问题,明确软件需求,便于与用户协调开发,确认需求。

对软件的开发相关文档及用户使用手册进行了整理。

2、项目背景非电子化的银行储蓄系统工作效率较低,且安全性,准确性得不到保证。

越来越满足不了用户的需求和银行自身发展的需要。

建立一个高效,准确,方便,安全的银行储蓄系统是用户需求和技术进步的共同推动。

3、开发人员组长:xxx组员:xx xxx xxx xxx xxxxx作为项目经理,在人员沟通,质量管理,进度管理,风险管理方面进行了着重管理,并对里程碑进行了评审,确认。

并对变更进行评审,控制,记录。

需求分析以及系统编码由xxx完成。

用户界面设计以及系统测试由xxx完成。

数据库设计工作由xx完成。

数据库课程设计 银行储蓄管理系统

《数据库系统概论》课程设计报告设计题目:银行储蓄管理系统姓名:学号:班级:设计起止时间:需求分析:在对软件工程相关知识学习之后,我们对设计软件有了基本的认识和一些应用技能。

在数据库的课程设计中,我们计划做一个小型的银行储蓄管理系统,包括了基本的存取转,和管理员对日常工作的管理功能。

功能设计:(1).客户:包括存款,取款,转账,查询余额,查看流水,密码修改功能(2).管理员:新增用户,删除用户,查看用户,员工绩效,VIP用户判别,储备金预警分析。

3.功能流程图:银行管理系统登陆管理员客户销户查看员工绩效VIP判别资金储备金判别开户存款取款转账余额显示查看流水修改密码详细设计:1.E-R图模型operatecustombankstaffCphoneCtimeCpassCRmoneyCnameCidBidSphoneSnameSidSpassSItimeBname BmoneyBid1112.根据E-R 图设计关系表 (1).银行信息表(bank )字段名 字段类型及长度 允许空 主键说明 Bid nchar (9) no PK 银行号 Bname nchar (20) no银行名 Bmoney numeric (20,3) no 银行余额(2).客户信息表(custom )字段名 字段类型及长度 允许空主键说明 Cid nchar (9) noPK 客户ID Cname nchar (10) no 客户姓名 Cpass nchar (10) no 密码 Ctime nchar (20) no注册时间Bid nchar (9) no 所在银行行号 外码(Bank (Bid )) Crmoney numeric (10,3) no账户余额 Cphone nchar (11) no 客户电话 (3).员工(管理员)表(staff ) 字段名 字段类型及长度 允许空主键 说明 Sid nchar (9) noPK 员工ID Sname nchar (10) no 员工姓名 Spass nchar (10) no 登陆密码 SItime nchar (20) no入行时间Sphone nchar(11) no 联系电话(4).流水信息表字段名字段类型及长度允许空主键说明Oid nchar(9) no PK 流水号Cid nchar(9) no 客户ID 外码(Custom(Cid))Bid nchar(9) no 银行ID 外码(Bank(Bid))Sid nchar(9) no 员工ID 外码(Staff(Sid))Otype smallint no 操作类型Otime nchar(20) no 操作时间Omoney numeric(10,3) yes 交易金额OBmoney numeric(10,3) yes 上次余额OAmoney numeric(10,3) yes 账户余额三个实体:bank,staff,custom一个联系:operate关系图:SQL语句:/*建表*/create table Bank(Bid nchar(9) primary key,Bname nchar(20) not null,Bmoney numeric(20,3) not null)create table Custom( Cid nchar(9) not null,Cname nchar(10) not null,Cpass nchar(10) not null,Ctype smallint not null,Ctime nchar(20) not null,Ccode nchar(18) not null,Bid nchar(9) not null,Crmoney numeric(10,3) not null,Cphone nchar(11) not null,primary key(Cid),foreign key(Bid) references Bank(Bid) /*在客户表中以Bank表的主码作为一个外键,并对他进行级联更新*/on update cascade,)create table Staff(Sid nchar(9) primary key, /*在列级定义主码*/Sname nchar(10) not null,Spass nchar(10) not null,SItime nchar(20) not null,Sphone nchar(11) not null)create table Operate(Oid nchar(9) not null,Cid nchar(9) not null,Bid nchar(9) not null,Sid nchar(9) not null,Otype nchar(10) not null,Otime nchar(20) not null,Oflag smallint not null,Omoney numeric(10,3),OBmoney numeric(10,3),OAmoney numeric(10,3),primary key(Oid,Cid,Sid),foreign key (Cid) references Custom(Cid) /*以用户表主码为一个外键,进行级联删除*/on delete cascade,foreign key(Sid) references Staff(Sid) /*以员工表的主码作为外键,当删除引起冲突的时候,拒绝删除*/on delete no action,foreign key (Bid) references Bank(Bid)on update cascade)insert into Bank values('00001','中国银行小寨分行',10000)update Bank set Bname='中国银行经开分行' where Bid='00002'select * from Bank;delete from Bank where Bid='1' or Bid='2';insert into Custom values('6505001','花花','111',0,'2012/12/10/08:26:00','610424************','00001','1500','14345678912')insert into Staff values('7985000','自助服务','111','2002/01/07','12331654613')delete from Custom where Bid='2';insert into Operate values('2406002','6505001','00001','7985001','哈哈','2012年12月18日14时12分',0,0,2900,2900)insert into Operate values('2406005','6505007','00001','7985001','嘿嘿','2012年12月18日14时12分',0,0,2900,2900)select * from Custom;select * from Operate;select * from Staff;select * from Bank;delete from Operatedrop table Customdrop table Bankdrop table Staff;drop table Operate;select * from Bank;delete from Operate where Oid='6505001'drop view BMoney;create view BMoneyasselect Omoneyfrom Operatewhere Oflag = 0 and Omoney>2000 and Otype = '取款';create view BInMoneyasfrom Operatewhere Oflag = 0 and Omoney>2000 and Otype='存款';create view VIPasselect Ctypefrom Customwhere Ctype=1;select count(*) from BMoney;select count(*) from BInMoney;select count(*) from VIP;update Bank set Bmoney='10000' where Bid='00001';update Bank set Bmoney='+bmoney' where Bid='"+Bid+"'";update Bank set Bmoney='10200.000000' where Bid='00001'程序代码:客户部分:a.void CClientDlg::OnButtonIn() //存款函数{// TODO: Add your control notification handler code hereCInDlg InDlg;if (InDlg.DoModal()==IDOK){double temp,temp1;ADOConn ado;CString sql = "select * from Custom where Cname='"+Cname+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);CString str = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CString bid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CString str4 = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString str2= str; //将交易前钱数暂存temp=atof(str);temp1=(double)InDlg.m_InNum;temp+=temp1;str.Format("%f",temp);CString str3 = str; //暂存交易后金额sql = "update Custom set Crmoney='"+str+"' "+"where Cname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);int num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str = "240600";CString Oid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;Oid.Format("%d",++num); Oid=str+Oid;Sid="7985001";Bid = bid; double temp2;sql = "select * from Bank where Bid='"+Bid+"'";ResultSet = ado.GetRecordSet((_bstr_t)sql);CString bmoney = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");temp2 = atof(bmoney); temp2+=temp1; bmoney.Format("%f",temp2);sql = "update Bank set Bmoney='"+bmoney+"' where Bid='"+Bid+"'";ado.ExecuteSQL((_bstr_t)sql);CString Otype = "存款";CString m_time; CTime time;time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");Otime = m_time; int flag = 0;Omoney.Format("%f",temp1); OAmoney = str2;OBmoney = str3;sql.Format("insert into Operate values('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_ time,flag,Omoney,OAmoney,OBmoney);ado.ExecuteSQL((_bstr_t)sql);ado.E xitConnect(); }}b.v oid CClientDlg::OnButtonGet() //取款函数{// TODO: Add your control notification handler code hereCGetDlg GetDlg;;if (GetDlg.DoModal()==IDOK){double temp,temp1;ADOConn ado;CString sql = "select * from Custom where Cname='"+Cname+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);CString str = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CString bid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CString str4 = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString str2= str;//将交易前钱数暂存temp=atof(str);temp1=(double)GetDlg.m_GetNum;if (temp>temp1){temp-=temp1; str.Format("%f",temp); CString str3 = str;//暂存交易后金额sql = "update Custom set Crmoney='"+str+"' "+"whereCname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql) int num= atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str = "240600";CString Oid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;Oid.Format("%d",++num);Oid=str+Oid; Sid="7985001"Bid = bid; double temp2;sql = "select * from Bank where Bid='"+Bid+"'";ResultSet = ado.GetRecordSet((_bstr_t)sql);CString bmoney = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");temp2 = atof(bmoney); temp2-=temp1;bmoney.Format("%f",temp2);sql = "update Bank set Bmoney='"+bmoney+"' whereBid='"+Bid+"'";ado.ExecuteSQL((_bstr_t)sql);CString Otype = "取款";CString m_time; CTime time;time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");Otime = m_time; int flag = 0;Omoney.Format("%f",temp1);OAmoney = str2;OBmoney = str3; sql.Format("insert into Operate values('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_time,flag,Omoney,OAmoney,OBmoney); ado.ExecuteSQL((_bstr_t)sql);ado.ExitConnect();}else{AfxMessageBox("账户余额不足!"); }}}c.void CClientDlg::OnButtonTurn(){/ TODO: Add your control notification handler code hereCTurnDlg TurnDlg;if (TurnDlg.DoModal()==IDOK){ADOConn ado;CString sql = "select * from Custom";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int flag = 0;while (!ResultSet->adoEOF)CString TCusId = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString TCusMon = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney"); //收钱客户在操作前的余额CString str5 = TCusMon; TCusId.Remove(' ');if (TCusId==TurnDlg.m_TurnId){double temp,temp1;sql = "select * from Custom where Cname='"+Cname+"'";ResultSet = ado.GetRecordSet((_bstr_t)sql);CString str = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CString bid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CString str4 = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString str2= str; //将交易前钱数暂存temp=atof(str);temp1=(double)TurnDlg.m_TurnNum; if (temp>temp1){flag = 1;temp-=temp1; //住客户钱数减少str.Format("%f",temp);CString str3 = str; //暂存交易后金额sql = "update Custom set Crmoney='"+str+"' "+"where Cname='"+Cname+"'";do.ExecuteSQL((_bstr_t)sql); temp=atof(TCusMon);//收钱客户钱数增加temp+=temp1;TCusMon.Format("%f",temp); sql = "update Custom set Crmoney='"+TCusMon+"' "+"where Cid='"+TCusId+"'";ado.ExecuteSQL((_bstr_t)sql); sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);int num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str = "240600";CString Oid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;int Otype; Oid.Format("%d",++num); Oid=str+Oid;Sid="7985001";Bid = bid; Otype = 2; CString m_time; CTime time;time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d 日%X");Otime = m_time; Omoney.Format("%f",temp1);OAmoney = str2; OBmoney = str3;sql.Format("insert into Operate values('%s','%s','%s','%s',%d,'%s',%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_time ,Omoney,OAmoney,OBmoney); ado.ExecuteSQL((_bstr_t)sql);sql.Format("insert into Operate values('%s','%s','%s','%s',%d,'%s',%s,%s,%s)",TCusId,str4,Bid,Sid,Otype,m_t ime,Omoney,str5,TCusMon); ado.ExecuteSQL((_bstr_t)sql);ado.ExitConnect();break; }else{AfxMessageBox("账户余额不足!");break; }}ResultSet->MoveNext();}if(flag==0){AfxMessageBox("该账户不存在!"); }}}d.v oid CClientDlg::OnButtonHistoy() //历史记录查询{// TODO: Add your control notification handler code hereCShowHistory showDlg;ame = Cname;showDlg.DoModal();}e.v oid CClientDlg::OnButtonAlter(){// TODO: Add your control notification handler code hereCAlterDlg alteDlg;if(alteDlg.DoModal()==IDOK){ if (alteDlg.m_AItem==0){if (alteDlg.m_Alter1==alteDlg.m_Alter2) {ADOConn ado; CString sql = "update Custom set Cname='"+alteDlg.m_Alter1+"' where Cname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("姓名修改成功!"); }else {AfxMessageBox("两次姓名输入不一致,请重新输入!"); }}else if(alteDlg.m_AItem==1){if (alteDlg.m_Alter1==alteDlg.m_Alter2) { ADOConn ado;CString sql = "update Custom set Cpass='"+alteDlg.m_Alter1+"' whereCname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql); AfxMessageBox("密码修改成功!"); }else{AfxMessageBox("两次密码输入不一致,请重新输入!"); }elseif (alteDlg.m_Alter1==alteDlg.m_Alter2){if (alteDlg.m_Alter1.GetAt(0)=='1'&&alteDlg.m_Alter1.GetLength()==11)ADOConn ado; CString sql = "update Custom setCphone='"+alteDlg.m_Alter1+"' where Cname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql); AfxMessageBox("电话号码修改成功!"); }else {AfxMessageBox("电话号码格式不对!");} } else{AfxMessageBox("两次电话输入不一致,请重新输入!"); } }}}管理员部分:a.void CStaffDlg::OnButtonInsert() //添加新成员{// TODO: Add your control notification handler code hereCInsertDlg insertDlg;if (insertDlg.DoModal()==IDOK){if (insertDlg.m_Phone.GetAt(0)=='1'&&insertDlg.m_Phone.GetLength()==11){ADOConn ado;CString sql = "select count(*) Num from Custom whereCcode='"+insertDlg.m_Code+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));if (Num==0){CString str = "650500";sql = "select count(*) num from Custom";ResultSet = ado.GetRecordSet((_bstr_t)sql);Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));CString Cid,Cpass,Bid,Pmoney; double dou;Cid.Format("%d",++Num); Cid = str+Cid;Cpass = "000000";CString m_time; Bid= "00001";CTime time; time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");dou = (double)insertDlg.m_Pmoney;Pmoney.Format("%f",dou);// Otime = m_time; sql.Format("insert into Custom values('%s','%s','%s','%s',%s,'%s',%s,%s)",Cid,insertDlg.m_Name,Cpass,m_time,insertDlg.m_Code,Bid,Pmoney,insertDlg.m_Phone);ado.ExecuteSQL((_bstr_t)sql);sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));CString Oid,OAmoney,Otype; Otype = "新注册";Oid.Format("%d",++Num);str = "240600";Oid = str+Oid; Bid= "00001";int flag = 0; OAmoney = "0";sql.Format("insert into Operatevalues('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,Cid,Bid,Sid,Otype,m_time,flag,Pmoney,OAmoney,Pmoney); ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("新增客户成功!"); }else{AfxMessageBox("该证件号已经注册!"); }}}b.void CStaffDlg::OnButtonDelete() //注销客户{// TODO: Add your control notification handler code hereCDelDlg delDlg;if (delDlg.DoModal()==IDOK){if (delDlg.m_DelId1==delDlg.m_DelId2){ADOConn ado;count(*) Num from Custom where Cid='"+delDlg.m_DelId1+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));if (Num!=0){CString str = "650500";sql = "delete from Custom whereCid='"+delDlg.m_DelId1+"'";ado.ExecuteSQL((_bstr_t)sql); CString Bid,Cid;Cid = "6505000";CString m_time;CTime time; time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");sql = "select count(*) numfrom Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));CString Oid,OAmoney,Otype; Otype = "注销用户";Oid.Format("%d",++Num);tr = "240600";Oid = str+Oid; Bid= "00001";int flag = 2; OAmoney = "0";sql.Format("insert into Operatevalues('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,Cid,Bid,Sid,Otype,m_time,flag,OAmoney,OAmoney,OAmoney); ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("注销客户成功!"); }else{AfxMessageBox("不存在该用户!"); }}else {AfxMessageBox("两次输入用户ID不一致,请重新输入!"); }}}c.void CStaffDlg::OnButtonResher() 查询客户{// TODO: Add your control notification handler code hereCAlterDlg altDlg; if (altDlg.DoModal()==IDOK){if (altDlg.m_AItem==0) {if (altDlg.m_Alter1==altDlg.m_Alter2) {ADOConn ado;CString sql = "update Staff set Sname='"+altDlg.m_Alter1+"' whereSname='"+Sname+"'";ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("姓名修改成功!");}else{AfxMessageBox("两次姓名输入不一致,请重新输入!"); }} else if(altDlg.m_AItem==1){if (altDlg.m_Alter1==altDlg.m_Alter2){ADOConn ado;CString sql = "update Custom set Spass='"+altDlg.m_Alter1+"' where Sname='"+Sname+"'";ado.ExecuteSQL((_bstr_t)sql); AfxMessageBox("密码修改成功!"); }else{AfxMessageBox("两次密码输入不一致,请重新输入!"); }}else{if (altDlg.m_Alter1==altDlg.m_Alter2){if (altDlg.m_Alter1.GetAt(0)=='1'&&altDlg.m_Alter1.GetLength()==11){ADOConn ado;CString sql = "update Custom set Sphone='"+altDlg.m_Alter1+"' where Sname='"+Sname+"'";ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("电话号码修改成功!"); }else{AfxMessageBox("电话号码格式不对!");} }else{AfxMessageBox("两次电话输入不一致,请重新输入!"); } } }d.void CStaffDlg::OnButtonMoneyctrl() //资金管理{// TODO: Add your control notification handler code hereCSerchDlg serDlg;if (serDlg.DoModal()==IDOK){ADOConn ado;CString sql = "select count(*) Num from Custom where Cid='"+serDlg.m_Cid+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));if (Num!=0){CCusInfoDlg cusDlg;cusDlg.Cid = serDlg.m_Cid ADOConn ado;CString sql = "select * from Custom where Cid='"+cusDlg.Cid+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);cusDlg.m_Cname = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cname");cusDlg.m_Cid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");cusDlg.m_Code = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Ccode");cusDlg.m_Phone = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cphone");cusDlg.m_Rmoney = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");cusDlg.DoModal();ado.ExitConnect();}else{AfxMessageBox("不存在该客户!"); }}}e.void CStaffDlg::OnButtonAlter() //信息修改{CMoneyDlg monDlg; ADOConn ado;CString sql = "select count(*) Num from BMoney ";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_GetNum = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));sql = "select count(*) Num from BInMoney";ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_InNum = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));sql = "select count(*) Num from VIP";ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_VIPNum= atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));sql = "select * from Bank where Bid='00001'";ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_Cash = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");ado.ExitConnect();monDlg.DoModal();}f.void CStaffDlg::OnButtonAnyse() //员工业绩分析{// TODO: Add your control notification handler code hereCStaffIDlg staDlg;staDlg.DoModal();}心得体会:这次课程设计体会非常深刻,首先在团队合作方面,我觉得自己作为队长没有两道好我的小队,这是我的失职。

数据库原理课程设计银行储蓄管理系统

目录一、需求与功能分析 1二、系统总体框架 2三、逻辑设计 2四、类的设计与分析 4五、数据库表结构设计 8六、特色算法分析 8七、功能测试 9八、存在的不足与对策 12九、程序源代码 12银行储蓄管理系统一银行储蓄系统需求分析系统功能简介:信息系统:主要是在里面输入用户信息(户名,帐号,开户日期)主要功能:记录用户所要进行的各种存取操作(存钱,取钱),并对操作数据做好记录记录时间:主要是记录每个用户开户,存取,取钱的日期相关金额:该用户的存款金额,取款金额,执行操作后账户余额保存系统:可以以连接数据库模式保存查询过的内容,对于刚刚查询过的内容不必重复登陆工作环境:该程序可用在各种银行性质的单位,能有效管理用户信息。

方便,快捷,容易上手,安全保密,资料齐整构造该程序,主要是使用C++ & SQL系统。

在MS-DOS以及WINDOWS95以上的操作系统上可以正常运行。

现今的社会,资金流动十分频繁。

不单单是企业、厂商,连个人也不例外。

银行作为一个金融机构,在现代人们的生活中扮演着及其重要的角色。

为生活节奏飞快的现代人提供快速、便捷、高效理财服务,是每一个银行机构的共同职责。

伴随着电脑技术的发展,各大银行储蓄管理软件也随之出现在这一舞台之上。

银行储蓄管理程序的主要功能就是记录用户的账户信息,已经对用户的存取款操作作好记录及数据更新。

银行储蓄管理的特点是数据量大。

数据更新频繁。

因此便捷的操作,数据更新准确度,成了这一系统的主要指标。

二系统总框图三逻辑设计任何建模语言都以静态建模机制为基础,标准建模语言UML也不例外。

所谓静态建模是指对象之间通过属性互相联系,而这些关系不随时间而转移。

类和对象的建模,是UML建模的基础。

面向对象的开发方法的基本任务是建立对象模型,是软件系统开发的基础。

UML中的对象类图表达了对象模型的静态结构,能够有效地建立专业领域的计算机系统对象模型。

图1 系统类图动态模型主要描述系统的动态行为和控制结构。

C#课程设计-银行个人账户管理系统


5.2.3 底部
SystemFrame.aspx底部div代码: <div style="margin-top: 10px; height: 500px;"> <%--下部分--%> <iframe src="Main.aspx" name="MainFrame" id="MainFrame" style="border-width: 1px; border-color: red; width: 100%; height: 100%;"> </iframe> </div> MainFrame.aspx代码: <div> <h2 style="margin-top: 30px;">欢迎使用银行管理系统</h2> </div>
5.4.1 登录界面 5.4.2 流程图 5.4.3 进入账户 5.5 存款 14 5.5.1 运行界面 5.5.2 主要代码 5.6 取款 16 5.6.1 运行界面 5.6.2 主要代码 5.7 收支明细 19 5.7.1 运行页面 5.7.2 主要代码 5.8 删除账户 22 5.8.1 运行界面 5.8.2 主要代码 5.8.3 结果 6 设计过程及心得 分工说明 25 24 25
5.3 创建账户 5.3.1 界面
界面居中,并且顶部留有一定空间,聚焦在账号:
5.3.2 流程图
5.3.3 主要代码
CreateAccount.aspx.cs部分代码: SqlConnection con = new SqlConnection(); try { con.ConnectionString = "server=.\\sqlexpress;database=银行个人账户管 理系统;integrated security=true;"; if (con.State == System.Data.ConnectionState.Closed)

数据库课程设计实验报告-银行账户管理系统

数据库课程设计报告题目: 银行账户管理系统院系名称: 计算机学院专业名称: 软件工程班级: 09级01班学生姓名: ***学号(8位): *******指导教师: ***设计起止时间:2011年12月19日~2011年12月30日一. 设计目的银行账户管理是银行业务流程中十分重要的且必备的环节,由于银行有大量数据需要处理,全部采用人工方式明显不现实:这不仅需要花费很高的成本,而且处理事务的效率和质量都存在很大的问题,出于这些问题的考虑,使用计算机来处理这类问题就成为一个相当理想的方案。

利用计算机可以极大地降低成本,更重要的是可以几乎没有错误地高效地处理所有的事务,所以做一款基于银行账户管理方面的系统是十分必要的。

本次课程设计通过对《银行账户管理系统》中银行业务流程的基本实现以及用户环节的事务处理,旨在体验数据库设计和实现的基本过程中掌握数据库模式的设计、分析和实现方法,了解数据库应用系统软件开发的一般过程。

二. 设计内容分别完成银行业务功能、ATM功能和用户管理功能,并设计数据库以支持这些功能的实现,最后通过代码进行具体实现以及数据库链接。

所用数据库:SQL Server 2008开发语言:Java数据库设计:使用了六张表,分别为:管理员表(admin)、ATM机表(ATM)、ATM 机出纳表(ATMOutIn)、银行柜台出纳表(BankOutIn)、银行卡表(card)、用户表(users)。

三个触发器,分别为:冻结用户账号操作(userstatus_update)、ATM机存取款操作(ATMOutIn_insert)和银行存取款操作(BankOutIn_insert)。

一个视图、一个虚表:用户操作查询(allInfo(userId,cunquTime,cunquAddress,cunquMoney,cunquSummary,balanceMoney))。

银行业务功能:设置管理员账号,赋予管理员权限以实现开户、销户、存款、取款、查询、办卡和挂失功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库系统课程设计报告题目银行管理系统的设计与实现学生姓名梁有权学号20131346036学院计算机与软件学院专业网络工程指导教师马瑞二O一五年四月二十四日目录1 绪论1.1 选题目的及意义 (1)1.2 设计内容 (1)2 需求分析2.1 功能需求 (1)2.2 数据需求 (1)2.3 其他需求 (1)3数据库设计3.1概念结构设计 (2)3.2逻辑结构设计 (2)3.3物理结构设计 (2)4 系统功能设计 (4)5 系统实现5.1 开发环境 (4)5.2 主要功能的运行结果及代码 (4)6 总结 (18)参考文献1 绪论1.1选题的目的及意义银行管理系统:该系统要求建立的用户表并不是很多,完成的功能也相对有限,但其中各个表之间的联系很紧密,该系统对数据库表的设计要求会很高,所以完成这个题目,能更好的训练数据库设计和VC的编程能力,选择该题目就是充分训练数据库表设计的能力和运用VC的能力。

1.2 设计内容用户管理模块:建立新用户、删除老用户、更改用户操作;账户操作模块:账户信息、活期存取款操作、查询活期操作记录、定期存款、定期取款、查询定期操作记录;数据库模块:数据库备份、数据库恢复;2需求分析2.1功能需求对于用户部分,能够新建和删除用户,在操作过程中可以更改用户;对于账户部分,可以查询用户的信息,包括各种基本信息、活期余额、定期账单等;对于账户操作部分,有活期存取款、定期存取款操作,另外操作完成之后存储相应的操作记录并能够查询操作记录等功能。

2.2数据需求账户信息:帐号varchar(20),开户人姓名varchar(20),账户密码char(6),身分证号varchar(20),账户余额float,开户日期datetime,开户地址varchar(30);活期操作:帐号varchar(20),金额float,类型(存入,支出),账户余额float,利息float,存入日期datetime;定期存款:帐号varchar(20),存款人姓名varhcar(10),存款金额float,存款日期datetime,存储年份int,存储利率float;定期取款:帐号varchar(20),取款人姓名varhcar(10),取款金额float,取款日期datetime;定期历史操作记录:帐号varchar(20),存取款人姓名varhcar(10),类型(存入,支出),办理日期datetime,存储年份int,存储利率float;2.3其它需求完成数据库的备份与恢复,系统登录对话框等功能。

3. 数据库设计3.1概念结构设计银行管理系统E-R 图3.2 逻辑结构设计储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址); 活期存取款(nID ,帐号,金额,类型,办理日期,利息,账户余额); 定期存款(nID ,帐号,存款人姓名,金额,存储年份,年利率,存储日期); 定期取款(nID ,帐号,取款人姓名,取款金额,取款日期);定期记录(nID ,帐号,存取款人姓名,类型,操作金额,年份,操作日期)3.3 物理结构设计储户表序号 字段名称 字段描述 数据类型 长度 属性 1 CNo 帐号 Varchar 20 PK 2 CName 开户人姓名 Varhcar 20 非空 3 CPassword 登录密码 Char 6 非空 4 CID 身份证号 Varchar 20 非空 5CSex性别Char2非空活期存取款存储 帐号银行 储户开户地址姓名 性别帐户余额开户日期 密码身份证号定期存取款定期操作记录活期操作记录6 CBalance 帐户余额Float 8 非空7 CDate 开户日期Datetime 8 非空8 CAddress 开户地址Varchar 30 非空主键:帐号;约束条件:各属性均非空,密码长度为6位;活期存取款表序号字段名称字段描述数据类型长度属性1 nID 序号Int 4 PK2 CNo 帐号Varchar 20 非空3 CMoney 操作金额Float 8 非空4 CStyle 操作类型Varchar 10 非空5 CDate 操作日期Datetime 8 非空6 CInterest 利息Float 8 非空7 CBalance 帐户余额Float 8 非空主键:nID;外键:帐号;被参照表:储户表约束条件:各属性均非空;定期存款表序号字段名称字段描述数据类型长度属性1 nID 序号Int 4 PK2 CNo 帐号Varchar 20 非空3 CName 存款人姓名Varchar 10 非空4 CMoney 存款金额Float 8 非空5 CDate 存款日期Datetime 8 非空6 CYear 存储年份Int 4 非空7 CRate 存储利率Float 8 非空主键:nID;外键:帐号;被参照表:储户表约束条件:各属性均非空;定期取款表序号字段名称字段描述数据类型长度属性1 nID 序号Int 4 PK2 CNo 帐号Varchar 20 非空3 CName 取款人姓名Varchar 10 非空4 CMoney 取款金额Float 8 非空5 CDate 取款日期Datetime 8 非空主键:nID;外键:nID;被参照表:定期存款表约束条件:各属性非空定期操作记录表序号字段名称字段描述数据类型长度属性1 nID 序号Int 4 PK2 CNo 帐号Varchar 20 非空3 CName 存取款人姓名Float 8 非空4 CStyle 操作类型Char 4 非空5 CMoney 存取款金额float 8 非空6 CYear 存储年份Int 4 非空7 CDate 存取款日期 Datetime 8 非空主键:nID ;外键:nID ;被参照表:定期存款表,定期取款表 约束条件:各属性非空4.系统功能设计图4-1银行管理系统功能结构图5 .系统实现5.1 系统开发环境软件:SQL Sever 2000,VC++6.0 操作系统:Window XP银行管理系统银行账户系统管理新建账户 删除账户 更改账户账户管理 退出系统账户操作 查看账户信息 活期操作定期操作活期存取款查看历史记录定期存款 定期取款 查看历史记录数据库管理 数据库备份数据库恢复账户登录,身份验证硬件:Pentiun 4 DDR 512MB 120G硬盘5.2主要功能的运行结果及代码数据库创建过程及其连接(1).进入企业管理器窗口,选择“新建SQL Sever注册”;(2).选中“数据库”文件夹,单击鼠标右键,选择“新建数据库”,输入数据库名Bank;(3).单击“确定”按钮,关闭对话框,数据库创建成功。

完成“账户登录”的窗口ID 控件类型成员变量说明IDC_EDIT1 CString m_strNo 用户帐号IDC_EDIT1 CEdit m_ctrNoIDC_EDIT2 CString m_strPassword 登录密码IDC_EDIT2 CEdit m_ctrPasswordIDC_EDIT3 CString m_strRePassword 确认密码IDC_EDIT3 CEdit m_ctrRePasswordIDOK “OK”按钮IDCANCLE “Cancle”按钮(1)添加记录集类CAccountSet类,基类为CRecordSet,数据表为account表;(2) 在CLoginDlg类中添加CAccontSet类的成员变量m_recordset;(3) 为“CBankApp”类添加为CString型的成员变量strNO;(4) IDOK控件的消息响应函数:void CLoginDlg::OnOK(){UpdateData(TRUE);if (m_strNo == ""){MessageBox("Please Input the Account Number!");m_ctrNo.SetFocus();return ;}if (m_strPassword == ""){MessageBox("Please Input the Password!");m_ctrPassword.SetFocus();return ;}if (m_strRePassword == ""){MessageBox("Please Input the Confirm Password!");m_ctrRePassword.SetFocus();return ;}if (m_strPassword != m_strRePassword){MessageBox("Two Passwords Are Differed!");m_strPassword = "";m_strRePassword = "";UpdateData(FALSE);m_ctrPassword.SetFocus();return ;}CString strSQL;strSQL.Format("select * from Account where CNo = '%s'",m_strNo); if (!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)){MessageBox("Open Database Filed!","Database Error",MB_OK);return ;}if (m_recordset.m_CPassword != m_strPassword){MessageBox("Password Error! Please Rewrite!");m_recordset.Close();m_strPassword = "";m_strRePassword = "";UpdateData(FALSE);m_ctrPassword.SetFocus();return ;}CBankApp * ptheApp = (CBankApp *) AfxGetApp();ptheApp->strNo = m_strNo;CDialog::OnOK();}(5) 在“CBankApp”类中的“InitInstance()”函数中添加登录对话框的对象:CLoginDlg dlg;if (dlg.DoModal() != IDOK){return FALSE;}完成“退出系统”的功能:在CMainFrame类中添加菜单的消息响应函数:void CMainFrame::OnExit(){if (MessageBox("确定退出该系统?","提示",MB_YESNO) == IDYES) {PostQuitMessage(1);return ;}}完成“查询账户信息”的功能:控件类型成员变量说明IDCTime m_tmDate 开户日期IDC_DATETIMEPICKER1IDC_EDIT1 CString m_strNo 帐号IDC_EDIT2 CString m_strName 姓名IDC_EDIT3 CString m_strAddress 开户地址IDC_EDIT4 CString m_strBalance 帐户余额IDC_LIST1 CListCtrl m_ctrList 列表控件IDOK “确定”按钮(1)添加初始化对话框OnInitDialog()响应函数,初始化对话框信息;(2)为CAccountInfo类添加void型的成员函数RefreshList(),初始化列表信息。

相关文档
最新文档