#include
#include
#include
typedef struct reader{
char name[10];
char key[6];
int kind;//普通读者
struct reader *next;
}reader;
typedef struct bookers{
char name[10];
char key;
int kind;//图书管理员
struct bookers *next;
}bookers;
typedef struct allers{
char name[10];
char key;
int kind;//系统管理员
struct allers *next;
}allers;
typedef struct allbooks{
int read;//记录号
int num;//书号
char name[50];//书名
char write[10];//作者
char pub[30];//出版社
int have;//藏书量
int take;//借出数
struct allbooks *next;
}allbooks;
void start(reader *head,bookers *_head,allers *head_);
void readerstart(reader *head);
void online(reader *head,bookers *_head,allers *head_)
{
gome: printf("\t\t请输入用户名\n");
char name[10];int choice=3;
fflush(stdin);
scanf("%s",name);////判断普通用户!!!!
while(head->next!=NULL)//确认字符串比较返回值
{
int a=strcmp(name,head->name);
if(a==0)
{
while(choice>=0)
{
if(choice==0)
{
printf("\t\t请重新登录!!\n");
goto gome;
}
printf("\t\t请输入密码\n");
char key[6];
scanf("%s",key);
if(strcmp(key,head->key)==0)
{goto in;}//用户管理系统
else
{
choice--;
printf("密码输入错误,您还有%d次机会",choice);
}
}
}
else
head=head->next;
}
in: readerstart(head);
}
void readerstart(reader head)
{
printf("***************************************************\n");
printf("\t欢迎进入图书管理系统,您可以进行以下功能:\n");
printf("\t\t\t 1. 用户信息输入\n");
printf("\t\t\t 2. 用户信息修改\n");
printf("\t\t\t 3. 用户信息删除\n");
printf("\t\t\t 4. 用户信息显示\n");
printf("\t\t\t 5. 用户密码修改\n");
printf("\t\t\t 6. 返回主菜单\n");
int choice;
printf("请输入您想使用的功能:");
scanf("%d,&choice");
switch(choice)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
}
}
void start(reader head,bookers *_head,allers *head_)
{
char a='n';
/ while(a!='y'||a!='Y')
{*/
printf("\t\t 欢迎进入图书管理系统\n");
printf(" *********************************************\t\n ");
printf("\t\t\t用户登录");
getchar();
online(head,_head,head_);
/* printf("\t\t是否退出?");
printf("Y N");
fflush(stdin);
scanf("%c",&a);
}*/
}
void main()
{
reader *head;bookers *_head;allers *head_;
head=(reader *)malloc(sizeof(reader));
strcpy(head->name,"123");
strcpy(head->key,"789");
start(head,_head,head_);
printf("欢迎下次使用!");
}
选择6之后并不能退出程序,调试发现start函数中内容运行完了,但是没回到主函数就会崩溃。