本篇实现双色球预测系统项目

需求

统计一段时间内双色球各数字出现的次数.一期双色球由六个红球和一个蓝球组成,红球数字范围为1-33,蓝球为1-16.

代码总览:

#include <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
#define LINE 7using namespace std;bool analyse(const char *filename,int redball[],int blueball[]);
int main(void){string filename;int redball[33]={0};int blueball[16]={0};cout<<"请输入要分析的文件:";cin>>filename; if(analyse(filename.c_str(),redball,blueball)){for(int i=0;i<33;i++)printf("红球%d出现的次数:%d\n",i+1,redball[i]);printf("\n");for(int i=0;i<16;i++)printf("蓝球%d出现的次数:%d\n",i+1,blueball[i]);}else{cout<<"分析失败"<<endl;}system("pause");return 0;
}bool analyse(const char *filename,int redball[],int blueball[]){int result[LINE];bool end=true;ifstream file;if(!filename){cout<<"空路径!!!"<<endl;return false;}else{file.open(filename);if(file.fail()){cout<<"文件打开失败!!!"<<strerror(errno)<<endl;return false;}do{for(int i=0;i<LINE;i++){file>>result[i];if(file.eof()){end=false;break;}if(file.fail()){cout<<"文件读取失败!!!"<<strerror(errno)<<endl;return false;}}for(int i=0;i<LINE-1;i++){redball[result[i]-1]++;}blueball[result[LINE-1]-1]++;if(!end){end=true;break;}}while(1);file.close();}return true;
}

需要用到的数据:(往期双色球中奖号码,保存在文件ball.txt中)

03   14  20  24  26  33  10
04  06  08  11  30  33  11
01  14  17  20  22  32  04
06  09  11  15  20  26  10
12  20  24  25  30  33  12
01  14  19  22  29  31  16
07  13  16  23  26  30  01
03  17  19  24  27  31  12
03  04  14  20  23  27  01
04  05  07  09  16  18  06
07  08  12  21  23  27  12
04  05  06  08  13  18  16
13  14  17  19  21  29  01
01  06  11  15  19  31  10
07  10  11  15  24  26  11
04  16  22  25  29  31  08
03  06  09  13  16  19  16
08  09  10  13  15  28  09
04  06  10  11  21  23  02
03  10  13  22  23  28  15
03  07  10  12  18  29  10
03  11  18  25  30  33  14
02  12  16  22  25  32  06
01  06  17  19  27  31  14
06  14  16  17  23  29  07
01  06  12  13  24  32  13
15  17  19  22  25  26  04
02  09  13  23  24  26  16
05  06  09  18  23  31  11
06  07  11  14  27  32  08

主函数里有一个用法要注意,就是string中的.c_str(),c++中提供了一个新的字符串类型,而又兼容c中的字符数组,当string类要转化成c语言中的字符类型时可以使用这个函数,它返回一个const char*类型的指针.

c_str是Borland封装的String类中的一个函数,它返回当前字符串的首字符地址

到了这篇文章,大家对文件的操作应该都很熟悉了,主函数内的代码逻辑也很简单,我们重点讲解函数analyse里的内容.
首先要讲一个需要注意的点,你不能永远默认用户或其他程序员的输入是合法的,你编写的函数或程序要有异常处理部分,比如本应该输入一个整数,用户可能会误输入一个字符,这个时候你的程序要能够判断出这种异常情况并做出处理(重新输入 非法输入警告等等)这就叫防御式编程.

防御式编程是提高软件质量技术的有益辅助手段。防御式编程的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。

bool analyse(const char *filename,int redball[],int blueball[]){int result[LINE];bool end=true;ifstream file;if(!filename){cout<<"空路径!!!"<<endl;return false;}else{file.open(filename);if(file.fail()){cout<<"文件打开失败!!!"<<strerror(errno)<<endl;return false;}......

bool类型是c++中的一个新的类型,它的值只有两种:true和false.函数analyse首先就对路径的合法性做了判断,判断是否是空路径,然后打开文件,用.fail()判断文件是否打开成功.
strerror:

通过标准错误的标号,获得错误的描述字符串 ,将单纯的错误标号转为字符串描述,方便用户查找错误

errno:

errno 是记录系统的最后一次错误代码。代码是一个int型的值,在errno.h中定义。查看错误代码errno是调试程序的一个重要方法

来看看它的具体会输出些什么

     ......
do{for(int i=0;i<LINE;i++){file>>result[i];if(file.eof()){end=false;break;}if(file.fail()){cout<<"文件读取失败!!!"<<strerror(errno)<<endl;return false;}}for(int i=0;i<LINE-1;i++){redball[result[i]-1]++;}blueball[result[LINE-1]-1]++;if(!end){end=true;break;}}while(1);file.close();}return true;
}

.eof()用来判断文件是否读取完毕,未完毕返回0,完毕返回真,redball和blueball数组用来存储对应号码出现的次数,end变量为标志位.在循环中,有时候不能直接跳出来,常用的处理方式是设置一个标志位,配合if语句后在不同的情况下可以执行不同的语句.在这里根据end的值决定是否退出循环,最后用.close()关闭文件.
运行效果:

项目:双色球预测系统相关推荐

  1. 人工智能之双色球预测系统

    人工智能之双色球预测系统---------------经过多次调试,bug已完全解决 以下为写代码的过程: ------------------初次尝试---------------------- / ...

  2. 学习java的第一个实践练手项目---彩票预测系统

    这个项目用了8个晚上(20:00-23:00)加上2个白天完成. 一.所用知识点 1.java语言基础 2.多线程 3.Swing控件 4.数据库技术(MySQL) 二.项目目标 1.通过登录窗体点击 ...

  3. 人工智能之双色球预测系统(指针)

    项目需求 中国福利彩票"双色球"是一种联合发行的"乐透型"福利彩票.采用计算机网络系统发行 销售,定期电视开奖. 游戏规则 1."双色球"彩 ...

  4. C++ 双色球预测系统

    游戏规则 1."双色球"彩票投注区分为红色球号码区和蓝色球号码区. 2."双色球"每注投注号码由 6 个红色球号码和 1 个蓝色球号码组成.红色球号码从 1-- ...

  5. java项目-第137期jsp+servlet的周公算命预测系统-java毕业设计

    java项目-第137期jsp+servlet的周公算命预测系统-计算机毕业设计 [源码请到资源专栏下载] 今天分享的项目是<周公算命预测系统> 该项目分为管理员和普通用员2个角色. 管理 ...

  6. 山东大学暑期项目实训——云主机服务比价与预测系统

    山东大学暑期项目实训--云主机服务比价与预测系统(十二) 使用tensorflow做预测 一.简单的预测函数值 1.使用训练数据做预测 创建模型: model = keras.Sequential([ ...

  7. C/C++项目开发:双色球彩票系统!C语言告诉你中奖并不是偶然!

    https://www.bilibili.com/video/BV1uh411D7Wh/?spm_id_from=333.999.0.0&vd_source=ddb210d09ec373c5d ...

  8. 基于深度神经网络的风电场超短期功率预测系统【数据故事计划最佳学术奖】...

    摘要:细听学长学姐讲故事,或许在他们的路上也有你的身影! [第一届数据故事计划] "数据故事计划"旨在收集各类有关大数据的故事然后进行比赛及相关的宣传和推广.包括同学们接触大数据. ...

  9. 道路交通实时流量监控预测系统(大讲台)

    道路交通实时流量监控预测系统 我们项目要做什么 采集数据  分析  建模  实时预测   展示 总体业务要求 GB级数据实时处理   毫秒级延迟  海量数据实时预测 转载于:https://www.c ...

最新文章

  1. eclipse run on server
  2. c语言实现线性表的算法,数据结构算法代码实现——线性表的定义(一)
  3. linux中MySQL密码的恢复方法
  4. 卸任四家锤子公司法定代表人后:罗永浩退出聊天宝股东行列
  5. ios 横向滚轮效果_iOS列表滚动视差效果
  6. PADS9.5 原理图和封装制作——以STM32F103为例
  7. Android主板串口线接法,9针rs232串口接线图以及接线方法
  8. t检验及python代码实现
  9. 用C++实现文件压缩
  10. MPLS-虚拟专用网络
  11. Ceres Solver:从入门到使用
  12. pdo_mysql扩展库_MySQL数据库之PDO扩展
  13. Telemetry 基础
  14. 计算机外部设备培训教学计划,【精品】计算机教学计划4篇
  15. Artemis架构解析
  16. Measurement Studio函数ReadMultiSampleAsync
  17. NCBI ORFfinder结果在线可视化
  18. 王码五笔输入教程(转自电脑报)
  19. 无任何改动,调procedur报ora-04068,ora-04065,ora-06508
  20. 【全国数据】全国五级河流水系shp下载

热门文章

  1. android获取手机型号和手机厂商
  2. JEOS开源OA系统
  3. 数据结构——定长串操作
  4. 做好企业微信运营,为什么要使用微盛·企微管家?
  5. 老板运煤问题及解决方案
  6. 动态规划-如何求解金矿问题
  7. WIN 7 MSN 80040154 登录问题
  8. iOS平台epub阅读器推荐
  9. 网络安装solaris10之jumpstart
  10. TKO 2-5 贪心算法之稳定排序2 基本素质2093