C++第13周项目5——银行系统用函数组织(v0.2)

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565

说明:此项目是为未学习数组的同学拟出的,目的是让他们对“工程”有所体验。一些实现并不是最佳的,请参考后续的题目

【项目5任务2】引入函数改善程序结构
  1、在输入密码环节,实现有限次密码输入的限制,如果三次都没有输入正确,程序将直接退出,不允许用户继续操作。
  查验密码功能做成一个函数。例如:

bool pass()
{
  bool 密码不正确=true;   //先假设不正确,以便能进入do-while循环
  do{
    输入密码;
    次数++;
    if(相符)密码不正确=false;
  }while(密码不正确且尝试次数不足3次);
  return !密码不正确;  //密码不正确为true,表示通不过,反之……
}

  办理业务也做成一个函数。例如:

void work()
{
  //循环显示功能菜单,直至选择了退出
  //用户选择后提示选结果
}

  相应地,对于main()函数,其结构为:

main()
{
  ……
  if(pass())
    work()
  else
   输出“请到柜台办理密码查询后再来”。
  return 0;
}

2、各项业务分别编制一个函数完成
  用户输入功能选择,根据给出的答复,用switch多分支完成对应的功能:
  用户选择1-4功能(1.查询、2.取款、3.存款、4.转帐、0.退出)后,分别调用一个自定义函数,完成对应的功能。定义的函数可以只输出一句话提示即可。——我们的项目已经越来越大了,需要在程序结构上有所注意了。

输入1,调用函数showbalance(),显示“您的余额是xxxx.xx元。”(想过瘾,用你觉得足够大的数当余额)
输入2,调用drawmoney(),完成取款
要求输入金额、存期,然后计算利息(税就不扣了),输出应该取出多少钱,在屏幕上显示本金xxxx.xx元,利息xx.xx元。此处说取多少就多少,且认为当天正好到期,不考虑超期。利息使用2011年7月7日公布的最新年利率:
活期		0.50%
3个月	3.10%
6个月	3.30%
一年		3.50%
二年		4.40%
三年		5.00%
五年		5.50%
  另外,咱家银行卡在这个任务中还支持定期哩,这又是一个例外。
  提示:做不来,找以前做过的程序。抄自己以前的不算抄。
输入3-4,自己编写函数,显示提示语;
输入0,显示“谢谢,欢迎下次再来!”退出循环,返回调用函数。
输入不是0-4,提示“输错了,不要急!”

参考解答:

#include<iostream>
using namespace std;
const int password = 123456;
bool pass();
void work();
void showbalance();
void drawmoney();
void deposit();
void transferAccounts();

int main()
{
	cout<<"贺家银行欢迎您光临……"<<endl;
	if(pass())
		work();
	else
		cout<<"不要着急,想好了再输入……"<<endl;
	return 0;
}

//检验密码
//返回值:通过-true; 不通过-false
bool pass()
{
	bool bPass=false;   //先假设不正确,直至正确后赋值为true
	int iPass;
	int num=1;
	do{
		cout<<"请输入密码";
		if(num>1)
			cout<<"(提示:这是第"<<num<<"次输入密码,三次不对将吞卡)";
		cin>>iPass;
		num++;
		if(iPass==123456)
			bPass=true;
	}while(!bPass&&num<4);  //密码不正确且次数在允许范围内
	return bPass;  //密码正确为true,表示通过,反之……
}

//处理业务
void work()
{
	char cChoice;
	bool bExit = false;
	do
	{
		cout<<endl<<"*  您可以办理下面的业务:"<<endl;
		cout<<"*  1.查询"<<endl;
		cout<<"*  2.取款"<<endl;
		cout<<"*  3.存款"<<endl;
		cout<<"*  4.转账"<<endl;
		cout<<"*  0.退出"<<endl;
		cout<<"*  请输入(0-4):";
		cin>>cChoice;
		switch(cChoice)
		{
		case '1':
			showbalance();
			break;
		case '2':
			drawmoney();
			break;
		case '3':
			deposit();
			break;
		case '4':
			transferAccounts();
			break;
		case '0':
			cout<<"欢迎您下次来存款. "<<endl;
			bExit=true;
		}
	}while(!bExit);
	return;
}

//查询余额
void showbalance()
{
	cout<<"余额有问题,请拨打110. "<<endl;
}

//取款
void drawmoney()
{
	int  type, days;
	double money, period, rate, interest;
	cout << "请输入取款金额:";
	cin >> money;
	cout << "======存款期限======" << endl;
	cout << "1. 活期存款" << endl;
	cout << "2. 3个月 " << endl;
	cout << "3. 6个月" << endl;
	cout << "4. 一年 " << endl;
	cout << "5. 二年" << endl;
	cout << "6. 三年" << endl;
	cout << "7. 五年" << endl;
	cout << "请输入存款期限的代号:";
	cin >> type;
	if (type>=1 && type <=7)
	{
		switch(type)    //在if中嵌入了switch分情况处理
		{
		case 1:
			cout<<"请输入存款天数:";
			cin >> days;
			period = days/360.0;
			rate = 0.005;
			break;
		case 2:
			period = 0.25;
			rate = 0.031;
			break;
		case 3:
			period = 0.5;
			rate = 0.033;
			break;
		case 4:
			period = 1;
			rate = 0.035;
			break;
		case 5:
			period = 2;
			rate = 0.044;
			break;
		case 6:
			period = 3;
			rate = 0.05;
			break;
		case 7:
			period = 5;
			rate = 0.055;
			break;
		}
		interest = money * period * rate;
		cout << "到期利息为:" << interest << "元,本息合计共"<< interest + money <<"元。"<<endl;
	}
	else
		cout << "选择存款类型错误!"<<endl;
	cout << "感谢您的使用,欢迎下次光临!"<<endl;
}

//存款
void deposit()
{
	cout<<"勤俭持家,老一套,要保持. "<<endl;
}

//转帐
void transferAccounts()
{
	cout<<"加快流通,繁荣经济. "<<endl;
}
时间: 2024-10-27 09:57:13

C++第13周项目5——银行系统用函数组织(v0.2)的相关文章

C++第13周项目5——银行系统多文件组织(v0.31)

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 说明:此项目是为未学习数组的同学拟出的,目的是让他们对"工程"有所体验.一些实现并不是最佳的,请参考后续的题目 [项目5-银行系统] (4)将程序用多文件组织 涉及密码.帐户的函数放在一个文件中,完成各项功能的函数放在另一个文件中,main函放也单独一个文件.这种结构就是实际项目要用的了. 参考解答: //文件:bank.cpp #include<iost

C++第13周项目5——银行系统支持多用户(v0.3)

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 说明:此项目是为未学习数组的同学拟出的,目的是让他们对"工程"有所体验.一些实现并不是最佳的,请参考后续的题目 [项目5任务3]补充功能,使银行更职业一些 1.支持多个用户 用变量account1以及pwd1分别表示客户和他的密码,balance1表示这两个用户的余额(开始靠近真的银行了,得为多个用户服务,此任务完成后,将来改造成多个用户的.学习了数组,我们会有

C++第13周项目5——银行系统多文件组织+包含文件(v0.32)

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 说明:此项目是为未学习数组的同学拟出的,目的是让他们对"工程"有所体验.一些实现并不是最佳的,请参考后续的题目 [项目5-银行系统] (4)将程序用多文件组织 涉及密码.帐户的函数放在一个文件中,完成各项功能的函数放在另一个文件中,main函放也单独一个文件.这种结构就是实际项目要用的了. 下面的参考解答中使用了包含文件 //bank1.h 用于mian函数中

C++第13周项目5——银行系统(v0.1)

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 说明:此项目是为未学习数组的同学拟出的,目的是让他们对"工程"有所体验.一些实现并不是最佳的,请参考后续的题目 [项目5-银行系统] 这是我们要做的一个真正的项目!涉及到的技术都用过了,只不过,程序真的要长得多了. 在学习中,总是想要些成就感的.当你没有做过一些事情的时候,总是不能知道所学知识究竟能干些什么.在学习过程中,完成一个像样的项目,那是一件很酷的事情,

C++程序设计-第13周递归函数及银行系统程序设计上机实践项目

回到课程主页,链接:C++程序设计课程主页-2012级 本次上机对应的教学内容:第4章   递归函数.变量的作用域.存储类型 第一部分 练习+上机验证(不必提交上机报告) 阅读下列程序,写出程序的运行结果.上机时运行程序,与你的预期进行对照.理解. 提示:如果对运行结果不理解,请通过单步执行的手段跟踪理解. 1. 两个有递归函数的程序,要求按课堂演示,画出调用过程(1) #include <iostream> using namespace std; void f(int); int main

C++第14周项目6——银行系统,真正多用户

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目6 - 银行系统]我们可以实现真正的多用户银行系统了.在具体业务上,不作多的改变,主要改变在用户管理上: (1)存储用户信息用三个全局数组,并用一个整型全局变量表示当前登录的帐户 const int NUM=5; //暂时支持5个用户,其实,可以很多 int account[NUM]={37001,37002, 37020, 37245,37888}; //帐户 i

C++第14周项目6——银行系统,用文件永久存储

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目6 - 银行系统]我们可以实现真正的多用户银行系统了.在具体业务上,不作多的改变,主要改变在用户管理上: (1)存储用户信息用三个全局数组,并用一个整型全局变量表示当前登录的帐户 const int NUM=5; //暂时支持5个用户,其实,可以很多 int account[NUM]={37001,37002, 37020, 37245,37888}; //帐户 i

C++第13周项目4——多文件组织回文、素数

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目4-多文件程序组织] 按<C++程序设计题解与上机指导>P226第15.4节的提示,建立一个包含多个文件的项目,将第12周"项目4-回文.素数"中所做工作用多文件组织起来.其中,main()函数保存在一个文件中,所有自定义函数保存到另外一个文件中,运行程序并得到正确的结果,体会在实际的工程项目中(有很多的函数)这样组织程序的好处. 参考解答 (

2014秋C++ 第13周项目 C++中的一维数组

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目1 - 数组大折腾](1)创建一个有20个元素的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中元素的值,每5个元素换一行. int main( ) { int a[20]={...}; //初始化前10个元