当前位置: 首页 > news >正文

php网站 数据库链接企业网站源码怎么用

php网站 数据库链接,企业网站源码怎么用,亚马逊官网首页,手机怎么建立微信公众号文章目录 前言1.基础支持2. 几个小坑2.1 为什么要用引用传值2.2 头文件的作用2.3 while true的使用和跳出 3. 未解决的问题 前言 是尚硅谷的C第一季的项目#xff0c;我跟着敲下来了#xff0c;发现几个坑点#xff0c;记录下来#xff1b; 1.基础支持 有这个则只require… 文章目录 前言1.基础支持2. 几个小坑2.1 为什么要用引用传值2.2 头文件的作用2.3 while true的使用和跳出 3. 未解决的问题 前言 是尚硅谷的C第一季的项目我跟着敲下来了发现几个坑点记录下来 1.基础支持 有这个则只require once #pragram once关键数据结构 Struct AccountItem{string itemType;int amount;string detail; }关键方法C 读取文件的四种方式 refhttps://blog.csdn.net/weixin_62210536/article/details/127248352 ifstream input(FILENAME); 是基于运算符自身的性质会将一切空格当作终止条件这样的话就无法输出空格信息采用这种方法会将一行信息进行分段读出对于类对象的信息读取是很有用的。 // 读取文件 void loadDataFromFile(vectorAccountItem items){ifstream input(FILENAME);// 遇见空格 /t 等就断开AccountItem item;while (input item.itemType input item.amount input item.detail){items.push_back(item);}input.close(); } // 写入文件 // 讲一条账目写入文件 void insertItemIntoFile(AccountItem item){// 如果没有文件那么生成空文件如果有文件那么在文件尾追加。ofstream output(FILENAME, ios::out | ios::app);output item.itemType \t item.amount \t item.detail endl;output.close(); } ifstream 和ofstream 是两个标准库 读入数据返回int // 读取键盘输入的金额数 int readAmount() {int amount;string str;while(true){getline(cin, str);try{amount stoi(str);break;}catch(invalid_argument e){cout 输入错误请正确输入数字;}}return amount; }读入数据返回char char readQuitConfirm(){string str;while (true){getline(cin, str);if(str.size()!1||toupper(str[0])!Y toupper(str[0]) ! N)cout 请输入 Y 或者 N;elsebreak; }return toupper(str[0]); }2. 几个小坑 2.1 为什么要用引用传值 // ------------1. 记账操作------------// void accounting(vectorAccountItem items){switch (readMenuSelection(3)){case 1:income(items);break;case 2:expand(items);break;default:break;} }所有的AccountItem的Vector结构体都要引用传值是因为在输出记账record的时候没有读取文件而是直接变量的vector实现的。 2.2 头文件的作用 C 只能引入头文件.h文件而不能引用.cpp文件所以.cpp 文件只有一个。 g demo.cpp xx1.cpp xx2.cpp xx3.cpp -o demo 会生成一个 demo.exe 的文件 头文件在demo.cpp 中包含并定义N多方法在 xx1.cpp xx2.cpp xx3.cpp中实现。这一点坑了我很长时间。 另外一个方式可以 把函数直接定义和实现在 common.h account_item.h 中。 2.3 while true的使用和跳出 这个很难总结自己体会把。 ··· cinstr; getline(cin, str); 的区别 第一个 不带 空格断行 第二个带空格断行 ··· 会给下一个等待键盘输入的方法放入 \n, 很不友好建议使用 getline(cin, str) 这个函数原来用的第一种方式造成 item.detail 收到了 断行 3. 未解决的问题 我用vscode 编码的 写入的数据 中午是乱码但是piple走通了。 git地址https://github.com/justinge/cpp_xiaogu 全体代码也贴一下 #includeiostream #includestring #includefstream #includevector #define FILENAME ./account_items.txt #define INCOME 收入 #define EXPAND 支出 using namespace std; struct AccountItem{string itemType;int amount;string detail; }; void showMainMenu(); char readMenuSelection(int options); char readQuitConfirm(); void showAccountingMenu(); void showQueryMenu(); void income(vectorAccountItem items); void expand(vectorAccountItem items); void accounting(vectorAccountItem items); void query(vectorAccountItem items); void loadDataFromFile(vectorAccountItem items); int main(){cout justin 盖建明 endl;vectorAccountItem items;loadDataFromFile(items);bool quit false;while(!quit){showMainMenu();char key readMenuSelection(3);switch (key){case 1: // 1.记账/* code */showAccountingMenu();accounting(items);break;case 2: // 查看账单showQueryMenu();query(items);break;case 3:cout \n确认要退出Y是,N不是(Y/N): ;if (readQuitConfirm()Y){quit true;}break;default:break;}}return 1; }void showMainMenu(){cout 主菜单 endl;cout 1. 记账 endl;cout 2. 查看 endl;cout 3. 结束 endl;cout 请输入所需要的菜单(1-3) endl; } void showQueryMenu() { cout ------------------------------------------------------- endl;cout | 选择查询条件 | endl;cout | | endl;cout |*************** 1 统计所有账目 ********************| endl;cout |*************** 2 统 计 收 入 ********************| endl;cout |*************** 3 统 计 支 出 ********************| endl;cout |*************** 4 返回主菜单 ********************| endl;cout |_____________________________________________________| endl;cout \n请选择(1 - 4); } char readMenuSelection(int options){string str;while(true){getline(cin,str);if (str.size() !1 ||str[0] - 0 0 || str[0] - 0 options){cout 请输入所需要的菜单错误;}else{break;}}return str[0]; } char readQuitConfirm(){string str;while(true){cinstr;if (str.size()!1 || toupper((str[0]) ! Y toupper(str[0])! N)){cout 请输入:Y or N endl;}else{break;}}return str[0]; }void showAccountingMenu(){cout ------------------------------------------------------- endl;cout | 选择记账种类 | endl;cout | | endl;cout |*************** 1 收 入 ********************| endl;cout |*************** 2 支 出 ********************| endl;cout |*************** 3 返回主菜单 ********************| endl;cout |_____________________________________________________| endl;cout \n请选择(1 - 3); } void accounting(vectorAccountItem items){char key readMenuSelection(3);switch (key){case 1:income(items);break;case 2:expand(items);break;default:break;} } void insertItemIntoFile(AccountItem item){ofstream output(FILENAME, ios::out | ios::app);output item.itemType \t item.amount \t item.detail endl;output.close(); } int readAmount(){string str;int amount;while(true){getline(cin, str);try{amount stoi(str);break;}catch(invalid_argument e){cout 输入错误请正确输入数字 endl;}}return amount; } void income(vectorAccountItem items){AccountItem item;item.itemType INCOME;cout 请输入金额;item.amount readAmount();cout \n备注;getline(cin,item.detail);items.push_back(item);insertItemIntoFile(item);// 显示成功信息cout \n------------------------记账成功--------------------------\n endl;cout \n请按回车键返回主菜单... endl;string line;getline(cin, line); }void expand(vectorAccountItem items){AccountItem item;item.itemType EXPAND;cout 请输入金额 endl;item.amount -readAmount();cout \n备注: endl;getline(cin,item.detail);items.push_back(item);insertItemIntoFile(item);// 显示成功信息cout \n------------------------记账成功--------------------------\n endl; } void printItems(AccountItem item){cout item.itemType \t\t item.amount \t\t item.detail endl; } void queryItems(vectorAccountItem items){cout ---------------- 查询结果 --------------------- endl;cout \n类型\t\t金额\t\t备注\n endl;int total 0;for (AccountItem item : items){totalitem.amount;printItems(item);}// 输出信息cout \n endl;cout 总收支 total endl; }void queryItems(vectorAccountItem items,string itemType){cout ---------------- 查询结果 --------------------- endl;cout \n类型\t\t金额\t\t备注\n endl;int total 0;for (AccountItem item : items){if (item.itemType!itemType)continue;totalitem.amount;printItems(item);}// 输出信息cout \n endl;cout ((itemType INCOME) ? 总收入:总支出) total endl; }void query(vectorAccountItem items){char key readMenuSelection(4);switch (key){case 1:queryItems(items);break;case 2:queryItems(items,INCOME);break;case 3:queryItems(items,EXPAND);default:break;}cout \n请按回车键返回主菜单... endl;string line;getline(cin, line); }void loadDataFromFile(vectorAccountItem items){ifstream input(FILENAME);AccountItem item;while(input item.itemType item.amount item.detail){items.push_back(item);}input.close(); }
http://www.pierceye.com/news/862293/

相关文章:

  • 百度联盟做网站赚钱制作网页完整步骤
  • 化妆品网站建设规划书范文h5网站建设h
  • 增城低价网站建设app制作公司哪个好
  • 网站建设制作苏州自己做网站能赚钱吗2018
  • 太原做手机网站临沂外贸网站
  • 哪个域名注册网站好下载爱南宁乘车
  • 网站备案接入商是什么交互设计个人网站
  • 移动 网站模板app推广视频
  • 网站网页设计中怎么添加页码信息wordpress中文包
  • 网站优化排名软件网怎么看网站服务器地址
  • iis网站建设中怎么免费做网站不要域名
  • 广州 网站开发 公司怎样做一个公众号
  • 注册网站域名需要什么河南网站建设定制
  • 白种女人做爰网站网站建设新闻动态
  • 360百度网站怎么做徐州企业建站模板
  • 宁波做公司网站的公司wordpress 说说 插件
  • 做毕业设计网站教程网页设计培训机构多少钱
  • 展览馆网站建设方案书wordpress 搬家 sae
  • 网站建设服务开税率多少的票重庆公积金门户网站
  • 网站推广的策略有哪些免费创建个人网站申请
  • 网站建设合同制苏中建设集团网站
  • 如何用织梦程序制作多个页面网站免费域名解析网站建设
  • 安徽省建筑人员信息网广州百度seo优化排名
  • 北海网站建设培训机构专业
  • 江苏艺居建设有限公司网站企业营销网站开发建设专家
  • 莱芜网站优化排名西安工程建设工程信息网
  • 二手网站建设的策划php做网站都需要学什么软件
  • 作品集的个人网站怎么做抖音代运营怎么样呢
  • 电子商务网页设计与网站建设论文在线设计培训
  • 做旅游网站的项目背景软件开发手册