面向对象程序设计大作业(C++) 下载本文

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<\ cin>>m;

while(m<=0) {

cout<<\请输入正确的数字!\cout<<\→\cin>>m; }

if(money

cout<<\对不起,你的余额不足!\}

else

{money=money-m;

cout<

cout<<\是否要继续该项操作:(Y/N) \<>ch;

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; };