⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 w_main.cpp

📁 自己使用BCB写的 一个随机抽取 电话号码 的 小程序 呵呵 简单了些
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "w_main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm_main *Form_main;
//---------------------------------------------------------------------------
__fastcall TForm_main::TForm_main(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
#include <stdio.h>
#define BUFFER_LENGTH 512
#define MAX_LINES BUFFER_LENGTH*10
int whole_num = 0 ;
int random_num = 0;
int zj_num = 0;
char one_line[BUFFER_LENGTH];
AnsiString lines_src[MAX_LINES];
AnsiString lines_skip[MAX_LINES];

/***    从文件中读取一行        ***/
static void read_line(FILE * file)
{
        int i;
        memset( one_line, 0, BUFFER_LENGTH);
        for( i = 0;!feof(file) && i < BUFFER_LENGTH - 1;)
        {
                fread(&one_line[i],1,1,file);
                ++i;
                if(one_line[i - 1]=='\n')
                        break;
        }
}

static void delete_dot()
{

         //去掉重复号码
        for(int i = 0 ; i < whole_num ;i++)
        {
                for(int j = i+1 ; j < whole_num ;j++)
                {
                          if(lines_src[i].SubString(1,11) ==  lines_src[j].SubString(1,11)     )
                          {

                                //从候选列中删除
                                for(int k = j;lines_src[k]!= NULL;++k)
                                        lines_src[k] = lines_src[k + 1]   ;
                                //lines_src[k] = NULL;
                                whole_num--;
                          }

                }
        }


         //去掉中将号码
        for(int i = 0 ; i < zj_num ;i++)
        {
                for(int j = 0 ; j < whole_num ;j++)
                {
                          if( lines_skip[i].SubString(1,11)  ==  lines_src[j].SubString(1,11)   )
                          {

                                //从候选列中删除
                                for(int k = j;lines_src[k]!= NULL;++k)
                                        lines_src[k] = lines_src[k + 1]   ;
                                //lines_src[k] = NULL;
                                whole_num--;
                          }

                }
        }
}

void __fastcall TForm_main::FormCreate(TObject *Sender)
{
        for(int i = 0 ;i < MAX_LINES; i++)
        {
                lines_src[i] = NULL;
                lines_skip[i] = NULL;
        }

        FILE * ffile;
        ffile = fopen("抽奖号码.txt","r");
        for(whole_num = 0;!feof(ffile);)
        {
                read_line(ffile);
                if(strlen(one_line) > 11)
                {
                        lines_src[whole_num] = one_line;
                        whole_num ++;
                }
        }
        fclose(ffile);

        ffile = fopen("中奖号码.txt","r");
        for(zj_num = 0;!feof(ffile);)
        {
                read_line(ffile);
                if(strlen(one_line) > 11)
                {
                        lines_skip[zj_num] = one_line;
                        zj_num ++;
                }
        }
        fclose(ffile);

        //剃掉已经中将de号码
        for(int i = 0 ;i < 7;i++)
                delete_dot();

}
//---------------------------------------------------------------------------

void __fastcall TForm_main::ButtonClick(TObject *Sender)
{
        if(Timer1->Enabled== false){
                RichEdit1->Text="";
                RichEdit2->Text="";
                Button->Caption="停止";
                Timer1->Enabled = true;
        }
        else{
                Timer1->Enabled= false;
                Button->Caption="开始";
                //找出姓名
                RichEdit1->Text = lines_src[random_num].SubString(12,BUFFER_LENGTH);

                //纪录到文件

                FILE * fffile;
                fffile = fopen("中奖号码.txt","a+");
                if(lines_src[random_num] != NULL)
                        fwrite(lines_src[random_num].c_str(),lines_src[random_num].Length(),1,fffile);

                fclose(fffile);

                //从候选列中删除
                for(int i = random_num;lines_src[i]!= NULL;i++)
                        lines_src[i] = lines_src[i + 1]   ;
                whole_num --;

        }
}
//---------------------------------------------------------------------------

void __fastcall TForm_main::Timer1Timer(TObject *Sender)
{
        if(whole_num < 1)
                return;
        //随机选择
        random_num = random(whole_num);
        //号码显示
        RichEdit2->Text = lines_src[random_num].SubString(1,11);
}
//---------------------------------------------------------------------------

void __fastcall TForm_main::FormShow(TObject *Sender)
{
           Button->SetFocus();
           Image_left->Picture->LoadFromFile("left.bmp");
           Image_right->Picture->LoadFromFile("right.bmp");
           Image_top->Picture->LoadFromFile("top.bmp");
           Image_bottom->Picture->LoadFromFile("bottom.bmp");
}
//---------------------------------------------------------------------------





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -