您的位置:

商品结账c语言,c语言结账系统

本文目录一览:

用c语言制作商店商品管理系统

#include stdio.h

#include conio.h

#include bios.h

#include dos.h

#include malloc.h

#define NULL 0

#define LEN sizeof(struct mcd)

struct data /*声明一个日期的结构体类型*/

{

int year;

int month;

int day;

};

struct mcd /*声明有关商品信息的结构体类型*/

{

int code; /*编 号*/

char name[12]; /*品 名*/

long price; /*单 价*/

int num; /*数 量*/

char place[20]; /*产 地*/

struct data putdate; /*入库时间*/

struct data selldate; /*销售时间*/

struct mcd * next; /*运用指针处理链表*/

};

int n; /*记录链表有几条数据*/

struct mcd *head; /*声明链表头的指针*/

creat() /*输入商品信息的函数*/

{

struct mcd *p1,*p2;

n=0;

p1=p2=(struct mcd *)malloc(LEN); /*开辟一个新单元存放信息*/

head=p1;

loop: {

clrscr();

printf("商品录入系统\n");

printf("录入号:%d\n",n+1);

printf("编 码:");

scanf("%d",p1-code);

printf("品 名:");

scanf("%s",p1-name);

printf("单 价:");

scanf("%ld",p1-price);

printf("数 量:");

scanf("%d",p1-num);

printf("产 地:");

scanf("%s",p1-place);

printf("入库时间:");

scanf("%d-%d-%d",p1-putdate.year,p1-putdate.month,p1-putdate.day);

}

while(p1-num!=0)

{

n=n+1;

if(n==1)head=p1;

else p2-next=p1;

p2=p1;

p1=(struct mcd *)malloc(LEN);

goto loop;

}

p2-next=NULL;

main();

}

print() /*输出数据列表的函数*/

{

int m=0;

struct mcd *p;

clrscr();

printf("编 号||品 名||单 价||数 量|| 产 地 ||入 库 时 间\n");

p=head;

if(head!=NULL)

do

{

printf("%-10d%-14s%-12ld%-10d%-22s%-4d-%-2d-%-2d\n",p-code,p-name,p-price,p-num,p-place,p-putdate.year,p-putdate.month,p-putdate.day);

p=p-next;

m=m+1;

if(m%23==0){gotoxy(10,25);printf("按任意键继续.");getch();}

}while(p!=NULL);

getch();

main();

}

sell()

{

int code,m=3,ch;

long sum=0;

struct mcd *p1;

struct date today;

getdate(today);

clrscr();

printf("商品销售系统\n");

printf("编 号||||品 名|||| 产 地 ||||单 价(元)||||出 售 时 间\n");

loop:

do{

gotoxy(23,25);

printf("按任意键继续,F2结帐,ESC键退出");

ch=bioskey(0);

}while(0);

switch(ch)

{

case 15360:{

if(sum==0)

{

gotoxy(1,m);printf("还没有购买商品!");

getch();

sell();

break;

}

else {

gotoxy(1,m);

printf("------------------------------------------------------------------------------");

gotoxy(47,m+1);

printf("总价: %-12ld元",sum);

getch();

main();

break;

}

}

case 283:{main();break;}

default:

{

gotoxy(23,25);

printf("请输入商品编码,会显示商品信息");

gotoxy(1,m);

scanf("%d",code);

if(head==NULL)

{

printf("你还没有进货.");

getch();

main();

break;

}

p1=head;

while(code!=p1-codep1-next!=NULL)

{p1=p1-next;}

if(code==p1-code)

{

gotoxy(13,m);

printf("%-16s%-24s%-16ld%4d-%2d-%2d",p1-name,p1-place,p1-price,today.da_year,today.da_mon,today.da_day);

m=m+1;

p1-num=p1-num-1;

sum=sum+p1-price;

}

}

goto loop;

}

}

go()

{

int ch;

clrscr();

printf("请问你要进行什么操作?\n1,插入;2,删除;3,什么也不做;\n");

loop:

do{

ch=bioskey(0);

}while(0);

switch(ch)

{

case 561:insert();break;

case 818:del();break;

case 1075:main();break;

case 283:break;

default:{gotoxy(1,3);printf("请按数字键选择!");goto loop;}

}

getch();

main();

}

insert()

{

struct mcd *p0,*p1,*p2;

p0=p1=p2=(struct mcd*)malloc(LEN);

p1=head;

clrscr();

printf("请输入要插入的商品的信息:\n");

printf("编 码:");

scanf("%d",p0-code);

printf("品 名:");

scanf("%s",p0-name);

printf("单 价:");

scanf("%ld",p0-price);

printf("数 量:");

scanf("%d",p0-num);

printf("产 地:");

scanf("%s",p0-place);

printf("入库时间:");

scanf("%d-%d-%d",p0-putdate.year,p0-putdate.month,p0-putdate.day);

if(head==NULL)

{

head=p0;

p0-next=NULL;

}

else

{

while((p0-codep1-code)(p1-next!=NULL))

{

p2=p1;

p1=p1-next;

}

if(p0-code=p1-code)

{

if(head==p1)head=p0;

else p2-next=p0;

p0-next=p1;

}

else

{

p1-next=p0;p0-next=NULL;

}

}

n=n+1;

print();

}

del()

{

int code;

struct mcd *p1,*p2;

clrscr();

printf("请输入要删除商品的编号:");

scanf("%d",code);

if(head==NULL)

{

printf("你还没有进货.");

getch();

main();

}

p1=head;

while(code!=p1-codep1-next!=NULL)

{

p2=p1;

p1=p1-next;

}

if(code==p1-code)

{

if(code==head)head=p1-next;

else p2-next=p1-next;

n=n-1;

print();

}

else

{

printf("找不到这条商品信息.");

getch();

print();

}

}

main()

{

do{

clrscr();

printf(" . : : \n");

printf(" '. :'''''''': : : :'''':'''':\n");

printf(" '. : : :'''''' :'''''' : : :\n");

printf(" ................ : : :', :', ''''':''''': : :\n");

printf(" '. .' : : : ', : ', : :....:....:\n");

printf(" '. .' : : ,' ,' : : : :\n");

printf(" '.' : : ', : : : :\n");

printf(".........:........... :........: : ', : :....:....:\n");

printf(" ............... :''''''''''''''': '''':'''' : \n");

printf(" : , , : :'''''': :'''''': ,' : : \n");

printf(" : , , : : : : : :''''''''': : ,' : \n");

printf(" : , , : : : : : : : : ,' ....:.... \n");

printf(" :, :''''''': : : : : : : : :,' : \n");

printf(" : : : : : : : : :'''''''''' ,' : \n");

printf(" : : : : : : : : :.......... ,' : \n");

printf(" : :.......: : : : : : : : ' : \n");

printf(" : : : : : : : : ......:.....\n");

printf(" : ..: :......: :......: :.........: \n");

gotoxy(60,19);

printf("赵飞宇制造 V1.0");

gotoxy(10,21);

printf("1,销售系统;2,进货系统;3,查看列表;4,插入删除;5,销售盈亏;6,帮助文档");

gotoxy(32,24);

printf("按ESC键退出");

key();

}while(0);

}

key()

{

int ch;

loop:

do{

ch=bioskey(0);

}while(0);

switch(ch)

{

case 561:sell();break;

case 818:creat();break;

case 1075:print();break;

case 1332:go();break;

case 283:break;

default:

{

gotoxy(30,22);

printf("请按数字键选择!");

goto loop;

}

}

}

运用c语言程序写一个超市收银情况

#include stdio.h

#include stdlib.h

#define DIS 0.7

typedef struct buyrecond{

int id; //序号

char name[20]; //商品名称

float unitprice; //单价

int num; //数量

} BuyRecond;

typedef struct buylist{

BuyRecond *list;

int maxSize;

int size;

} BuyList;

//建立线性表

BuyList *createList(int maxsize);

void destroyList(BuyList *list);

//向表内添加元素

int appendRecond(BuyList *list,BuyRecond *recond);

//显示线性表

void displayList(BuyList *list);

int main()

{

int e;

BuyList *buyTab;

buyTab = createList(3);

e=1;

while(e!=0){

BuyRecond rec;

printf("输入第%d种商品名称(输入-1结束输入):",e);

gets(rec.name);

if(rec.name[0]=='-' rec.name[1]=='1' rec.name[2]=='\0')

break;

printf("输入第%d种商品单价:",e);

scanf("%f",rec.unitprice);

printf("输入第%d种商品数量:",e);

scanf("%d",rec.num);

getchar();

if(!appendRecond(buyTab,rec))

break;

}

displayList(buyTab);

destroyList(buyTab);

getchar();

return 0;

}

BuyList *createList(int maxsize)

{

BuyList *pl = (BuyList *)malloc( sizeof(BuyList) );

pl-list = (BuyRecond *)calloc(maxsize, sizeof(BuyRecond));

pl-size = 0;

pl-maxSize = maxsize;

return pl;

}

void destroyList(BuyList *list)

{

free( list-list );

free( list );

}

int appendRecond(BuyList *list,BuyRecond *recond)

{

if(list-size == list-maxSize){

BuyRecond *p = (BuyRecond *)calloc(list-size * 2, sizeof(BuyRecond));

if(p==NULL){

printf("内存分配失败!无法添加元素。\n");

return 0;

}

memcpy(p, list-list, list-size*sizeof(BuyRecond));

list-maxSize = list-size * 2;

free(list-list);

list-list = p;

}

recond-id=list-size+1;

list-list[list-size]=*recond;

list-size++;

return 1;

}

void displayList(BuyList *list)

{

int i;

float x;

printf("\n%-4s %c%-20s %10s %10s %10s %10s\n",

"项次",'|',"商品名称","单价","数量","小计","优惠价");

for(i=0;ilist-size;++i){

x=(list-list[i].num)*(list-list[i].unitprice);

printf("%-4d %c%-20s %10.0f %10d %10.2f %10.2f\n",

list-list[i].id,'|',list-list[i].name,

list-list[i].unitprice,list-list[i].num,

x,x*DIS);

}

printf("总计(%d项)\n",list-size);

}

大一C语言:模拟超市售货系统

给亲些提示帮助吧,商品做一个结构体,包含价格,种类,库存数量,条形码,折扣。

超市的数据是按商品来的,和客人无关喔~超市不需要知道客人的情况,只需要知道商品的情况。

如果非要客人信息,那么可以改成会员制度,那么客人的结构体就是是否会员,购买日期,购买商品品种,购买数量,结账价格。

最后还需要一个购买事件结构体,就是购买总额,结账总额,找零总额。

接下来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.nameendl;

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

countendl;

for(unsigned

int

i(0);icount;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);icount;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);iitems.size();i++)

{

if(items.at(i).barcode

==

barcode

)

{

items.at(i).Modify();

}

}

}

public:

vectorItemInfo

items;

};

//

Purchase

item

list

class

class

PurchaseItemList

{

public:

PurchaseItemList(){items.clear();}

void

Add(ItemPurchaseInfo

item)

{items.insert(items.end(),

item);}

public:

vectorItemPurchaseInfo

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,

floatprice)

{

//

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;

}

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)可以选择不同的显示结果,可以显示出变量的变化过程,方便调试。点击“继续”结束调试。