⑴编写一个“银行储蓄系统”的程序,实现以下功能:
输出以下菜单信息:
*****************************************
银行储蓄业务处理系统
请选择(0~9): ,进入相应子系统:
*****************************************
1、 开户业务
2、 续存业务
3、 续取业务
4、 销户业务
5、 挂失业务
6、 批量业务
7、 咨询估算业务
8、 个人消费贷款业务
9、 系统管理
0、 返回
*****************************************
⑵若选择7→则进入“咨询估算业务”子系统,并显示“咨询估算业务”子系统的相应菜单。
*****************************************
咨询估算业务处理系统
请选择(0~10): ,进入相应子系统:
*****************************************
1、定期存款利息估算
2、存款利率查询
3、贷款利率查询
4、汇率查询
5、系统管理
0、返回
*****************************************
⑶选择其中1的“定期存款利息估算 ”,则调用相应程序,进行定期存款利息估算 。
⑷在每一级菜单中,若选择“0”返回上级菜单。
#include <stdio.h>
#include <math.h>
//冒泡排序函数的定义及实现
void Bubble(float* nums, int size)
{
int i = 0, n = 0;
for (i = 0; i < size - 1; i++)//走几趟冒泡排序,size个数就要进行size-1趟冒泡排序
{
//第一趟冒泡排序要进行size-1次排序,第二趟进行size-2次......故终止条件为size-1-i
for (n = 0; n < size - 1 - i; n++)
{
if (nums[n] > nums[n + 1])
{
float temp = nums[n];
nums[n] = nums[n + 1];
nums[n + 1] = temp;
}
}
}
}
void menu()
{
printf("*****************************************\n");
printf("**********银行储蓄业务处理系统***********\n");
printf("**请选择(0~9): ,进入相应子系统:\n");
printf("*****************************************\n");
printf("1、开户业务\n");
printf("2、续存业务\n");
printf("3、续取业务\n");
printf("4、销户业务\n");
printf("5、挂失业务\n");
printf("6、批量业务\n");
printf("7、咨询估算业务\n");
printf("8、个人消费贷款业务\n");
printf("9、系统管理\n");
printf("0、返回\n");
printf("*****************************************\n");
}
//咨询业务估算业务函数
void func7()
{
printf("****************************************\n");
printf("*******已进入咨询估算业务处理系统*******\n");
printf("请选择(0~10): ,进入相应子系统:\n");
printf("****************************************\n");
printf("1、定期存款利息估算\n");
printf("2、存款利率查询\n");
printf("3、贷款利率查询\n");
printf("4、汇率查询\n");
printf("5、系统管理\n");
printf("0、返回\n");
printf("****************************************\n");
}
//定期存款利息估算函数
void func7_1()
{
float p1 = 20000 * pow(1 + 0.003 / 4, 4 * 5); //p = m * (1 + r / 4)^4n
float p2 = 20000 * pow(1 + 0.0175, 5); // p = m * (1 + r)^n
float p3 = (20000 * (1 + 2 * 0.0225)) * (1 + 3 * 0.0275); //p = m * (1 + n * r)
float p4 = (20000 * (1 + 3 * 0.0275)) * (1 + 2 * 0.0225); //p = m * (1 + n * r)
float p5 = 20000 * (1 + 5 * 0.0275); //p = m * (1 + n * r)
printf("(1)5种存款方法到期后的本息和分别为:\n%0.3f %0.3f %0.3f %0.3f %0.3f\n", p1, p2, p3, p4, p5);
float a1 = p1 - 20000;
float a2 = p2 - 20000;
float a3 = p3 - 20000;
float a4 = p4 - 20000;
float a5 = p5 - 20000;
float arr1[] = { a1,a2,a3,a4,a5 };
float max = 0;
int i = 0;
for (i = 0; i < 5; i++)
{
if (arr1[i] >= max)
max = arr1[i];
}
printf("\n(2)第%d种方法存款方法得到的利息最多,利息为:%0.3f\n", i, max);
//调用冒泡排序函数
Bubble(arr1, 5);
printf("\n(3)5种存款方法得到的利息按照从少到多输出为:\n");
for (i = 0; i < 5; i++)
{
printf("%0.3f ", arr1[i]);
}
printf("\n");
}
int main()
{
int input1 = 0;
int input2 = 0;
do
{
menu();
scanf("%d", &input1);
switch (input1)
{
case 7:
do
{
func7();
scanf("%d", &input2);
switch (input2)
{
case 1:
func7_1();
break;
case 0:
break;
default:
printf("选择错误,请重新选择:\n");
}
} while (input2);
case 0:
break;
default:
printf("选择错误,请重新选择:\n");
}
} while (input1);
return 0;
}