今天整理大一实验笔记的时候突然翻出来了我保存在txt文件里的大一的图书管理系统的代码,
稍微改了点东西想了想还是发上来留作几年,因为之前电脑重装了系统还以为找不到了。
想想我大一是真的离谱,虽然代码函数都是拼音,还都是控制台运行的,但是三天爆肝2500行代码这种事我这大二已经做不到了,上学期那个一千五百行的ege写了我半个月,现在更是两天写两百行得要了我老命,越来越垃圾了属于是。
不说了,直接把代码端上来了。
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef struct yonhu{
int name;
char mima[20];
int shenfen;
struct yonhu*next;
}Yonhu;
typedef struct duzhe{
int zhanhao;
char name[10];
char danwei[20];
long long dianhua;
int kejie;
int yijie;
struct duzhe*next;
}Duzhe;
typedef struct tushu{
int jihao;
int shuhao;
char name[20];
char zuozhe[20];
char chubanshe[20];
int chanshuliang;
int jiechuliang;
int zhiyi;
int zhier;
int zhisan;
struct tushu*next;
}Tushu;
typedef struct jieshu
{
int duzhehao;
int shuhao;
string jiechuriqi;
string guihuanriqi;
struct jieshu*next;
}Jieshu;
void tushuliutonguanlicaidan();
void huanshuchuli(int zhanhao,int shenfen);
void jieshuchuli(int zhanhao,int shenfen);
void tushuguanliliutonxition(int zhanhao,int shenfen);
void tushuguanlizhucaidan();
void huizontonji(int zhanhao,int shenfen);
void anchubanshechaxun(int zhanhao,int shenfen);
void anzuozhechaxhun(int zhanhao,int shenfen);
void anshumingchaxhun(int zhanhao,int shenfen);
void anshuhaochaxhun(int zhanhao,int shenfen);
void tushuxinxichaxhun(int zhanhao,int shenfen);
void tushuxinxixiugai(int zhanhao,int shenfen);
void tushuxinxishuru(int zhanhao,int shenfen);
void tushuguanlixition(int zhanhao,int shenfen);
void duzheguanlizhucaidan();
void duzhexinxixianshi(int zhanhao,int shenfen);
void duzhexinxichaxun(int zhanhao,int shenfen);
void duzhexinxishanchu(int zhanhao,int shenfen);
void duzhexinxixiugai(int zhanhao,int shenfen);
void duzhexinxishuru(int zhanhao,int shenfen);
void duzheguanlixition(int zhanhao,int shenfen);
void yonhuguanlicaidan();
void yonhumimaxiugai(int zhanhao,int shenfen);
void yonhuxinxixianshi(int zhanhao,int shenfen);
void yonhuxinxisanchu(int zhanhao,int shenfen);
void yonhuxinxixiugai(int zhanhao,int shenfen);
void yonhuxinxishuru(int zhanhao,int shenfen);
void yonhuguanlixition(int zhanhao,int shenfen);
void zhucaidan();
void zhucaidandexuanzhe(int zhanhao,int shenfen);
void denluxiton();
void zhanhu();
void chuanjian();
void shurumimajinxindenlu();
void tushuliutonguanlicaidan()
{
cout<<" "<<"********************"<<endl;
cout<<endl;
cout<<" "<<"1.借书处理"<<endl;
cout<<" "<<"2.还书处理"<<endl;
cout<<" "<<"3.返回菜单"<<endl;
cout<<endl;
cout<<" "<<"********************"<<endl;
}
void huanshuchuli(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=2)
{
cout<<"您没有此权限,是否返回菜单:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int f;
cin>>f;
if(f==1)
tushuguanliliutonxition(zhanhao,shenfen);
}
else
{
ifstream swimming("读者.txt",ios::in);
Duzhe*head;
Duzhe*p;
Duzhe*g;
p=(struct duzhe*)malloc(sizeof(Duzhe));
g=(struct duzhe*)malloc(sizeof(Duzhe));
if(!swimming.fail())
{
int n=0;
char buf[128];
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
g->next=p;
g=p;
p=(struct duzhe*)malloc(sizeof(Duzhe));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int zhanhao;
string minzi;
string xuexiao;
long long haoma;
int kejie;
int yijie;
ss>>zhanhao>>minzi>>xuexiao>>haoma>>kejie>>yijie;
char name[10];
int i;
int len=minzi.length();
for(i=0;i<len;i++)name[i]=minzi[i];
name[i]='\0';
char danwei[20];
len=xuexiao.length();
for(i=0;i<len;i++)danwei[i]=xuexiao[i];
danwei[i]='\0';
p->zhanhao=zhanhao;
strcpy(p->name,name);
strcpy(p->danwei,danwei);
p->dianhua=haoma;
p->kejie=kejie;
p->yijie=yijie;
}
}
g=NULL;
free(g);
free(p);
swimming.close();
cout<<"输入要还书的人的读者号:";
int dhao;
cin>>dhao;
cout<<"输入要还的书号:";
int shao;
cin>>shao;
Jieshu*head2;
Jieshu*k;
Jieshu*s;
k=(struct jieshu*)malloc(sizeof(Jieshu));
s=(struct jieshu*)malloc(sizeof(Jieshu));
ifstream ming("借书管理.txt",ios::in);
if(!ming.fail())
{
char buf[200];
int m=0;
while(!ming.eof())
{
m++;
if(m==1)
{
head2=k;
}
else
{
s->next=k;
s=k;
k=(struct jieshu*)malloc(sizeof(Jieshu));
}
ming.getline(buf,200);
string chun=buf;
stringstream ss(chun);
int duzhehao;
int shuhao;
string jiechuriqi;
string guihuanriqi;
ss>>duzhehao>>shuhao>>jiechuriqi>>guihuanriqi;
k->duzhehao=duzhehao;
k->shuhao=shuhao;
k->jiechuriqi=jiechuriqi;
k->guihuanriqi=guihuanriqi;
}
}
s=NULL;
free(s);
free(k);
ming.close();
Jieshu*cha;
cha=head2;
int pan=0;
while(cha!=NULL)
{
if(cha->duzhehao==dhao)
{
if(cha->shuhao==shao)
{
cout<<"输入归还日期:";
char h[20];
scanf("%s",h);
cha->guihuanriqi=h;
pan=1;
}
}
cha=cha->next;
}
if(pan==0)
cout<<"未找到这个借书项目:"<<endl;
ofstream seele("借书管理.txt",ios::out);
if(!seele.fail())
{
while(head2!=NULL)
{
seele<<head2->duzhehao<<" "<<head2->shuhao<<" "<<head2->jiechuriqi<<" "<<head2->guihuanriqi<<endl;
head2=head2->next;
}
}
seele.close();
Duzhe*zhao;
zhao=head;
while(zhao!=NULL)
{
if(zhao->zhanhao==dhao)
{
zhao->yijie--;
break;
}
zhao=zhao->next;
}
ofstream swim("读者.txt",ios::out);
if(!swim.fail())
{
while(head!=NULL)
{
swim<<head->zhanhao<<" "<<head->name<<" "<<head->danwei<<" "<<head->dianhua<<" "<<head->kejie<<" "<<head->yijie<<endl;
head=head->next;
}
}
swim.close();
cout<<"是否继续还书:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回菜单)"<<endl;
int gl;
cin>>gl;
if(gl==1)
huanshuchuli(zhanhao,shenfen);
else
tushuguanliliutonxition(zhanhao,shenfen);
}
}
void jieshuchuli(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=2)
{
cout<<"您没有此权限,是否返回菜单:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int f;
cin>>f;
if(f==1)
tushuguanliliutonxition(zhanhao,shenfen);
}
else
{
ifstream swimming("读者.txt",ios::in);
Duzhe*head;
Duzhe*p;
Duzhe*g;
p=(struct duzhe*)malloc(sizeof(Duzhe));
g=(struct duzhe*)malloc(sizeof(Duzhe));
if(!swimming.fail())
{
int n=0;
char buf[128];
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
g->next=p;
g=p;
p=(struct duzhe*)malloc(sizeof(Duzhe));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int zhanhao;
string minzi;
string xuexiao;
long long haoma;
int kejie;
int yijie;
ss>>zhanhao>>minzi>>xuexiao>>haoma>>kejie>>yijie;
char name[10];
int i;
int len=minzi.length();
for(i=0;i<len;i++)name[i]=minzi[i];
name[i]='\0';
char danwei[20];
len=xuexiao.length();
for(i=0;i<len;i++)danwei[i]=xuexiao[i];
danwei[i]='\0';
p->zhanhao=zhanhao;
strcpy(p->name,name);
strcpy(p->danwei,danwei);
p->dianhua=haoma;
p->kejie=kejie;
p->yijie=yijie;
}
}
g=NULL;
free(g);
free(p);
swimming.close();
cout<<"输入要借书的人的读者号:";
int hao;
cin>>hao;
Duzhe*q=head;
int k=0;
while(q!=NULL)
{
if(q->zhanhao==hao)
{
if(q->yijie<q->kejie)
k=1;
}
q=q->next;
}
if(k!=1)
{
cout<<"不存在此人或者这个人不行,是否重新输入读者号:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回菜单)"<<endl;
int a;
cin>>a;
if(a==1)
jieshuchuli(zhanhao,shenfen);
else if(a==2)
tushuguanliliutonxition(zhanhao,shenfen);
}
cout<<"输入这个人要借出的书的书号:"<<endl;
int shuhao;
cin>>shuhao;
map<int,int>panduan;
ifstream ming("图书.txt",ios::in);
if(!ming.fail())
{
char buf[128];
while(!ming.eof())
{
ming.getline(buf,128);
string chun=buf;
stringstream ss(chun);
int jihao;
int haoma;
ss>>jihao>>haoma;
panduan[haoma]=haoma;
}
}
ming.close();
if(panduan[shuhao]==0)
{
cout<<"你这书找不到啊"<<endl;
cout<<"你要不再来一次"<<endl;
char a;
cin>>a;
jieshuchuli(zhanhao,shenfen);
}
q=head;
while(q!=NULL)
{
if(q->zhanhao==hao)
{
q->yijie++;
}
q=q->next;
}
ofstream swim("读者.txt",ios::out);
if(!swim.fail())
{
while(head!=NULL)
{
swim<<head->zhanhao<<" "<<head->name<<" "<<head->danwei<<" "<<head->dianhua<<" "<<head->kejie<<" "<<head->yijie<<endl;
head=head->next;
}
}
swim.close();
ofstream seele("借书管理.txt",ios::app);
if(!seele.fail())
{
cout<<"输入借书日期:";
char riqi[30];
scanf("%s",riqi);
char huanqi[20]="未还书";
seele<<hao<<" "<<shuhao<<" "<<riqi<<" "<<huanqi<<endl;
}
seele.close();
cout<<"是否继续输入:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回菜单)"<<endl;
int gl;
cin>>gl;
if(gl==1)
jieshuchuli(zhanhao,shenfen);
else
tushuguanliliutonxition(zhanhao,shenfen);
}
}
void tushuguanliliutonxition(int zhanhao,int shenfen)
{
system("cls");
tushuliutonguanlicaidan();
int xuanzhe;
cin>>xuanzhe;
switch(xuanzhe)
{
case 1:
jieshuchuli(zhanhao,shenfen);
break;
case 2:
huanshuchuli(zhanhao,shenfen);
break;
case 3:
zhucaidandexuanzhe(zhanhao,shenfen);
break;
}
}
void tushuguanlizhucaidan()
{
cout<<" "<<"*********************"<<endl;
cout<<" "<<"1.图书信息输入"<<endl;
cout<<" "<<"2.图书信息修改"<<endl;
cout<<" "<<"3.图书信息查询"<<endl;
cout<<" "<<"4.汇总统计"<<endl;
cout<<" "<<"5.返回主菜单"<<endl;
cout<<" "<<"*********************"<<endl;
}
void fun(int zhanhao,int shenfen){cout<<"不返回菜单你要干嘛:"<<endl;
cout<<"按任意键返回菜单"<<endl;
char a;
cin>>a;
tushuguanlixition(zhanhao,shenfen);
}
int tushushulian=0;
map<string,int>namehao;
map<string,int>zuohao;
map<string,int>shehao;
typedef struct chaxun{
int jihao;
int shuhao;
string name;
string zuozhe;
string chubanshe;
int chanshuliang;
int jiechuliang;
int zhiyi;
}Chaxun;
void huizontonji(int zhanhao,int shenfen)
{
system("cls");
ifstream swimming("图书.txt",ios::in);
if(!swimming.fail())
{
char buf[128];
while(!swimming.eof())
{
swimming.getline(buf,128);
printf("%s\n",buf);
}
}
swimming.close();
cout<<"按任意键返回菜单:"<<endl;
char a;
cin>>a;
tushuguanlixition(zhanhao,shenfen);
}
void chaxunfanfa()
{
cout<<" "<<"*********************"<<endl;
cout<<endl;
cout<<" "<<"1.按书号查询"<<endl;
cout<<" "<<"2.按书名查询"<<endl;
cout<<" "<<"3.按作者查询"<<endl;
cout<<" "<<"4.按出版社查询"<<endl;
cout<<" "<<"5.返回菜单"<<endl;
cout<<endl;
cout<<" "<<"*********************"<<endl;
}
void anchubanshechaxun(int zhanhao,int shenfen)
{
system("cls");
Tushu*head;
Tushu*p;
Tushu*h;
p=(struct tushu*)malloc(sizeof(Tushu));
h=(struct tushu*)malloc(sizeof(Tushu));
int n=0;
map<string,int>chandu;
map<string,int>panduan;
map<string,int>biaotou;
ifstream swimming("图书.txt",ios::in);
if(!swimming.fail())
{
char buf[128];
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
h->next=p;
h=p;
p=(struct tushu*)malloc(sizeof(Tushu));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int jihao;
int shuhao;
string shuming;
string zuozhe;
string chubanshe;
int chanshuliang;
int jiechuliang;
int zhiyi;
int zhier;
int zhisan;
ss>>jihao>>shuhao>>shuming>>zuozhe>>chubanshe>>chanshuliang>>jiechuliang>>zhiyi>>zhier>>zhisan;
chandu[chubanshe]++;
biaotou[chubanshe]=jihao;
char name[20];
char zuo[20];
char chu[20];
int i;
int len=shuming.length();
for(i=0;i<len;i++)name[i]=shuming[i];
name[i]='\0';
len=zuozhe.length();
for(i=0;i<len;i++)zuo[i]=zuozhe[i];
zuo[i]='\0';
len=chubanshe.length();
for(i=0;i<len;i++)chu[i]=chubanshe[i];
chu[i]='\0';
p->jihao=jihao;
p->shuhao=shuhao;
strcpy(p->name,name);
strcpy(p->zuozhe,zuo);
strcpy(p->chubanshe,chu);
p->chanshuliang=chanshuliang;
p->jiechuliang=jiechuliang;
p->zhiyi=zhiyi;
p->zhier=zhier;
p->zhisan=zhisan;
}
h=NULL;
free(p);
free(h);
swimming.close();
}
Chaxun chuchun[n+1];
int k=0;
while(head!=NULL)
{
k++;
chuchun[k].jihao=head->jihao;
chuchun[k].name=head->name;
chuchun[k].zuozhe=head->zuozhe;
chuchun[k].chubanshe=head->chubanshe;
chuchun[k].chanshuliang=head->chanshuliang;
chuchun[k].jiechuliang=head->jiechuliang;
chuchun[k].zhiyi=head->zhisan;
head=head->next;
}
cout<<"输出索引表:"<<endl;
ofstream ming("作者查询.txt",ios::out);
if(!ming.fail()){
for(int i=1;i<=k;i++)
{
if(panduan[chuchun[i].chubanshe]==0)
{
cout<<chuchun[i].chubanshe<<" "<<biaotou[chuchun[i].chubanshe]<<" "<<chandu[chuchun[i].chubanshe]<<endl;
ming<<chuchun[i].chubanshe<<" "<<biaotou[chuchun[i].chubanshe]<<" "<<chandu[chuchun[i].chubanshe]<<endl;
panduan[chuchun[i].chubanshe]=1;
}
}
}
ming.close();
char ch[20];
cout<<"输入你要查询的书的作者:";
scanf("%s",ch);
string cha=ch;
if(panduan[cha]!=1)
{
cout<<"未找到你要的书,你能不能按索引表来"<<endl;
}
else
{
int tou=biaotou[cha];
for(int j=1;;j++)
{
cout<<chuchun[tou].name<<" "<<chuchun[tou].zuozhe<<" "<<chuchun[tou].chubanshe<<" "<<chuchun[tou].chanshuliang<<" "<<chuchun[tou].jiechuliang<<endl;
tou=chuchun[tou].zhiyi;
if(tou==0)
break;
}
}
cout<<"是否继续查询:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回查询菜单)"<<endl;
int al;
cin>>al;
if(al==1)
anchubanshechaxun(zhanhao,shenfen);
else if(al==2)
tushuxinxichaxhun(zhanhao,shenfen);
}
void anzuozhechaxhun(int zhanhao,int shenfen)
{
system("cls");
Tushu*head;
Tushu*p;
Tushu*h;
p=(struct tushu*)malloc(sizeof(Tushu));
h=(struct tushu*)malloc(sizeof(Tushu));
int n=0;
map<string,int>chandu;
map<string,int>panduan;
map<string,int>biaotou;
ifstream swimming("图书.txt",ios::in);
if(!swimming.fail())
{
char buf[128];
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
h->next=p;
h=p;
p=(struct tushu*)malloc(sizeof(Tushu));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int jihao;
int shuhao;
string shuming;
string zuozhe;
string chubanshe;
int chanshuliang;
int jiechuliang;
int zhiyi;
int zhier;
int zhisan;
ss>>jihao>>shuhao>>shuming>>zuozhe>>chubanshe>>chanshuliang>>jiechuliang>>zhiyi>>zhier>>zhisan;
biaotou[zuozhe]=jihao;
chandu[zuozhe]++;
char name[20];
char zuo[20];
char chu[20];
int i;
int len=shuming.length();
for(i=0;i<len;i++)name[i]=shuming[i];
name[i]='\0';
len=zuozhe.length();
for(i=0;i<len;i++)zuo[i]=zuozhe[i];
zuo[i]='\0';
len=chubanshe.length();
for(i=0;i<len;i++)chu[i]=chubanshe[i];
chu[i]='\0';
p->jihao=jihao;
p->shuhao=shuhao;
strcpy(p->name,name);
strcpy(p->zuozhe,zuo);
strcpy(p->chubanshe,chu);
p->chanshuliang=chanshuliang;
p->jiechuliang=jiechuliang;
p->zhiyi=zhiyi;
p->zhier=zhier;
p->zhisan=zhisan;
}
h=NULL;
free(p);
free(h);
swimming.close();
}
Chaxun chuchun[n+1];
int k=0;
while(head!=NULL)
{
k++;
chuchun[k].jihao=head->jihao;
chuchun[k].name=head->name;
chuchun[k].zuozhe=head->zuozhe;
chuchun[k].chubanshe=head->chubanshe;
chuchun[k].chanshuliang=head->chanshuliang;
chuchun[k].jiechuliang=head->jiechuliang;
chuchun[k].zhiyi=head->zhier;
head=head->next;
}
cout<<"输出索引表:"<<endl;
ofstream ming("作者查询.txt",ios::out);
if(!ming.fail()){
for(int i=1;i<=k;i++)
{
if(panduan[chuchun[i].zuozhe]==0)
{
cout<<chuchun[i].zuozhe<<" "<<biaotou[chuchun[i].zuozhe]<<" "<<chandu[chuchun[i].zuozhe]<<endl;
ming<<chuchun[i].zuozhe<<" "<<biaotou[chuchun[i].zuozhe]<<" "<<chandu[chuchun[i].zuozhe]<<endl;
panduan[chuchun[i].zuozhe]=1;
}
}
}
ming.close();
char ch[20];
cout<<"输入你要查询的书的作者:";
scanf("%s",ch);
string cha=ch;
if(panduan[cha]!=1)
{
cout<<"未找到你要的书,你能不能按索引表来"<<endl;
}
else
{
int tou=biaotou[cha];
for(int j=1;;j++)
{
cout<<chuchun[tou].name<<" "<<chuchun[tou].zuozhe<<" "<<chuchun[tou].chubanshe<<" "<<chuchun[tou].chanshuliang<<" "<<chuchun[tou].jiechuliang<<endl;
tou=chuchun[tou].zhiyi;
if(tou==0)
break;
}
}
cout<<"是否继续查询:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回查询菜单)"<<endl;
int al;
cin>>al;
if(al==1)
anzuozhechaxhun(zhanhao,shenfen);
else if(al==2)
tushuxinxichaxhun(zhanhao,shenfen);
}
void anshumingchaxhun(int zhanhao,int shenfen)
{
system("cls");
Tushu*head;
Tushu*p;
Tushu*h;
int n=0;
p=(struct tushu*)malloc(sizeof(Tushu));
h=(struct tushu*)malloc(sizeof(Tushu));
ifstream swimming("图书.txt",ios::in);
map<string,int>chandu;
map<string,int>panduan;
map<string,int>biaotou;
if(!swimming.fail())
{
char buf[128];
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
h->next=p;
h=p;
p=(struct tushu*)malloc(sizeof(Tushu));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int jihao;
int shuhao;
string shuming;
string zuozhe;
string chubanshe;
int chanshuliang;
int jiechuliang;
int zhiyi;
int zhier;
int zhisan;
ss>>jihao>>shuhao>>shuming>>zuozhe>>chubanshe>>chanshuliang>>jiechuliang>>zhiyi>>zhier>>zhisan;
chandu[shuming]++;
biaotou[shuming]=jihao;
char name[20];
char zuo[20];
char chu[20];
int i;
int len=shuming.length();
for(i=0;i<len;i++)name[i]=shuming[i];
name[i]='\0';
len=zuozhe.length();
for(i=0;i<len;i++)zuo[i]=zuozhe[i];
zuo[i]='\0';
len=chubanshe.length();
for(i=0;i<len;i++)chu[i]=chubanshe[i];
chu[i]='\0';
p->jihao=jihao;
p->shuhao=shuhao;
strcpy(p->name,name);
strcpy(p->zuozhe,zuo);
strcpy(p->chubanshe,chu);
p->chanshuliang=chanshuliang;
p->jiechuliang=jiechuliang;
p->zhiyi=zhiyi;
p->zhier=zhier;
p->zhisan=zhisan;
}
h=NULL;
free(p);
free(h);
swimming.close();
}
Chaxun chuchun[n+1];
int k=0;
while(head!=NULL)
{
k++;
chuchun[k].jihao=head->jihao;
chuchun[k].name=head->name;
chuchun[k].zuozhe=head->zuozhe;
chuchun[k].chubanshe=head->chubanshe;
chuchun[k].chanshuliang=head->chanshuliang;
chuchun[k].jiechuliang=head->jiechuliang;
chuchun[k].zhiyi=head->zhiyi;
head=head->next;
}
cout<<"输出索引表:"<<endl;
ofstream ming("书名查询.txt",ios::out);
if(!ming.fail())
{
for(int i=1;i<=k;i++)
{
if(panduan[chuchun[i].name]==0)
{
ming<<chuchun[i].name<<" "<<biaotou[chuchun[i].name]<<" "<<chandu[chuchun[i].name]<<endl;
cout<<chuchun[i].name<<" "<<biaotou[chuchun[i].name]<<" "<<chandu[chuchun[i].name]<<endl;
panduan[chuchun[i].name]=1;
}
}
}
ming.close();
char ch[20];
cout<<"输入你要查询的书:";
scanf("%s",ch);
string cha=ch;
if(panduan[cha]!=1)
{
cout<<"未找到你要的书,你能不能按索引表来"<<endl;
}
else
{
int tou=biaotou[cha];
for(int j=1;;j++)
{
cout<<chuchun[tou].name<<" "<<chuchun[tou].zuozhe<<" "<<chuchun[tou].chubanshe<<" "<<chuchun[tou].chanshuliang<<" "<<chuchun[tou].jiechuliang<<endl;
tou=chuchun[tou].zhiyi;
if(tou==0)
break;
}
}
cout<<"是否继续查询:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回查询菜单)"<<endl;
int al;
cin>>al;
if(al==1)
anshumingchaxhun(zhanhao,shenfen);
else if(al==2)
tushuxinxichaxhun(zhanhao,shenfen);
}
void anshuhaochaxhun(int zhanhao,int shenfen)
{
system("cls");
Tushu*head;
Tushu*p;
Tushu*h;
p=(struct tushu*)malloc(sizeof(Tushu));
h=(struct tushu*)malloc(sizeof(Tushu));
ifstream swimming("图书.txt",ios::in);
if(!swimming.fail())
{
int n=0;
char buf[128];
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
h->next=p;
h=p;
p=(struct tushu*)malloc(sizeof(Tushu));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int jihao;
int shuhao;
string shuming;
string zuozhe;
string chubanshe;
int chanshuliang;
int jiechuliang;
int zhiyi;
int zhier;
int zhisan;
ss>>jihao>>shuhao>>shuming>>zuozhe>>chubanshe>>chanshuliang>>jiechuliang>>zhiyi>>zhier>>zhisan;
char name[20];
char zuo[20];
char chu[20];
int i;
int len=shuming.length();
for(i=0;i<len;i++)name[i]=shuming[i];
name[i]='\0';
len=zuozhe.length();
for(i=0;i<len;i++)zuo[i]=zuozhe[i];
zuo[i]='\0';
len=chubanshe.length();
for(i=0;i<len;i++)chu[i]=chubanshe[i];
chu[i]='\0';
p->jihao=jihao;
p->shuhao=shuhao;
strcpy(p->name,name);
strcpy(p->zuozhe,zuo);
strcpy(p->chubanshe,chu);
p->chanshuliang=chanshuliang;
p->jiechuliang=jiechuliang;
p->zhiyi=zhiyi;
p->zhier=zhier;
p->zhisan=zhisan;
}
h=NULL;
free(p);
free(h);
swimming.close();
}
cout<<"输入要查询的书号:";
int hao;
cin>>hao;
int pan=0;
while(head!=NULL)
{
if(head->shuhao==hao)
{
pan=1;
cout<<head->shuhao<<" "<<head->name<<" "<<head->chubanshe<<" "<<head->chanshuliang<<" "<<head->jiechuliang<<endl;
break;
}
head=head->next;
}
if(pan==0)
cout<<"没找到你要查询的书"<<endl;
cout<<"是否继续查询:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回查询菜单)"<<endl;
int a;
cin>>a;
if(a==1)
anshuhaochaxhun(zhanhao,shenfen);
else if(a==2)
tushuxinxichaxhun(zhanhao,shenfen);
}
void tushuxinxichaxhun(int zhanhao,int shenfen)
{
system("cls");
chaxunfanfa();
int xuanzhe;
cin>>xuanzhe;
switch(xuanzhe)
{
case 1:
anshuhaochaxhun(zhanhao,shenfen);
break;
case 2:
anshumingchaxhun(zhanhao,shenfen);
break;
case 3:
anzuozhechaxhun(zhanhao,shenfen);
break;
case 4:
anchubanshechaxun(zhanhao,shenfen);
break;
case 5:
tushuguanlixition(zhanhao,shenfen);
}
}
void tushuxinxixiugai(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=2)
{
cout<<"你没有此权限,是否返回菜单:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int cai;
cin>>cai;
if(cai==1)
tushuguanlixition(zhanhao,shenfen);
else
fun(zhanhao,shenfen);
}
else
{
Tushu*head;
Tushu*p;
Tushu*h;
p=(struct tushu*)malloc(sizeof(Tushu));
h=(struct tushu*)malloc(sizeof(Tushu));
ifstream swimming("图书.txt",ios::in);
if(!swimming.fail())
{
int n=0;
char buf[128];
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
h->next=p;
h=p;
p=(struct tushu*)malloc(sizeof(Tushu));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int jihao;
int shuhao;
string shuming;
string zuozhe;
string chubanshe;
int chanshuliang;
int jiechuliang;
int zhiyi;
int zhier;
int zhisan;
ss>>jihao>>shuhao>>shuming>>zuozhe>>chubanshe>>chanshuliang>>jiechuliang>>zhiyi>>zhier>>zhisan;
char name[20];
char zuo[20];
char chu[20];
int i;
int len=shuming.length();
for(i=0;i<len;i++)name[i]=shuming[i];
name[i]='\0';
len=zuozhe.length();
for(i=0;i<len;i++)zuo[i]=zuozhe[i];
zuo[i]='\0';
len=chubanshe.length();
for(i=0;i<len;i++)chu[i]=chubanshe[i];
chu[i]='\0';
p->jihao=jihao;
p->shuhao=shuhao;
strcpy(p->name,name);
strcpy(p->zuozhe,zuo);
strcpy(p->chubanshe,chu);
p->chanshuliang=chanshuliang;
p->jiechuliang=jiechuliang;
p->zhiyi=zhiyi;
p->zhier=zhier;
p->zhisan=zhisan;
}
h=NULL;
free(p);
free(h);
swimming.close();
}
cout<<"输入要修改的书的书号:";
int hao;
cin>>hao;
struct tushu*k;
k=head;
int pan=0;
while(k!=NULL)
{
if(k->shuhao==hao)
{
pan=1;
cout<<"输入要修改的位置:"<<endl;
cout<<"1.藏书量"<<endl;
cout<<"2.借出量"<<endl;
int s;
cin>>s;
if(s==1)
{
int g=0;
while(g!=1){
cout<<"输入修改后的量:";
cin>>k->chanshuliang;
if(k->chanshuliang<k->jiechuliang)
cout<<"你这量不对啊,能不能重新输入一遍:"<<endl;
else
g=1;
}
}
else if(s==2)
{
int g=0;
while(g!=1)
{
cout<<"输入修改后的量:";
cin>>k->jiechuliang;
if(k->chanshuliang<k->jiechuliang)
cout<<"你这量是不是有问题啊"<<endl;
else
g=1;
}
}
break;
}
k=k->next;
}
ofstream ming("图书.txt",ios::out);
if(!ming.fail())
{
while(head!=NULL)
{
ming<<head->jihao<<" "<<head->shuhao<<" ";
ming<<head->name<<" "<<head->zuozhe<<" ";
ming<<head->chubanshe<<" "<<head->chanshuliang<<" ";
ming<<head->jiechuliang<<" "<<head->zhiyi<<" ";
ming<<head->zhier<<" "<<head->zhisan<<endl;
head=head->next;
}
free(head);
}
ming.close();
if(pan==0)
cout<<"没找到你要修改的书"<<endl;
cout<<"是否继续修改:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int a;
cin>>a;
if(a==1)
tushuxinxixiugai(zhanhao,shenfen);
else if(a==2)
tushuguanlixition(zhanhao,shenfen);
else
fun(zhanhao,shenfen);
}
}
void tushuxinxishuru(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=2)
{
cout<<"你没有此权限,是否返回菜单:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int cai;
cin>>cai;
if(cai==1)
tushuguanlixition(zhanhao,shenfen);
else
fun(zhanhao,shenfen);
}
else
{
ofstream swimming("图书.txt",ios::app);
if(!swimming.fail())
{
tushushulian++;
int jihao=tushushulian;
int shuhao;
char ming[20];
char zuo[20];
char chu[20];
string name;
string zuozhe;
string chubanshe;
int chanshuliang;
int jiechuliang;
int zhiyi;
int zhier;
int zhisan;
cout<<"输入书号:";
cin>>shuhao;
cout<<"输入书名:";
scanf("%s",ming);
name=ming;
if(namehao[name]==0)
{
zhiyi=0;
namehao[name]=jihao;
}
else
{
zhiyi=namehao[name];
namehao[name]=jihao;
}
cout<<"输入作者:";
scanf("%s",zuo);
zuozhe=zuo;
if(zuohao[zuozhe]==0)
{
zhier=0;
zuohao[zuozhe]=jihao;
}
else
{
zhier=zuohao[zuozhe];
zuohao[zuozhe]=jihao;
}
cout<<"输入出版社:";
scanf("%s",chu);
chubanshe=chu;
if(shehao[chubanshe]==0)
{
zhisan=0;
shehao[chubanshe]=jihao;
}
else
{
zhisan=shehao[chubanshe];
shehao[chubanshe]=jihao;
}
cout<<"输入藏书量:";
cin>>chanshuliang;
cout<<"输入借出量:";
cin>>jiechuliang;
swimming<<jihao<<" "<<shuhao<<" "<<name<<" "<<zuozhe<<" "<<chubanshe<<" "<<chanshuliang<<" "<<jiechuliang<<" "<<zhiyi<<" "<<zhier<<" "<<zhisan<<endl;
}
swimming.close();
cout<<"是否继续输入:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回菜单)"<<endl;
int z;
cin>>z;
if(z==1)
tushuxinxishuru(zhanhao,shenfen);
else if(z==2)
tushuguanlixition(zhanhao,shenfen);
else
fun(zhanhao,shenfen);
}
}
void tushuguanlixition(int zhanhao,int shenfen)
{
system("cls");
tushuguanlizhucaidan();
int xuanzhe;
cin>>xuanzhe;
switch(xuanzhe)
{
case 1:
tushuxinxishuru(zhanhao,shenfen);
break;
case 2:
tushuxinxixiugai(zhanhao,shenfen);
break;
case 3:
tushuxinxichaxhun(zhanhao,shenfen);
break;
case 4:
huizontonji(zhanhao,shenfen);
case 5:
zhucaidandexuanzhe(zhanhao,shenfen);
break;
}
}
void duzheguanlizhucaidan()
{
cout<<" "<<"*********************"<<endl;
cout<<" "<<"1.读者信息输入"<<endl;
cout<<" "<<"2.读者信息修改"<<endl;
cout<<" "<<"3.读者信息删除"<<endl;
cout<<" "<<"4.读者信息查询"<<endl;
cout<<" "<<"5.读者信息显示(按读者姓氏排序)"<<endl;
cout<<" "<<"6.返回主菜单"<<endl;
cout<<" "<<"*********************"<<endl;
}
void fan(int zhanhao,int shenfen){cout<<"不返回菜单你要干嘛:"<<endl;
cout<<"按任意键返回菜单"<<endl;
char a;
cin>>a;
duzheguanlixition(zhanhao,shenfen);
}
typedef struct p{
int zhanhao;
string name;
string danwei;
long long dianhua;
int kejie;
int yijie;
}P;
void duzhexinxixianshi(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=2)
{
cout<<"您没有此权限,是否返回菜单:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int f;
cin>>f;
if(f==1)
duzheguanlixition(zhanhao,shenfen);
else
fan(zhanhao,shenfen);
}
else
{
vector<P>chuchun;
ifstream swimming("读者.txt",ios::in);
if(!swimming.fail())
{
char buf[128];
int n=0;
while(!swimming.eof())
{
n++;
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int hao;
string name;
string danwei;
long long dianhua;
int kejie;
int yijie;
ss>>hao>>name>>danwei>>dianhua>>kejie>>yijie;
chuchun.push_back({hao,name,danwei,dianhua,kejie,yijie});
}
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n-1;j++)
{
if(chuchun[i].name[0]<chuchun[j].name[0])
swap(chuchun[i],chuchun[j]);
}
}
for(int i=0;i<n-1;i++)
{
printf("%8d ",chuchun[i].zhanhao);
cout<<chuchun[i].name<<" "<<chuchun[i].danwei<<" ";
printf("%8lld ",chuchun[i].dianhua);
printf("%8d %8d\n",chuchun[i].kejie,chuchun[i].yijie);
}
}
}
cout<<"输入f返回菜单"<<endl;
char a;
cin>>a;
if(a=='f')
duzheguanlixition(zhanhao,shenfen);
else
fan(zhanhao,shenfen);
}
void duzhexinxichaxun(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=2)
{
cout<<"您没有此权限,是否返回菜单:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int f;
cin>>f;
if(f==1)
duzheguanlixition(zhanhao,shenfen);
else
fan(zhanhao,shenfen);
}
else
{
cout<<"输入要查询的读者的读者号:"<<endl;
int hao;
cin>>hao;
ifstream swimming("读者.txt",ios::in);
map<int,int>haohao;
map<int,string>haoname;
map<int,string>haodanwei;
map<int,long long>haodianhua;
map<int,int>haokejie;
map<int,int>haoyijie;
if(!swimming.fail())
{
char buf[128];
while(!swimming.eof())
{
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int haoma;
ss>>haoma;
haohao[haoma]=haoma;
ss>>haoname[haoma];
ss>>haodanwei[haoma];
ss>>haodianhua[haoma];
ss>>haokejie[haoma];
ss>>haoyijie[haoma];
}
}
swimming.close();
if(haohao[hao]==0)
cout<<"不存在你要找的人类"<<endl;
else
{
int xuan;
int n=0;
while(xuan!=2){
n++;
if(n==1){
cout<<"输入要查询的信息:"<<endl;
cout<<"1.姓名"<<endl<<"2.单位"<<endl;
cout<<"3.电话号码"<<endl;
cout<<"4.可借书数"<<endl<<"5.已借书数"<<endl;}
int x;
cout<<"输入要查询的位置:";
cin>>x;
if(x==1)cout<<"姓名:"<<haoname[hao]<<endl;
if(x==2)cout<<"单位:"<<haodanwei[hao]<<endl;
if(x==3)cout<<"电话号码"<<haodianhua[hao]<<endl;
if(x==4)cout<<"可借书数"<<haokejie[hao]<<endl;
if(x==5)cout<<"已借书数"<<haoyijie[hao]<<endl;
cout<<"是否继续查询这个人的别的信息"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
cin>>xuan;
}
}
cout<<"是否继续查找:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回菜单)"<<endl;
int k;
cin>>k;
if(k==1)
duzhexinxichaxun(zhanhao,shenfen);
else if(k==2)
duzheguanlixition(zhanhao,shenfen);
else
fan(zhanhao,shenfen);
}
}
void duzhexinxishanchu(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=2)
{
cout<<"您没有此权限,是否返回菜单:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int f;
cin>>f;
if(f==1)
duzheguanlixition(zhanhao,shenfen);
else
fan(zhanhao,shenfen);
}
else
{
ifstream swimming("读者.txt",ios::in);
Duzhe*head;
Duzhe*p;
Duzhe*g;
p=(struct duzhe*)malloc(sizeof(Duzhe));
g=(struct duzhe*)malloc(sizeof(Duzhe));
if(!swimming.fail())
{
int n=0;
char buf[128];
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
g->next=p;
g=p;
p=(struct duzhe*)malloc(sizeof(Duzhe));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int zhanhao;
string minzi;
string xuexiao;
long long haoma;
int kejie;
int yijie;
ss>>zhanhao>>minzi>>xuexiao>>haoma>>kejie>>yijie;
char name[10];
int i;
int len=minzi.length();
for(i=0;i<len;i++)name[i]=minzi[i];
name[i]='\0';
char danwei[20];
len=xuexiao.length();
for(i=0;i<len;i++)danwei[i]=xuexiao[i];
danwei[i]='\0';
p->zhanhao=zhanhao;
strcpy(p->name,name);
strcpy(p->danwei,danwei);
p->dianhua=haoma;
p->kejie=kejie;
p->yijie=yijie;
}
}
g=NULL;
free(g);
free(p);
swimming.close();
cout<<"输入要删除的人的读者号:";
int hao;
cin>>hao;
int pan=0;
if(head->zhanhao==hao)
{
pan=1;
head=head->next;
}
else
{
Duzhe*w;
Duzhe*h;
h=head;
w=head->next;
while(w!=NULL)
{
if(w->zhanhao==hao)
{
pan=1;
h->next=w->next;
}
h=w;
w=w->next;
}
free(h);
free(w);
}
if(pan==0)
cout<<"未找到要删除的人"<<endl;
else
{
ofstream ming("读者.txt",ios::out);
if(!ming.fail())
{
while(head!=NULL)
{
ming<<head->zhanhao<<" "<<head->name<<" "<<head->danwei<<" "<<head->dianhua<<" "<<head->kejie<<" "<<head->yijie<<endl;
head=head->next;
}
}
ming.close();
}
cout<<"是否要继续删:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回主菜单)"<<endl;
int a;
cin>>a;
if(a==1)
duzhexinxishanchu(zhanhao,shenfen);
else if(a==2)
duzheguanlixition(zhanhao,shenfen);
else
fan(zhanhao,shenfen);
}
}
void duzhexinxixiugai(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=2)
{
cout<<"您没有此权限,是否返回菜单:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int f;
cin>>f;
if(f==1)
duzheguanlixition(zhanhao,shenfen);
else
fan(zhanhao,shenfen);
}
else
{
ifstream swimming("读者.txt",ios::in);
Duzhe*head;
Duzhe*p;
Duzhe*g;
p=(struct duzhe*)malloc(sizeof(Duzhe));
g=(struct duzhe*)malloc(sizeof(Duzhe));
if(!swimming.fail())
{
int n=0;
char buf[128];
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
g->next=p;
g=p;
p=(struct duzhe*)malloc(sizeof(Duzhe));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int zhanhao;
string minzi;
string xuexiao;
long long haoma;
int kejie;
int yijie;
ss>>zhanhao>>minzi>>xuexiao>>haoma>>kejie>>yijie;
char name[10];
int i;
int len=minzi.length();
for(i=0;i<len;i++)name[i]=minzi[i];
name[i]='\0';
char danwei[20];
len=xuexiao.length();
for(i=0;i<len;i++)danwei[i]=xuexiao[i];
danwei[i]='\0';
p->zhanhao=zhanhao;
strcpy(p->name,name);
strcpy(p->danwei,danwei);
p->dianhua=haoma;
p->kejie=kejie;
p->yijie=yijie;
}
}
g=NULL;
free(g);
free(p);
swimming.close();
cout<<"输入需要修改信息的读者的读者号:"<<endl;
int hao;
cin>>hao;
Duzhe*w;
w=head;
int pan=0;
while(w!=NULL)
{
if(w->zhanhao==hao)
{
pan=1;
cout<<"输入要修改的位置:"<<endl;
cout<<"1.读者号"<<endl<<"2.姓名"<<endl;
cout<<"3.单位"<<endl<<"4.电话号码"<<endl;
cout<<"5.可借书数"<<endl<<"6.已借书数"<<endl;
int xuan;
cin>>xuan;
if(xuan==1){cout<<"输入修改后的读者号:";
cin>>w->zhanhao;}
if(xuan==2){cout<<"输入修改后的读者名:";
scanf("%s",w->name);}
if(xuan==3){cout<<"输入修改后的单位:";
scanf("%s",w->danwei);}
if(xuan==4){cout<<"输入修改后的电话号码:";
cin>>w->dianhua;}
if(xuan==5){cout<<"输入修改后的可借书数:";
cin>>w->kejie;}
if(xuan==6){cout<<"输入修改后的已经借书数:";
cin>>w->yijie;}
}
w=w->next;
}
free(w);
if(pan==0)
cout<<"没找到要修改的人"<<endl;
else
{
ofstream ming("读者.txt",ios::out);
if(!ming.fail())
{
while(head!=NULL)
{
ming<<head->zhanhao<<" "<<head->name<<" "<<head->danwei<<" "<<head->dianhua<<" "<<head->kejie<<" "<<head->yijie<<endl;
head=head->next;
}
}
ming.close();
}
cout<<"是否需要继续修改"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回菜单)"<<endl;
int a;
cin>>a;
if(a==1)
duzhexinxixiugai(zhanhao,shenfen);
else if(a==2)
duzheguanlixition(zhanhao,shenfen);
else
fan(zhanhao,shenfen);
}
}
void duzhexinxishuru(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=2)
{
cout<<"您没有此权限,是否返回菜单:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int f;
cin>>f;
if(f==1)
duzheguanlixition(zhanhao,shenfen);
else
fan(zhanhao,shenfen);
}
else
{
ofstream swimming("读者.txt",ios::app);
if(!swimming.fail())
{
cout<<"输入读者信息:"<<endl;
int duzhehao;
cout<<"输入读者号:";
cin>>duzhehao;
char name[10];
cout<<"输入读者名:";
scanf("%s",name);
char danwei[20];
cout<<"输入单位名:";
scanf("%s",danwei);
long long dianhua;
cout<<"输入电话号码:";
cin>>dianhua;
int shuliang;
cout<<"输入可借书数量:";
cin>>shuliang;
int yijie;
cout<<"输入已借书数量:";
cin>>yijie;
swimming<<duzhehao<<" "<<name<<" "<<danwei<<" "<<dianhua<<" "<<shuliang<<" "<<yijie<<endl;
}
swimming.close();
cout<<"是否继续输入"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回菜单)"<<endl;
int xuan;
cin>>xuan;
if(xuan==1)
duzhexinxishuru(zhanhao,shenfen);
else if(xuan==2)
duzheguanlixition(zhanhao,shenfen);
}
}
void duzheguanlixition(int zhanhao,int shenfen)
{
system("cls");
duzheguanlizhucaidan();
int xuanzhe;
cin>>xuanzhe;
switch(xuanzhe)
{
case 1:
duzhexinxishuru(zhanhao,shenfen);
break;
case 2:
duzhexinxixiugai(zhanhao,shenfen);
break;
case 3:
duzhexinxishanchu(zhanhao,shenfen);
break;
case 4:
duzhexinxichaxun(zhanhao,shenfen);
break;
case 5:
duzhexinxixianshi(zhanhao,shenfen);
break;
case 6:
zhucaidandexuanzhe(zhanhao,shenfen);
break;
}
}
void yonhuguanlicaidan()
{
cout<<" "<<"************************"<<endl<<endl;
cout<<" "<<"1.用户信息输入"<<endl;
cout<<" "<<"2.用户信息修改"<<endl;
cout<<" "<<"3.用户信息删除"<<endl;
cout<<" "<<"4.用户信息显示"<<endl;
cout<<" "<<"5.用户密码修改"<<endl;
cout<<" "<<"6.返回主菜单"<<endl<<endl;
cout<<" "<<"************************"<<endl<<endl;
}
void yonhumimaxiugai(int zhanhao,int shenfen)
{
system("cls");
ifstream swimming("账户.txt",ios::in);
Yonhu *head;
Yonhu*p;
Yonhu*g;
p=g=(struct yonhu*)malloc(sizeof(struct yonhu));
if(!swimming.fail())
{
char buf[128];
int n=0;
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
g->next=p;
g=p;
p=(struct yonhu*)malloc(sizeof(struct yonhu));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int zhanhao;
string mima;
int shen;
ss>>zhanhao>>mima>>shen;
char zhuanhuan[30];
int i;
int len=mima.length();
for(i=0;i<len;i++)
zhuanhuan[i]=mima[i];
zhuanhuan[i]='\0';
p->name=zhanhao;
strcpy(p->mima,zhuanhuan);
p->shenfen=shen;
}
}
swimming.close();
g=NULL;
free(g);
free(p);
int a=zhanhao;
Yonhu*gai;
gai=head;
while(gai!=NULL)
{
if(gai->name==a)
{
cout<<"输入修改之后的密码";
scanf("%s",gai->mima);
}
gai=gai->next;
}
ofstream mimm("账户.txt",ios::out);
while(head!=NULL)
{
mimm<<head->name<<" "<<head->mima<<" "<<head->shenfen<<endl;
head=head->next;
}
mimm.close();
cout<<"按1返回菜单"<<endl;
int as;
cin>>as;
if(as==1)
yonhuguanlixition(zhanhao,shenfen);
}
void yonhuxinxixianshi(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=1)
{
cout<<"您没有此权限,如需返回菜单请输入1"<<endl;
int a;
cin>>a;
yonhuguanlixition(zhanhao,shenfen);
}
else
{
cout<<"账号"<<" "<<"密码"<<" "<<"身份权限"<<endl;
ifstream swimming("账户.txt",ios::in);
Yonhu *head;
Yonhu*p;
Yonhu*g;
p=g=(struct yonhu*)malloc(sizeof(struct yonhu));
if(!swimming.fail())
{
char buf[128];
int n=0;
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
g->next=p;
g=p;
p=(struct yonhu*)malloc(sizeof(struct yonhu));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int zhanhao;
string mima;
int shen;
ss>>zhanhao>>mima>>shen;
char zhuanhuan[30];
int i;
int len=mima.length();
for(i=0;i<len;i++)
zhuanhuan[i]=mima[i];
zhuanhuan[i]='\0';
p->name=zhanhao;
strcpy(p->mima,zhuanhuan);
p->shenfen=shen;
}
}
swimming.close();
g=NULL;
free(g);
free(p);
struct yonhu*k;
k=head;
while(k!=NULL)
{
printf("%8d ",k->name);
printf("%8s",k->mima);
printf("%8d\n",k->shenfen);
k=k->next;
}
cout<<"是否返回菜单"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int a;
cin>>a;
if(a==1)
yonhuguanlixition(zhanhao,shenfen);
else
return;
}
}
void yonhuxinxisanchu(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=1)
{
cout<<"您没有此权限,如需返回菜单请输入1"<<endl;
int a;
cin>>a;
yonhuguanlixition(zhanhao,shenfen);
}
else
{
ifstream swimming("账户.txt",ios::in);
Yonhu *head;
Yonhu*p;
Yonhu*g;
p=g=(struct yonhu*)malloc(sizeof(struct yonhu));
if(!swimming.fail())
{
char buf[128];
int n=0;
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
g->next=p;
g=p;
p=(struct yonhu*)malloc(sizeof(struct yonhu));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int zhanhao;
string mima;
int shen;
ss>>zhanhao>>mima>>shen;
char zhuanhuan[30];
int i;
int len=mima.length();
for(i=0;i<len;i++)
zhuanhuan[i]=mima[i];
zhuanhuan[i]='\0';
p->name=zhanhao;
strcpy(p->mima,zhuanhuan);
p->shenfen=shen;
}
}
swimming.close();
g=NULL;
free(g);
free(p);
cout<<"要删除的用户的账号:";
int h;
cin>>h;
int panduan=0;
Yonhu*shan;
shan=head;
Yonhu*chu;
if(head->next!=NULL)
chu=head->next;
if(head->name==h){
panduan=1;
head=head->next;
}
else
{
while(chu!=NULL)
{
if(chu->name==h)
{
panduan=1;
shan->next=chu->next;
}
shan=chu;
chu=chu->next;
}
}
ofstream mimm("账户.txt",ios::out);
while(head!=NULL)
{
mimm<<head->name<<" "<<head->mima<<" "<<head->shenfen<<endl;
head=head->next;
}
if(panduan==0)
{
cout<<"没找到你说的那个人"<<endl;
}
cout<<"是否继续删人:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回菜单)"<<endl;
int s;
cin>>s;
if(s==1)
{
system("cls");
yonhuxinxisanchu(zhanhao,shenfen);
}
else if(s==2)
yonhuguanlixition(zhanhao,shenfen);
}
}
void yonhuxinxixiugai(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=1)
{
cout<<"您没有此权限,如需返回菜单请输入1"<<endl;
int a;
cin>>a;
yonhuguanlixition(zhanhao,shenfen);
}
else
{
ifstream swimming("账户.txt",ios::in);
Yonhu *head;
Yonhu*p;
Yonhu*g;
p=g=(struct yonhu*)malloc(sizeof(struct yonhu));
if(!swimming.fail())
{
char buf[128];
int n=0;
while(!swimming.eof())
{
n++;
if(n==1)
{
head=p;
}
else
{
g->next=p;
g=p;
p=(struct yonhu*)malloc(sizeof(struct yonhu));
}
swimming.getline(buf,128);
string zhanchun=buf;
stringstream ss(zhanchun);
int zhanhao;
string mima;
int shen;
ss>>zhanhao>>mima>>shen;
char zhuanhuan[30];
int i;
int len=mima.length();
for(i=0;i<len;i++)
zhuanhuan[i]=mima[i];
zhuanhuan[i]='\0';
p->name=zhanhao;
strcpy(p->mima,zhuanhuan);
p->shenfen=shen;
}
}
swimming.close();
g=NULL;
free(g);
free(p);
cout<<"打印所有用户的信息:"<<endl;
cout<<"账号"<<" "<<"密码"<<" "<<"身份权限"<<endl;
struct yonhu*k;
k=head;
while(k!=NULL)
{
printf("%8d ",k->name);
printf("%8s",k->mima);
printf("%8d\n",k->shenfen);
k=k->next;
}
cout<<"输入要修改的人的账号:";
int a;
cin>>a;
Yonhu*gai;
gai=head;
int panduan=0;
while(gai!=NULL)
{
if(gai->name==a)
{
panduan=1;
cout<<"要修改的地方是什么:"<<endl;
cout<<"1.账号"<<endl;
cout<<"2.密码"<<endl;
cout<<"3.身份"<<endl;
cout<<"4.算了不改了"<<endl;
int xiu;
cin>>xiu;
if(xiu==1)
{
cout<<"输入修改之后的账号";
cin>>gai->name;
}
else if(xiu==2)
{
cout<<"输入修改之后的密码";
scanf("%s",gai->mima);
}
else if(xiu==3)
{
cout<<"输入修改之后的身份";
cin>>gai->shenfen;
}
else
{
break;
}
}
gai=gai->next;
}
ofstream mimm("账户.txt",ios::out);
while(head!=NULL)
{
mimm<<head->name<<" "<<head->mima<<" "<<head->shenfen<<endl;
head=head->next;
}
mimm.close();
if(panduan==0)
{
cout<<"并没有你要修改的人的账号"<<endl;
}
cout<<"是否继续修改:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否(返回菜单)"<<endl;
int s;
cin>>s;
if(s==1)
yonhuxinxixiugai(zhanhao,shenfen);
else if(s==2)
yonhuguanlixition(zhanhao,shenfen);
}
}
void yonhuxinxishuru(int zhanhao,int shenfen)
{
system("cls");
if(shenfen!=1)
{
cout<<"您没有此权限,如需返回菜单请输入1"<<endl;
int a;
cin>>a;
yonhuguanlixition(zhanhao,shenfen);
}
else
{
ofstream swimming("账户.txt",ios::app);
int zhanhao;
char mima[30];
int shenfen;
if(!swimming.fail())
{
cout<<"请输入要添加的用户的账号:";
cin>>zhanhao;
cout<<"请输入要添加的用户的密码:";
scanf("%s",mima);
cout<<"请输入要添加的用户的身份:";
cin>>shenfen;
swimming<<zhanhao<<" "<<mima<<" "<<shenfen<<endl;
}
}
system("cls");
cout<<"是否要继续添加用户信息:"<<endl;
cout<<"1.是"<<endl;
cout<<"2.否"<<endl;
int a;
cin>>a;
if(a==1){
system("cls");
yonhuxinxishuru(zhanhao,shenfen);
}
else
yonhuguanlixition(zhanhao,shenfen);
}
void yonhuguanlixition(int zhanhao,int shenfen)
{
system("cls");
yonhuguanlicaidan();
int xuanzhe;
cin>>xuanzhe;
switch(xuanzhe)
{
case 1:
yonhuxinxishuru(zhanhao,shenfen);
break;
case 2:
yonhuxinxixiugai(zhanhao,shenfen);
break;
case 3:
yonhuxinxisanchu(zhanhao,shenfen);
break;
case 4:
yonhuxinxixianshi(zhanhao,shenfen);
break;
case 5:
yonhumimaxiugai(zhanhao,shenfen);
break;
case 6:
zhucaidandexuanzhe(zhanhao,shenfen);
break;
}
}
void zhucaidan()
{
cout<<" "<<"************************"<<endl<<endl;
cout<<" "<<"1.用户管理"<<endl;
cout<<" "<<"2.读者管理"<<endl;
cout<<" "<<"3.图书管理"<<endl;
cout<<" "<<"4.图书流通管理"<<endl;
cout<<" "<<"5.退出系统"<<endl<<endl;
cout<<" "<<"************************"<<endl<<endl;
}
void zhucaidandexuanzhe(int zhanhao,int shenfen)
{
system("cls");
zhucaidan();
int xuanzhe;
cin>>xuanzhe;
switch(xuanzhe)
{
case 1:
yonhuguanlixition(zhanhao,shenfen);
break;
case 2:
duzheguanlixition(zhanhao,shenfen);
break;
case 3:
tushuguanlixition(zhanhao,shenfen);
break;
case 4:
tushuguanliliutonxition(zhanhao,shenfen);
break;
case 5:
system("cls");
break;
}
}
void denluxiton()
{
cout<<"*********************"<<endl<<endl;
cout<<" "<<"1.创建账户"<<endl;
cout<<" "<<"2.登录系统"<<endl<<endl;
cout<<"*********************"<<endl;
}
void zhanhu()
{
denluxiton();
int xuanzhe;
cin>>xuanzhe;
switch(xuanzhe)
{
case 1:
chuanjian();
zhanhu();
break;
case 2:
shurumimajinxindenlu();
break;
}
}
void chuanjian()
{
system("cls");
ofstream swimming("账户.txt",ios::app);
if(!swimming.fail())
{
long long hao;
char mima[30];
char hedui[30];
int shenfen;
cout<<"输入账号:";
cin>>hao;
cout<<"输入密码:";
scanf("%s",mima);
cout<<"再次输入密码:";
scanf("%s",hedui);
while(strcmp(mima,hedui)!=0)
{
cout<<"密码错误请重新输入:"<<endl;
cout<<"输入密码:";
scanf("%s",mima);
cout<<"再次输入密码:";
scanf("%s",hedui);
}
cout<<"输入身份:";
cin>>shenfen;
swimming<<hao<<" "<<mima<<" "<<shenfen<<endl;
}
swimming.close();
system("cls");
}
void shurumimajinxindenlu()
{
system("cls");
cout<<"*************************"<<endl;
cout<<" 请输入账号:";
int zhanhao;
cin>>zhanhao;
cout<<" 请输入密码:";
char mima[30];
scanf("%s",mima);
map<int,string>zhanmi;
map<int,int>zhanshen;
fstream swimming("账户.txt",ios::in);
if(!swimming.fail())
{
char buf[128];
while(swimming.getline(buf,128))
{
string zhanchun=buf;
stringstream ss(zhanchun);
int zhan,shen;
string mi;
ss>>zhan>>mi>>shen;
zhanmi[zhan]=mi;
zhanshen[zhan]=shen;
}
}
string k=mima;
if(zhanmi[zhanhao]!=k)
{
cout<<"您的账户或密码错误:"<<endl;
int a;
cout<<"如果需要创建账户请输入1"<<endl;
cout<<"如果需要重新输入账户和密码请输入2:"<<endl;
cout<<"如果输入其它什么东西可是什么都不会发生的哦!"<<endl;
cin>>a;
system("cls");
if(a==1)
zhanhu();
else if(a==2)
shurumimajinxindenlu();
}
else
{
system("cls");
zhucaidandexuanzhe(zhanhao,zhanshen[zhanhao]);
}
}
int main()
{
zhanhu();
return 0;
}
运行效果如下。
差不多展示点得了