1. 求一个简单的C语言超市收银
#include "stdio.h"
#include "math.h"
#include "windows.h"
int main()
{
float a[10] = {0};
int i = 0;
float Sum = 0;
for(i = 0 ; i < 10 ; i++)
{
scanf("%f",&a[i]);
Sum += a[i];
}
float aver = Sum / 10;
printf("%f\n",aver);
sleep(10000);
return 1;
}
2. 大一C语言:模拟超市售货系统
给亲些提示帮助吧,商品做一个结构体,包含价格,种类,库存数量,条形码,折扣。
超市的数据是按商品来的,和客人无关喔~超市不需要知道客人的情况,只需要知道商品的情况。
如果非要客人信息,那么可以改成会员制度,那么客人的结构体就是是否会员,购买日期,购买商品品种,购买数量,结账价格。
最后还需要一个购买事件结构体,就是购买总额,结账总额,找零总额。
接下来3大主要数据部分准备完毕,接下来就是过程编程了,就需要模拟一下购物过程来操作以上的3大数据结构就行了。
还有不懂请私信我私聊。
3. C语言编写“超市结账系统” 急急急!!!
#include
<stdio.h>
#include
<fstream>
#include
<iostream>
#include
<string>
#include
<vector>
#include
<assert.h>
using
namespace
std;
//
Item
info
base
class
class
ItemInfo{
public:
ItemInfo(){}
ItemInfo(string
barcode,
string
name,
float
price)
{
this->barcode
=
barcode;
this->name
=
name;
this->price
=
price;
}
ItemInfo(string
barcode)
{
this->barcode
=
barcode;
}
void
Display()
{
cout
<<
barcode
<<"\t"<<name<<"\t"<<price<<
endl;
}
void
Input()
{
cout
<<
"输入条形码:"
<<
endl;
cin
>>
barcode;
cout
<<
"输入名称:"
<<
endl;
cin
>>
name;
cout
<<
"输入价格:"
<<
endl;
cin
>>
price;
}
void
Modify()
{
cout
<<
"输入名称:"
<<
endl;
cin
>>
name;
cout
<<
"输入价格:"
<<
endl;
cin
>>
price;
}
friend
ostream&
operator<<(ostream&
stream,
ItemInfo&
item){
stream
<<
item.barcode
<<'\t'<<
item.price
<<'\t'<<
item.name<<endl;
return
stream;
}
friend
istream&
operator>>(istream&
stream,
ItemInfo&
item){
stream
>>
item.barcode
>>
item.price
>>
item.name;
return
stream;
}
public:
string
barcode;
string
name;
float
price;
};
//
Interface
class
class
DataProvider{
public:
virtual
void
GetFullData(string
barcode,
string&
name,
float&
price)
=
0;
};
//
Purchase
item
class
class
ItemPurchaseInfo
:
public
ItemInfo{
public:
ItemPurchaseInfo():ItemInfo(){}
ItemPurchaseInfo(string
barcode,
int
count=1)
:
ItemInfo(barcode)
{
this->count
=
count;
}
//
Rember
to
call
this
when
barcode
set
void
GetFullData(DataProvider&
aPro)
{
aPro.GetFullData(barcode,
name,
price);
}
void
Input()
{
cout
<<
"输入条形码:"
<<
endl;
cin
>>
barcode;
cout
<<
"输入数量:"
<<
endl;
cin
>>
count;
}
void
Display()
{
cout
<<
barcode
<<"\t"<<name<<"\t"<<price<<"\t"<<count<<
endl;
}
public:
string
barcode;
int
count;
};
//
Item
list
class
class
ItemList
{
public:
ItemList(){items.clear();}
friend
ostream&
operator<<(ostream&
stream,
ItemList&
list){
unsigned
int
count
=
list.items.size();
stream
<<count<<endl;
for(unsigned
int
i(0);i<count;i++)
stream<<
list.items.at(i);
return
stream;
}
friend
istream&
operator>>(istream&
stream,
ItemList&
list){
unsigned
int
count(0);
stream
>>count;
list.items.clear();
for(unsigned
int
i(0);i<count;i++){
ItemInfo
item;
stream
>>
item;
list.items.insert(list.items.end(),
item);
}
return
stream;
}
void
Add(ItemInfo
item)
{
items.insert(items.end(),
item);
}
void
Modify()
{
string
barcode;
cout
<<
"输入条形码:"
<<
endl;
cin
>>
barcode;
for(unsigned
int
i(0);i<items.size();i++)
{
if(items.at(i).barcode
==
barcode
)
{
items.at(i).Modify();
}
}
}
public:
vector<ItemInfo>
items;
};
//
Purchase
item
list
class
class
PurchaseItemList
{
public:
PurchaseItemList(){items.clear();}
void
Add(ItemPurchaseInfo
item)
{items.insert(items.end(),
item);}
public:
vector<ItemPurchaseInfo>
items;
};
//
Implements
the
interface
class
class
Cashier
:
public
DataProvider
{
public:
Cashier()
:
purchase(),
stock(){}
~Cashier(){}
public:
//
User
funcs
void
CheckIn(){
purchase.items.clear();
int
opt(0);
do
{
unsigned
int
i(0);
ItemPurchaseInfo
ipi;
ipi.Input();
purchase.Add(ipi);
cout
<<
"按0退出,任意键继续"
<<
endl;
cin
>>
opt;
}
while(opt);
}
void
CheckOut(){
for(unsigned
int
i(0);
i
<
purchase.items.size();
i++)
{
purchase.items.at(i).GetFullData(
*this
);
}
float
checkin(0);
cout
<<
"输入收款数:"
<<
endl;
cin
>>
checkin;
DisplayList(checkin);
}
void
Display()
{
cout
<<
endl<<"商品清单
"<<
stock.items.size()
<<
endl;
cout
<<"--------------------------------------"
<<
endl;
for(unsigned
int
i(0);i<
stock.items.size();
i++){
stock.items.at(i).Display();
}
cout
<<"--------------------------------------"
<<
endl;
}
void
DisplayList(float
checkin)
{
cout
<<
endl<<"购物小票清单"
<<
endl;
cout
<<"--------------------------------------"
<<
endl;
float
total(0.0);
for(unsigned
int
i(0);
i
<
purchase.items.size();
i++)
{
purchase.items.at(i).Display();
total
+=
purchase.items.at(i).price
*
purchase.items.at(i).count;
}
cout
<<"--------------------------------------"
<<
endl;
cout
<<"货款合计:"<<
total
<<
"元"
<<
endl;
cout
<<"收款数:"<<
checkin
<<
"元"
<<
endl;
float
change(checkin-total);
assert(
change
>=
0.0);
cout
<<"找零:"<<
change
<<
"元"
<<
endl<<
endl;
}
friend
ostream&
operator<<(ostream&
stream,
Cashier&
c){
stream
<<
c.stock;
return
stream;
}
friend
istream&
operator>>(istream&
stream,
Cashier&
c){
c.stock.items.clear();
stream
>>
c.stock;
return
stream;
}
public:
//
interface
func
void
GetFullData(string
barcode,
string&
name,
float&price)
{
//
go
through
stock
and
find
the
item
by
barcode
matching
for(unsigned
int
i(0);
i
<
stock.items.size();
i++)
{
if(stock.items.at(i).barcode
==
barcode)
{
name
=
stock.items.at(i).name;
price
=
stock.items.at(i).price;
}
}
}
public:
PurchaseItemList
purchase;
ItemList
stock;
};
int
main()
{
int
opt(0);
Cashier
cashier;
ifstream
fin("data.bin",
ios::in
|
ios::binary);
fin.seekg(0,
ios::beg);
//cashier.stock.Load(fin);
fin
>>
cashier;
fin.close();
ofstream
fout;
ItemInfo
item;
do{
cout
<<
"1.
新购买"
<<
endl;
cout
<<
"2.
输入新商品信息"
<<
endl;
cout
<<
"3.
修改商品信息"
<<
endl;
cout
<<
"4.
显示商品信息"
<<
endl;
cout
<<
"0.
退出"
<<
endl;
cin
>>
opt;
switch(opt)
{
case
1:
cashier.CheckIn();
cashier.CheckOut();
break;
case
2:
item.Input();
cashier.stock.Add(item);
fout.open("data.bin",
ios::out|
ios::binary);
fout.seekp(0,ios::beg);
fout
<<
cashier;
fout.close();
break;
case
3:
cashier.stock.Modify();
fout.open("data.bin",
ios::out|
ios::app
|
ios::binary);
fout
<<
cashier;
fout.close();
break;
case
4:
cashier.Display();
break;
default:
break;
}
}
while(opt);
return
0;
}
4. 求一个简单的C语言超市收银系统,最好配上流程图
说实话,网上搜的才有可能是最详细,最容易理解,最适合初学者的。
超市系统确实有难有易,你说要简单的,可以,简单到什么程度呢?要注册登陆么?要商品录入么?商品信息有哪些呢,进销存系统是不是都要包含呢?要写文件么?最大多少商品?
这些你都不说,光说做一个系统,跟网上的那些无脑需求有什么区别?
最想不通的是你还要流程图...你搜搜看网络知道里要流程图的有多少?你觉的100积分有人会费时费力的给你搞这个么?
伸手党不可耻,可耻的是不动脑子的伸手党。
5. C语言如何用C-Free编写一个超市收银软件,就是能买东西,完了进行结账
因为C++兼容C语言的,所以在VisualStudio2010新建一个C++项目就可以实现编写一个C语言程序方法如下:1、电脑上安装微软公司的VS2010,可以从dreamspark上下载正版或通过其他途径获得,安装即可。2、打开VS20103、可以通过点击文件--新建--项目建立工程或者点击欢迎页的“新建项目”建立工程。4、弹出对话框,勾选“空项目”建立工程,工程名可任意填英文字符,如project1,其他不用填。5、建立工程后,在右侧有一个“解决方案资源管理器”,找到源文件,右击,再左击添加--新建项--C++文件,这样就在工程project1下建立了一个源文件,名称比如为源.cpp,就可以编辑代码了。如果你已经用其他字符编辑软件写好了C++源程序,也可以右击源文件,左击--现有项,在文件夹中找到你的源程序添加到工程下。6、编辑好了源文件,就可以运行或调试了,初学者是写简单的程序,所以只用一个源文件就行了。点击调试--开始运行(不调试)就直接编译运行,有错误的话系统会提示。7、如果要调试,可以点击调试--逐语句(F10)或逐过程(F11)8、调试前点击调试--窗口(也就是watch)可以选择不同的显示结果,可以显示出变量的变化过程,方便调试。点击“继续”结束调试。
6. C语言编写超市收银系统
这里没有商品信息,需要自己编码添加。
#include <stdio.h>
#include <string.h>
typedef struct ln //会员信息
{
char id[20];//会员账号
char key[20];//会员密码
int sum;//会员积分
struct ln *next;
} member;
struct lm//商品信息
{
int id;//商品编号
char name[50];//商品名称
int stock;//商品库存
} goods[1000];
member *registe(member *t);//注册;
void buy();
int main()
{
member *head=(member *)malloc(sizeof(member));
strcpy(head->id, "0"), strcpy(head->key, "0");//超市管理员
head->next=NULL;
int i, a, n, boo=0;
while(1)
{
printf(" 注册会员请按1:\n");
printf(" 会员直接登录请按2:\n");
printf(" 退出请按0:\n");
scanf("%d", &a);
if(a==0) break;
if(a==1) head=registe(head);
else if(a==2) boo=login(head);
if(boo) break;
}
if(a && boo==1)
{
printf(" 尊贵的会员,您登录成功!\n");
buy();
}
printf(" 已经安全退出\n");
}
member *registe(member *t)//注册
{
printf(" 现在开始会员注册\n\n");
char id[20], key[20];
member *p, *q, *r;
p=t;
while(p->next) p=p->next;//寻找链表中最后一个结点
while(1)
{
printf(" 请输入您注册的账号,密码:\n");
scanf("%s %s", id, key);
q=t;
while(q)//判断该账号是否已经被注册
{
if(strcmp(q->id, id)==0) break;
else q=q->next;
}
if(q==NULL)//账号没有注册
{
r=(member *)malloc(sizeof(member));
r->next=NULL;
p->next=r;
strcpy(r->id, id);
strcpy(r->key, key);
r->sum=1000;//会员默认的积分为1000
break;
}
else printf("该账号已被注册,请重新输入账号,密码\n");
}
printf("恭喜您,已经注册成功。现在可以登录了\n\n");
return t;
}
int login(member *t)//登录
{
printf(" 现在开始登录\n");
member *p;
char id[20], key[20];
int a, boo=0;
while(1)
{
printf(" 请输入您的账号,密码:\n");
scanf("%s", id);
if(strcmp(id, "#")==0) break;
scanf("%s", key);
p=t;
while(p)
{
if(strcmp(p->id, id)==0 && strcmp(p->key, key)==0) break;
else p=p->next;
}
if(p==NULL)
{
printf("对不起,该账号不存在或密码错误。请重新登录\n");
printf(" 退出登录请按#\n");
}
else if(strcmp(id, "0")!=0)
{
boo=1;
break;
}
}
return boo;
}
void buy()
{
char s[20];
int n, i;
while(1)
{
printf(" 请输入商品的编号或者名称:\n");
scanf("%s", s);
if(strcmp(s, "0")==0) break;
if(s[0]>='1' && s[0]<='9')
{
n=atoi(s);
for(i=0; i<1000; i++)
{
if(goods[i].id==n) break;
}
if(i>=1000)
{
printf(" 商品不存在请重新输入,退出请按0\n");
}
else
{
printf(" 您已购买成功。\n");
}
}
else
{
for(i=0; i<1000; i++)
{
if(strcmp(goods[i], s)==0) break;
}
if(i>=1000)
{
printf(" 商品不存在请重新输入,退出请按0\n");
}
else
{
printf(" 您已购买成功。\n");
}
}
}
}
7. C语言编写的收银台结算程序。
//以下是参考代码有相似结构,数据结构自己设计一下。
//如果没参考价值,手下留情,别点不采纳。
#defineMAXPARKINGPOS100
#defineMAXPRICETYPE3
#defineMAXLINE4096
structdetail
{
charnum[MAXLINE];
charname[MAXLINE];
doublepricePerHour;
time_tstart;
time_tend;
doubleperiod;
doublecost;
};
staticintcurrentParkingNum=0;
staticstructdetaildetailBuf[MAXPARKINGPOS];
staticdoublepriceBuf[MAXPRICETYPE]={11.0,22.0,33.0};
intmain(void){
charbuf[MAXLINE];
structdetail*myParking;
intiChoice,leavingIndex,i,numEexisted;
structtm*begin,*end;
while(true){
selectService:
printf("Servicetype,whatisyourchoice? 1.park 2.leave 3.exit ");
gets(buf);
if(strcmp(buf,"3")==0){
return0;
}
if(strcmp(buf,"1")==0){
//park
if(currentParkingNum==MAXPARKINGPOS){
printf("Sorry,notempty! ");
continue;
}
myParking=detailBuf+currentParkingNum;
printf("yourname: ");
gets(myParking->name);
printf("yourparkingnum: ");
gets(myParking->num);
numEexisted=0;
for(i=0;i<currentParkingNum;i++){
if(strcmp(detailBuf[i].num,myParking->num)==0){
numEexisted=1;
break;
}
}
if(numEexisted!=0){
printf("Thecar%sisin ",myParking->num);
gotoselectService;
}
selectPrice:
printf("Servicecost,whatisyourchoice? ");
for(inti=0;i<MAXPRICETYPE;i++){
printf("%d.$%.2fperhour ",i+1,priceBuf[i]);
}
gets(buf);
iChoice=atoi(buf);
if(!(iChoice>=1&&iChoice<=MAXPRICETYPE)){
printf("Yourchoiceisincorrect! ");
gotoselectPrice;
}
myParking->pricePerHour=priceBuf[iChoice-1];
time(&myParking->start);
currentParkingNum++;
printf("Parckingok! ");
}elseif(strcmp(buf,"2")==0){
//leave
printf("yourparkingnum: ");
gets(buf);
myParking=NULL;
for(i=0;i<currentParkingNum;i++){
if(strcmp(detailBuf[i].num,buf)==0){
myParking=&detailBuf[i];
leavingIndex=i;
break;
}
}
if(myParking==NULL){
printf("Cannotfindyourcar! ");
continue;
}
myParking->end=time(&myParking->end);
myParking->period=difftime(myParking->end,myParking->start);
myParking->cost=myParking->period/3600.0*myParking->pricePerHour;
printf("******CostDetails****** ");
printf("name:%s ",myParking->name);
printf("number:%s ",myParking->num);
printf("price:%.2f ",myParking->pricePerHour);
begin=localtime(&myParking->start);
strftime(buf,sizeof(buf),"%Y-%m-%d%H:%M:%S",begin);
printf("begin:%s ",buf);
end=localtime(&myParking->end);
strftime(buf,sizeof(buf),"%Y-%m-%d%H:%M:%S",end);
printf("end:%s ",buf);
printf("period:%.2fhour(s) ",myParking->period/3600.0);
printf("cost:$%.2f ",myParking->cost);
printf("service:$%.2fperhour ",myParking->pricePerHour);
for(i=leavingIndex;i<currentParkingNum;i++){
if(i+1<currentParkingNum){
detailBuf[i]=detailBuf[i+1];
}
}
detailBuf[currentParkingNum-1].cost=0.0;
detailBuf[currentParkingNum-1].end=0;
detailBuf[currentParkingNum-1].name[0]='