password1(char cc[9])如何调用才能成功:等高手修改!

作者&投稿:冀婷 (若有异议请与网页底部的电邮联系)
char *a = {"hello"}; 跟char *a = "hello"的区别~

你这个两个都是字符串。字符串数组char* a[]={"hello","world",NULL}; 这种读法大概可以这样认为,a先和[]构成一个数组,然后数组存放的内容是char*,也就是字符串,联合起来就构成了字符串数组。
char* a={"hello"}为什么不能修改,这个要涉及进程占用的内存分段,大概分为代码区,只读区,全局区,堆区,栈区。"hello"作为一个字符串字面值,是被放在只读区,只读顾名思义就是不能修改的。char* a="hello",相当于把hello的地址赋给了a,故而不能对a指向的内容进行修改。char a[]="hello",这样赋值的就是一个字符数组。字符数组a是在栈区里申请的一个空间给a,然后把只读区的"hello"进行了一次复制再赋值给a,这样a的指向是能修改的。

单引号括起的,是字符常量。'1' '0' '9' 是合法的字符常量。
'10' 不是合法的字符常量。

双引号括起的,是字符串常量,"10" "9"; 是合法的字符串常量。
char a[]="10",b[]="9";
if (strcmp(a,b) > 0)printf("a");else printf("b"); // 显然 "9" 大于 "10",

你想要的大概是:
char a[]="10",b[]="9"; // 用字符串
int ia,ib;
sscanf(a,"%d",&ia); // 转整型ia
sscanf(b,"%d",&ib); // 转整型ib
if (ia>=ib)printf("%s >= %s
",a,b);else printf("%s < %s
",a,b);

///////////你把我改过的代码贴去看看。我在VC++6.0里调试通过了
//你的主要问题:1、函数名password()和main里的变量password重名了。我改成inputpassword()
//2、inputpassword()函数里后面的printf("\n"),getchar()是多余的。
//3、不知道你inputpassword里返回的那个cc[9]是什么。我改成return strlen(cc).为返回密码长度。
--------------------------------------------------------
//#include <stdafx.h>
#include < conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
#define OVERFLOW -2
#define PR printf
typedef int status;
typedef struct airline
{
char line_num[8];//航班号
char plane_num[8];//飞机号
char end_place[20];//目的的
int total;//座位总数
int left;//剩余座位
struct airline *next;//下一个结点
}airline;
typedef struct customer
{
char name[9];//顾客名
char line_num[8];//航班号
int seat_num;//座位号
struct customer *next;//下一个结点
}customer;
airline *init_airline()
{ //初始化链表
airline *l;
l=(airline*)malloc(sizeof(airline));
if(l==NULL)
{ exit(0);
}
l->next=NULL;
return l;
}
customer * init_customer(){//初始化链表
customer *l;
l=(customer*)malloc(sizeof(customer));
if(l==NULL){
exit(0);
}
l->next=NULL;
return l;
}
status insert_airline(airline **p,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作
airline *q;
q=(airline*)malloc(sizeof(airline));
strcpy(q->line_num , line_num);
strcpy(q->plane_num , plane_num);
strcpy(q->end_place , end_place);
q->total =total;
q->left =left;
q->next=NULL;
(*p)->next=q;
(*p)=(*p)->next;
// PR("insert %d ,%dis succssed!\n",e,bl);
return OK;
}
status insert_customer(customer **p,char *name,char *line_num,int seat){//customer链表插入操作
customer *q;
q=(customer*)malloc(sizeof(customer));
/* { PR("内存分配失败\n");
return OVERFLOW; }*/
strcpy(q->name , name);
strcpy(q->line_num , line_num);
q->seat_num =seat;
q->next=NULL;
(*p)->next=q;
(*p)=(*p)->next;
// PR("insert %d ,%dis succssed!\n",e,bl);
return OK;
}
airline *modefy_airline(airline *l,char *line_num)//修改airline链表中的数据
{ airline *p;
p=l->next ;
for(;p!=NULL;p=p->next )
{ if(strcmp(line_num,p->line_num )==0)
{ p->left ++;
// PR("modefy %s\n",p->line_num );
return l;
}
}
PR("没有这个航班,无法完成修改任务!\n");
return 0;
}
status delete_airline(airline *h,char *line_num)//删除航班
{ airline *p,*pr;
pr=h;
p=pr->next ;
while(p!=NULL)
{ if(strcmp(line_num,p->line_num )==0)
{ pr->next =p->next ;
PR("删除 %s 航班\n",p->line_num );
return OK;
}
pr=pr->next ;
p=pr->next ;
}
PR("无此航班,无法删除!\n");
return ERROR;
}
status delete_customer(customer *h,char *line_num)//删除顾客
{ customer *p,*pr;
pr=h;
p=pr->next ;
while(p!=NULL)
{ if(strcmp(line_num,p->line_num )==0)
{ pr->next =p->next ;
}
pr=pr->next ;
p=pr->next ;
}
// PR("无此航班,无法删除!\n");
return OK;
}
status delete_cus(customer *h,airline *l,char *name)//顾客退票
{ customer *p,*pr;
char line_num[8];
// qr=h;
pr=h;
p=pr->next ;
// PR("开始删除\n");
while(p!=NULL)
{ if(strcmp(name,p->name )==0)
{ strcpy(line_num,p->line_num );
l=modefy_airline(l,line_num);
pr->next =p->next ;
PR("顾客 %s 退票成功!\n",p->name );
return OK;
}
pr=pr->next ;
p=pr->next ;
}
PR("无此顾客,无法退票!\n");
return ERROR;
}
status save_airline(airline *l)//保存airline.dat
{ FILE *fp_airline;
char ch='#';
airline *p=l->next ;
char filename[]="c:\\airline.dat";
if((fp_airline=fopen(filename,"wb"))==NULL)
{ printf("can not open file to write:%s\n",filename);
return ERROR;
}
for(;p!=NULL;p=p->next )
{ // printf("%s,%s,%s,%d,%d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left );
fprintf(fp_airline,"%s,%s,%s,%d,%d%c\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left ,ch);
}
fclose(fp_airline);
return OK;
}
status save_customer(customer *l)//保存顾客信息 customer.dat
{ FILE *fp_customer;
char ch='#';
customer *p=l->next ;
char filename[]="c:\\customer.dat";
if((fp_customer=fopen(filename,"wb"))==NULL)
{ printf("can not open file to write:%s\n",filename);
return ERROR;
}
for(;p!=NULL;p=p->next )
{ // PR("%s,%s,%d\n",p->name ,p->line_num ,p->seat_num );
fprintf(fp_customer,"%s,%s,%d%c",p->name ,p->line_num ,p->seat_num ,ch);
}
fclose(fp_customer);
return OK;
}
int changStrInt(char *ch)//把字符串转化为整型
{ int a=1,b=0,c=0,i;
for (i=strlen(ch)-1;i>=0;i--)
{ if (ch[i]<58&&ch[i]>47)
{ b=a*(ch[i]-48);
a=a*10;
c=c+b;

}
else
{ PR("%c 不合法,无法将此字符串转化为整形!\n",ch[i]);
return 0;
}
// printf("the c is %d\n",c);
}
return c;
}
status insert_air(airline *l,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作
airline *q;
q=(airline*)malloc(sizeof(airline));
strcpy(q->line_num , line_num);
strcpy(q->plane_num , plane_num);
strcpy(q->end_place , end_place);
q->total =total;
q->left =left;
q->next=l->next ;
l->next=q;
// PR("insert %d ,%dis succssed!\n",e,bl);
return OK;
}
status insert_cus(customer *l,char *name,char *line_num,int seat){//customer链表插入操作
customer *q;
q=(customer*)malloc(sizeof(customer));
strcpy(q->name , name);
strcpy(q->line_num , line_num);
q->seat_num =seat;
q->next=l->next ;
l->next=q;
return OK;
}
status load_airline(airline *l)
{ FILE *fp_airline;
int flag=0,i=0;
char ch;
char line_num[8];//航班号
char plane_num[8];//飞机号
char end_place[20];//目的的
char total_str[5];
char left_str[5];
int total;//座位总数
int left;//剩余座位
// airline *p=l;
char filename[]="c:\\airline.dat";
if((fp_airline=fopen(filename,"rb"))==NULL)
{ printf("can not open file to load:%s\n",filename);
return ERROR;
}
while(!feof(fp_airline))
{ ch=fgetc(fp_airline);
if(ch!='#')
{ if(flag==0&&ch!=',')
{ line_num[i]=ch;
i++;
}
else if(flag==1&&ch!=',')
{ plane_num[i]=ch;
i++;
}
else if(flag==2&&ch!=',')
{ end_place[i]=ch;
i++;
}
else if(flag==3&&ch!=',')
{ total_str[i]=ch;
i++;
}
else if(flag==4&&ch!=',')
{ left_str[i]=ch;
i++;
}
else if (ch==',')
{ flag++;
i=0;
}
/* else
{ PR("错误\n");
return ERROR;
}*/
}
else
{ flag=0;
i=0;
total=changStrInt(total_str);
left=changStrInt(left_str);
PR("%8s%8s%8s%9d%9d\n",line_num ,plane_num ,end_place ,total ,left );
insert_air(l,line_num,plane_num,end_place,total,left);
}
}
fclose(fp_airline);
return OK;
}
status load_customer(customer *l)
{ FILE *fp_customer;
int flag=0,i=0;
char ch;
char name[9];
char line_num[8];//航班号
char seat_num_str[5];
int seat_num;//座位
// customer *p=*l;
char filename[50]="c:\\customer.dat";
if((fp_customer=fopen(filename,"rb"))==NULL)
{ printf("can not open file to load:%s\n",filename);
return ERROR;
}
while(!feof(fp_customer))
{ ch=fgetc(fp_customer);
printf("%c\n",ch);
if(ch!='#')
{ if(flag==0&&ch!=',')
{ name[i]=ch;
i++;
}
else if(flag==1&&ch!=',')
{ line_num[i]=ch;
i++;
}
else if(flag==2&&ch!=',')
{ seat_num_str[i]=ch;
i++;
}
else if (ch==',')
{ flag++;
i=0;
}
else
{ PR("错误\n");
return ERROR;
}
}
else
{ flag=0;
seat_num=changStrInt(seat_num_str);
PR("%10s %10s %d\n",name ,line_num ,seat_num );
insert_cus(l,name,line_num,seat_num);
// p=p->next ;
}
}
fclose(fp_customer);
return OK;
}
status creat_airline(airline **l)//创建airline单链表
{ airline *p=*l;
int i=0;
char *line_num[3]={"bjnc01","bjsh02","shgz03"};
char *plane_num[3]={"plane1","plane2","plane3"};
char *end_place[3]={"nc","sh","gz"};
int total[3]={100,100,100};
int left[3]={51,50,78};
for (i=0;i<3;i++){
insert_airline(&p,line_num[i],plane_num[i],end_place[i],total[i],left[i]);
}
return OK;
}
status creat_customer(customer **l)////创建customer单链表
{ customer *p=*l;
int i=0;
char *name[3]={"ouyangj0","yhl","fs"};
char *line_num[3]={"bjnc01","bjsh02","shgz03"};
int seat_num[3]={1,5,10};
for (i=0;i<3;i++){
insert_customer(&p,name[i],line_num[i],seat_num[i]);
}
return OK;
}
status increase_air(airline *l,char *line_num,char *plane_num,char *end_place,int total)//增加航线
{ airline *p=l->next ;
for(;p->next !=NULL;p=p->next){}
insert_airline(&p,line_num,plane_num,end_place,total,total);
PR("增加航班 %s 成功!\n",line_num);
return OK;
}
status book(airline *l,char *line_num,customer *c,char *name)//订票函数
{ airline *p=l;
customer *q=c->next ;
p=l->next ;
for(;q->next !=NULL;q=q->next){}
// PR("%s\n",q->name );
for(;p!=NULL;p=p->next )
{ if(strcmp(line_num,p->line_num )==0)
{ if(p->left >0)
{ PR("恭喜您!订票成功!\n");
PR("你的座位号是: %d\n",(p->total -p->left +1));
insert_customer(&q,name,line_num,p->total -p->left +1);
p->left --;
return OK;
}
else PR("对不起,座位已满!\n");
return 0;
}
}
PR("对不起,没有这个航班号!\n");
return ERROR;
}
status print_airline(airline *l)//打印航线信息
{ airline *p=l->next ;
for(;p!=NULL;p=p->next )
{ PR("%8s%8s%8s%9d%9d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left );
}
return OK;
}
status print_customer(customer *l)//打印顾客信息
{
customer *p=l->next ;
for(;p!=NULL;p=p->next )
{ PR("%10s %10s %d\n",p->name ,p->line_num ,p->seat_num );
}
return OK;
}
status inputpassword(char cc[9])//隐藏密码为*号的函数 -------------------楼主,注意这里!
{
char c;
int i;
for(i=0;c=getch();i++)
{
if(c==13) break; /*13是回车的ascii码,用'\n'不行,不知怎么回事*/
else
{
cc[i]=c;
printf("*");
}
}
cc[i]='\0';
//printf("\n");
//printf("%s",cc);
//getchar();
return strlen(cc);
}
void main()
{ char choice,choice2,name[9],line_num[8],password[9],plane_num[8],end_place[9];
char pass[9]="19851102",re_pass_1[9],re_pass_2[9];
int t=1,tt=1,total;
airline *air=init_airline();
customer *cus=init_customer();
PR(" 计算机0541课程设计 (一)\n");
PR(" 航空订票系统\n");
PR(" 成员:晏凯\n");
creat_airline(&air);
creat_customer(&cus);
// save_airline(air);
// save_customer(cus);
while(t==1)
{ PR("*----------------------------*\n");
PR("*--航空订票系统选择菜单------*\n");
PR("* 订票-------0 *\n");
PR("* 退票-------1 *\n");
PR("* 查询-------2 *\n");
PR("* 修改航线---3 *\n");
PR("* 读入文件---4 *\n");
PR("* 退出-------5 *\n");
PR("*----------------------------*\n");
PR("请选择: ");
choice = getch();
PR("%c\n",choice);
if(choice=='0')
{ PR("请输入你要订的航班号: ");
scanf( "%s",line_num);
PR("请输入你的姓名: ");
scanf( "%s",name);
book(air,line_num,cus,name);
save_airline(air);
save_customer(cus);
}
else if(choice=='1')
{ PR("\n请输入你的姓名: ");
scanf( "%s",name);
delete_cus(cus,air,name);
save_airline(air);
save_customer(cus);
}
else if(choice=='2')
{ PR("\n 航班号 飞机号 目的地 总票数 余票数\n");
print_airline(air);
PR(" 姓名 航班号 座位号\n");
print_customer(cus);
}
else if(choice=='3')
{ tt=1;
PR("请输入密码: ");
//scanf("%s",password);
inputpassword(password);-----------------楼主,注意这里!我改了!

if(strcmp(password,pass)==0)
{ while (tt==1){
PR("\n*------------------------------*\n");
PR("*-------航线信息修改:----------*\n");
PR("* 增加航班号-----'0' *\n");
PR("* 删除航班号-----'1' *\n");
PR("* 修改密码-------'2' *\n");
PR("* 查询航线信息---'3' *\n");
PR("* 退出航线修改---'4' *\n");
PR("*------------------------------*\n");
PR("请选择: ");

choice2=getch();
PR("%c\n",choice2);
if(choice2=='0')
{ PR("请输入你要增加的航班号: ");
scanf("%s",line_num);
PR("请输入飞机号: ");
scanf("%s",plane_num);
PR("请输入目的地: ");
scanf("%s",end_place);
PR("请输入座位总数: ");
scanf("%d",&total);
increase_air(air,line_num,plane_num,end_place,total);
save_airline(air);
save_customer(cus);
}
else if (choice2=='1')
{ PR("请输入你要删除的航班号: ");
scanf("%s",line_num);
delete_airline(air,line_num);
delete_customer(cus,line_num);
save_airline(air);
save_customer(cus);
}
else if(choice2=='2')
{ PR("注意:密码不能超过8位!\n");
PR("请输入新密码:");
scanf("%s",re_pass_1);
PR("请再输入一次: ");
scanf("%s",re_pass_2);
if(strcmp(re_pass_1,re_pass_2)==0)
{ strcpy(pass,re_pass_1);
PR("密码修改成功!请记住.\n");
}
else { PR("你两次输入的密码不一致!\n");
}
}
else if(choice2=='3')
{ PR("\n 航班号 飞机号 目的地 总票数 余票数\n");
print_airline(air);
}
else if(choice2=='4')
{ tt=0;
}
else {
PR("你的输入有误\n");
tt=0;
}
}//end while
}//end if
else {
PR("对不起!你输入的密码不正确!\n");
}
}//end else if 修改
else if(choice=='4')
{ load_airline(air);
load_customer(cus);
}
else if(choice=='5')
{ PR("再见!");
t=0;
}
else
{ PR("你的输入有误\n");
}
}
getch();
}

//主函数
#include "stdafx.h"
#include < conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
#define OVERFLOW -2
#define PR printf
typedef int status;
typedef struct airline
{
char line_num[8];//航班号
char plane_num[8];//飞机号
char end_place[20];//目的的
int total;//座位总数
int left;//剩余座位
struct airline *next;//下一个结点
}airline;
typedef struct customer
{
char name[9];//顾客名
char line_num[8];//航班号
int seat_num;//座位号
struct customer *next;//下一个结点
}customer;
airline *init_airline()
{ //初始化链表
airline *l;
l=(airline*)malloc(sizeof(airline));
if(l==NULL)
{ exit(0);
}
l->next=NULL;
return l;
}
customer * init_customer(){//初始化链表
customer *l;
l=(customer*)malloc(sizeof(customer));
if(l==NULL){
exit(0);
}
l->next=NULL;
return l;
}
status insert_airline(airline **p,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作
airline *q;
q=(airline*)malloc(sizeof(airline));
strcpy(q->line_num , line_num);
strcpy(q->plane_num , plane_num);
strcpy(q->end_place , end_place);
q->total =total;
q->left =left;
q->next=NULL;
(*p)->next=q;
(*p)=(*p)->next;
// PR("insert %d ,%dis succssed!\n",e,bl);
return OK;
}
status insert_customer(customer **p,char *name,char *line_num,int seat){//customer链表插入操作
customer *q;
q=(customer*)malloc(sizeof(customer));
/* { PR("内存分配失败\n");
return OVERFLOW; }*/
strcpy(q->name , name);
strcpy(q->line_num , line_num);
q->seat_num =seat;
q->next=NULL;
(*p)->next=q;
(*p)=(*p)->next;
// PR("insert %d ,%dis succssed!\n",e,bl);
return OK;
}
airline *modefy_airline(airline *l,char *line_num)//修改airline链表中的数据
{ airline *p;
p=l->next ;
for(;p!=NULL;p=p->next )
{ if(strcmp(line_num,p->line_num )==0)
{ p->left ++;
// PR("modefy %s\n",p->line_num );
return l;
}
}
PR("没有这个航班,无法完成修改任务!\n");
return 0;
}
status delete_airline(airline *h,char *line_num)//删除航班
{ airline *p,*pr;
pr=h;
p=pr->next ;
while(p!=NULL)
{ if(strcmp(line_num,p->line_num )==0)
{ pr->next =p->next ;
PR("删除 %s 航班\n",p->line_num );
return OK;
}
pr=pr->next ;
p=pr->next ;
}
PR("无此航班,无法删除!\n");
return ERROR;
}
status delete_customer(customer *h,char *line_num)//删除顾客
{ customer *p,*pr;
pr=h;
p=pr->next ;
while(p!=NULL)
{ if(strcmp(line_num,p->line_num )==0)
{ pr->next =p->next ;
}
pr=pr->next ;
p=pr->next ;
}
// PR("无此航班,无法删除!\n");
return OK;
}
status delete_cus(customer *h,airline *l,char *name)//顾客退票
{ customer *p,*pr;
char line_num[8];
// qr=h;
pr=h;
p=pr->next ;
// PR("开始删除\n");
while(p!=NULL)
{ if(strcmp(name,p->name )==0)
{ strcpy(line_num,p->line_num );
l=modefy_airline(l,line_num);
pr->next =p->next ;
PR("顾客 %s 退票成功!\n",p->name );
return OK;
}
pr=pr->next ;
p=pr->next ;
}
PR("无此顾客,无法退票!\n");
return ERROR;
}
status save_airline(airline *l)//保存airline.dat
{ FILE *fp_airline;
char ch='#';
airline *p=l->next ;
char filename[]="c:\\airline.dat";
if((fp_airline=fopen(filename,"wb"))==NULL)
{ printf("can not open file to write:%s\n",filename);
return ERROR;
}
for(;p!=NULL;p=p->next )
{ // printf("%s,%s,%s,%d,%d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left );
fprintf(fp_airline,"%s,%s,%s,%d,%d%c\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left ,ch);
}
fclose(fp_airline);
return OK;
}
status save_customer(customer *l)//保存顾客信息 customer.dat
{ FILE *fp_customer;
char ch='#';
customer *p=l->next ;
char filename[]="c:\\customer.dat";
if((fp_customer=fopen(filename,"wb"))==NULL)
{ printf("can not open file to write:%s\n",filename);
return ERROR;
}
for(;p!=NULL;p=p->next )
{ // PR("%s,%s,%d\n",p->name ,p->line_num ,p->seat_num );
fprintf(fp_customer,"%s,%s,%d%c",p->name ,p->line_num ,p->seat_num ,ch);
}
fclose(fp_customer);
return OK;
}
int changStrInt(char *ch)//把字符串转化为整型
{ int a=1,b=0,c=0,i;
for (i=strlen(ch)-1;i>=0;i--)
{ if (ch[i]<58&&ch[i]>47)
{ b=a*(ch[i]-48);
a=a*10;
c=c+b;

}
else
{ PR("%c 不合法,无法将此字符串转化为整形!\n",ch[i]);
return 0;
}
// printf("the c is %d\n",c);
}
return c;
}
status insert_air(airline *l,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作
airline *q;
q=(airline*)malloc(sizeof(airline));
strcpy(q->line_num , line_num);
strcpy(q->plane_num , plane_num);
strcpy(q->end_place , end_place);
q->total =total;
q->left =left;
q->next=l->next ;
l->next=q;
// PR("insert %d ,%dis succssed!\n",e,bl);
return OK;
}
status insert_cus(customer *l,char *name,char *line_num,int seat){//customer链表插入操作
customer *q;
q=(customer*)malloc(sizeof(customer));
strcpy(q->name , name);
strcpy(q->line_num , line_num);
q->seat_num =seat;
q->next=l->next ;
l->next=q;
return OK;
}
status load_airline(airline *l)
{ FILE *fp_airline;
int flag=0,i=0;
char ch;
char line_num[8];//航班号
char plane_num[8];//飞机号
char end_place[20];//目的的
char total_str[5];
char left_str[5];
int total;//座位总数
int left;//剩余座位
// airline *p=l;
char filename[]="c:\\airline.dat";
if((fp_airline=fopen(filename,"rb"))==NULL)
{ printf("can not open file to load:%s\n",filename);
return ERROR;
}
while(!feof(fp_airline))
{ ch=fgetc(fp_airline);
if(ch!='#')
{ if(flag==0&&ch!=',')
{ line_num[i]=ch;
i++;
}
else if(flag==1&&ch!=',')
{ plane_num[i]=ch;
i++;
}
else if(flag==2&&ch!=',')
{ end_place[i]=ch;
i++;
}
else if(flag==3&&ch!=',')
{ total_str[i]=ch;
i++;
}
else if(flag==4&&ch!=',')
{ left_str[i]=ch;
i++;
}
else if (ch==',')
{ flag++;
i=0;
}
/* else
{ PR("错误\n");
return ERROR;
}*/
}
else
{ flag=0;
i=0;
total=changStrInt(total_str);
left=changStrInt(left_str);
PR("%8s%8s%8s%9d%9d\n",line_num ,plane_num ,end_place ,total ,left );
insert_air(l,line_num,plane_num,end_place,total,left);
}
}
fclose(fp_airline);
return OK;
}
status load_customer(customer *l)
{ FILE *fp_customer;
int flag=0,i=0;
char ch;
char name[9];
char line_num[8];//航班号
char seat_num_str[5];
int seat_num;//座位
// customer *p=*l;
char filename[50]="c:\\customer.dat";
if((fp_customer=fopen(filename,"rb"))==NULL)
{ printf("can not open file to load:%s\n",filename);
return ERROR;
}
while(!feof(fp_customer))
{ ch=fgetc(fp_customer);
printf("%c\n",ch);
if(ch!='#')
{ if(flag==0&&ch!=',')
{ name[i]=ch;
i++;
}
else if(flag==1&&ch!=',')
{ line_num[i]=ch;
i++;
}
else if(flag==2&&ch!=',')
{ seat_num_str[i]=ch;
i++;
}
else if (ch==',')
{ flag++;
i=0;
}
else
{ PR("错误\n");
return ERROR;
}
}
else
{ flag=0;
seat_num=changStrInt(seat_num_str);
PR("%10s %10s %d\n",name ,line_num ,seat_num );
insert_cus(l,name,line_num,seat_num);
// p=p->next ;
}
}
fclose(fp_customer);
return OK;
}
status creat_airline(airline **l)//创建airline单链表
{ airline *p=*l;
int i=0;
char *line_num[3]={"bjnc01","bjsh02","shgz03"};
char *plane_num[3]={"plane1","plane2","plane3"};
char *end_place[3]={"nc","sh","gz"};
int total[3]={100,100,100};
int left[3]={51,50,78};
for (i=0;i<3;i++){
insert_airline(&p,line_num[i],plane_num[i],end_place[i],total[i],left[i]);
}
return OK;
}
status creat_customer(customer **l)////创建customer单链表
{ customer *p=*l;
int i=0;
char *name[3]={"ouyangj0","yhl","fs"};
char *line_num[3]={"bjnc01","bjsh02","shgz03"};
int seat_num[3]={1,5,10};
for (i=0;i<3;i++){
insert_customer(&p,name[i],line_num[i],seat_num[i]);
}
return OK;
}
status increase_air(airline *l,char *line_num,char *plane_num,char *end_place,int total)//增加航线
{ airline *p=l->next ;
for(;p->next !=NULL;p=p->next){}
insert_airline(&p,line_num,plane_num,end_place,total,total);
PR("增加航班 %s 成功!\n",line_num);
return OK;
}
status book(airline *l,char *line_num,customer *c,char *name)//订票函数
{ airline *p=l;
customer *q=c->next ;
p=l->next ;
for(;q->next !=NULL;q=q->next){}
// PR("%s\n",q->name );
for(;p!=NULL;p=p->next )
{ if(strcmp(line_num,p->line_num )==0)
{ if(p->left >0)
{ PR("恭喜您!订票成功!\n");
PR("你的座位号是: %d\n",(p->total -p->left +1));
insert_customer(&q,name,line_num,p->total -p->left +1);
p->left --;
return OK;
}
else PR("对不起,座位已满!\n");
return 0;
}
}
PR("对不起,没有这个航班号!\n");
return ERROR;
}
status print_airline(airline *l)//打印航线信息
{ airline *p=l->next ;
for(;p!=NULL;p=p->next )
{ PR("%8s%8s%8s%9d%9d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left );
}
return OK;
}
status print_customer(customer *l)//打印顾客信息
{
customer *p=l->next ;
for(;p!=NULL;p=p->next )
{ PR("%10s %10s %d\n",p->name ,p->line_num ,p->seat_num );
}
return OK;
}
status password(char cc[9])//隐藏密码为*号的函数
{
char c;
int i;
for(i=0;c=getch();i++)
{
if(c==13) break; /*13是回车的ascii码,用'\n'不行,不知怎么回事*/
else
{
cc[i]=c;
printf("*");
}
}
cc[i]='\0';
printf("\n");
//printf("%s",cc);
getchar();
return cc[9];
}
void main()
{ char choice,choice2,name[9],line_num[8],password[9],plane_num[8],end_place[9];
char pass[9]="19851102",re_pass_1[9],re_pass_2[9];
int t=1,tt=1,total;
airline *air=init_airline();
customer *cus=init_customer();
PR(" 计算机0541课程设计 (一)\n");
PR(" 航空订票系统\n");
PR(" 成员:晏凯\n");
creat_airline(&air);
creat_customer(&cus);
// save_airline(air);
// save_customer(cus);
while(t==1)
{ PR("*----------------------------*\n");
PR("*--航空订票系统选择菜单------*\n");
PR("* 订票-------0 *\n");
PR("* 退票-------1 *\n");
PR("* 查询-------2 *\n");
PR("* 修改航线---3 *\n");
PR("* 读入文件---4 *\n");
PR("* 退出-------5 *\n");
PR("*----------------------------*\n");
PR("请选择: ");
choice = getch();
PR("%c\n",choice);
if(choice=='0')
{ PR("请输入你要订的航班号: ");
scanf( "%s",line_num);
PR("请输入你的姓名: ");
scanf( "%s",name);
book(air,line_num,cus,name);
save_airline(air);
save_customer(cus);
}
else if(choice=='1')
{ PR("\n请输入你的姓名: ");
scanf( "%s",name);
delete_cus(cus,air,name);
save_airline(air);
save_customer(cus);
}
else if(choice=='2')
{ PR("\n 航班号 飞机号 目的地 总票数 余票数\n");
print_airline(air);
PR(" 姓名 航班号 座位号\n");
print_customer(cus);
}
else if(choice=='3')
{ tt=1;
PR("请输入密码: ");
scanf("%s",password);

if(strcmp(password,pass)==0)
{ while (tt==1){
PR("\n*------------------------------*\n");
PR("*-------航线信息修改:----------*\n");
PR("* 增加航班号-----'0' *\n");
PR("* 删除航班号-----'1' *\n");
PR("* 修改密码-------'2' *\n");
PR("* 查询航线信息---'3' *\n");
PR("* 退出航线修改---'4' *\n");
PR("*------------------------------*\n");
PR("请选择: ");

choice2=getch();
PR("%c\n",choice2);
if(choice2=='0')
{ PR("请输入你要增加的航班号: ");
scanf("%s",line_num);
PR("请输入飞机号: ");
scanf("%s",plane_num);
PR("请输入目的地: ");
scanf("%s",end_place);
PR("请输入座位总数: ");
scanf("%d",&total);
increase_air(air,line_num,plane_num,end_place,total);
save_airline(air);
save_customer(cus);
}
else if (choice2=='1')
{ PR("请输入你要删除的航班号: ");
scanf("%s",line_num);
delete_airline(air,line_num);
delete_customer(cus,line_num);
save_airline(air);
save_customer(cus);
}
else if(choice2=='2')
{ PR("注意:密码不能超过8位!\n");
PR("请输入新密码:");
scanf("%s",re_pass_1);
PR("请再输入一次: ");
scanf("%s",re_pass_2);
if(strcmp(re_pass_1,re_pass_2)==0)
{ strcpy(pass,re_pass_1);
PR("密码修改成功!请记住.\n");
}
else { PR("你两次输入的密码不一致!\n");
}
}
else if(choice2=='3')
{ PR("\n 航班号 飞机号 目的地 总票数 余票数\n");
print_airline(air);
}
else if(choice2=='4')
{ tt=0;
}
else {
PR("你的输入有误\n");
tt=0;
}
}//end while
}//end if
else {
PR("对不起!你输入的密码不正确!\n");
}
}//end else if 修改
else if(choice=='4')
{ load_airline(air);
load_customer(cus);
}
else if(choice=='5')
{ PR("再见!");
t=0;
}
else
{ PR("你的输入有误\n");
}
}
getch();
}

隐藏密码函数:

void password1(cc[20])
{
char c;
int i;
for(i=0;c=getch();i++)
{
if(c==13) break; /*13是回车的ascii码,用'\n'不行,不知怎么回事*/
else
{
cc[i]=c;
printf("*");
}
}
cc[i]='\0';
printf("\n");
//printf("%s",cc);
getchar();
}

要求:用密码函数使主函数中输入的密码都只显示*号,达到隐藏密码的作用,请高手帮忙修改!

其他没时间细看,就测试了下你的passord1函数代码如下:
问题:函数的参数没定义类型,break用法
\n 换行(LF) ascii码 010
#include <conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void password1();

void main()
{
char cc[20];
password1(cc);

}
void password1(char cc[20])
{
char c;
int i;
for(i=0;c=getch();i++)
{
if(c==13) return; /*13是回车的ascii码,用'\n'不行,不知怎么回事*/
else
{
cc[i]=c;
printf("*");
}
}
cc[i]='\0';
printf("\n");
//printf("%s",cc);
getchar();
}

看看代码..


assword什么意思啊
assword n.口令,密码 短语:system assword 系统密码 cancel assword 取消密码 希望能帮到你,O(∩_∩)O~

怎么把ASS格式转换成WORD或者TXT
1、点击下载之软件。2、点击英语选择中文,点击ok。3、点击下一步进行安装。4、点击结束如图,把字幕拖落软件。5、点击软件上箭头位置,右键把红色圆圈的√去掉。6、去掉之后,此时点击文件。然后点击导出字幕,选择导出,设置一个字幕的名称,点击保存即可,那么就可以导出为txt了的。

登录密码是什么密码啊?
详情请查看视频回答

如何从ass字幕文件导出文本
1.第一个,也是最简单的,直接将字幕文件拖到视频当中。2.将视频文件与字幕文件改成相同的名字(扩展名不变),然后放到同一个根目录下,打开视频就可以了。3.用格式工厂工具,将二者融为一体。在视频软件的播放界面“点击右键——字幕——本地字幕”然后倒入你的字幕文件。 本回答由电脑网络分类达人 董辉推荐 举报| ...

ASUS路由的密码是多少
password assword 科迈易通km300A-1 http:\/\/192.168.1.1\/ username: password assword 科迈易通km300A-G http:\/\/192.168.1.1\/ username:root password:root 科迈易通km300A-A http:\/\/192.168.1.1\/ username:root or admin password:123456 sunrise的SR-DSL-AE http:\/\/192.168.1.1\/ username:admin password:...

一般无线路由器的初始帐号密码是什么?
无线路由器初始帐号密码大全:1、艾玛 701g 192.168.101.1 192.168.0.1 用户名:admin 密码:admin 2、艾玛701H 192.168.1.1 10.0.0.2 用户名:admin 密码:epicrouter 3、实达2110EH ROUTER 192.168.10.1 用户名:user 密码:password 4、神州数码\/华硕: 用户名:adsl 密码:adsl...

谁能破解192。168。0。254路由器秘密
password assword UTStar的ut-300R username:root or admin password:utstar 目前各种ADSL的WEB设置用户名和密码伊泰克http:\/\/192.168.1.1\/用户名:supervisor 密码:12345华硕http:\/\/192.168.1.1\/用户名:adsl 密码:adsl1234etek td 2001 用户名:空 密码:12345asus 6000ev 一部分比较大那种,包括黑色和银灰色(现在的...

求一首英文歌,歌词高潮部分有三个she say
But Man Ol' Girl Gotta Phat Ol' Ass Yeah The Type To Make You Tell A Bitch Just Dance And Fuck Them Otha Niggas Cuz You Down For Her Bitches And Fuck Them Otha Niggas Cuz She Down For The Stickin And Fuck Them Otha Niggas Cuz Hope Down For Sum Lickin And Fuck Them ...

《哥特王朝3》V1.6可用控制台(1)
It_1H_AssDagger_01 AssassinenmesserIt_1H_AssSword_01 AssassinenschwertIt_1H_BarbarianSword_01 Barbarian swordIt_1H_Bastardsword_01 Hybrid swordIt_1H_Broadsword_01 Broad swordIt_1H_Club_01 ClubIt_1H_Crescent_01 MondsichelIt_1H_ElBastardo_01 El BastardoIt_1H_Epee_01 SwordIt_1H_FlameSword_...

如何可以知道路由器的IP地址和管理员名和密码
password assword UTStar的ut-300R http:\/\/192.168.1.1\/ username:root or admin password:utstar 这些都是一些ADSL设奋的出厂时的默认初始IP,用户名和密码,是要调试这些设奋时必须要知道的东西 一般调试这些设奋有三种方法,一种是最常见的WEB方法,就是在浏览器中填入设奋的IP,如QX1680,就是在 浏览器地址栏...

铁力市18090387594: (c语言)编写登陆程序:已知一个密码:password,现登陆如果与初始密码一样则提示登陆成功 -
始战鹿丹: #include <stdio.h>#include<string.h>#include<stdlib.h> int login(char password[]); void main() { FILE *fp; char password[10]; int count=0,s; printf("请输入密码:\n"); scanf("%s",password); s=login(password); if(s==1){ fp=fopen("d:\\...

铁力市18090387594: 如何在文本框中显示密码字符(vb 程序设计) -
始战鹿丹: vb程序设计中,在文本框中显示密码字符,就是在文本框内输入密码时显示为“******”的具体操作步骤如下:第一步:打开vb程序设计.第二步:选中要设置的控件,点击其“属性窗口”按钮.第三步:在其属性里面找到“PasswordChar",将其后面空中输入"*"即可.或是在文本中输入:Text1.PasswordChar="*"即可.第四步:按照以上操作即可实现在文本框中显示密码字符,就是在文本框内输入密码时显示为“******”,如下图.

铁力市18090387594: vb里的passwordchar怎么使用啊?会的大大帮帮忙,谢谢啦!最好有个简单的列子 -
始战鹿丹: 加入一个TEXT1控件 Private Sub Form_Load()Text1.PasswordChar = "*" End Sub passwordchar就是用一个符号代替TEXT1里面的值,想输入密码一样,你自己把 * 改成其他符号,在运行看看效果就很明显了

铁力市18090387594: VB中passwordchar和text有区别么 -
始战鹿丹: 当然有区别了 text1.text是文本框中的字符,当text1.passwordchar=""时,也就是显示在文本框中的内容 而设置了text1.passwordchar后,文本框中的每一个字符都用text1.passwordchar设置的字符填充,而不是显示text1.text,这样别人就看不到文本矿中的内容,起到保密的作用,通常设置text1.passwordchar=“*”,作为密码矿

铁力市18090387594: C# 文本框的PasswordChar设置后怎么去掉,用代码 -
始战鹿丹: textBox1.PasswordChar = '*'; //文本框的名字.PasswordChar =' * ' 记住这里是单引号

铁力市18090387594: 我在text中的 passwordchar改为*,运行后,text中直接显示了****,本来应该输入的字符用*代替,为什么 -
始战鹿丹: 这是对的,passwordchar就是专门用于密码输入的,用*(或其它字符)代替输入的字符就是为了防止在旁边的人看到了密码,输入的时候只有自己知道.这就是passwordchar的作用 你在银行输入密码的时候不也是只看到*吗,就是这个原理

铁力市18090387594: VB中,要使输入文本框的字符始终显示“#”,则应修改其PasswordChar属性为“#”.对错 -
始战鹿丹: 意思是输出的字符时 第一个字符 实际存在字符还是你原来输入的 一般用在输入密码的时候 Private Sub Command1_Click() MsgBox Text1.Text End Sub Private Sub Form_Load() Text1.PasswordChar = "*" Text1.Text = "123456" End Sub 你看到的是6个星号 可实际内容却是123456

铁力市18090387594: C#textBox1.PasswordChar怎么用代码取消啊? -
始战鹿丹: textBox1.PasswordChar='\0' 搞定

铁力市18090387594: 关于查看星号的原理 -
始战鹿丹: 这个就很专业了,是软件编程方面的问题,你可以看看下面的东西: 几乎所有软件在用户密码输入框都做了手脚,使得用户输入的密码显示为星号“*”,这样就无法使得恶意用户直接看到密码.但是,网上...

铁力市18090387594: vb中text1.passwordchar后面如何输入黑点● -
始战鹿丹: passwordchar只能用ASCII字符! 你用的“●”是中文Unicode字符

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网