5.系统总体框架
5.1框架图
5.2数据流图
5.3实体关系图
6.模块设计与分析
储蓄卡开户管理模块: 6.1 登录页面
输入卡号和密码,根据用户输入的卡号和密码,到后台文件查询,若正确则登录成功,并保存卡好信息已备后用。
若卡号存在和密码不匹配或无该卡号已经注销,提示该卡号已存在或已注销,保持界面三次不变等待用户的重新输入。
6.2 主界面页面
主要导航栏有:欢迎使用储蓄卡管理(存款、取款、修改密码、转账功能、注销退出)
6.3 储蓄卡开户页面
提供开户界面,由用户输入新储蓄卡的所有信息,将该信息保存到文件中,并将开户金额作为该卡的第一次存款记录存人文件。
6.4 存钱页面
从登录界面得到卡号,并提供数据输入界面,等待用户的输入存款金额。从后台数据库中找到该用户余额记录,修改余额,并将该存款事件的相应信息写人数据库,同时将存钱的金额显示在页面上。
6.5 取款页面
从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上,。
6.6 注销页面
从关闭文件,状态为注销,最后关闭整个系统。
列举取款模块进行分析:
void consumer::fetchmoney() {
float m; char ch; do {
cout<
while(m<=0) {
cout<<\请输入正确的数字!\cout<<\→\cin>>m; }
if(money cout<<\对不起,你的余额不足!\} else {money=money-m; cout< cout<<\是否要继续该项操作:(Y/N) \< while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')//选择错误时判定 { cout<<\→\cin>>ch; } }while(ch=='y'||ch=='Y'); } 在取款页面中,输入取款金额并对取款金额与存款余额进行比较,如果取款金额小于零,请输入正确的数字;如果取款金额大于存款金额,对不起,您的余额不足;如果取款金额小于存款余额的话就执行,并保存记录。 7.类的设计与分析 7.1 consumer类 class consumer:public YH//用户类,继承银行类的属性 { public: friend class YH; consumer(int id,string Name,int Number,double IN,string Company,string Address,string PassWord,float m) { ID=id;name=Name;number=Number;in=IN;company=Company;address=Address;money=m;passwd=PassWord; } consumer(){ID=0;name='0';number=0;in=0;company='0';address='0';money=0;passwd='0';} int get_id(){return ID;} void savemoney();// 取钱 string get_passwd(){return passwd;}// 取得密码 void display(); void fetchmoney(); //取钱 void change_passwd(); void add_money(float);//计算余额 void dec_money(float);//计算余额 float get_money();//卡卡转帐 private: int ID; //开户帐号 string passwd; // 用户密码 string name; // 用户姓名 float money; //开户金额 int number;string company;string address;double in; };