c语言实现机票管理系统源代码.docx

上传人:b****8 文档编号:12314163 上传时间:2023-06-05 格式:DOCX 页数:30 大小:22.03KB
下载 相关 举报
c语言实现机票管理系统源代码.docx_第1页
第1页 / 共30页
c语言实现机票管理系统源代码.docx_第2页
第2页 / 共30页
c语言实现机票管理系统源代码.docx_第3页
第3页 / 共30页
c语言实现机票管理系统源代码.docx_第4页
第4页 / 共30页
c语言实现机票管理系统源代码.docx_第5页
第5页 / 共30页
c语言实现机票管理系统源代码.docx_第6页
第6页 / 共30页
c语言实现机票管理系统源代码.docx_第7页
第7页 / 共30页
c语言实现机票管理系统源代码.docx_第8页
第8页 / 共30页
c语言实现机票管理系统源代码.docx_第9页
第9页 / 共30页
c语言实现机票管理系统源代码.docx_第10页
第10页 / 共30页
c语言实现机票管理系统源代码.docx_第11页
第11页 / 共30页
c语言实现机票管理系统源代码.docx_第12页
第12页 / 共30页
c语言实现机票管理系统源代码.docx_第13页
第13页 / 共30页
c语言实现机票管理系统源代码.docx_第14页
第14页 / 共30页
c语言实现机票管理系统源代码.docx_第15页
第15页 / 共30页
c语言实现机票管理系统源代码.docx_第16页
第16页 / 共30页
c语言实现机票管理系统源代码.docx_第17页
第17页 / 共30页
c语言实现机票管理系统源代码.docx_第18页
第18页 / 共30页
c语言实现机票管理系统源代码.docx_第19页
第19页 / 共30页
c语言实现机票管理系统源代码.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言实现机票管理系统源代码.docx

《c语言实现机票管理系统源代码.docx》由会员分享,可在线阅读,更多相关《c语言实现机票管理系统源代码.docx(30页珍藏版)》请在冰点文库上搜索。

c语言实现机票管理系统源代码.docx

c语言实现机票管理系统源代码

/*1、用户和管理员及航班信息请以英文字母或数字输入*/

/*2、管理员账户为:

boss,密码为:

123。

保存在txt文件中,需要修改请于程序中修改*/

/*3、部分文件读写为二进制读写,所以打开文件时会看到乱码*/

 

#include

#include

#include

#include

#defineN1000

 

voidzhujiemian();//主界面函数

voidverify();//用户及管理员登录选择

voidloginmanager();//管理员登录

voidloginuser();//用户登录

voidloginflightm();//管理员登录机票系统

voidloginflightu();//用户登录机票系统

voidcreatfile();//创建用户信息模块

voidsaveuser();//用户信息保存模块程序

voidinput();//输入航班信息

voidprint();//输出航班信息

voidsave();//保存航班信息

voidread();//读取航班信息

voidpaixu();//对所有航班按航班号排序

voidsearch();//查找航班信息

voiddingpiao();//订票信息

 

structusers//管理员/用户信息结构体,管理员可以修改航班信息

{

charName[20];//管理员/用户姓名

charsexual[10];//用户性别

charps[8];//用户密码

intage;//用户年龄

longNumber;//用户身份证号码

intpower;//power为1是管理员登录,为0是用户登录

}user[N],up,mg;//up为键盘输入用户信息,user[N]为文件保存的用户信息,mg为管理员结构体

intn;//所有用户个数,初始化为0

 

structair//航班信息结构体

{

intnum;//航班号

charstart[20];//出发地

charover[20];//目的地

chartime[10];//时间

intcount;//票数

intprize;//票价

}s[N],fnew;

inti;

intm=0;//所有航班个数

#definePRINT"%-d%12s%12s%10s%12d%10d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count,s[i].prize//定义输出格式

 

voidmain()//主函数

{

zhujiemian();

}

voidzhujiemian()//主界面函数

{

intj;

printf("#===================================================#\n");

printf("#欢迎进入机票管理系统#\n");

printf("#1、登录系统#\n");

printf("#2、新用户注册#\n");

printf("#0、退出#\n");

printf("#===================================================#\n");

printf("请在1-2中选择以回车键结束:

\n\n");

scanf("%d",&j);

switch(j)

{

case1:

verify();//进入机票系统

break;

case2:

creatfile();//进入用户注册系统

break;

case0:

;

break;

}

}

voidverify()//验证用户及管理员信息模块

{

intj;

system("cls");

printf("#===================================================#\n");

printf("#1、管理员登录#\n");

printf("#2、用户登录#\n");

printf("#0、返回主界面#\n");

printf("#===================================================#\n");

scanf("%d",&j);

switch(j)

{

case1:

loginmanager();//进入管理员登录界面

break;

case2:

loginuser();//进入用户登录界面

break;

case0:

system("cls");

zhujiemian();//进入主界面

break;

}

}

/********管理员登录确定函数**********/

voidloginmanager()

{

FILE*fp=NULL;//定义文件指针

charDataFile[20]="manager.txt";//存储管理员信息的文件名

inti=0,j=1;

charrelogin;//是否重新登录

intsuccess=0;//登录成功的标志

printf("\n---管理员登录---\n");

fp=fopen(DataFile,"r");

if(fp==NULL)//如果当前文件不存在,初始化根用户名为boss,密码为123,权限为管理员

{

printf("首次使用该系统!

\n");

printf("管理员账户为:

boss密码为:

123\n");

fp=fopen(DataFile,"a");//以追加方式打开文件

user[0].Number=0;

strcpy(user[0].Name,"boss");

strcpy(user[0].sexual,"male");

user[0].age=22;

user[0].power=1;

strcpy(user[0].ps,"123");

fwrite(&user[0],sizeof(user),1,fp);

fclose(fp);

}

else

fclose(fp);

again:

printf("请输入管理员姓名:

");

scanf("%s",up.Name);//输入用户名

up.Name[19]='\0';

printf("请输入管理员密码:

");

fflush(stdin);

for(i=0;i<7;i++)//输入密码,以*在屏幕显示

{

up.ps[i]=getch();

up.ps[i+1]='\0';//字符要以'\0'结尾

if(up.ps[i]=='\b')

{

i--;

up.ps[i]='\0';//清除前一个字符

i--;//接收前一个字符

printf("\b");

printf("\b");

continue;

}

if(up.ps[i]=='\r')

{

up.ps[i]='\0';

break;

}

printf("*");

}

fp=fopen(DataFile,"rt");

if(fp==NULL)//打开文件失败时提示

{

printf("\n打开%s失败!

按任意键结束程序\n",DataFile);

perror("Openfilefail");

getchar();

return;

}

if((fp=fopen("manager.txt","r"))==NULL)//打开文件,并判断是否出错

{

printf("\n出错,请检查文件是否存在,按任意键返回主菜单\n");//打印出错提示getchar();

}

else

fread(&mg,sizeof(structusers),1,fp);//从文件中读取信息

fclose(fp);//关闭文件

if(strcmp(mg.Name,up.Name)==0&&strcmp(mg.ps,up.ps)==0)

{

success=1;

}

if(success==1)//登录成功

{

printf("\n登录成功,按任意键进入机票调整系统!

\n");

getchar();

loginflightm();

}

else//未登录成功

{

fflush(stdin);//清除输入缓冲区中的字符

printf("\n用户名或密码错误!

重新输入请按y,退出请按n:

\n");

relogin=getchar();

if(relogin=='y'||relogin=='Y')

{

getchar();

gotoagain;

}

else

{

verify();

exit(0);

}

}

}

 

/********用户登录函数**********/

voidloginuser()

{

FILE*fp=NULL,*fp1;//定义文件指针

charDataFile[20]="yonghu.txt";//存储管理员信息的文件名

inti=0,j=0;

charrelogin;//是否重新登录

intsuccess=0;//登录成功的标志

printf("\n---用户登录---\n");

fp=fopen(DataFile,"r");

//读取文件中数据

if((fp1=fopen("howmanyusers.txt","a"))==NULL)//读写方式打开文件,若文件不存在,则n=0

{

//printf("创建文件失败!

\n\n");//打印出错提示

n=0;

//getchar();

//continue;

}

else

{

fp1=fopen("howmanyusers.txt","r");

fscanf(fp1,"%d",&n);//读取fp1中的用户个数

}

fclose(fp1);

if((fp=fopen("yonghu.txt","r"))==NULL)//打开文件,并判断是否出错

{

fp1=fopen("howmanyusers.txt","w+");//以写方式打开

fprintf(fp1,"%d",0);//打开用户文件失败,则输入用户个数0到fp1

fclose(fp1);

printf("\n目前没有用户信息,请按ENTER键返回主菜单先进行注册!

\n");

getchar();

getchar();

system("cls");

zhujiemian();

}

for(i=0;i

{

fread(&user[i],sizeof(structusers),1,fp);//从文件中读取信息

}

fclose(fp);//关闭文件

//输入数据与文件中用户比对

again:

printf("请输入用户姓名:

");

scanf("%s",up.Name);//输入用户名

up.Name[19]='\0';

printf("请输入用户密码:

");

fflush(stdin);

for(i=0;i<7;i++)//输入密码,以*在屏幕显示

{

up.ps[i]=getch();

up.ps[i+1]='\0';//字符要以'\0'结尾

if(up.ps[i]=='\b')

{

i--;

up.ps[i]='\0';//清除前一个字符

i--;//接收前一个字符

printf("\b");

printf("\b");

continue;

}

if(up.ps[i]=='\r')

{

up.ps[i]='\0';

break;

}

printf("*");

}

for(i=0;i

{

if(strcmp(user[i].Name,up.Name)==0&&strcmp(user[i].ps,up.ps)==0)

{

success=1;

break;

}

}

if(success==1)//登录成功

{

printf("\n登录成功,按任意键进入机票调整系统!

\n");

getchar();

loginflightu();

}

else//未登录成功

{

fflush(stdin);//清除输入缓冲区中的字符

printf("\n用户名或密码错误!

重新输入请按y,退出请按n:

\n");

relogin=getchar();

if(relogin=='y'||relogin=='Y')

{

getchar();

gotoagain;

}

else

{

verify();

exit(0);

}

}

}

voidsaveuser(structusers[])//用户信息保存模块程序

{

FILE*fp,*fp1;//定义文件指针

if((fp=fopen("yonghu.txt","a"))==NULL)//打开文件并判断是否出错

{

printf("创建文件失败!

\n\n");//打印出错提示

getchar();

return;

}

if((fp1=fopen("howmanyusers.txt","w+"))==NULL)//打开文件并判断是否出错

{

printf("创建文件失败!

\n\n");//打印出错提示

getchar();

return;

}

for(i=0;i

{

if(fwrite(&user[i],sizeof(structusers),1,fp)==0)//向文件写入数据,并判断是否出错

{

printf("向文件输入数据失败!

\n\n");

}

}

fprintf(fp1,"%d",n);//输入用户个数到fp1

fclose(fp);//关闭文件

fclose(fp1);//关闭文件

}

 

voidcreatfile()//增加用户信息模块

{

FILE*fp=NULL,*p=NULL,*fp1;

charDataFile[20]="yonghu.txt";//存储用户信息的文件名

//inta[100];

inti=0,k=1,count=0;

fp=fopen(DataFile,"r");

system("cls");//清屏

if(fp==NULL)//如果当前文件不存在,提示打开文件失败

{

fp1=fopen("howmanyusers.txt","w+");//以写方式打开

fprintf(fp1,"%d",0);//打开用户文件失败,则输入用户个数0到fp1

fclose(fp1);

printf("\n不存在%s,正在创建!

\n",DataFile);

fp=fopen(DataFile,"a");

creatfile();

}

if((fp1=fopen("howmanyusers.txt","a"))==NULL)//读写方式打开文件,若文件不存在,则n=0

{

n=0;

}

else

{

fp1=fopen("howmanyusers.txt","r");

fscanf(fp1,"%d",&n);//读取fp1中的用户个数

}

fclose(fp1);

for(i=0;i

{

fread(&user[i],sizeof(structusers),1,fp);//从文件中读取信息

}

fclose(fp);//关闭文件

//如果成功打开文件,则提示输入用户相关信息

printf("请输入用户信息\n");

fflush(stdin);

while(k)

{

//printf("\n输入身份证号码注意身份证号码不能为0!

\n");

printf("请输入身份证号码:

");

scanf("%ld",&up.Number);

i=0;//再次初始化i为0

//判断身份证号是否存在

while(i

{

if(user[i].Number==up.Number)

{

printf("该身份证号码已被使用过!

\n请重新输入身份证号:

");

scanf("%ld",&up.Number);

i=0;

//continue;

}

else

i++;

}

//经循环对比后,i的值仍和n相等,将新注册的信息加入数组末位

user[i].Number=up.Number;

printf("姓名:

");

scanf("%s",&user[i].Name);

user[i].Name[19]='\0';

printf("性别:

");

scanf("%s",&user[i].sexual);

printf("用户密码:

");

scanf("%s",&user[i].ps);

printf("年龄:

");

scanf("%d",&user[i].age);

n++;//用户数目增加

printf("是否继续注册?

是:

选1,否:

选0;");

scanf("%d",&k);

}

saveuser(user);//保存用户信息

fclose(fp);

//在屏幕上显示文件内容

system("cls");

printf("数据已经成功保存到%s中\n",DataFile);

getchar();

printf("按任意键返回主界面!

\n");

getchar();

system("cls");

zhujiemian();//返回主界面

}

 

voidloginflightm()//管理员登录机票系统

{

intj;

do

{

system("cls");

printf("★----------------您好,欢迎进入自动化飞机订票系统!

---★\n");

printf("================================================================================\n");

printf("**---------------☆1.输入航班信息☆---------------------------**\n\n""**------------☆2.浏览航班信息☆-----------------------**\n\n""**--------☆3.查找航班信息-☆--------------------**\n\n""**-----------☆4.对航班按航班票价排序---☆-----------------------**\n\n""**--------------☆5.订票信息-☆-------------------------**\n\n""**------------------☆0.退出-☆-----------------------------**\n\n""**-----------------------☆☆---------------------------------**\n\n""**-------------------------☆----------------------------------**\n\n""**-----------------------☆☆----------------------------------**\n\n");

printf("================================================================================\n");

printf("请在0-5中选择以回车键结束:

\n\n");

scanf("%d",&j);

switch(j)

{

case1:

input();//调用输入模块

break;

case2:

system("cls");

print();//调用打印模块

break;

case3:

search();//调用查找模块

break;

case4:

paixu();//调用排序模块

break;

case5:

dingpiao();//调用订票模块

break;

case0:

;

break;

}

}while(j!

=0);//判断结束

printf("按任意键返回主界面\n");

system("cls");

zhujiemian();

}//登录函数结束

voidloginflightu()//用户登录机票系统

{

intj;

do

{

system("cls");

printf("★----------------您好,欢迎进入自动化飞机订票系统!

---★\n");

printf("================================================================================\n");

printf("**------------☆1.浏览航班信息☆-----------------------**\n\n""**--------☆2.查找航班信息-☆--------------------**\n\n""**-----------☆3.对航班按航班票价排

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2