c语言收银系统
A. 谁可以帮我弄个c语言的程序 小超市收银系统
这个做好用java写吧
B. 求一个简单的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;
}
C. 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]='