数据库设计:超市收银员管理系统有两张表,一张商品表,一张交易明细表。

数据库设计:超市收银员管理系统有两张表,一张商品表,一张交易明细表。,第1张

1、商品表中得id不设为主键的话,是不能设为交易明细表外键的

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6772295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存