软件工程-银行储蓄管理系统源代码
软件工程银行储蓄管理系统设计[2]
![软件工程银行储蓄管理系统设计[2]](https://img.taocdn.com/s3/m/78ea44294b35eefdc8d33342.png)
软件实现报告1.设计目的该阶段是系统开发过程的最后一个阶段,按照前三个阶段的设计,在这个阶段要选择适当的计算机语言来编写程序以及实现该软件的各项功能,并且对软件设计测试方法。
2.软件源代码如下:(1)银行储蓄系统Private Sub cunkuan0_Click()Unload Mecunkuan.ShowEnd SubPrivate Sub denglu1_Click()Unload Medenglu.ShowEnd SubPrivate Sub Form_Load()If flag = 0 Thendenglu1.Enabled = Truezhukong.Enabled = Falsetuichu.Enabled = FalseElseIf flag = 1 Thendenglu1.Enabled = Falsezhukong.Enabled = Truetuichu.Enabled = TrueElseIf flag = 2 Thendenglu1.Enabled = Falsezhukong.Enabled = Falsetuichu.Enabled = FalseElseEndEnd IfEnd IfEnd IfEnd SubPrivate Sub kaihu0_Click()Unload Mekaihu.ShowEnd SubPrivate Sub qukuan0_Click()Unload Mequkuan.ShowEnd SubPrivate Sub tuichu_Click()flag = 0Unload Mekaishi.ShowEnd SubPrivate Sub xiaohu0_Click()Unload Mexiaohu.ShowEnd SubPrivate Sub xingaimima0_Click()Unload Mexiugaimima.ShowEnd SubPrivate Sub zhaxun0_Click()Unload Mechaxun.ShowEnd SubPrivate Sub zhuanzhang0_Click()Unload Mezhuanzhang.ShowEnd Sub(2)查询Private Sub Command1_Click()Set con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi where zhanghao='" & Text1.Text & "'", con, adOpenKeyset, adLockOptimisticIf rst.BOF And rst.EOF ThenMsgBox "此用户不存在!"ElseIf Text2.Text = rst!mima Thenchaxunyue.Text1.Text = Text1.TextUnload Mechaxunyue.ShowEnd IfEnd Ifrst.Closecon.CloseEnd SubPrivate Sub Command2_Click()flag = 1Unload Mekaishi.ShowEnd Sub(3)查询余额Private Sub Command1_Click()cunqukuanrili.Text1.Text = Text1.TextUnload Mecunqukuanrili.ShowEnd SubPrivate Sub Command2_Click()yonghuxinxi.Text1.Text = Text1.TextUnload Meyonghuxinxi.ShowEnd SubPrivate Sub Command3_Click()flag = 1Unload Mekaishi.ShowEnd Sub(4)登录Private Sub Command1_Click()Set con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from yonghuxixin", con, adOpenKeyset, adLockOptimistic If rst.BOF And rst.EOF ThenIf Text1(0).Text = "gyn" And Text2(1).Text = "000" Thenflag = 1Unload Mekaishi.ShowElseMsgBox "输入不正确!"End IfElseDo While Not rst.EOFIf rst!yonghudaihao = Text1(0).Text ThenIf rst!mima = Text2(1).Text Thenflag = 1Unload Mekaishi.ShowEnd IfEnd Ifrst.MoveNextLooprst.Closecon.CloseIf flag = 0 ThenMsgBox " 此用户不存在!"End IfEnd IfEnd SubPrivate Sub Command2_Click()flag = 0Unload Mekaishi.ShowEnd Sub(5)开户Private Sub Command1_Click()If Text1.Text = "" ThenMsgBox "姓名不能为空"Text1.SetFocusEnd IfIf Text4.Text = "" ThenMsgBox "身份证号码不能为空"Text4.SetFocusEnd IfSet con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from yonghuxinxi1", con, adOpenKeyset, adLockOptimistic rst.AddNewrst!shenfengzheng = Text4.Textrst!xingming = Text1.Textrst!xingbie = Text5.Textrst!zhuzhi = Text2.Textrst!dianhua = Text3.Textrst.Updatekaihu1.Text2.Text = Text1.Textkaihu1.Text8.Text = Text5.Textkaihu1.Text3.Text = Text4.Textkaihu1.Text4.Text = Text2.Textkaihu1.Text5.Text = Text3.Textrst.Closecon.CloseUnload Mekaihu1.ShowEnd SubPrivate Sub Command2_Click()flag = 1kaishi.ShowEnd Sub(6)销户Private Sub Command1_Click()yonghuxinxi.Text1.Text = Text1.TextUnload Meyonghuxinxi.ShowEnd SubPrivate Sub Command2_Click()Set con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi", con, adOpenKeyset, adLockOptimistic If rst.BOF And rst.EOF ThenMsgBox "无记录,请先插入记录!"ElseDo While Not rst.EOFIf rst!zhanghao = Text1.Text ThenIf rst!mima = Text2.Text Thenrst.Deleterst.UpdateElseMsgBox "密码不正确!"End IfEnd Ifrst.MoveNextLoopIf rst.EOF ThenMsgBox "此用户不存在!"End Ifrst.Closecon.CloseEnd Ifrst.Closecon.CloseEnd SubPrivate Sub Command3_Click()flag = 1Unload Mekaishi.Show(7)修改密码Private Sub Command1_Click()Set con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi where zhanghao='" & Text1.Text & "'", con, adOpenKeyset, adLockOptimisticIf rst.BOF And rst.EOF ThenMsgBox "此用户不存在!"ElseIf Text2.Text = rst!mima Thenxiugaimima1.Text1.Text = Text1.Textxiugaimima1.Text4.Text = Text2.TextUnload Mexiugaimima1.ShowEnd IfEnd Ifrst.Closecon.CloseEnd Sub(8)修改密码1Private Sub Command1_Click()If Text2.Text <> Text3.Text ThenMsgBox "密码不一致!"ElseSet con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from yonghuxixin where yonghudaihao= '" & Text1.Text & "'", con, adOpenKeyset, adLockOptimisticrst!mima = Text3.Textrst.Updaterst.CloseSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi where zhanghao= '" & Text1.Text & "'", con, adOpenKeyset, adLockOptimisticrst!mima = Text3.Textrst.UpdateMsgBox "修改成功!"rst.Closecon.CloseEnd IfSet con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from cunkuanrili", con, adOpenKeyset, adLockOptimisticrst.AddNewrst!zhanghao = Text1.TextDim nowtime As Stringnowtime = Nowrst!caozuoriqi = Format(nowtime, "yyyy") + "-" + Format(nowtime, "mm") + "-" + Format(nowtime, "dd") + "-" + Format(nowtime, "hh") + ":" + Format(nowtime, "nn") + ":" + Format(nowtime, "ss")rst!caozuo = "修改密码"rst.Updaterst.Closecon.CloseEnd SubPrivate Sub Command3_Click()flag = 1Unload Mekaishi.ShowEnd Sub(9)转账Private Sub Command1_Click()Set con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi where zhanghao='" & Text3.Text & "'", con, adOpenKeyset, adLockOptimisticIf rst.BOF And rst.EOF ThenMsgBox "此用户不存在!"ElseIf Text4.Text = rst!mima Thenrst!zhanghuyue = CInt(rst!zhanghuyue) - CInt(Text2.Text)rst.Updaterst.CloseSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi where zhanghao='" & Text1.Text & "'", con, adOpenKeyset, adLockOptimisticIf CInt(Text2.Text) > rst!zhanghuyue ThenMsgBox "余额不足!"Elserst!zhanghuyue = CInt(rst!zhanghuyue) + CInt(Text2.Text)rst.Updaterst.Closecon.CloseEnd IfEnd IfEnd IfEnd SubPrivate Sub Command3_Click() flag = 1Unload Mekaishi.ShowEnd Sub3.部分界面如下:。
C语言银行储蓄系统源码

}
printf("\n");
r=strcmp(banks[accountnum].password,password1);
if(r!=0)
{
printf("两次密码不相同,开户失败!\n");
return;
}
banks[accountnum].balance=0;
banks[accountnum].state=0;
if(money==0)
{
printf("转账失败\n");
return;
}
else
{
if(money>banks[nowaccount].balance)
printf("您的账户没有这么多余额,转账失败!\n");
else
{
banks[nowaccount].balance-=money;
banks[a].balance+=money;
C语言银行储蓄系统源码
这篇文章主要为大家详细介绍了C语言银行储蓄系统源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
void openaccount();//开户
{
r1=strcmp(account1,banks[j].account);
r2=strcmp(password1,banks[j].password);
银行管理系统源代码文档

#include<iostream>#include<fstream>#include<string>using namespace std;class user; //声明用户类class yinhang{ //银行类public:void set_account();//开户函数void del_account();//销户函数void transfer_accounts(int a);//转账函数void enter();//登录函数void menu();//菜单函数void exit_yinhang();//退出函数void save();void load();protected:static int amount;//静态成员,用于统计银行账户数user *account[100];//账户数};int yinhang::amount=0;//静态成员赋值,初始为0class user:public yinhang{ //用户类private:string id;//账号string mm;//密码string name;//姓名double balance;//余额string identity_card;//身份证string unit;//单位string phone;//电话号码string address;//地址public:user()//不带参数的构造函数{id='0';mm='0';name='0';balance=0;identity_card='0';unit='0';phone='0';address='0';}user(string id1,string mm1,string name1,double balance1,string identity_card1,string unit1,string phone1,string address1) //带参数的构造函数id=id1;mm=mm1;name=name1;balance=balance1;identity_card=identity_card1;unit=unit1;phone=phone1;address=address1;}friend class yinhang;//声明yinhang类是user的友元类void save_money();//存钱函数void fetch_money();//取钱函数void show()//显示函数{system("cls");cout<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl<<endl<<en dl;cout<<" 姓名:"<<name<<endl;cout<<" 账号:"<<id<<endl;cout<<" 余额:"<<balance<<endl;cout<<" 身份证:"<<identity_card<<endl;cout<<" 单位:"<<unit<<endl;cout<<" 电话号码:"<<phone<<endl;cout<<" 地址:"<<address<<endl<<endl<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;}string get_id()//取得账号{return id;}string get_mm()// 取得密码{return mm;}int get_balance()//取得余额{return balance;}void add_money(double x)//通过公有成员函数访问私有成员{balance=x+balance;void dec_money(double x){balance=balance-x;}};void yinhang::save(){ofstream o("g:\\C++\\祁鹏涛\\银行账户信息.txt",ios::out);int n=0;for(n=0;n<amount;n++){o<<account[n]->id<<endl;//写入账号o<<account[n]->mm<<endl;o<<account[n]->name<<endl;o<<account[n]->balance<<endl;o<<account[n]->identity_card<<endl;o<<account[n]->unit<<endl;o<<account[n]->phone<<endl;o<<account[n]->address<<endl;}o.close();}void yinhang::load(){ifstream i("g:\\c++\\祁鹏涛\\银行账户信息.txt",ios::in);int n;for(n=0;n<amount;n++){i>>account[n]->id;//读取账号i>>account[n]->mm;i>>account[n]->name;i>>account[n]->balance;i>>account[n]->identity_card;i>>account[n]->unit;i>>account[n]->phone;i>>account[n]->address;}i.close();}void yinhang::set_account() //开户函数的定义{string id1;string mm1;string name1;double balance1;string identity_card1;string unit1;string phone1;string address1;cout<<"请输入开户人账号:";cin>>id1;int m=0;for(int i=0;i<amount;i++){if(id1==account[i]->get_id()){m=1;}}if(m){cout<<"本账号已经存在!"<<endl;return;}cout<<"请输入密码:";cin>>mm1;cout<<"请输入姓名:";cin>>name1;cout<<"请输入存入金额:";cin>>balance1;while(balance1<0){cout<<"请输入正确的数字!"<<endl;cout<<"请重新输入:";cin>>balance1;}cout<<"请输入开户人身份证:";cin>>identity_card1;cout<<"请输入工作单位:";cin>>unit1;cout<<"请输入电话号码:";cin>>phone1;cout<<"请输入地址:";cin>>address1;cout<<"开户成功!"<<endl;user *u=new user(id1,mm1,name1,balance1,identity_card1,unit1,phone1,address1); account[amount]=u;amount++;save();}void yinhang::del_account() //销户函数的定义{string id1;int i=0;int m=1;cout<<"请输入需要注销的银行卡号:";cin>>id1;while((i<amount)&&(m)) //从0开始进行依次检索,判断id1与其中的一个账号是否相等{if(id1==account[i]->get_id())m=0;elsei++;}if(m){cout<<" 该帐号不存在!"<<endl;return;}for(int j=i;j<amount;j++){account[j]=account[j+1];}account[amount-1]=NULL;amount=amount-1;cout<<"你的银行账户已经注销成功!"<<endl;save();}void yinhang::transfer_accounts(int x) //转账函数的定义{string id1;cout<<"请输入帐号:";cin>>id1;int m=1;int i=0;while((i<amount)&&(m)){if(id1==account[i]->get_id())m=0;elsei++;}if(m){cout<<"帐号不存在!"<<endl;return;}double b;cout<<"请输入你要转帐的金额:";cin>>b;while(b<=0){cout<<"请输入正确的数字!"<<endl;cout<<"请输入:";cin>>b;}if(account[x]->get_balance()<b)cout<<"对不起,金额不够!!"<<endl;else{account[x]->dec_money(b);account[i]->add_money(b);cout<<"转账成功!"<<endl;}return;}void yinhang::enter() //登录函数{string id1;cout<<"请输入银行账号:";cin>>id1;int m=1;int i=0;while((i<amount)&&(m)){if(id1==account[i]->get_id())m=0;elsei++;}if(m){cout<<"帐号不存在!"<<endl;return;cout<<"请输入密码:";string mm1;cin>>mm1;if(mm1!=account[i]->get_mm()) return;do{cout<<"登录成功,请选择下列操作:"<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl<<endl<<endl;cout<<" 1.查看账户信息"<<endl<<endl;cout<<" 2.取款"<<endl<<endl;cout<<" 3.存款"<<endl<<endl;cout<<" 4.转账"<<endl<<endl;cout<<" 5.退出本次登录"<<endl<<endl<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;int n;cout<<"请选择:";cin>>n;system("cls");switch(n){case 1: account[i]->show();system("pause");break;case 2: account[i]->fetch_money();save();system("pause");break;case 3:account[i]->save_money();save();system("pause");break;case 4:transfer_accounts(i);save();system("pause");break;case 5:return;}}while(1);}void yinhang::exit_yinhang() //退出系统{cout<<"欢迎下次光临!"<<endl;exit(0);}void user::save_money() //存款函数{double m;cout<<"请输入存款金额:";cin>>m;while(m<=0){cout<<"请输入正确的数字!"<<endl;cin>>m;balance=balance+m;cout<<"存款成功!"<<endl;}void user::fetch_money() //取款函数{double m;cout<<"请输入取款金额:"<<endl ;cin>>m;while(m<=0){cout<<"请输入正确的数字!"<<endl;cin>>m;}if(balance<m)cout<<"对不起,你的余额已不足!"<<endl;else{balance=balance-m;cout<<"取款成功!"<<endl;}}void yinhang::menu(){do{load();cout<<endl;cout<<" 欢迎光临"<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl<<endl;cout<<" 1.开户"<<endl;cout<<" 2.登录"<<endl;cout<<" 3.注销"<<endl;cout<<" 4.退出"<<endl<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;int n;cout<<"请选择:";cin>>n;system("cls");switch(n){case 1:set_account();system("pause");//开户break;case 2:enter();system("pause");//登录break;case 3:del_account();system("pause");//注销break;case 4:exit_yinhang();system("pause");//退出break;}}while(1);}void main(){yinhang yh;yh.menu();}。
银行管理系统c语言程序设计代码

银行管理系统c语言程序设计代码以下是一个简单的银行管理系统的C语言程序设计代码示例:```c#include <stdio.h>#include <stdlib.h>struct BankAccount {int accountNumber;char accountHolder[50];float balance;};void createAccount(struct BankAccount *account) {printf("请输入账户号码: ");scanf("%d", &(account->accountNumber));printf("请输入账户持有人姓名: ");scanf("%s", account->accountHolder);printf("请输入账户余额: ");scanf("%f", &(account->balance));printf("账户创建成功!\n");}void deposit(struct BankAccount *account) {float amount;printf("请输入存款金额: ");scanf("%f", &amount);account->balance += amount;printf("存款成功!\n");}void withdraw(struct BankAccount *account) {float amount;printf("请输入取款金额: ");scanf("%f", &amount);if (amount > account->balance) {printf("余额不足,取款失败!\n");} else {account->balance -= amount;printf("取款成功!\n");}}void displayAccount(struct BankAccount *account) {printf("账户号码: %d\n", account->accountNumber);printf("账户持有人姓名: %s\n", account->accountHolder); printf("账户余额: %.2f\n", account->balance);}int main() {struct BankAccount account;int choice;while (1) {printf("\n银行管理系统\n");printf("1. 创建账户\n");printf("2. 存款\n");printf("3. 取款\n");printf("4. 显示账户信息\n");printf("5. 退出\n");printf("请选择操作: ");scanf("%d", &choice);switch (choice) {case 1:createAccount(&account); break;case 2:deposit(&account);break;case 3:withdraw(&account);break;case 4:displayAccount(&account);break;case 5:printf("感谢使用银行管理系统,再见!\n");exit(0);default:printf("无效的选择,请重新输入。
银行储蓄开发程序代码C++

实验项目:银行储蓄实验项目一、银行储蓄系统主菜单模块设计与实现1.1库函数描述(原型、功能、头部文件)及其作用Time显示当前时间类 #include<time.H>System()调用dos命令 _sleep()停息#include<stdlib.H>String 字符串流#include<string.H>#include"myheader.h"中有调用的全部函数声明1.2编码(必须附加注释)#include"myheader.h"void main(){//背景颜色设置system("COLOR 16");/*颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为前景。
每个数字可以为以下任何值之一:0 = 黑色 8 = 灰色1 = 蓝色 9 = 淡蓝色2 = 绿色 A = 淡绿色3 = 湖蓝色 B = 淡浅绿色4 = 红色 C = 淡红色5 = 紫色 D = 淡紫色6 = 黄色 E = 淡黄色7 = 白色 F = 亮白色*///输出=============★欢迎进入银行活期存款系统★=============int i;for(i=0;i<13;i++)cout<<'=';cout<<"★欢迎进入银行活期存款系统★";for(i=0;i<13;i++)cout<<'=';cout<<endl;//列示当前时间cout<<"当前时间:";for(i=0;i<6;i++)cout<<" ";Time t=latesttime();t.print();//列示菜单mylist();cout<<"如果您不了解该系统请按N否则按Y: ";//核实输入是否为字符string check;while(1){cin>>check;if(check.length()>1){cout<<"您的输入有误请重新输入:";continue;}if(check[0]!='Y'&&check[0]!='N')cout<<"您的输入有误请重新输入:";elsebreak;}int mark=1;if(check[0]=='N'){mark=0;cout<<"友情提示:按对应业务的编号即可进行该业务!"<<endl<<"请继续:"<<endl;}int flag=1;while(flag++){if(flag>2){system("cls");mylist();}if(mark)cout<<"请选择业务:";string servicenum;//核实输入是否为字符while(1){cin>>servicenum;if(servicenum.length()>1){cout<<"您的输入有误请重新输入:";continue;}elsebreak;}cout<<"确认请按Y,修改请按N,请选择:"; string mark;//核实输入是否为字符while(1){cin>>mark;if(mark.length()>1){cout<<"您的输入有误请重新输入:";continue;}if(mark[0]!='Y'&&mark[0]!='N')cout<<"您的输入有误请重新输入:";elsebreak;}if(mark[0]=='N')continue;if(servicenum[0]=='0')break;cout<<" 正在处理请稍等.";_sleep(1000);cout<<".";_sleep(1000);cout<<".\n";_sleep(1000);switch(servicenum[0]){//开户case '1': creaccount();break;//存款case '2': deposit();break;//取款case '3': withdraw();break;//计息case '4': computeprofit();break;//查询case '5': checkbalance();break;//排序case '6': order();break;//系统介绍case '7': about(); break;default: cout<<"对不起,您的选择超出了我们的业务范围。
软件工程——银行储蓄系统 -

软件工程——银行储蓄系统 -1.引言1.1 目的本文档旨在描述和规范银行储蓄系统的设计和开发过程,确保系统能够满足用户的需求和预期功能。
1.2 背景银行储蓄系统是为银行提供一种机制,使客户能够进行存款、取款和查询等操作的系统。
2.需求分析2.1 功能需求银行储蓄系统应具备以下功能:- 客户登录与注册- 存款与取款- 余额查询与交易记录查询- 转账与收款- 密码重置2.2 非功能需求银行储蓄系统应具备以下非功能需求:- 用户界面友好、易于使用- 系统响应时间快- 数据安全性高- 高并发能力- 可靠性和可扩展性3.概要设计3.1 系统架构银行储蓄系统采用分层架构,包括以下层:- 用户界面层:提供用户登录、存款、取款等功能的界面- 业务逻辑层:处理用户请求,进行业务逻辑处理- 数据访问层:与数据库进行交互,完成数据的读写操作3.2 模块设计银行储蓄系统的主要模块包括:- 用户管理模块:处理用户注册、登录、密码重置等功能- 账户管理模块:负责处理存款、取款和余额查询等功能- 交易记录模块:记录用户的交易历史- 转账模块:处理用户的转账和收款功能4.详细设计4.1 用户管理模块设计4.1.1 用户注册功能设计- 输入用户名、密码、邮箱等信息- 检查用户名是否已存在- 将用户信息存入数据库4.1.2 用户登录功能设计- 输入用户名和密码- 验证用户名和密码- 登录成功后跳转到账户管理界面4.2 账户管理模块设计4.2.1 存款功能设计- 输入存款金额- 更新账户余额- 记录交易历史4.2.2 取款功能设计- 输入取款金额- 检查账户余额是否充足- 更新账户余额- 记录交易历史5.测试计划5.1 单元测试对各个模块进行单元测试,验证其功能和性能是否达到预期。
5.2 验收测试整体测试银行储蓄系统,确保其符合用户需求和预期功能。
6.附件本文档涉及的附件包括界面原型图、数据库设计文档等。
7.法律名词及注释- 存款:客户将资金存入银行账户- 取款:客户从银行账户中取出资金- 余额查询:客户查询账户中的余额情况- 转账:客户将资金从自己的账户转入其他账户- 收款:客户接收他人转账的资金。
龙纯鹏组软件工程-银行储蓄系统源程序

中国矿业大学(北京)软件工程导论实验报告课程名称:软件工程导论实验名称:银行储蓄系统源程序班级:信息与计算科学(1)班组长:龙纯鹏组员:代喜白鑫刘永鸿侯佳意实验日期: 2014年4月2日指导老师姓名:王颖组内任务分配:龙纯鹏11107200110组长、主要负责可行性分析报告和需求分析报告代喜 11107200103 主要负责系统设计白鑫 11107200101 刘永鸿11107200210 主要负责编写代码侯佳意11107200106主要负责用户手册#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define N 10000struct chuhu //储户结构信息{char idnum[11]; //帐号char password[7]; //密码char name[11]; //储户姓名char idnumber[19]; //储户身份证号码double cunkuan; //存款金额double lixi; //利息double yu; //余额int lei; //储种char address[51]; //储户地址char Tel[15]; //储户的联系电话char khdate[40]; //开户日期int g; //是否挂失(0为未,1为已)}hu[N];//储户结构数组void wang(); //显示“※理学院信软专业※”的函数int yanzheng(); //验证帐号和密码并核查该帐号是否挂失的函数void li(); //计算利息的函数void date(); //显示当前日期和时间void insert(); //开户函数void display(); //显示所有帐户信息的函数void in(int); //存款函数void find(int); //查询余额函数void out(int); //取款函数void zhuan(int); //转帐函数void changepwd(int); //修改密码的函数void guashi(int); //挂失函数void del(int); //销户函数void lilvbiao(); //查看利率表void cxgs(); //撤消挂失的函数void grxx(int); //查看个人信息的函数void help(); //储户须知函数void bangzhu(); //帮助int i,j,k,A=0,B=0; //i,j控制循环,id为帐号,A、B分别为开户数和销户数double jin; //存款、取款或转帐金额char ch='y'; //控制是否继续的变量char id[11],password[7];void main() //输出主菜单{int a,b; //选择功能的变量char dlzh[11],pword[7];system("color 79");date();printf("\n\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("\t\t※※\n"); //界面1 printf("\t\t※※\n");printf("\t\t※银行储蓄管理模拟系统※\n");printf("\t\t※理学院信软专业※\n");printf("\t\t※※\n");printf("\t\t※※\n");printf("\t\t※※\n");printf("\t\t※※※※※※※※※※※※※※※※※※※※※※※※※\n\n\n\n");wang();printf("按ENTER键进入下一界面。
软件工程导论 银行储蓄系统

所属数据流:F1、F2、F6、F7
所属存储:D1、D2
类型:位数:取值范围:定义:
字符8位汉子1{字符}8
说明:
2、数据流:
数据流
名称:存款单编号:F1
来源:外部实体“储户”
去向:P1存款处理
数据结构:姓名、地址、电话、身份证号、存款类型、存款日期、到期日期、利率、密码
说明:
3、数据存储:
数据存储
名称:储户信息库编号:D1
相关处理:有P1写入
读取其的数据处理有:P2.1
名称:类型:位数:取值范围:
姓名字符8位汉子
说明:
软件工程导论软件工程导论pdf系统化思维导论pdf系统工程导论系统化思维导论数据库系统导论无人机系统导论地理信息系统导论计算机系统导论雷达系统导论
银行储蓄系统
一、数据流程图:
1、顶层图如下图1所示:
2、一级细化图如下图2所示:
3、二级细化图素:
数据元素
名称:储户姓名编号:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package src.day01;public class ACC {//父类,以下是共有属性和方法//卡号protected static long id;// 名字protected static String name;// 身份证protected static String personId;//电子邮件protected static String email;// 密码protected static long password;//余额protected static double balance;public ACC(){}public ACC(long id,String name,String personId,String email,long password,double balance ){this.id = id; = name;this.personId = personId;this.email = email;this.password = password;this.balance = balance;}// 存款方法public static void deposit(double money){balance += money;System.out.println("存款成功,你存入的金额为:" + money); }public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getPersonId() {return personId;}public void setPersonId(String personId) {this.personId = personId;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public long getPassword() {return password;}public void setPassword(long password) {this.password = password;}public double getBalance() {return balance;}public void setBalance(double balance) {this.balance = balance;}}package src.day01;import java.util.*;public class Bank {//先定义两个动态数组,其中ban用来存储借记卡数据,ba用来存储信用卡数据static Vector ban = new Vector();static Vector ba = new Vector();//i指借记卡卡号,每增加一个用户,i自增1//j指借记卡卡号,每增加一个用户,j自增1private static long i = 110000000;private static long j = 610000000;public Bank(){}//判断用户办理借记卡还是信用卡的相关业务public static void justy(int ch){boolean k = true ;while(k){if(ch ==1){System.out.println("你将要办理借记卡业务:");break;}else if(ch ==2){System.out.println("你将要办理信用卡业务:");break;}else{System.out.println("输入指令错误,请重新输入:");k=false;}}}//开户方法public static void register(int ch){justy(ch);Scanner re = new Scanner(System.in);System.out.println("请输入开户的用户名:");String na =re.next();long key;//两次密码不同的话循环进行p: while (true){System.out.println("请输入密码:");long pa = re.nextLong();System.out.println("请再次输入密码:");long pa1 = re.nextLong();if(pa==pa1 ){key = pa1;break ;}else{System.out.println("两次不相同,请重新输入");continue p;}}System.out.println("请输入身份证号:");String perId = re.next();System.out.println("请输入email地址:");String em = re.next();System.out.println("请输入开户金额:");double bal = re.nextDouble();//存储和输出过程,将以上输入的正确数据存储到相应的数组中 if(ch==1){ DebitAcc De = newDebitAcc(i,na,perId,em,key,bal);ban.add(De);System.out.println("恭喜你开户成功:你的卡号为" + i);i++;}else if(ch==2){CreditAcc Cr = new CreditAcc(j,na,perId,em,key,bal);ba.add(Cr);System.out.println("恭喜你开户成功:你的卡号为" + j);j++;}System.out.println( "用户名: " + na );System.out.println("身份证:"+ perId );System.out.println("email:" +em );System.out.println("开户金额:" + bal );}//用户子菜单public static void MenuCu(){Scanner sc = new Scanner(System.in);while(true){System.out.println("欢迎使用银行系统");System.out.println("请输入指令:1、开户 2 、登陆 3、退出到上级");int choice = sc.nextInt();switch(choice){case 1:openAccount();break;case 2:logIn();break;case 3:return;default :System .out .println("输入指令错误,请重新输入");break;}}}//开户方法总方法private static void openAccount(){System.out.println("你将要办理开户业务:");System.out.println("请输入你要选择的银行卡类型: 1、借记卡 2、信用卡 ");Scanner op = new Scanner(System.in);int ch = op.nextInt();register(ch);}//用户登陆总方法public static void logIn( ){System.out.println("欢迎进入用户登陆界面,请选择你要登陆的卡号类型: 1、借记卡 2、信用卡" );boolean o = true;boolean p =false;Scanner lo = new Scanner(System.in);int ch = lo.nextInt();justy(ch);l: while(o) {System.out.println("请输入你的卡号:");long user = lo. nextLong();if(ch==1){//调用对应数组的卡号群与输入卡号匹配,以下同理 for(int i = 0;i<Bank.ban.size();i++){DebitAcc d = (DebitAcc)Bank.ban.get(i);if(user == d.id){System.out.println("请输入密码:");long password = lo.nextLong();//对密码进行正误判断,正则p为true,可向下进行,false则直接返回输入卡号命令,即只有输密码一次机会p = pass(password) ;while(p){d.menu1();break;}}else{//卡号不存在进行的操作System.out.println("该卡号不存在,是否重新输入:1、继续2、返回上一级");int c =lo.nextInt();if(c==1){continue l;}else{return;}}}}else {for(int j =0;j<Bank.ba.size();j++){CreditAcc c = (CreditAcc)Bank.ba.get(j);if(user==c.id){System.out.println("请输入密码:");long password = lo.nextLong();p = pass(password) ;while(p){c.menu1();break;}}else{System.out.println("该卡号不存在,请重新输入:");continue l;}}}}}//密码正误判断方法public static boolean pass( long password){if(password !=DebitAcc.password){System.out.println("密码错误!重新输入:");return false;}else{return true;}}//管理员操作菜单public static void menuAd(){Scanner mc = new Scanner(System.in);while(true){System.out.println("欢迎使用银行系统");System.out.println("请输入指令:1、查看所有用户余额 2 、查看信用卡用户总信用额度 3、退出到上级");int m =mc.nextInt();switch(m){case 1:checkBalance();break;case 2:checkCeiling();break;case 3:return;default:System.out.println("输入错误,请重试:");break;}}}//营业员查询总余额public static void checkBalance(){double k =0.0;for(int i = 0;i<Bank.ban.size();i++){DebitAcc d = (DebitAcc)Bank.ban.get(i);k += d.balance;}for(int j=0;j<Bank.ba.size();j++){CreditAcc c = (CreditAcc)Bank.ba.get(j);k+=c.balance;}System.out.println("本银行账户的总余额为:" + k);}public static void checkCeiling(){double k =0.0;for(int j=0;j<Bank.ba.size();j++){CreditAcc c = (CreditAcc)Bank.ba.get(j);k+=c.ceiling;}System.out.println("本银行信用卡账户的总信用度为:" + k);}//银行系统总菜单public static void menuWel(){Scanner b = new Scanner(System.in);while(true){System.out.println("欢迎使用银行系统");System.out.println("请输入指令:1、营业管理员 2、普通用户 3、退出");int ba =b.nextInt();switch(ba){case 1:menuAd();break;case 2:MenuCu();break;case 3:System .out .println("感谢你的使用,欢迎下次光临");System.exit(0);}}}}package src.day01;import java.util.*;public class CreditAcc extends ACC {//信用卡子类先定义信用额度为一常量public double ceiling = 500.0;CreditAcc(){super();}CreditAcc(long id,String name,String personId,String email,long password,double balance){super(id,name,personId,email,password,balance);}//取款方法public void withdraw(double money){if(money>balance){System.out.println("你的余额已不足,是否透支?1.透支2.不透支");Scanner cr = new Scanner (System.in);int c = cr.nextInt();switch(c){case 1:if(ceiling + balance<money){System.out.println("信用度不足,无法透支,请重新输入");}else{ceiling = (ceiling +balance)-money;balance = 0;}break;case 2:break;default:System.out.println("操作错误,请重新输入");break;}}}//查询方法public void show(){System.out.println("姓名:" +name +" 卡号:" + id);if(balance==0){System.out.println("你的余额为0,信用度为:" + ceiling);}else{System.out.println("你的余额为:" + balance);}}// 信用卡子菜单public static void menu1(){boolean b=true;while(b){System .out.println("请输入指令:1、取款2、存款3、查询4、退出到上级");Scanner men = new Scanner(System.in);int m =men.nextInt();switch(m){case 1:System.out.println("请输入取款金额:");double money = men.nextDouble();DebitAcc.withdraw(money);break;case 2:System.out.println("请输入存款金额:");double money1 = men.nextDouble();DebitAcc.deposit(money1);break;case 3:DebitAcc.show();break;case 4:return;}}}}package src.day01;import java.util.Scanner;public class DebitAcc extends ACC {//借记卡子类DebitAcc(){super();}DebitAcc(long id,String name,String personId,String email,long password,double ancbalancee){super(id,name,personId,email,password,ancbalancee) ;}//借记卡子菜单public static void menu1(){boolean b=true;while(b){System .out.println("请输入指令:1、取款2、存款3、查询4、退出到上级");Scanner men = new Scanner(System.in);int m =men.nextInt();switch(m){case 1:System.out.println("请输入取款金额:");double money = men.nextDouble();DebitAcc.withdraw(money);break;case 2:System.out.println("请输入存款金额:");double money1 = men.nextDouble();DebitAcc.deposit(money1);break;case 3:DebitAcc.show();break;case 4:return;}}}//取款方法,不可透支public static void withdraw(double money){if(money> balance){System.out.println("你的余额已不足,无法透支,请你重新输入:");return;}balance-=money;}//查询方法public static void show(){System.out.println("姓名:" +name +" 卡号:" + id);System.out.println("你的余额为:" + balance);}}package src.day01;public class Welbank {/*** @param args*/public static void main(String[] args) {// 银行系统主方法Bank bank = new Bank();bank. menuWel();}}。