Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2350543
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:07:18

//---------------------------------------------------------------------------

/*程序包括2个TEdit控件,5个TLabel控件,2个TButton控件。

Edit1中输入输入产品编号,Edit2中输入购买数量。
Label1~Label3是一些说明,Label4输出对应产品编号的信息,Label5输出价格。
Button1根据编号查询商品信息,Button2根据编号和数量计算总价。

商品信息以字符的形式存储在路径为程序所在路径,名为file.txt的文件中,文件格式为:
商品编号,商品名称,生产商,单价
其中的","为分隔符,不可以省略。

程序没有考虑当不存在这个文件时的处理情况,运行前要确保文件存在并且格式正确。

程序没有考虑当输入购买数量不是数字的情况,运行时要确保输入的格式为数字形式。
*/
#include
#pragma hdrstop
#include
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
bool find=false;
char filename[20]="file.txt";
String str;
char Buffer[255];
ifstream fin(filename);
str=Edit1->Text+'\0';
while(str[1]&&!fin.eof())
{
    fin.getline(Buffer,255);
    find=false;
    for(i=0;Buffer[i]!=',';i++)
    {
        if(str[i+1]!=Buffer[i])
            break;
        if(str[i+1]==Buffer[i]&&Buffer[i+1]==','&&str[i+2]=='\0')
        {
            Label4->Caption=Buffer;
            find=true;
            break;
        }
    }
    if(find)
        break;
}
if(!find)
    Label4->Caption="无此商品";
fin.close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int i,j,k;
bool find;
char filename[20]="file.txt";
String str,str2;
String price="The Begin of The Price";
char Buffer[255];
float total;
ifstream fin(filename);
str=Edit1->Text+'\0';
str2=Edit2->Text+'\0';
while(str[1]&&str2[1]&&!fin.eof())
{
    fin.getline(Buffer,255);
    find=false;
    for(i=0;Buffer[i]!=',';i++)
    {
        if(str[i+1]!=Buffer[i])
            break;
        if(str[i+1]==Buffer[i]&&Buffer[i+1]==','&&str[i+2]=='\0')
        {
            Label4->Caption=Buffer;
            find=true;
            break;
        }
    }
    if(find)
    {
        k=0;
        for(i=0;;i++)
        {
            if(Buffer[i]==',')
                k++;
            if(k==3)
            {
                i++;
                for(j=1;Buffer[i];i++,j++)
                    price[j]=Buffer[i];
                price[j]='\0';
                total=StrToInt(Edit2->Text)*StrToFloat(price);
                break;
            }
        }
        Label5->Caption=total;
        break;
    }
}
if(!find)
{
    Label4->Caption="";
    Label5->Caption=0;
}
fin.close();
}
//---------------------------------------------------------------------------


--------------------next---------------------

阅读(998) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~