//---------------------------------------------------------------------------
/*程序包括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) |