注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mister.Hu(巷里人家)

Go abroad!

 
 
 

日志

 
 
关于我

A campus photograph palyer,an enthusiastic reader,a solitary writer,a future traffic engineer.

网易考拉推荐

C++强化【10】  

2015-09-06 11:13:17|  分类: Senior |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

实例104:验证码

#include <iostream>

#include <stdlib.h>

#include <time.h>

using namespace std;

 

void generate_lower()

{

        char lower;

        int lower_index;

        lower_index=1+(int)(26.0*rand()/(RAND_MAX+1.0));

        lower=char(lower_index+96);

        cout<<lower;

}

void generate_upper()

{

        char upper;

        int upper_index;

        upper_index=1+(int)(26.0*rand()/(RAND_MAX+1.0));

        upper=char(64+upper_index);

        cout<<upper;

}

void generate_number()

{

        int number;

        number=0+(int)(9.0*rand()/(RAND_MAX+0.0));

        cout<<number;

}

int main()

{

        srand((int)time(0));

        int num;

        int upper;

        int lower;

        int number;

        while(1)

        {

                 cout<<"请输入验证码的位数:";

                 cin>>num;

                 cout<<"在这"<<num<<"位验证码中,需要大写字母、小写字母、数字各几位,请输入";

                 cin>>upper>>lower>>number;

                while(upper)

                 {

                         generate_upper();

                         upper--;

                 }

                 while(lower)

                 {

                         generate_lower();

                         lower--;

                 }

                 while(number)

                 {

                         generate_number();

                         number--;

                 }

                 cout<<endl<<"是否继续产生随机验证码?"<<endl;

                 cout<<"1. 2."<<endl;

                 int y;

                 cin>>y;

                 cout<<endl;

                 if(y==1)

                 {}

                 if(y==2)

                 {

                         cout<<"退出系统"<<endl;

                         break;

                 }

        }

        return 0;

}

注: ASII码中,大写字母对应着65-90,小写字母对应着97-122,数字对应着31-39. 1+(int)(26.0*rand()/(RAND_MAX+1.0));用于产生1-26之间的随机整数。Char(num)可输出num对应的字符。

 

实例107:互动式程序的基本框架

#include <iostream>

using namespace std;

 

void fun1()

{cout<<"功能1实现"<<endl;}

void fun2()

{cout<<"功能2实现"<<endl;}

void fun3()

{cout<<"功能3实现"<<endl;}

void function(int a)

{

        switch(a)

        {

        case 1:

                 fun1();

                 break;

        case 2:

                 fun2();

                 break;

        case 3:

                 fun3();

                 break;

        default:

                break;

        }

}

void main()

{

        int choice;

        cout<<"本实例实现最基本的互动式程序,"<<"\n";

        cout<<"可实现的功能有3种:1-功能12-功能23-功能3\n";      

        bool flag=true;

        while(flag==true)

        {

                 cout<<"请输入功能编号:"<<endl;

                 cin>>choice;

                 function(choice);

                 cout<<"是否继续?0-是,1-";

                 int x;

                 cin>>x;

                 if(x==0)

                 {}

                 else if(x==1)

                 {

                         flag=false;

                         cout<<"退出成功"<<endl;

                 }

        }

}

注:此为实现互动式程序的基本框架,可根据具体情况进行更改。实际上还可以简化去掉几个函数。

 

实例108:设计一个数据查询系统

#include <iostream>

using namespace std;

 

struct ticket

{

        char train_number[5];//车次

        char train_name[50];//从哪儿到哪儿

        int  yingwo_num;//硬卧票数

        float yingwo_cash;//硬卧钱

        int yingzuo_num;//硬座票数

        float yingzuo_cash;//硬座钱

};

ticket Ticket[5];//数据库目前只存5条项目

void init()

{

        strcpy(Ticket[0].train_number, "T56");

        strcpy(Ticket[0].train_name,"西安-北京西");

        Ticket[0].yingwo_num=100;

        Ticket[0].yingwo_cash=263.5;

        Ticket[0].yingzuo_num=200;

        Ticket[0].yingzuo_cash=148.5;

 

        strcpy(Ticket[1].train_number, "K126");

        strcpy(Ticket[1].train_name,"西安-天津");

        Ticket[1].yingwo_num=60;

        Ticket[1].yingwo_cash=289.5;

        Ticket[1].yingzuo_num=100;

        Ticket[1].yingzuo_cash=163.5;

 

        strcpy(Ticket[2].train_number, "T166");

        strcpy(Ticket[2].train_name,"西安-上海");

        Ticket[2].yingwo_num=150;

        Ticket[2].yingwo_cash=321.5;

        Ticket[2].yingzuo_num=240;

        Ticket[2].yingzuo_cash=180.5;

 

        strcpy(Ticket[3].train_number, "T266");

        strcpy(Ticket[3].train_name,"西安-广州");

        Ticket[3].yingwo_num=50;

        Ticket[3].yingwo_cash=414;

        Ticket[3].yingzuo_num=40;

        Ticket[3].yingzuo_cash=236;

 

        strcpy(Ticket[4].train_number, "T114");

        strcpy(Ticket[4].train_name,"西安-南京");

        Ticket[4].yingwo_num=10;

        Ticket[4].yingwo_cash=270.5;

        Ticket[4].yingzuo_num=20;

        Ticket[4].yingzuo_cash=152.5;

}

void query()

{

        char checi[5];

        bool flag=true;

        bool whether=false;//是否有

        while(flag==true)

        {

                 cout<<"请输入要查询的车次:";

                 cin>>checi;

                 for(int i=0;i<5;i++)

                 {

                         if(strcmp(Ticket[i].train_number,checi)==0)

                         {

                                  whether=true;

                                  cout<<Ticket[i].train_number<<" "<<Ticket[i].train_name;

                                  cout<<" "<<Ticket[i].yingwo_num<<" "<<Ticket[i].yingwo_cash;

                                  cout<<" "<<Ticket[i].yingzuo_num<<" "<<Ticket[i].yingzuo_cash<<endl;

                                  i=5;

                         }

                         else

                                  whether=false;

                 }

                 if(whether==true)//

                 {}

                 else

                 {cout<<"该车次在系统中没有相应信息,请检查后输入"<<endl;}

                 cout<<"是否继续查询?0-否,1-";

                 int x;

                 cin>>x;

                 if(x==0)

                 {

                         flag=false;

                         cout<<"退出查询系统"<<endl;

                 }

                 else if(x==1)

                 {}

        }

}

int main()

{

        cout<<"------------------------火车票当日售卖查询系统---------------------"<<endl;

        cout<<"现存火车票信息只有从西安发的列车,";

        cout<<"目的地只有北京西、上海、天津、广州和南京。"<<endl;

        cout<<"请前往上述5个目的地的旅客进行查询"<<endl;

        cout<<"车次-------始地-目的地-------硬卧剩票";

        cout<<"------硬卧价钱------硬座剩票------硬座价钱"<<endl;

        init();//初始化信息

        query();//查询

        return 0;

}

注:这个程序看似长,其实很简单。依然是互动的框架结构,里面定义了一个结构和两个函数。复习一下strcmp(Ticket[i].train_number,checi)==0,表示两个字符串相比较,如果相等,则返回0.

实例109:学生成绩统计

#include <iostream>

using namespace std;

 

void cal_num(double *a, int *b, int number)

{

        for(int i=0;i<number;i++)

        {

                 if(a[i]<60)//不及格

                         b[0]++;

                 else if(a[i]>=60 && a[i]<70)

                         b[1]++;

                 else if(a[i]>=70 && a[i]<80)

                         b[2]++;

                 else if(a[i]>=80 && a[i]<90)

                         b[3]++;

                 else//优秀

                         b[4]++;

        }

}

void main()

{

        double math_score[35];//班级有35个学生

        int num[5]={0};//5个等级的人数

        cout<<"请输入35个学生的成绩:"<<endl;

        for(int i=0;i<35;i++)

                 cin>>math_score[i];

        cal_num(math_score,num,35);

        cout<<"<60分的人数:"<<num[0]<<endl;

        cout<<"介于60~70分的人数:"<<num[1]<<endl;

        cout<<"介于70~80分的人数:"<<num[2]<<endl;

        cout<<"介于80~90分的人数:"<<num[3]<<endl;

        cout<<">90分的人数:"<<num[4]<<endl;

}

  评论这张
 
阅读(41)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016