c语言编程题目:写一个程序模拟学生排队做饭。
#包含" stdlib.h "
#包含“conio.h”
#包含" string.h "
#包含“io.h”
#定义ESC 27
#定义输入13
#定义Y 89
#定义y 121
#定义N 78
#定义编号110
void vmenu 1();
char choose();
void password();
char * getps();
void mimam();
void build();
void save();
void buy();
void open 1();
void modify();
void modify m();
void XnumM();
void XclassM();
void XnameM();
void add();
void xuehaoA();
void xing minga();
void query();
void xuehaoQ();
void xingmingQ()。
void delete 1();
void Xue haod();
void xing mingd();
void sort();
void sortX();
void sortN();
void sortA();
void all();
void help();
void lock();
void exit 1();
结构记录
{
char cn number[15];
char cclass[15];
char cname[15];
char cmoney[10];
char cs pend[10];
结构记录* next
};
结构sot
{
char cc number[15];
struct sot * pnext
};
结构地址
{
夏尔* ADS;
结构地址* anext
};
struct sot * chead = NULL
struct record *head=NULL,*ppointer=NULL,* temp
结构记录* modf
结构地址* ahead = NULL
FILE * fp
int Fflag = 0;
int counts = 0;
int loop = 0;
void main()
{
char菜单;
password();
while(loop==0)
{
系统(“CLS”);
vmenu 1();
menu = choose();
开关(菜单)
{
案例“1”:build();打破;
案例“2”:count++;
if(count==1)
{
buy();
打破;
}
其他
{
chead = NULL
buy();
打破;
}
案例“3”:open 1();打破;
案例“4”:modify();k = 0;打破;
案例“6”:查询();打破;
案例“7”:delete 1();打破;
case“9”:all();打破;
事例“b”:help();打破;
case“c”:lock();打破;
案例“d”:{ loop = 1;exit 1();打破;}
默认值:
Printf (" -请在菜单上输入序列号")
Printf (" -按任意键重新开始选择-\ n ");
fflush(stdin);
a = getch();
}
}
}
作废密码()
{
字符密码[15];
char * password 1;
char * password2
char p 1[15];
char p2[15];
char a;
int I;
int count = 0;
if(access("c:\\mima.txt ",00)!=0)
{
while(1)
{
系统(“CLS”);
for(I = 0;我& lt5;i++)
printf(" \ n ");
printf(" \ t \ t欢迎使用学生餐系统!\ n \ n ");
printf(" \ n ");
Printf ("\ n -请创建管理员密码:-。
password 1 = getps();
for(I = 0;我& lt15;i++)
p 1[I]= *(password 1++);
printf(" \ n ");
Printf ("\ n -请再次输入密码:-。
password 2 = getps();
for(I = 0;我& lt15;i++)
p2[I]= *(password 2++);
如果(!strcmp(p1,p2))
{
if((fp=fopen("c:\\mima.txt "," w"))==NULL)
{
Printf("错误!\ n ");
退出(0);
}
其他
{
fprintf(fp," %s ",p 1);
printf(" \ n密码已创建!\ n ");
fclose(FP);
system(" cmd . exe/c attrib c:\ \ mima . txt+h ");
打破;
}
}
其他
{
Printf("两次输入不一致,请重新输入密码:\ n ");
}
}
}
其他
{
while(1)
{
count++;
for(I = 0;我& lt5;i++)
printf(" \ n ");
Printf (" -请输入管理员密码:-。
password 1 = getps();
for(I = 0;我& lt15;i++)
p 1[I]= *(password 1++);
if((fp=fopen("c:\\mima.txt "," r ")= = NULL)
{
Printf("错误!\ n ");
退出(0);
}
其他
{
fscanf(fp,“%s”,密码);
fclose(FP);
如果(!strcmp(p1,密码))
打破;
其他
printf(" \ n密码错误!\ n ");
}
if(count & lt;=9)
{
printf(" \ n您还有%d次机会。。。。。。\n”,10-count);
Printf ("\ n \ n \ n -请按ESC以外的任意键重新输入密码!-\ n ");
a = getch();
if(a==ESC)
退出(0);
}
if(count==10)
{
printf(" \ n \ n您无权使用此系统!\ n ");
Printf("按任意键退出。。。。。。\ n ");
fflush(stdin);
a = getch();
退出(0);
}
}
}
printf(" \ n \ n \ n您想修改密码吗?\ n ");
printf(" \ t按y或y进行更改,其余键进入系统。\ n ");
fflush(stdin);
a = getchar();
if(a==Y||a==y)
{
mimam();
}
系统(“CLS”);
for(I = 0;我& lt5;i++)
printf(" \ n ");
printf(" \ t \ t欢迎使用学生餐系统!\ n \ n ");
printf(" ");
printf(" \ t \ t按任意键进入系统。。。。。。\ n \ n ");
a = getch();
}
char *getps()
{
char p[15];
密码= p;
while(1)
{
fflush(stdin);
* password = getch();
if(*password==ENTER)
{
打破;
}
putchar(' * ');
password++;
}
* password = ' \ 0
密码= p;
返回(密码);
}