ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

记录一下大一写的东西

2022-05-05 23:02:33  阅读:189  来源: 互联网

标签:Code 大一写 记录 一下 level charge pf memeber Identity


#include <iostream>
#include <algorithm>
#include <cstdio>
#include <fstream>
#include <cstdlib>
using namespace std;
#define N 1000

struct member_information//定义会员信息的结构体 
{
    int name;
    int level; //会员等级,0表示普通用户,1表示普通会员,2表示中级会员,3表示高级会员 
    double total_charge;//总充值额 
    double balance;//余额 
    double Last_Month_Consuption;//上个月的花销 
    int consuption;//总消费额 
}memeber[1000];

int Number, Identity_Code;//Number 代表有多少人 

 void Read()//读取文件中的信息 
 {
 	FILE *pf;//定义指向文件的指针 
 	pf = fopen("member.txt","r");//以读的方式打开目标文件 
 
 	int i = 0, j;
 	fscanf(pf, "用户人数: %d", &Number);//读入数据 
 	j = Number; 
	while(i < j)
	{
		fscanf(pf, "用户ID: %d 会员等级: %d 用户总充值额: %.2lf 账户余额: %.2lf 上个月的消费额: %.2lf 消费额: %d", &memeber[i].name, &memeber[i].level, &memeber[i].total_charge, &memeber[i].balance, &memeber[i].Last_Month_Consuption, &memeber[i].consuption);
		i++;
	} 

    fclose (pf);//关闭相应文件 
 	
 }
 
 void Save()//保存数据至文件中 
 {
 	FILE *pf;
 	pf = fopen("member.txt","w");//以覆盖的方式打开目标文件并将数据存入其中 
    fprintf(pf, "用户人数: %d\n", Number);//存入数据 
 	
	for(int i = 0;i < Number; i++)
	{
		fprintf(pf,"用户ID: %d 会员等级: %d 用户总充值额: %.2lf 账户余额: %.2lf 上个月的消费额: %.2lf 消费额: %d\n",memeber[i].name, memeber[i].level, memeber[i].total_charge, memeber[i].balance, memeber[i].Last_Month_Consuption, memeber[i].consuption);
	} 

    fclose (pf);
 	
 }
 
bool cmp(member_information a, member_information b)//定义排序规则 
{
    return a.Last_Month_Consuption > b.Last_Month_Consuption;
}

void Creat_Menu()//创建菜单,方便用户操作 
{
	cout <<"*************************************" << endl;
	cout <<"*****" << " 1.查询余额" <<"*********************"<< endl;
	cout <<"*****" << " 2.查看用户等级" <<"*****************"<< endl;
	cout <<"*****" << " 3.充值" <<"*************************"<< endl;
	cout <<"*****" << " 4.查看上个月的消费额度反还" <<"*****"<< endl;
	cout <<"*****" << " 5.评估用户等级" <<"*****************"<< endl;
	cout <<"*****" << " 6.退出程序 " <<"********************"<< endl;
	cout <<"*************************************" << endl;
}

void Check_Balance()//查询余额函数 
{
    cout << memeber[Identity_Code].balance<< endl;
    cout << "请输入数字:\n";
	Creat_Menu();
}

void Creat_member_information()//生成新的用户函数 
{
	cout << "用户身份码错误!!!" << endl << "即将为您创建新的用户账户\n\n"; 
	
	cout << "系统为您创建的用户专属身份码为: " << Number<< endl;
	Identity_Code=Number;
	memeber[Number].name=Number; 
	
	Number++;
	cout << "祝您使用愉快!\n\n"; 
}

void View_Membership_Level()//查询会员等级函数 
{
    if(memeber[Identity_Code].level == 1)
    cout << "尊敬的用户,您现在为普通会员\n";
    else if(memeber[Identity_Code].level == 2)
    cout << "尊敬的用户,您现在为中级会员\n";
    else if(memeber[Identity_Code].level == 3)
    cout << "尊敬的用户,您现在为高级会员\n";
    else
    cout << "尊敬的用户,您现在为普通用户\n";
    cout << endl;
    cout << "请输入数字:\n";//给予用户提示性信息,方便用户再次选择功能 
	Creat_Menu();
}

void Assess_Membership_level()//评估会员等级函数 
{
	if(memeber[Identity_Code].total_charge >= 500 && memeber[Identity_Code].total_charge < 2000 && memeber[Identity_Code].level == 0) //当用户达到指定要求时,就升级会员等级 
	memeber[Identity_Code].level = 1;
	else if(memeber[Identity_Code].total_charge >= 2000 && memeber[Identity_Code].total_charge < 10000 && memeber[Identity_Code].level <= 1)
	memeber[Identity_Code].level = 2;
	else if(memeber[Identity_Code].total_charge >= 10000 && memeber[Identity_Code].level <= 2)
	memeber[Identity_Code].level = 3;
	cout << endl;
	View_Membership_Level();//方便用户直接查看评估后的等级 
}


void Recharge()//用户充值函数 
{
    if(memeber[Identity_Code].level == 1)//当用户的会员等级达到一定的级别时,给予用户一定程度上的充值优惠 
    cout << "由于您为普通会员,该次充值享受9折优惠" << endl;
    else if(memeber[Identity_Code].level == 2)
    cout << "由于您为中级会员,该次充值享受8折优惠" << endl;
    else if(memeber[Identity_Code].level == 3)
    cout << "由于您为高级会员,该次充值享受7折优惠" << endl;
    cout << "请输入您充值的金额:\n";
    
    double Recharge_Money;
    cin >> Recharge_Money;
    memeber[Identity_Code].total_charge += Recharge_Money;//更新总的充值额 
    
    if(memeber[Identity_Code].level == 1)
    Recharge_Money /= 0.9;
    else if(memeber[Identity_Code].level == 2)
    Recharge_Money /= 0.8;
    else if(memeber[Identity_Code].level == 3)
    Recharge_Money /= 0.7;
    memeber[Identity_Code].balance += Recharge_Money;//更新余额 
    cout << "你当前的余额为: " << memeber[Identity_Code].balance << endl;//显示充值完成后的余额 

    Save();//保存数据至文件中 
    
    cout << endl;
    cout << "请输入数字:\n";//给予用户提示性信息,方便用户再次选择功能
	Creat_Menu();
}

void Find_Last_Month_Consuption()//查询上个月的消费额函数 
{
    if(Identity_Code <= N / 10)//当用户的消费额达到总用户的前10%时,给予用户一定程度的返现 
    {
        cout << "恭喜您,您上个月的消费额达到前10%,将为您返还消费额的5%\n";
        cout << "返还的消费额为 :" << memeber[Identity_Code].Last_Month_Consuption * (0.05) << endl;
        memeber[Identity_Code].balance += memeber[Identity_Code].Last_Month_Consuption * (0.05);
        memeber[Identity_Code].Last_Month_Consuption = 0;//更新上个月消费额
    }
    else
        cout << "您上个月的消费额没有达到前10%,不能为您返还消费额,请接下来再接再力\n";
        cout << endl;
    cout << "请输入数字:\n";//给予用户提示性信息,方便用户再次选择功能
	Creat_Menu();
}
 

int main()
{
	Read(); //调用函数,从文件中读取信息 
    cout << "请输入会员专属身份码:\n";
    cin >> Identity_Code;
    if(Identity_Code >= Number)//如果该用户的身份码不存在时,创建新的用户码 
    Creat_member_information();
    int key;

	cout << "请输入数字:\n";
	Creat_Menu();//调用菜单创建函数 
	while(cin >> key)
	{
		bool flag = 1;
	
	    switch(key)//根据用户输入的数据调用相应的函数 
	    {
	        case 1: Check_Balance(); break;
	        case 2: View_Membership_Level(); break;
	        case 3: Recharge(); break;
	        case 4: Find_Last_Month_Consuption(); break;
	        case 5: Assess_Membership_level(); break;
	        case 6: flag = 0; break;
	        default: cout <<"错误数字,请重新输入!!!\n" << endl; break;
	    }
	    if(!flag)
	    break;
    }

    Save(); //调用函数,保存数据至文件中 
    cout << "程序已退出,感谢您的使用." << endl;
    return 0;
}

标签:Code,大一写,记录,一下,level,charge,pf,memeber,Identity
来源: https://www.cnblogs.com/Flying-bullet/p/16226780.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有