📄 customer.c
字号:
#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/msg.h>
#include<stdio.h>
#include<string.h>#include<stdlib.h>#define MSGKEY 75struct Msguser//used for msg{
long mtype; int csid; int op; int num; int numbers;
char username[50];
char userpwd[50];
}user; struct Msgticket//used for msg{ long mtype; int num; char address[50]; int numbers;}ticket;int pid,msgqid,msgqid1;typedef struct Msguser MSGUSER;typedef struct Msgticket MSGTICKET;main(){ char d; int key_in; char temppwd[50]; pid=getpid(); msgqid = msgget(MSGKEY,0777);//set the dulei建立消息队列 msgqid1 = msgget(76,0777);//set the dulei建立消息队列 user.mtype=1;//make the mtype定义消息类开型 ticket.mtype=1;l: printf("--------********* 1 login ***********-----------\n");
printf("--------********* 2 add user ***********-----------\n"); printf("--------********* 3 list the ticket! ***********-----------\n");//列出票
printf("--------********* 4 buy the ticket ***********-----------\n");//买票 printf("--------********* 5 add the ticket ***********-----------\n");//增加票 printf("--------********* 6 set the ticket ***********-----------\n");//改变票数 printf("--------********* 0 exit ***********-----------\n"); scanf("%d",&key_in); if(key_in==1){
printf("请输入用户名\n");
scanf("%s",&user.username);
//system("cls");
printf("请输入密码\n");
scanf("%s",&user.userpwd); user.csid=pid; user.op=1; msgsnd(msgqid,&user,sizeof(MSGUSER),0); msgrcv(msgqid,&user,sizeof(MSGUSER),pid,0); if (user.op==1) { printf("Login Successful!\n"); goto l; } else { printf("Login Failed!\n"); } goto l; } else if(key_in==2) {
printf("INPUT USERNAME请输入用户名n");
scanf("%s",&user.username);
printf("INPUT USERPWD请输入密码\n");
scanf("%s",&user.userpwd);
printf("INPUT USERPWD AGAIN请再次输入密码\n");
scanf("%s",&temppwd);
while(1){
if(strcmp(temppwd,user.userpwd)!=0){
printf("--------two pwd is not the same两次密码不一致 -----------\n");
printf("input pwd输入密码\n");
scanf("%s",&user.userpwd);
printf("input pwd again再次输入密码\n");
scanf("%s",&temppwd); } else{ user.csid=pid; user.op=2; msgsnd(msgqid,&user,sizeof(MSGUSER),0); msgrcv(msgqid,&user,sizeof(MSGUSER),pid,0); if(user.op==0) { printf("----open user.dat failed!----------\n"); } else if(user.op==1) { printf("--------add failed,sername has exist! -----------\n"); } else if(user.op==2) { printf("---------add Successful!------------\n"); } goto l; } } } else if(key_in==3) { user.csid=pid; user.op=3; msgsnd(msgqid,&user,sizeof(MSGUSER),0); printf("code arrive_address numbers\n "); msgrcv(msgqid,&user,sizeof(MSGUSER),pid,0); while(user.num) { printf("%8d%20s%8d\n",user.num,user.username,user.numbers); msgrcv(msgqid,&user,sizeof(MSGUSER),pid,0); } printf("intpu 1 to return"); scanf("%d",&key_in); goto l; } else if(key_in==4) { while(1) { printf("INPUT CODE AND NUMBERS YOU WANT TO BUY AS:2 10\n"); scanf("%d,%d",&user.num,&user.numbers); user.csid=pid; user.op=4; msgsnd(msgqid,&user,sizeof(MSGUSER),0); msgrcv(msgqid,&user,sizeof(MSGUSER),pid,0); if(user.op==0) { printf("the numbers is lager than left,please rebuy\n"); } else if(user.op==1) { printf("Successful buy the ticket\n"); printf("do you want to cotinue to buy?..1(Yes)..2..(No)\n"); scanf("%d",&key_in); if(key_in==1) { continue; } } goto l; } } else if(key_in==5) { printf("INPUT ADDRESSNAME\n"); scanf("%s",&user.username); printf("INPUT numbers\n"); scanf("%d",&user.numbers); user.op=5; user.csid=pid; msgsnd(msgqid,&user,sizeof(MSGUSER),0); msgrcv(msgqid,&user,sizeof(MSGUSER),pid,0); if(user.op==0) { printf("----open ticket.dat failed!----------\n"); } else if(user.op==1) { printf("--------add failed,icketname has exist! -----------\n"); } else if(user.op==2) { printf("---------addticket Successful!------------\n"); } } else if(key_in==6) { printf("INPUT TICKET CODE and TICKET NUMBERS as: 2 5\n"); scanf("%d%d",&user.num,&user.numbers); user.csid=pid; user.op=6; msgsnd(msgqid,&user,sizeof(MSGUSER),0); msgrcv(msgqid,&user,sizeof(MSGUSER),pid,0); if(user.op==0) { printf("----open ticket.dat failed!----------\n"); } else if(user.op==1) { printf("----set Successful!\n"); } goto l; } else if(key_in==0) { exit(0); } else { goto l; } exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -