外币兑换系统(某专业大作业)
鉴于大作业中其他两项任务——无符号计算器、职工管理系统,都能直接搜索到。这里单独整理一下外币兑换系统作业。本次作业只针对完成大作业的基本要求,没有过多的模块优化。只有基本的输入输出防莽夫代码。首先看一下要求。
整体来讲难度不高,明眼问题主要突出在如何自己写一个上网查找汇率的模块。这个模块单独放在inquire.cpp文件中。下面是函数逻辑的程序框图。
1、有“菜单”标注的,只是提供界面的函数,提供基本的界面输出;
2、“choice”字样的为为用户提供输入输出环境、货币兑换方式,货币种类的函数;
3、“exchange”字样的函数为汇率结算所使用到的函数模块;
4、“InqurieMoney”提供网上查询功能,查询结果会存储到.txt文件中,代码本身也有存放2021年的汇率。断网情况下或者不选择查询现在汇率的情况下,会按照该存储汇率进行结算。
下面直接提供文件名称以及文件中的代码,有需要的同学自行copy更改即可。由于各人原因,界面设置有一定的指向性,记得替换成自己的内容信息。本次使用的是visual studio 2017,bug较多,祝君顺利。
以下是choice.cpp文件内容
#include "currency_exchange.h"int url_choice; //币种指向变量//主界面选择函数 menu_main
int main_choice()
{//由于种种原因有的时候,int才能跑通,虽然这里就应该是charchar choice;do{//system("cls"); //清屏//fflush(stdout); //清空缓冲流,否则一闪一闪亮晶晶menu_main();cin >> choice;switch (choice){case '1':cout << "" << endl;cout << "******** 您选择的是外币兑换人民币 ********" << endl;cout << "" << endl;system("pause");sys_choice1();return 1;case '2':cout << "" << endl;cout << "******** 您选择的是人民币兑换外币 ********" << endl;cout << "" << endl;system("pause");sys_choice2();return 2;case '3':return 0;default:cout << "" << endl;cout << "*** 请重新输入您的选择,请勿发飙,气急伤肝,三秒后重新输入。三秒后如果你还能看见这句话,把VS砸了吧。 ***" << endl;cout << "" << endl;Sleep(2 * 1000); //简单的延时函数,延时时间3秒break;}} while (choice != '1' && choice != '2' );return 0;
}//货币汇率选择函数
//第二个界面下
int sys_choice1()
{char choice = 0; //输入接收变量double exchange=0;exchange = menu_choice1(choice, exchange);exchange_cny(exchange);return 0;
}// sys_choice1 和 sys_choice2 基本雷同,别看了
int sys_choice2()
{char choice = 0; //输入接收变量double exchange = 0;exchange = menu_choice2(choice, exchange);exchange_fore(exchange);return 0;
}//选择界面输出函数1
double menu_choice1(char choice, double exchange)
{do {FOREIGN_CNY(); //显示外币兑换人民币系统界面cin >> choice; //接收输入switch (choice) //币种汇率选择{case'a': case 'A':url_choice = 0;exchange = USD;cout << "您选择的是美元USD" << endl;break;case'b': case 'B':url_choice = 1;exchange = GBP;cout << "您选择的是英镑GBP" << endl;break;case'C': case 'c':url_choice = 2;exchange = EUR;cout << "您选择的是欧元EUR" << endl;break;case'd': case 'D':url_choice = 3;exchange = HKD;cout << "您选择的是港币HKD" << endl;break;case'E': case 'e':url_choice = 4;exchange = MOP;cout << "您选择的是澳元MOP" << endl;break;case'f': case 'F':url_choice = 5;exchange = JPY;cout << "您选择的是日元JPY" << endl;break;case'G': case 'g':url_choice = 6;exchange = CAD;cout << "您选择的是加拿大元CAD" << endl;break;case'h': case 'H':url_choice = 7;exchange = AUD;cout << "您选择的是澳大利亚元AUD" << endl;break;case'i': case 'I':url_choice = 8;exchange = SGD;cout << "您选择的是新加坡元SGD" << endl;break;case'j': case 'J':url_choice = 9;exchange = KRW;cout << "您选择的是韩元KRW" << endl;break;case'k': case 'K':url_choice = 10;exchange = PHP;cout << "您选择的是菲律宾比索PHP" << endl;break;case'l': case 'L':url_choice = 11;exchange = THB;cout << "您选择的是泰国铢THB" << endl;break;case'm': case 'M':url_choice = 12;exchange = CHF;cout << "您选择的是瑞士法郎CHF" << endl;break;case'n': case 'N':url_choice = 13;exchange = NZD;cout << "您选择的是新西兰元NZD" << endl;break;case'o': case 'O':url_choice = 14;exchange = DKK;cout << "您选择的是丹麦克朗DKK" << endl;break;case'p': case 'P':url_choice = 15;exchange = NOK;cout << "您选择的是挪威克朗NOK" << endl;break;case'q': case 'Q':url_choice = 16;exchange = SEK;cout << "您选择的是瑞典克朗SEK" << endl;break;case'r': case 'R':url_choice = 17;exchange = RUB;cout << "您选择的是卢布RUB" << endl;break;case's': case 'S':url_choice = 18;exchange = MYR;cout << "您选择的是林吉特MYR" << endl;break;case't': case 'T':url_choice = 19;exchange = ZAR;cout << "您选择的是南非兰特ZAR" << endl;break;case'z': case 'Z':url_choice = 20;main_choice();break;default:cout << "*** 请重新输入!!! ***" << endl;Sleep(3 * 1000); //短暂延时break;}} while ((choice < 'a' || choice >'t') && (choice <'A' || choice >'T') && choice != 'Z' && choice != 'z');return exchange;
}//选择界面输出函数2
double menu_choice2(char choice, double exchange)
{do {CNY_FOREIGN(); //显示人民币兑换外币系统界面cin >> choice; //接收输入switch (choice) //币种汇率选择{case'a': case 'A':url_choice = 0;exchange = USD;cout << "您选择的是美元USD" << endl;break;case'b': case 'B':url_choice = 1;exchange = GBP;cout << "您选择的是英镑GBP" << endl;break;case'C': case 'c':url_choice = 2;exchange = EUR;cout << "您选择的是欧元EUR" << endl;break;case'd': case 'D':url_choice = 3;exchange = HKD;cout << "您选择的是港币HKD" << endl;break;case'E': case 'e':url_choice = 4;exchange = MOP;cout << "您选择的是澳元MOP" << endl;break;case'f': case 'F':url_choice = 5;exchange = JPY;cout << "您选择的是日元JPY" << endl;break;case'G': case 'g':url_choice = 6;exchange = CAD;cout << "您选择的是加拿大元CAD" << endl;break;case'h': case 'H':url_choice = 7;exchange = AUD;cout << "您选择的是澳大利亚元AUD" << endl;break;case'i': case 'I':url_choice = 8;exchange = SGD;cout << "您选择的是新加坡元SGD" << endl;break;case'j': case 'J':url_choice = 9;exchange = KRW;cout << "您选择的是韩元KRW" << endl;break;case'k': case 'K':url_choice = 10;exchange = PHP;cout << "您选择的是菲律宾比索PHP" << endl;break;case'l': case 'L':url_choice = 11;exchange = THB;cout << "您选择的是泰国铢THB" << endl;break;case'm': case 'M':url_choice = 12;exchange = CHF;cout << "您选择的是瑞士法郎CHF" << endl;break;case'n': case 'N':url_choice = 13;exchange = NZD;cout << "您选择的是新西兰元NZD" << endl;break;case'o': case 'O':url_choice = 14;exchange = DKK;cout << "您选择的是丹麦克朗DKK" << endl;break;case'p': case 'P':url_choice = 15;exchange = NOK;cout << "您选择的是挪威克朗NOK" << endl;break;case'q': case 'Q':url_choice = 16;exchange = SEK;cout << "您选择的是瑞典克朗SEK" << endl;break;case'r': case 'R':url_choice = 17;exchange = RUB;cout << "您选择的是卢布RUB" << endl;break;case's': case 'S':url_choice = 18;exchange = MYR;cout << "您选择的是林吉特MYR" << endl;break;case't': case 'T':url_choice = 19;exchange = ZAR;cout << "您选择的是南非兰特ZAR" << endl;break;case'z': case 'Z':url_choice = 20;main_choice();break;default:cout << "*** 请重新输入!!! ***" << endl;Sleep(3 * 1000); //短暂延时break;}} while ((choice < 'a' || choice >'t') && (choice <'A' || choice >'T') && choice != 'Z' && choice != 'z');return exchange;
}//兑换人民币函数
//系统选择1时调用
int exchange_cny(double exchange)
{int cny_fore = 0; //外币金额double cny; //兑换后的人民币数值double exchan;//string *purl;//*purl = url;int judg=1;cout << "当前汇率值为:" << exchange << endl;cout << endl;cout << "是否进行查询( 是(Y/y) 否(N/n) )" << endl;cout << url_choice << endl;char yes_no;do {cin.clear();fflush(stdout); //清空缓冲流,否则一闪一闪亮晶晶cin >> yes_no;if (yes_no == 'y' || yes_no == 'Y'){// url_choice = 1;judg=InqurieMoney(url_choice, exchan);if (judg == 0){exchange = exchan;}cout << "查询后当前汇率值为:" << exchange << endl;}else if (yes_no == 'n' || yes_no == 'N'){cout << "OK" << endl;break;}elsecout << "请重新输入!!!" << endl;} while (yes_no != 'y' && yes_no != 'Y' && yes_no != 'n' && yes_no != 'N');cout << "" << endl;cout << "请输入要兑换的外币金额:" << endl; //货币换算初始位置cin >> cny_fore;cout << "" << endl;cny = exchange * cny_fore; //计算人民币的金额cout << "可兑换的人民币数值为:" << cny << endl;cout << endl;cout << "是否继续( 是(y/Y),否(n/N)):" << endl;char yes_no2;do {cin >> yes_no2;if (yes_no2 == 'y' || yes_no2 == 'Y'){cout << "兑换成功" << endl;cout << "" << endl;system("pause");main_choice();}else if (yes_no2 == 'n' || yes_no2 == 'N'){cout << "兑换已取消" << endl;cout << "" << endl;system("pause");main_choice();}else{cout << "请重新输入!!!" << endl;exchange_cny(exchange);}} while (yes_no2 != 'y' && yes_no2 != 'Y' && yes_no2 != 'n' && yes_no2 != 'N');return 0;
}//兑换外币数额函
//系统选择2使用
int exchange_fore(double exchange)
{fflush(stdout);int cny_fore = 0; //外币金额double fore = 0; //兑换后的人民币数值int judg=1;double exch = 1 / exchange;cout << "当前汇率值为:" << exch << endl;cout << endl;cout << endl;cout << "是否进行查询( 是(Y/y) 否(N/n) )" << endl;char yes_no;do {cin.clear();fflush(stdout); //清空缓冲流,否则一闪一闪亮晶晶cin >> yes_no;if (yes_no == 'y' || yes_no == 'Y'){judg=InqurieMoney(url_choice, exch);if (judg == 0){exchange = exch;exch = 1 / exchange;}cout << "查询后当前汇率值为:" << exch << endl;}else if (yes_no == 'n' || yes_no == 'N'){cout << "OK" << endl;break;}elsecout << "请重新输入!!!" << endl;} while ((yes_no != 'y' && yes_no != 'Y') && (yes_no != 'n' && yes_no != 'N'));cout << "" << endl;cout << "请输入要兑换的人民币金额:" << endl;cin >> cny_fore;cout << "" << endl;fore = exch * cny_fore; //计算人民币的金额cout << "可兑换的外币数值为:" << fore << endl;cout << endl;cout << "是否继续( 是(y/Y),否(n/N)):" << endl;char yes_no2;do {cin >> yes_no2;if (yes_no2 == 'y' || yes_no2 == 'Y'){cout << "兑换成功" << endl;cout << "" << endl;system("pause");main_choice();}else if (yes_no2 == 'n' || yes_no2 == 'N'){cout << "兑换已取消" << endl;cout << "" << endl;system("pause");main_choice();}else{cout << "请重新输入!!!" << endl;exchange_fore(exchange);}} while (yes_no2 != 'y' && yes_no2 != 'Y' && yes_no2 != 'n' && yes_no2 != 'N');return 0;
}
以下是inquire.cpp文件内容
#include<windows.h>#include<Wininet.h>#include<iostream>#include<fstream>#include<string>#include<cstring>#include "tchar.h"
#include "currency_exchange.h"
#pragma comment(lib,"WinInet.lib")using namespace std;int InqurieMoney(int UrlChoice , double &exch){HINTERNET hINet, hHttpFile;char szSizeBuffer[32];DWORD dwLengthSizeBuffer = sizeof(szSizeBuffer);//如果显示“msedge”报错,点击 调试->ExchangeMoney属性->常规->字符集//修改为“使用多字节字符集”hINet = InternetOpen("msedge", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); //InternetOpen初始化WININET.DLL//hINet = InternetOpen("IE6.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); //InternetOpen初始化WININET.DLLstring url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=MYR" };int url_choice;char choice = '0';/*string ucrl[]= {//美元"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=USD"// 英镑"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=GBP"// 欧元"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=EUR"// 港币"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=HKD"// 澳门元"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=MOP"// 日元"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=JPY"// 加拿大元"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=CAD"// 澳大利亚元"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=AUD"// 新加坡元"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=SGD"// 韩元"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=KRW"// 菲律宾比索"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=PHP"// 泰国铢"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=THB"// 瑞士法郎"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=CHF"// 新西兰元"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=NZD"// 丹麦克朗"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=DKK"// 挪威克朗"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=NOK"// 瑞典克朗"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=SEK"// 卢布"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=RUB"// 林吉特"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=MYR"// 南非兰特"https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=ZAR"};*/choice=UrlChoice+65; switch (choice) //币种汇率选择{case'a': case 'A'://<< "您选择的是美元USD" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=USD" };break;case'b': case 'B':url_choice = 1;// << "您选择的是英镑GBP" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=GBP" };break;case'C': case 'c'://<< "您选择的是欧元EUR" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=EUR" };break;case'd': case 'D':// << "您选择的是港币HKD" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=HKD" };break;case'E': case 'e':// << "您选择的是澳元MOP" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=MOP" };break;case'f': case 'F':// << "您选择的是日元JPY" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=JPY" };break;case'G': case 'g':// << "您选择的是加拿大元CAD" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=CAD" };break;case'h': case 'H':// << "您选择的是澳大利亚元AUD" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=AUD" };break;case'i': case 'I':// << "您选择的是新加坡元SGD" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=SGD" };break;case'j': case 'J':// << "您选择的是韩元KRW" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=KRW" };break;case'k': case 'K':// << "您选择的是菲律宾比索PHP" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=PHP" };break;case'l': case 'L':// << "您选择的是泰国铢THB" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=THB" };break;case'm': case 'M':// << "您选择的是瑞士法郎CHF" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=CHF" };break;case'n': case 'N':// << "您选择的是新西兰元NZD" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=NZD" };break;case'o': case 'O':// << "您选择的是丹麦克朗DKK" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=DKK" };break;case'p': case 'P':// << "您选择的是挪威克朗NOK" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=NOK" };break;case'q': case 'Q':// << "您选择的是瑞典克朗SEK" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=SEK" };break;case'r': case 'R':// << "您选择的是卢布RUB" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=RUB" };break;case's': case 'S':// << "您选择的是林吉特MYR" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=MYR" };break;case't': case 'T':// << "您选择的是南非兰特ZAR" << endl;url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=ZAR" };break;}//string url =cstring( ucrl[4]);//cout << url << endl;if (!hINet){cout << "InternetOpen fail" << endl;return 1;}//string url = { "https://api.it120.cc/gooking/forex/rate?fromCode=CNY&toCode=MYR" };hHttpFile = InternetOpenUrl(hINet, url.c_str(), NULL, 0, 0, 0); //这个函数连接到一个网络服务器上并且最被从服务器上读取数据if (!hHttpFile){cout << "error open url" << endl;cout << "目前暂时无法查询,请请您关闭防火墙或者连接网络后重试,谢谢。" << endl;return 1;}BOOL bQuery = HttpQueryInfo(hHttpFile,HTTP_QUERY_CONTENT_LENGTH,szSizeBuffer,&dwLengthSizeBuffer, NULL); //得到关于文件的信息if (bQuery == false){InternetCloseHandle(hINet);cout << "error query info" << endl;return 3;}int FileSize = atol(szSizeBuffer); //atol函数把字符串转换成长整型数string revData;revData.resize(FileSize);DWORD dwBytesRead;BOOL bRead = InternetReadFile(hHttpFile, &revData[0], FileSize, &dwBytesRead); //web浏览器将在InternetReadFile上循环 ,不停地从Internet上读入数据块。if (!bRead){cout << "error to read file" << endl;return 4;}ofstream out_file("duhui.txt");out_file << revData; //输出到文件out_file.close();InternetCloseHandle(hHttpFile); //关闭句柄InternetCloseHandle(hINet);out_file.close();ifstream myfile("duhui.txt");string strs;myfile >> strs;int i = 0, begin = 0, point = 0, ending = 0, judge = 0; //提取 ***汇率值double型*** 临时变量char temp = 'a'; //字符串元素转换temp//cout << "ccc" << endl;//cout << strs << endl;for (i = 20; i < 40; i++) { //汇率值第一个有效数字temp = strs[i];//cout << temp << endl;if (temp >= '0' && temp <= '9'){begin = i;break;}}for (i = begin; i < 40; i++){temp = strs[i];if (temp == '.'){judge = 1; //寻找到小数点point = 1 + i; //寻找汇率值小数点位置//cout << "piont==" << point << endl;break;}}for (i = point; i < 40; i++){if ((strs[i] < '0' || strs[i] > '9') && judge == 1){{ending = i; //寻找汇率值最后的有效数字//cout << "ending" << ending << endl;break;}}}int j = 0;char curr[10]; // 存储中行汇率的字符串for (i = begin; i < ending; i++){temp = strs[i];//cout << "temp=" << temp;curr[j] = temp;j++;}myfile.close();exch = atof(curr);//cout << "curr" << curr << endl;//cout << "exch"<<exch << endl;//system("pause");return 0;}
以下是menu.cpp文件内容
#include "currency_exchange.h"void menu_main()
{system("cls"); /fflush(stdout); cout << "**********************************************************" << endl;cout << "******** 东大出品 ********" << endl;cout << "**** ****" << endl;cout << "** 外币兑换系统 **" << endl;cout << "**** ****" << endl;cout << "******** 东大出品 ********" << endl;cout << "**********************************************************" << endl;cout << "" << endl;cout << "" << endl;cout << "" << endl;cout << "***外币兑换人民币请按1" << endl; cout << "" << endl;cout << "" << endl;cout << "***人民币兑换外币请按2" << endl;cout << "" << endl;cout << "" << endl;cout << "***退出系统请按3" << endl;cout << "" << endl;cout << "" << endl;cout << "***请输入您的选择" << endl;}void CNY_FOREIGN()
{system("cls"); fflush(stdout); cout << "**********************************************************" << endl;cout << "******** 东大出品 ********" << endl;cout << "**** ****" << endl;cout << "** 外币兑换系统 **" << endl;cout << "**** ****" << endl;cout << "******** 东大出品 ********" << endl;cout << "**********************************************************" << endl;cout << "" << endl;cout << "******** 您选择的是人民币兑换外币 ********" << endl;cout << "" << endl;cout << "***美元 USD 请按a(A) ***菲律宾比索 PHP 请按k(K)" << endl;cout << "***英镑 GBP 请按b(B) ***泰国铢 THB 请按l(L)" << endl;cout << "***欧元 EUR 请按c(C) ***瑞士法郎 CHF 请按m(M)" << endl;cout << "***港币 HKD 请按d(D) ***新西兰元 NZD 请按n(N)" << endl;cout << "***澳门元 MOP 请按e(E) ***丹麦克朗 DKK 请按o(O)" << endl;cout << "***日元 JPY 请按f(F) ***挪威克朗 NOK 请按p(P)" << endl;cout << "***加拿大元 CAD 请按g(G) ***瑞典克朗 SEK 请按q(Q)" << endl;cout << "***澳大利亚元 AUD 请按h(H) ***卢布 RUB 请按r(R)" << endl;cout << "***新加坡元 SGD 请按i(I) ***林吉特 MYR 请按s(S)" << endl;cout << "***韩元 KRW 请按j(J) ***南非兰特 ZAR 请按t(T)" << endl;cout << "" << endl;cout << "****** 返回请按“z(Z)” ******" << endl;cout << "" << endl;cout << "" << endl;cout << "请输入您的选择" << endl;}void FOREIGN_CNY()
{system("cls"); //????fflush(stdout); //??????????????????????????cout << "**********************************************************" << endl;cout << "******** 东大出品 ********" << endl;cout << "**** ****" << endl;cout << "** 外币兑换系统 **" << endl;cout << "**** ****" << endl;cout << "******** 东大出品 ********" << endl;cout << "**********************************************************" << endl;cout << "" << endl;cout << "******** 您选择的是外币兑换人民币 ********" << endl;cout << "" << endl;cout << "***美元 USD 请按a(A) ***菲律宾比索 PHP 请按k(K)" << endl;cout << "***英镑 GBP 请按b(B) ***泰国铢 THB 请按l(L)" << endl;cout << "***欧元 EUR 请按c(C) ***瑞士法郎 CHF 请按m(M)" << endl;cout << "***港币 HKD 请按d(D) ***新西兰元 NZD 请按n(N)" << endl;cout << "***澳门元 MOP 请按e(E) ***丹麦克朗 DKK 请按o(O)" << endl;cout << "***日元 JPY 请按f(F) ***挪威克朗 NOK 请按p(P)" << endl;cout << "***加拿大元 CAD 请按g(G) ***瑞典克朗 SEK 请按q(Q)" << endl;cout << "***澳大利亚元 AUD 请按h(H) ***卢布 RUB 请按r(R)" << endl;cout << "***新加坡元 SGD 请按i(I) ***林吉特 MYR 请按s(S)" << endl;cout << "***韩元 KRW 请按j(J) ***南非兰特 ZAR 请按t(T)" << endl;cout << "" << endl;cout << "****** 返回请按“z(Z)” ******" << endl;cout << "" << endl;cout << "" << endl;cout << "请输入您的选择" << endl;}
以下是ExchangeMoney.cpp文件内容
/*
#include<Windows.h>
#include<shellapi.h>
#include <stdio.h>
#include <stdlib.h>
//#include "tchar.h"
int main()
{//使用IE浏览器打开https://ultravires.github.io//ShellExecuteW(NULL, L"open", L"msedge.exe", L"https://srh.bankofchina.com/search/whpj/search_cn.jsp", NULL, SW_MAXIMIZE);//system("explorer https://srh.bankofchina.com/search/whpj/search_cn.jsp ");//ShellExecute(NULL, L"open", L"http://www.xspace.idv.tw/", NULL,NULL, SW_SHOWNORMAL);system("explorer https://srh.bankofchina.com/search/whpj/search_cn.jsp");//WinExec("msedge.exe", SW_SHOW);return 0;}*/#include "currency_exchange.h"using namespace std;//extern int url_choice; //币种指向变量int main(){main_choice();return 0;
}
以下是currency_exchange.h文件内容
#pragma once#ifndef CURRENCY_EXCHANGE_H
#define CURRENCY_EXCHANGE_H#include<windows.h>#include<Wininet.h>#include<iostream>#include<fstream>#include<string>#include<cstring>#pragma comment(lib,"WinInet.lib")#pragma once//extern int url_choice; //币种指向变量//初始汇率值查询表
//更新时间2021年11月30日
//比值关系1软妹币:XXX外币
const double
USD = 6.3794, // 美元
CNY = 1.0000, // 人民币
GBP = 8.4941, // 英镑
EUR = 7.2063, // 欧元
HKD = 0.8179, // 港币
MOP = 0.7950, // 澳门元
JPY = 0.0560, // 日元
CAD = 5.0080, // 加拿大元
AUD = 4.5578, // 澳大利亚元
SGD = 4.6625, // 新加坡元
KRW = 0.0054, // 韩元
PHP = 0.1267, // 菲律宾比索
THB = 0.1894, // 泰国铢
CHF = 6.9129, // 瑞士法郎
NZD = 4.3544, // 新西兰元
DKK = 0.9690, // 丹麦克朗
NOK = 0.7079, // 挪威克朗
SEK = 0.7041, // 瑞典克朗
RUB = 0.0857, // 卢布
MYR = 1.5053, // 林吉特
ZAR = 0.3954; // 南非兰特
///using namespace std;void menu_main();
int InqurieMoney(int choice, double &exch);
void CNY_FOREIGN();
void FOREIGN_CNY();
int main_choice();
int sys_choice1(); //外币兑换人民币
int sys_choice2(); //人民币兑换外币double menu_choice1(char choice, double exchange); //选择函数界面函数
double menu_choice2(char choice, double exchange); //选择函数界面函数
int exchange_cny(double exchange); //兑换人民币数额函数
int exchange_fore(double exchange); //兑换外币数额函数#endif // !CURRENCY_EXCHANGE_H
运行的视频结果已经按照某同学需求发布…
外币兑换
注意事项:
1、该程序多次编译后会在memcpy.asm文件下报错,是一个异常中断(含有“req”等汇编语言字眼),需要重新开启新的项目或者删除系统自建Debug文件夹重新编译才可以运行。
2、字符串在C++里面是利用模板动态存储的,无需初始定义长度。但是strcpy_s等函数无法正常使用。同样的string不知为何不能作为实参传值或者传地址。
3、网页抓取函数,使用了部分Windows自定义的窗口函数,需要标明命名空间,#pragma comment(lib,“WinInet.lib”),并对字符集的设置进行更改。
4、由于抓取字符串和网页开启函数的特殊性质,需要在文件保存字符串并关闭后,重新打开方可用string类型字符串获取数据,同时网页函数不可使用const定义的字符串数组。
5、关于.h文件重复编译的问题,系统自带在.H文件中的“#pragma once”不要删除。
外币兑换系统(某专业大作业)相关推荐
- 基于Matlab的交通限速标志的识别系统 数字图像处理大作业
本大作业为基于Matlab的交通限速标志的识别系统, 考虑到在科技发展的今天,智能汽车行业发展迅速,所以交通限速标志的快速检测及识别对车辆的安全行驶极为重要,因此本系统可以检测到图中的交通限速标志并对 ...
- 基于SSH开发物流仓储调度系统 课程设计 大作业 毕业设计
基于SSH开发物流仓储调度系统(大作业/毕业设计) 开发环境: Windows操作系统 开发工具:Myeclipse+Jdk+Tomcat+MYSQL数据库 运行效果图: 基于SSH开发物流仓储调度 ...
- Java开发工程师(Web方向)微专业大作业的实现(含源码资源)
前言 该项目是对网易云课堂Java开发工程师(Web方向)微专业--<Java Web开发实践>大作业的实现. 如非学员,建议避坑. 吐槽 课程提供的前端代码.设计文档质量差(变量命名的不 ...
- 基于SSH开发HR(人力资源管理系统)简单工作流程系统 课程设计 大作业 毕业设计
基于S2SH开发HR(人力资源管理系统)简单工作流程系统(大作业/毕业设计) 开发环境: Windows操作系统 开发工具:Myeclipse+Jdk+Tomcat+MYSQL数据库 运行效果图: 基 ...
- 基于JavaSwing开发聊天室(QQ聊天 群聊)系统+论文+PPT 大作业 毕业设计项目源码
基于JavaSwing开发聊天室(QQ聊天 群聊)系统+论文+PPT(毕业设计/大作业) 开发环境: Windows操作系统 开发工具: Eclipse/Myeclipse+Jdk 演示视频: jav ...
- javaweb基于JSP+Servlet开发校园在线问卷调查系统 课程设计 大作业 毕业设计源码
基于JSP+Servlet开发校园在线问卷调查系统(大作业/毕业设计) 开发环境: Windows操作系统 开发工具:MyEclipse+Jdk+Tomcat+MYSQL数据库 运行效果图: 基于 ...
- 飞机订票系统c语言大作业,C语言知识学习飞机订票系统
C语言知识学习飞机订票系统 课程设计 课程:数据结构 专业班级:xx软件工程 xx班 姓名:xx 学号:xxx 姓名:xxx 学号:xxx 设计时间:xxx 指导老师:xxx 课程设计题:飞机订票系统 ...
- 学生证选课系统c语言大作业,学生选课管理系统c语言程序
#include #include #include int N1,N2; struct couse * head1; struct student * head2; struct couse //课 ...
- 《Python与硬件项目案例》— 基于Python与指纹模块AS608的指纹识别签到考勤系统(下篇)(期末大作业、课程设计、毕业设计、结课项目)
目录 <Python与硬件项目案例>- 基于Python与指纹模块AS608的指纹识别签到考勤系统(下篇) 概述 参考代码 <Python与硬件项目案例>- 基于Python与 ...
- 火车票售票系统C语言大作业,基于C语言实现简单的12306火车售票系统
程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为: 录入班次信息 浏览班次信息 按班次号查询 按终点站查询 按余票数量排序保存 售票 退票 更新班次信息 退出系统 所有的班次信息保存在n ...
最新文章
- 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取...
- 直播预告丨揭秘神策数据销售方法论,一起向 Top Sales 迈进!
- Linux 环境变量 /etc/profile 和 ~/.bashrc
- java中native_java中的native关键字
- 面向对象的接口类 以及鸭子类型
- 阿里云高级技术专家周晶:基于融合与协同的边缘云原生体系实践
- mysql for vs2013_mysql vs2013
- java volatile关键字的作用_java volatile关键字作用及使用场景详解
- Windows 系统下安装anaconda教程 ,小白教程!!!
- Python 学习记录(1)对象命名导致的问题
- 苹果手机夜间模式怎么设置_微信怎么设置夜间模式?iPhone夜间模式设置教程 省电又护眼!...
- android 8字体下载,安卓手机字体
- 【渗透技巧】pop3协议渗透
- 解决WPS表格图片打印拉伸问题
- Excel实用教程-字符提取函数(FIND/LEFT/RIGHT/LEN/MID/TEXT)
- 云主机装黑果实践(6):处理云主机上变色龙启动后置过程:驱动和黑屏
- Latex 打勾 打叉
- git克隆指定分支的代码
- 互联网公司招聘黑话大全
- 1.python真的是万恶之源么?(初识python)
热门文章
- 怎么查看电脑最大支持扩展内存
- 如何正确的制定目标?(只需4步)
- python中pip作用_python中的pip有什么作用
- qpython 3h下载_QPython 3Hv3.0.0 Android
- matlab 浮动波动率,Matlab计算股票价格波动率
- 网易云音乐encseckey算法php,求助网易云音乐_secretKey及_encSecKey获取
- 谷歌浏览器html插件字体大小,字体换加插件,自定义Chrome网页字体,更改字体样式,调整字体大小...
- 在html中加入中文字体,css设置中文字体
- 粪斗吧 ! 骚年 !
- 沟通成本:信任,外包永远的痛——外包实践(65)