C语言课程设计火车票系统源代码Word下载.docx
《C语言课程设计火车票系统源代码Word下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计火车票系统源代码Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
);
scanf("
%d"
&
s->
num);
起点和终点:
%s"
s->
name);
出发时间:
time);
printf("
车票价格:
scanf("
price);
剩余数量:
amount);
r->
next=s;
r=s;
Continue?
(Y/N)"
choice);
}while(choice=='
Y'
||choice=='
y'
return(head);
}
//将单链表中的信息保存到文件1.txt中//
voidsave(structNode*h)
{
structNode*s;
FILE*fp;
charfilename[10]="
1.txt"
;
fp=fopen("
"
wt"
if(fp==NULL)
\n写文件出错,按任意键退出!
getchar();
exit
(1);
}
for(s=h->
next;
s!
=NULL;
s=s->
next)
fprintf(fp,"
%d%s%s%d%d\n"
num,s->
name,s->
time,s->
price,s->
getchar();
fclose(fp);
//从文件1.txt中读取信息并存入单链表中//
structNode*read()
structNode*head,*r,*s;
charfilename[10]="
zl.txt"
rt"
if(fp==NULL)
{
printf("
读文件错误,按任意键退出!
}
while(!
feof(fp))
fscanf(fp,"
%d%s%s%d%d"
time,&
price,&
r=s;
fclose(fp);
returnhead;
//将链表中的数据输出//
voidprint(structNode*h)
structNode*s;
\n火车票信息如下:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
编号起点和终点出发时间车票价格剩余票数:
for(s=h->
next!
%d%10s%5s%10d%6d\n"
//链表查询//
structNode*find(structNode*h)
inti,j;
chars[20];
\t\t查询方法有以下几种:
\t\t1.火车票编号\n"
\t\t2.起点和终点\n"
\t\t3.出发时间\n"
\t\t4.车票价格\n"
\t\t5.剩余票数\n"
请输入您要查询的方法的序号:
i);
switch(i)
case1:
请输入你要查询火车票的编号:
j);
while(h->
=NULL)
h=h->
if(h->
num==j)
returnh;
returnNULL;
break;
case2:
请输入您要查询火车票的起点和终点:
s);
if(strcmp(h->
name,s)==0)
case3:
请输入您要查询火车票的时间:
{
h=h->
if(strcmp(h->
time,s)==0)
returnh;
returnNULL;
break;
case4:
请输入你要查询火车票的价格:
while(h->
price==j)
returnh;
break;
case5:
请输入你要查询火车票的剩余票数:
amount==j)
returnNULL;
//修改信息//
change(structNode*h,intk)
intj;
structNode*p;
p=find(h);
-------------------------------------------\n"
\t您要修改哪一项?
\t1.火车编号\n"
\t2.起点和终点\n"
\t3.出发时间\n"
\t4.车票价格\n"
\t5.剩余票数\n"
\t0.退出系统\n"
请输入您要修改项的编号:
switch(j)
修改后的火车编号:
scanf("
p->
printf("
修改后的起点和终点:
scanf("
p->
修改后的出发时间:
printf("
修改后的车票价格:
修改后的剩余票数:
case0:
break;
//删除信息//
delete(structNode*h)
structNode*p;
请输入您要删除的火车票的编号:
p=h->
if(p==NULL)
return0;
while(p!
if(p->
h->
next=p->
free(p);
return1;
h=p;
p=p->
return0;
//添加信息//
voidappend()
at+"
写文件出错,按任意键返回.\n"
exit
(1);
}
请输入要添加的火车票的信息:
火车编号,起点和终点,出发时间,车票价格,剩余票数:
%d%s%s%d%d"
num,p->
name,p->
%d%s%s%d%d\n"
time,p->
price,p->
//数据的统计//
voidcount(structNode*h)
s=h;
inti,j,k,n=0;
*****************************************************************************\n"
\t\t请选择您要统计项目的序号:
\t\t1.车票价格\n"
\t\t2.剩余票数\n"
\t\t0.退出界面\n"
switch(i)
case1:
请输入您要统计车票的价格的标准:
\t\t请选择低于或高于标准:
\t\t1.价格低于%d的个数\n"
j);
\t\t2.价格高于%d的个数\n"
k);
if(k==1)
{
for(s=h->
if(s->
price<
j)
n++;
printf("
车票价格低于%d的个数有%d个.\n"
j,n);
}
else
for(s=h->
if(s->
price>
n++;
break;
case2:
请输入您要统计剩余票数的数量:
\t\t请选择低于或高于所输票数:
\t\t1.票数低于%d的个数\n"
\t\t2.票数高于%d的个数\n"
if(k==1)
for(s=h->
amount<
n++;
剩余票数低于%d的个数有%d个.\n"
else
amount>
剩余票数高于%d的个数有%d个.\n"
}
//保存用户和密码到文件2.txt中//
voidsave_user()
charfile[10]="
2.txt"
charname[20];
charpwd[10];
\n写文件出错,按任意键退出.\n"
请输入用户名:
name);
请输入密码:
pwd);
%s%s\n"
name,pwd);
用户注册成功!
//检验用户和密码是否匹配//
intcheck(char*name,char*pwd)
charname1[20];
charpwd1[10];
if((fp=fopen("
))==NULL)
读文件出错,按任意键退出!
getchar();
exit
(1);
fscanf(fp,"
%s%s"
name1,pwd1);
if(strcmp(name1,name)==0&
&
strcmp(pwd1,pwd)==0)
return1;
//数据排序//
voidsort(structNode*h)
structNode*s,*p,*m,*n;
intt,t1,t2,t3;
chars1[20];
chars2[10];
车票价格由小到大排序如下:
for(p=s->
p=p->
if(s->
price)
t1=s->
num;
num=p->
num=t1;
t2=s->
price;
price=p->
price=t2;
t3=s->
amount;
amount=p->
amount=t3;
strcpy(s1,s->
strcpy(s->
strcpy(p->
name,s1);
strcpy(s2,s->
time,s2);
}
print(h);
\n\n剩余车票数量由多到少排序如下:
for(p=s->
if(s->
amount)
voidmain()
structNode*head,*p;
inti,j,k;
\n***************欢迎进入火车票管理系统******************\n"
\t\t1.用户登录\n"
\t\t2.用户注册\n"
\t\t0.退出系统
请输入所选序号:
switch(k)
scanf("
if(check(name,pwd))
{
密码正确.\n"
\n\n\t\t*********************欢迎进入火车票管理系统***********************\n"
\t\t1.录入火车票信息\t\t2.添加火车票信息\n"
\t\t3.修改火车票信息\t\t4.删除火车票信息\n"
\t\t5.打印火车票信息\t\t6.查询火车票信息\n"
\t\t7.统计火车票信息\t\t8.火车票销售排行\n"
\t\t0.退出系统\n"
请输入您要进入菜单的序号(0-8):
switch(i)
case1:
请录入火车票信息\n\n"
head=creat();
save(head);
head=read();
case2:
append();
case3:
请输入您要修改的火车票的编号:
change(head,j);
save(head);
case4:
head=read();
if(delete(head))
{
已正确删除!
}
要删除的结点不存在!
break;
print(head);
case6:
请输入您要查询火车票的编号(以0结束):
{
p=find(head);
%d%10s%5s%10d%6d\n"
请继续输入序号(以0结束):
case7:
head=read();
count(head);
case8:
sort(head);
************************谢谢使用!
*****************************\n"
}while(i!
=0);
else
密码错误或用户名不存在.\n"
save_user();