python设计一个图书管理的简单程序用单链表_如题帮忙设计一个程序 尽量简单.用链表和C++基础完成...

展开全部

这是我自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);

}

本回答由提问者推荐

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值