展开全部
这是我自e69da5e6ba9062616964757a686964616f31333330333565己的图书管理系统,你自己可以看看:
#include "stdafx.h"
#include "CmdLine.h"
#include "List.h"
#include "String.h"
//创建学生和管理员的头结点
PSTU LS,FLS;
PADMIN LA,FLA;//用FLA,FLS来标志已经登录的人员,不必每次查找信息
char a[100]="";
//int markStu=0;//用来作为管理员查看某一个注册学生时调用Log时的标志
void Head()
{
LS=new Stu;
LA=new Admin;
LS->next=NULL;
LA->next=NULL;
LA->mark=LS->mark=-1;
FLA=LA;
FLS=LS;
}
void Add()
{
}
void Rgst()
{
char CH[10];
char Pword[20];//头插入法
PSTU PS=new Stu;
PADMIN PA=new Admin;
PS->BookNum=0;
Look:cout<
cout<";
cin>>CH;
if(*CH == 'S' || *CH == 'A')
{
if(*CH == 'S')
{
PS->mark=0;
}
else
{
PA->mark=1;
}
}
else
{
goto Look;
}
if(PS->mark==0)//学生注册控制
{
cout<
cout<
cin>>PS->Name;
cout<
cin>>PS->ID;
Loopka:cout<
cin>>PS->Pastword;
cout<
cin>>Pword;
if(!StrCmp(Pword,PS->Pastword))
{
cout<
goto Loopka;
}
PS->next=LS->next;
LS->next=PS;
}
else//管理员注册控制
{
char CMD[10];
Cmd:cout<
cin>>CMD;
if(StrCmp(CMD,"love"))
{
cout<
cout<
cin>>PA->Name;
cout<
cin>>PA->ID;
Loopk:cout<
cin>>PA->Pastword;
cout<
cin>>Pword;
if(!StrCmp(Pword,PA->Pastword))
{
cout<
goto Loopk;
}
PA->next=LA->next;
LA->next=PA;
}
else
{
cout<
goto Cmd;
}
}
cout<
Lookp: cout<';
cin>>CH;
if(*CH == 'Y' || *CH == 'N')
{
if(*CH == 'Y')
{
cout<
Log();
}
else
{
cout<
}
}
else
{
goto Lookp;
}
}
void LOG()
{
char ID[20];
char pastword[20];
PSTU Sflow;
PADMIN Aflow;
char CH[10];
FLA=LA;//保证每次登录时全局变量还是不变
FLS=LS;
Lookp:cout<
cout<";
cin>>CH;
if(*CH == 'S' || *CH == 'A')
{
if(*CH == 'S')//控制学生登录
{
Lookoo:cout<
cin>>ID;
Sflow=LS->next;
while (Sflow!=NULL)
{
if (StrCmp(Sflow->ID,ID))
{
FLS=Sflow;
break;
}
else
{
Sflow=Sflow->next;
}
}
if (Sflow==NULL)
{
cout<
goto Lookoo;
}
Loomoo:cout<
cin>>pastword;
if (!StrCmp(Sflow->Pastword,pastword))
{
cout<
goto Loomoo;
}
}
else//控制管理员登录
{
Lookoof:cout<
cin>>ID;
Aflow=LA->next;
while (Aflow!=NULL)
{
if (StrCmp(Aflow->ID,ID))
{
FLA=Aflow;
break;
}
else
{
Aflow=Aflow->next;
}
}
if (Aflow==NULL)
{
cout<
goto Lookoof;
}
Loomoof:cout<
cin>>pastword;
if (!StrCmp(Aflow->Pastword,pastword))
{
cout<
goto Loomoof;
}
}
}
else
{
goto Lookp;
}
cout<
}
void SHOW()
{
if(FLS->mark==0)
{
cout<Name<
cout<ID<
if(FLA->mark==1)
{
cout<Pastword<
}
cout<BookNum<
cout<BookName<
}
if(FLA->mark==1 && FLS->mark != 0)
{
PSTU STemp=LS->next;
if(LS->next==NULL)
{
cout<
}
else
{
cout<
while(STemp != NULL)
{
cout<Name<ID<Pastword<BookNum<BookName<
STemp=STemp->next;
}
}
}
}
void help()
{
if(FLS->mark==0 || FLA->mark==1)
{
if (FLS->mark==0)
{
cout<
cout<
cout<
cout<
cout<
cout<
cout<
}
if(FLA->mark==1)
{
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
}
}
else
{
cout<
}
}
void FN()
{
Enter();
SHOW();
FLS=LS;
}
void DN()//(删除学生或者自己的注册号,这里仅考虑删除学生注册号)
{
int mark=0;
char ID[20];
PSTU Sflow;
Lookoop:cout<
cin>>ID;
Sflow=LS;
while (Sflow->next!=NULL)
{
if (StrCmp(Sflow->next->ID,ID))
{
FLS=Sflow;
mark=1;
break;
}
else
{
Sflow=Sflow->next;
}
}
if(mark != 1)//(两种可能:1,LS为空表。2,为LS最后一个元素)
{
if (StrCmp(Sflow->ID,ID))
{
mark=1;
FLS=Sflow;
}
else
{
Sflow=Sflow->next;
}
}
if (Sflow==NULL)
{
cout<
goto Lookoop;
}
if(mark == 1)
{
FLS->next=FLS->next->next;
cout<
}
FLS=LS;
}
void Enter()
{
char ID[20];
PSTU Sflow;
Lookoop:cout<
cin>>ID;
Sflow=LS->next;
while (Sflow!=NULL)
{
if (StrCmp(Sflow->ID,ID))
{
FLS=Sflow;
break;
}
else
{
Sflow=Sflow->next;
}
}
if (Sflow==NULL)
{
cout<
goto Lookoop;
}
}
void AMND()
{
Enter();
cout<
cin>>FLS->BookNum;
cout<
cin>>FLS->BookName;
FLS=LS;
}
void SAMND()
{
char Pword[20];
cout<
cin>>FLS->Name;
cout<
cin>>FLS->ID;
Loopkaf:cout<
cin>>FLS->Pastword;
cout<
cin>>Pword;
if(!StrCmp(Pword,FLS->Pastword))
{
cout<
goto Loopkaf;
}
}
void Save()
{
FILE *SFile = fopen("Student.txt","a");
FILE *AFile = fopen("Admin.txt","a");
PADMIN ATemp=LA->next;
PSTU STemp=LS->next;
if(STemp == NULL)
{
cout<
}
else
{
while(STemp != NULL)
{
fwrite(STemp->Name,1,StrLen(STemp->Name),SFile);
fwrite("\n",1,1,SFile);
fwrite(STemp->ID,1,StrLen(STemp->ID),SFile);
fwrite("\n",1,1,SFile);
fwrite(STemp->Pastword,1,StrLen(STemp->Pastword),SFile);
fwrite("\n",1,1,SFile);
fwrite(&STemp->BookNum,sizeof(int),1,SFile);
fwrite("\n",1,1,SFile);
fwrite(STemp->BookName,1,StrLen(STemp->BookName),SFile);
fwrite("\n",1,1,SFile);
fwrite(&STemp->mark,1,sizeof(int),SFile);
fwrite("\n",1,1,SFile);
STemp=STemp->next;
}
}
fclose(SFile);
if(ATemp == NULL)
{
cout<
}
else
{
while(ATemp != NULL)
{
fwrite(ATemp->Name,1,StrLen(ATemp->Name),AFile);
fwrite("\n",1,1,AFile);
fwrite(ATemp->ID,1,StrLen(ATemp->ID),AFile);
fwrite("\n",1,1,AFile);
fwrite(ATemp->Pastword,1,StrLen(ATemp->Pastword),AFile);
fwrite("\n",1,1,AFile);
fwrite(&ATemp->mark,sizeof(int),1,AFile);
fwrite("\n",1,1,AFile);
ATemp=ATemp->next;
}
}
fclose(AFile);
}
void Loading()
{
FILE *SFile = fopen("Student.txt","r");
FILE *AFile = fopen("Admin.txt","r");
PADMIN ATemp=LA->next;
PSTU STemp=LS->next;
if(SFile != NULL)
{
while(feof(SFile) != 1)
{
fread(STemp->Name,1,StrLen(STemp->Name),SFile);
//fread("\n",1,1,SFile);
fread(STemp->ID,1,StrLen(STemp->ID),SFile);
//fread("\n",1,1,SFile);
fread(STemp->Pastword,1,StrLen(STemp->Pastword),SFile);
//fread("\n",1,1,SFile);
fread(&STemp->BookNum,sizeof(int),1,SFile);
//fread("\n",1,1,SFile);
fread(STemp->BookName,1,StrLen(STemp->BookName),SFile);
//fread("\n",1,1,SFile);
fread(&STemp->mark,sizeof(int),1,SFile);
//fread("\n",1,1,SFile);
STemp=STemp->next;
}
}
fclose(SFile);
if(AFile != NULL)
{
while(feof(AFile) != 1)
{
fread(ATemp->Name,1,StrLen(ATemp->Name),AFile);
//fread("\n",1,1,AFile);
fread(ATemp->ID,1,StrLen(ATemp->ID),AFile);
//fread("\n",1,1,AFile);
fread(ATemp->Pastword,1,StrLen(ATemp->Pastword),AFile);
//fread("\n",1,1,AFile);
fread(&ATemp->mark,sizeof(int),1,AFile);
//fread("\n",1,1,AFile);
ATemp=ATemp->next;
}
}
fclose(AFile);
}
本回答由提问者推荐
已赞过
已踩过<
你对这个回答的评价是?
评论
收起