#include<stdio.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>
#define LEN sizeof(struct student)
int main(void)
{
struct student
{
char acardname[10]; //賬號
char apassword[10]; //密碼
int nstatus; //狀態
time_t tstart; //開始時間
time_t tend; //結束時間
double ftotaluse; //使用次數
time_t tlast; //上次使用時間
int nusecount; //使用金額
double fbalance; //總金額
int ndel; //洗掉標志,0未洗掉,1已洗掉
struct student *next;//結構指標
} *head,*p1,*p2,*p;//p1指向新結構,p2指向最后,p起輔助作用
int number,is,i,n,x,m;
is=0;
i=0;//卡序號
m=0;//檢驗卡重復的標志變數
for(; is==0;) {
printf("------選單----(5-12-李天航-計1906)\n");
printf("1.添加卡\n");
printf("2.查詢卡\n");
printf("3.上機\n");
printf("4.下機\n");
printf("5.充值\n");
printf("6.退費\n");
printf("7.查詢統計\n");
printf("8.注銷卡\n");
printf("0.退出\n");
printf("請選擇選單編號(0~8):");
scanf("%d",&number);
head=NULL;
if(number<=9&&number>=0)
{
switch(number)
{
case 1:
printf("------添加卡----\n");
if(i==0)
{p1=p2=(struct student*)malloc(LEN);
do {
printf("輸入卡號(1~18):");
scanf("%s",p1->acardname);
for(n=0; p1->acardname[n]!='\0'; n++)
{}
if(n>=19)
printf("卡號錯誤\n");
}
while(n>=19);
head=p1;
i++;
}
else{
p1=(struct student*)malloc(LEN);
do {
do {
printf("輸入卡號(1~18):");
scanf("%s",p1->acardname);
m=0;
for(p=head;p!=p1; p=p->next)
{
if(strcmp(p->acardname,p1->acardname)==0)
{ printf("卡號重復\n");
m=1;
}}
} while(m==1);
for(n=0; p1->acardname[n]!='\0'; n++)
{}
if(n>=19)
printf("卡號錯誤\n");
}
while(n>=19);
}
do {
printf("輸入密碼");
scanf("%s",p1->apassword);
for(n=0; p1->apassword[n]!='\0'; n++)
if(n>=9)
printf("密碼錯誤\n");
}
while(n>=9);
printf("輸入開卡金額:");
scanf("%lf",&p1->fbalance);
p1->nstatus=0;
printf("---添加卡的資訊如下---\n");
printf("卡號\t密碼\t狀態\t開卡金額\n");
printf("%s\t%s\t%d\t%lf\n",p1->acardname,p1->apassword,p1->nstatus,p1->fbalance);
p1->nusecount=0;
p2->next=p1;
p2=p1;
break;
case 2:
printf("------查詢卡----\n");
printf("輸入卡號:");
char string[19];
scanf("%s",string);
for(p=head; strcmp(string,p1->acardname)!=0; p=p->next) {
if(p->next==NULL) {
break;
}
}
if(p->next!=NULL)
{
printf("卡號\t狀態\t余額\t累計使用\t使用次數\t上次使用時間\n");
printf("%s\t%d\t%lf\t%lf\t%d\t\n",p->acardname,p->nstatus,p->fbalance,p->ftotaluse,p->nusecount);
}
else
printf("不存在\n");
break;
case 3:
printf("------上機----\n");,
break;
case 4:
printf("------下機----\n");
break;
case 5:
printf("------充值----\n");
break;
case 6:
printf("------退費----\n");
break;
case 7:
printf("------查詢統計----\n");
break;
case 8:
printf("------注銷卡----\n");
break;
case 0:
is=1;
printf("退出系統");
break;
default:
printf("輸入的選單序號錯誤!\n");
}
}
else {
is=1;
printf("輸入的選單序號錯誤");
}
}
return 0;
}
uj5u.com熱心網友回復:
能幫我解決問題的話,我可以給更多分uj5u.com熱心網友回復:
什么問題??uj5u.com熱心網友回復:
不知道問題是什么,如果不是復制粘貼的問題那么下面多了個逗號case 3:
printf("------上機----\n");, ==>>這里多了個逗號
break;
把這個逗號去掉后,復制你的代碼到codeblocks中可以運行。
如果是其中的功能部分有問題,是哪方面?
uj5u.com熱心網友回復:
另外,結構體的定義一般放在外面。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/93125.html
標籤:C語言
上一篇:測驗組播性能的工具
