當前位置:編程學習大全網 - 編程語言 - C++程序設計

C++程序設計

辛苦大半天了:全部貼出

/*?filename:makefile1.c

function:

Find?Number.

Declare?an?array?of?10?integer?elements.?

Use?'srand',?'rand'?and?'ctime'?functions?to?generate?random?numbers?

from?1?to?99?and?fill?the?array.?

The?numbers?may?repeat.?Print?the?selected?numbers.

Ask?the?user?to?input?a?number?between?1-99.?

Check?to?see?if?the?number?matches?any?of?the?selected?numbers.?

Print?the?user?input?number?and?whether?there?is?or?is?not?a?match.

Allow?the?user?to?repeat?the?search?until?a?0?is?input.

*/?

/*?

編程思路:1、先定義已知數值的數組,編寫出該數組的查詢程序

2、再編寫生成隨機數組的程序模塊

3、將前兩組程序連接起來,調試完善程序

我的郵箱:zhanbo200541208@126.com

2010.3.6

*/

#include?<stdio.h>?

#include?<time.h>

#define?N?10

/********************測試函數*********************************/?

int?check(int?my_input,?int?*my_array,?int?array_s)

{

int?i;?

int?r;

for(i=0;i<array_s;++i)

{

if(my_input?==?my_array[i])

return?r?=?1;

else?

r?=?0;

}

return?r;

}

/*************************************************************/?

/**********************主函數*********************************/?

void?main()

{

int?check(int?my_input,?int?*my_array,?int?array_s);

int?my_array[N];?

int?array_s?=?N;

int?my_input;

int?i,?temp;

/*****************產生隨機數組****************************/

time_t?t;

srand((unsigned)?time(&t));?

for(i=0;?i<10;?i++)

{?

while((temp=rand()%100)==0)

my_array[i]?=?temp;

}?

/*以下代碼可除去,不影響程序功能*/

printf("In?order?to?check?the?answer?conveniently\n");

printf("The?numbers?will?be?shown?here:\n");?

for(i=0;?i<10;?i++)

{?

printf("%d?",?my_array[i]);

}?

printf("\n\n");

/*********************************************************/?

/****************測試輸入數據*****************************/?

printf("Please?input?your?numbers(1-99):\n");

printf("Input?0?to?quit\n");?

scanf("%d",?&my_input);?

while(my_input)?{

if(check(my_input,?my_array,?array_s))

printf("%d?is?a?match.\n",?my_input);?

else

printf("%d?is?not?a?match.\n",?my_input);?

getchar();?/*這裏簡單的使用getchar()吃掉違法字符*/

scanf("%d",?&my_input);?

}?

/*********************************************************/?

}?

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//第二個工程,分別放在三個文件中。註意?filename

//?filename:main.cpp?

//我的郵箱:zhanbo200541208@126.com

//2010.3.6

#include?"helloworld.h"

#include<iostream>

using?namespace?std;

int?main(){

int?wins[N];

int?my_input;

int?index;?//在程序中index值為?0-10,為0表示沒有待查詢的值,其他表索引值?

int?yes?=?1;

bool?quit;

while(yes){?

draw(wins);

entry(wins,?my_input,?index,?quit);

if(quit==true)//quit為真則退出程序

break;

printOut(wins,?my_input,?index);

cout<<endl;

}

system("pause");

return?0;

}

/*?filename:helloworld.h?

*/

#ifndef?_HELLOWORLD_H

#define?_HELLOWORLD_H

#include?<iostream>

#define?N?10

void?draw(int?*wins);

void?entry(int?*wins,?int?&my_input,?int?&index,?bool?&quit);

int?check(int?wins[],?int?temp);//本函數在程序中實現了代碼重用?

//check返回值為0,表示沒有被查值

//check為1-10,表示索引值

//我沒有把check放在主函數中,按照題目的意思,我把它放在了entry中

//draw,也用到了check,用於檢查重復隨機數

void?printOut(int?*wins,?int?&my_input,?int?&index);

#endif

/*?filename:helloworld.cpp?

*/

#include?"helloworld.h"?//note?the?code?is?somewhat?silly

#include?<iostream>?//addition?code?in?blue

#include?<time.h>

using?namespace?std;

void?draw(int?*wins)?{?

int?i,?temp;

time_t?t;

srand((unsigned)?time(&t));?

for(i=0;?i<10;?i++)

{?

temp?=?rand()%100+1;?//輸出從1到100的隨機數?

while(check(wins,?temp))?//如果有相同值,則繼續產生隨機數?

temp?=?rand()%100+1;?

wins[i]?=?temp;?

}?

}

void?entry(int?*wins,?int?&my_input,?int?&index,?bool?&quit){?

cout<<"Input?0?when?you?want?to?quit:"<<endl;?

cout<<"Please?input?your?numbers(1-100):"<<endl;

cin>>my_input;?

while(my_input?<?0?||?my_input?>?100?){?

cout<<"Please?input?again."<<endl;

cin.clear();//臨時抄來的,不太清楚原理,能用?

cin.sync();?//清空數據流?

cin>>my_input;?

}

if(my_input?==?0)//如果輸入?0?,給quit賦值為真?

quit?=?true;

index?=?check(wins,?my_input);?//把檢查結果(0-10)賦給index

}

int?check(int?wins[],?int?temp){?

int?i;?

int?r;

for(i=0;i<N;++i)

{

if(wins[i]?==?temp)

return?r?=?i+1;//返回temp在my_array中的索引值?

else?

r?=?0;

}

return?r;?

}

void?printOut(int?*wins,?int?&my_input,?int?&index){?

int?i;

cout<<"The?selected?numbers?are:"<<endl<<"";

for(i=0;?i<10;?i++)

{?

cout<<wins[i]<<"?";

}

cout<<endl;?

cout<<"Your?input?number?is:"<<my_input<<endl;

if(index){

cout<<"Congratulations!?You?won?the?lottery!"<<endl;

cout<<"The?index?of?the?number?you?input?is:"<<index<<endl;

}

else

cout<<"I'm?sorry!?There's?not?your?input?number!"<<endl

<<"Please?try?again!"<<endl;

}

  • 上一篇:如何用Verilog HDL語言實現Viterbi算法?
  • 下一篇:陳安之瘋狂的勵誌故事及感悟視頻演講稿PPT分享
  • copyright 2024編程學習大全網