2、不设主键也可以,就是不能设为交易明细表的外键,但是要确保商品表的id不能重复,否则2个表一关联查询的话会出现笛卡尔积
3、select * from 商品表,交易明细表
where 商品表.id=交易明细表.id
确保商品表id是唯一的就行
其实推荐你用数据库比较好,excel做这种效率低(还是可以做的,但是当商品数量越来越大时就会出现问题,或者当你录入信息时失误就更可怕了),至于数据库你可以直接用Access,其他也可以,只是用Access可以更快捷的把Excel的数据转为数据库。用Excel代码有点难
Dim xlApp As Excel.Application '定义EXCEL类
Dim xlBook As Excel.Workbook '定义工件簿类
Dim xlsheet As Excel.Worksheet '定义工作表类
Dim UserDataBase(1 To 2000, 1 To 2) As String
Dim UserNum As Integer
Public OpenType As Boolean
Public SumPrice As Single
Private Sub Command1_Click()
UserNum = 1
ExcelFile = App.Path &"\1.xls" '定义Excel文件路径
Dim Price As Single
If Dir(ExcelFile) <>"" Then
Set xlBook = xlApp.Workbooks.Open(ExcelFile) '打开EXCEL工作簿
Do While xlBook.Sheets(1).Range("C" &UserNum) <>""
If Text1.Text = xlBook.Sheets(1).Range("C" &UserNum) Then
Price = CSng(xlBook.Sheets(1).Range("D" &UserNum)) * CSng(Text2.Text)
SumPrice = SumPrice + Price
List1.AddItem "商品名:" &xlBook.Sheets(1).Range("B" &UserNum) &"数量:" &Text2.Text &"价格:" &Price &"元"
Exit Do
End If
UserNum = UserNum + 1
Loop
If xlBook.Sheets(1).Range("C" &UserNum) = "" Then MsgBox "未找到条形码为" &Text1.Text &"的商品"
Else
MsgBox "文件未找到:" &ExcelFile
End If
End Sub
Private Sub Command2_Click()
MsgBox "合计:" &SumPrice &"元"
End Sub
Private Sub Form_Load()
Text2.Text = 1
Command1.Caption = "添加"
Command2.Caption = "合计"
Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
xlApp.DisplayAlerts = False
List1.Clear
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
xlApp.Quit '关闭EXCEL
Set xlApp = Nothing '释放EXCEL对象
End Sub
这段代码可以实现你需要的大部分功能了
两个文本框(1个输入条形码,一个输入数量),两个按钮(一个添加,一个合计),一个列表框(列出商品名,数量,单价。。。)
不想做删除物品的,也不想做重复使用的。
这是我自己写的一个C++ 模拟超市收银系统你可以拿去参考一下,基本功能都已经实现了,你可以做一些小的修改
如有帮助谢谢采纳。
//模拟超市pos机实现销售、检索、库存、结算功能
#include<iostream>
#include<fstream>
#include<string>
#include<stdlib.h>
#include<iomanip>
using namespace std
//定义产品类
class product
{
public:
void put()
void sell()
void search()
void all()
void jiesuan()
void cmd()
private:
int id
string name
int price
int number
}
//类的实现
//入库实现
void product::put()
{
fstream infile
infile.open("txt.txt",ios_base::out|ios_base::app)
if(!infile)
cout<<"无法打开文件"<<endl
cout<<"请输入商品编号"<<endl
cin>>id
cout<<"\n请输入商品名称"<<endl
cin>>name
cout<<"\n请输入商品价格"<<endl
cin>>price
cout<<"\n请输入商品数量"<<endl
cin>>number
infile<<id<<"\t"<<name<<"\t"<<price<<"\t"<<number<<"\t\n"
infile.close()
}
//显示所有记录
void product::all()
{
fstream infile
infile.open("txt.txt",ios_base::in)
if(!infile)
cout<<"无法打开文件"<<endl
cout<<'\t'<<"商品编号"<<'\t'<<"商品名称"<<'\t'<<"商品价格"<<'\t'<<"商品数量\n"
infile>>id>>name>>price>>number
cout<<setw(12)<<id<<setw(16)<<name<<setw(16)<<price<<setw(20)<<number
infile.close()
}
//结算的实现
void product::jiesuan()
{
cout<<"jiesuan"<<endl
}
//查询商品信息
void product::search()
{ product a
fstream infile
infile.open("txt.txt",ios_base::in|ios_base::out)
if(!infile)
cout<<"无法打开文件"<<endl
cout<<'\t'<<"商品编号"<<'\t'<<"商品名称"<<'\t'<<"商品价格"<<'\t'<<"商品数量\n"
infile>>setw(8)>>id>>setw(8)>>name>>setw(3)>>price>>setw(4)>>number
cout<<setw(12)<<id<<setw(16)<<name<<setw(16)<<price<<setw(16)<<number
// infile>>setw(8)>>id>>setw(8)>>name>>setw(3)>>price>>setw(4)>>number
// cout<<setw(12)<<id<<setw(16)<<name<<setw(16)<<price<<setw(20)<<number
infile.close()
}
//销售实现
void product::sell()
{
cout<<"sell"<<endl
}
//查看指令
void product::cmd()
{
cout<<"a,查看库存"<<endl
cout<<"r,入库 *** 作"<<endl
cout<<"j,结算 *** 作"<<endl
cout<<"z,查找商品"<<endl
cout<<"s,销售商品"<<endl
cout<<"c,查看指令"<<endl
cout<<"e,退出系统"<<endl
}
void exit()
{
}
//主函数实现
int main()
{
product one
char ch
cout<<"\t*********************************************************"<<endl
cout<<"\t*\t\t欢迎使用pos模拟系统\t\t\t*\n"<<endl
cout<<"\t*\t\t查看指令请输入c\t\t\t\t*"<<endl
cout<<"\t*********************************************************"<<endl
do{
cout<<"\n请输入条形码或 *** 作指令"<<endl
cin>>ch
switch(ch)
{
case 'a':
one.all()//查看库存
break
case 'r':
one.put()//入库
break
case 'j':
one.jiesuan()//结算
break
case 'z':
one.search()//查找
break
case 's':
one.sell()//销售
break
case 'c':
one.cmd()//查看指令
break
case 'e':
break
default:
cout<<"输入错误,请重新输入!\n"<<endl
break
}
}while(ch!='e')
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)