急求解决参数传递的问题
原程序CODE,哎,想了好久没搞出,明天就要交了[Discuz!]&Menu=yes" target="_blank">" border="0">报的是这个错误:“错误 43 error C2660: 'RecordLend2' : function does not take 1 arguments d:\图书馆管理系统\library manages system.cpp 745
”
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define N 20
#define U 10000
#define B 100000
//管理员结构
struct Admin
{
char A_number[4];//管理员编号
char A_name[20];//管理员姓名
char A_password[7];//管理员密码
}arr_admin[N]={{"001","Admin","123456"},{"002","admin","654321"}};//定义一个大小为20的结构数组的变量 arr_admin,用于存储管理员信息
//用户结构
struct User
{
char U_number[4];//用户编号
char U_name[20];//用户姓名
char U_password[7];//用户密码
}arr_user[U]={"101","user","123456"};//定义一个大小为10000的结构数组的变量 arr_user,用于存储用户信息
//书籍结构
struct Book
{
char b_number[10];//书籍编号
char b_name[20];//书名
bool b_fs;//书籍是否借出
char b_type[20];//书籍类型
int b_Lenddate;//书籍借出日期
int b_Givedate;//书籍还进日期
char b_Position[6];//书籍所在位置
char b_Lenduser[20];//借书人姓名
int b_judge;//用于在给结构数组赋值时定位到有值的下一位
}arr_bk[B]={"080701","科学论",false,"科学类",NULL,NULL,"A1区"," ",1,
"080702","水浒",false,"文学类",NULL,NULL,"B1区"," ",1,
"080703","字典",false,"工具书",NULL,NULL,"C2区"," ",1,
"080704","读者",false,"其它",NULL,NULL,"D3区"," ",1,
"080705","西游记",true,"文学类",81009,NULL,"B4区","user",1,
"080706","PS9.0",true,"工具书",80901,NULL,"C1区","user",1};//定义一个大小为100000的结构数组的变量 arr_bk,用于存储书籍信息
int pdcount=1;//定义一个 int 类型的全局变量 pdcount 用于累计输入密码的次数
void logo();//时间、日期与欢迎语
void logoInterface();//主界面
void AdminLand();//管理员登陆
void UserLand();//用户登陆
void Help();//帮助
void Exits();//退出
void ExitSearch();//退出查询
void RAdminOperate();//返回到管理员操作界面
void CtLendbook();//返回继续借书
void CtRbook();//返回继续还书
void AdminOperate();//管理员操作
void UserSearch();//用户查询
void Lendbook();//查看所有借出书籍
void stockbook();//查看库存书籍
void RecordLend();//登记用户借出的书籍(验证借书证)
void RecordLend2();//登记用户借出的书籍2
void Returnbook();//登记用户所还的书籍
void AddAdmin();//增加管理员
void DelAdmin();//删除管理员
void AddUser();//增加用户
void DelUser();//删除用户
void AddBook();//增加书籍
void DelBook();//删除书籍
void main()
{
system("title 图书馆管理系统");//设置标题
printf("按任意键进入系统……");
getch();
logoInterface();//调用主界面
getch();
}
//时间、日期与欢迎语
void logo()
{
system("cls");//清屏
system("color 17");//前景色和背景色
system("date/t");//日期
system("time/t");//时间
printf("Welcome into a library management system!\n");
printf("≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
}
//主界面
void logoInterface()
{
logo();//调用logo()函数用于设置时间、日期与欢迎语
int s;//定义一个int 的变量 s 用于 switch 来判断条件
printf(" 图书馆管理系统 \n");
printf("\n");
printf("\t≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌\n");
printf("\t≮ ≯\n");
printf("\t≮ 1←——管理员登陆 ≯\n");
printf("\t≮ ≯\n");
printf("\t≮ 2←——用户登陆 ≯\n");
printf("\t≮ ≯\n");
printf("\t≮ 3←——帮助 ≯\n");
printf("\t≮ ≯\n");
printf("\t≮ 0←——退出系统 ≯\n");
printf("\t≮ ≯\n");
printf("\t≮ →\n");
printf("\t≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌\n\n\n");
printf(" 本系统由第一小组成员共同研发\n");
printf(" All rights reserve, the clone necessarily investigates!");
printf("请选择(0-3):");
fflush(stdin);//清除缓冲
scanf("%d",&s);
switch(s)
{
case 0:
Exits();//退出系统
break;
case 1:
AdminLand();//管理员登陆
break;
case 2:
UserLand();//用户登陆
break;
case 3:
Help();//帮助
break;
default :
printf("没有这个选项!……按任意键重新输入\n");
getch();
logoInterface();//重新返回到主界面输入
}
}
//管理员登陆
void AdminLand()
{
logo();//调用logo()函数用于设置时间、日期与欢迎语
char p_number[4];//定义一个局部变量 char 类型的数组 p_number 用于接受输入管理员编号
char p_name[20];//定义一个局部变量 char 类型的数组 p_name 用于接受输入管理员姓名
char p_password[7];//定义一个局部变量 char 类型的数组 p_password 用于接受输入管理员密码
printf(" 管理员登陆\n");
printf(" -----------------------------------------------------\n");
printf(" 请输入管理员编号:");
fflush(stdin);
gets(p_number);
printf("\n");
printf(" 请输入管理员姓名:");
fflush(stdin);
scanf("%s",&p_name);
printf("\n");
printf(" 请输入管理员密码:");
//用一个 for 循环接受用户输入密码,利用 getch 不回显的特性使密码变为不可见
for(int i=0;i<7;i++)
{
p_password[i]=getch();
if(p_password[i]==8)
{
printf("\b \b");
p_password[i]='\0';
i-=2;
}
else
{
printf("%c",1);
}
}
p_password[6]='\0';//清空 p_password[6] 的内容
for(int i=0;i<N;i++)
{
int str_number=strcmp(p_number,arr_admin[i].A_number);
int str_name=strcmp(p_name,arr_admin[i].A_name);
int str_password=strcmp(p_password,arr_admin[i].A_password);
if (str_number==0 && str_name==0 && str_password==0)
{
AdminOperate();
break;
}
else if(i==N-1)
{
if(pdcount>2)
{
printf("\n");
printf("\n\t\t\t您的输入以达到最高次数……无权再次输入!");
printf("\n\t\t\t按任意键返回主菜单!");
getch();
logoInterface();
}
else
{
printf("\n\n\n\t\t\t您输入有误……请重新输入");
getch();
pdcount++;
AdminLand();
break;
}
}
else
{
continue;
}
}
}
//用户登陆`
void UserLand()
{
logo();//调用logo()函数用于设置时间、日期与欢迎语
char p_number[4];//定义一个局部变量 char 类型的数组 p_number 用于接受输入用户编号
char p_name[20];//定义一个局部变量 char 类型的数组 p_name 用于接受输入用户姓名
char p_password[7];//定义一个局部变量 char 类型的数组 p_password 用于接受输入用户密码
printf(" 用户登陆\n");
printf(" -----------------------------------------------------\n");
printf(" 请输入用户编号:");
fflush(stdin);
gets(p_number);
printf("\n");
printf(" 请输入用户名:");
fflush(stdin);
scanf("%s",&p_name);
printf("\n");
printf(" 请输入用户密码:");
//用一个 for 循环接受用户输入密码,利用 getch 不回显的特性使密码变为不可见
for(int i=0;i<7;i++)
{
p_password[i]=getch();
if(p_password[i]==8)
{
printf("\b \b");
p_password[i]='\0';
i-=2;
}
else
{
printf("%c",1);
}
}
p_password[6]='\0';//清空 p_password[6] 的内容
for(int i=0;i<U;i++)
{
int str_number=strcmp(p_number,arr_user[i].U_number);
int str_name=strcmp(p_name,arr_user[i].U_name);
int str_password=strcmp(p_password,arr_user[i].U_password);
if (str_number==0 && str_name==0 && str_password==0)
{
UserSearch();
break;
}
else if(i==U-1)
{
if(pdcount>2)
{
printf("\n");
printf("\n\t\t\t您的输入以达到最高次数……无权再次输入!");
printf("\n\t\t\t按任意键返回主菜单!");
getch();
logoInterface();
}
else
{
printf("\n\n\n\t\t\t您输入有误……请重新输入");
getch();
pdcount++;
UserLand();
break;
}
}
else
{
continue;
}
}
}
//帮助文档
void Help()
{
logo();//调用logo()函数用于设置时间、日期与欢迎语
printf(" 帮助文档\n\n");
printf("-------------------------------------------------------------------------------\n\n");
printf("\t首先进入主界面,主界面有四个选项即:管理员登陆,用户登陆、帮助和退出\n");
printf("以管理员身份登陆后进入管理员界面。管理工作员界面有十一个选项,即:增加管理员、删除管理员、");
printf("增加用户、删除用户、查看所有借出书籍、查看现有库存书籍、登记用户借出的书籍、登记用户所还的书籍、");
printf("增加书籍、删除书籍和退出系统。\n\t增加管理员选项用于在图书馆增加了员工时给");
printf("员工管理的权限(注:系统最初有一个自带的管理员)。\n\t删除管理员选项同于在此管理员不再是管理");
printf("工作员时删除他。\n\t增加用户选项用于增加一个图书馆的会员\n\t删除用户选项用于删除会员\n\t");
printf("查看所有借出书籍选项用于查看 共借出了多少本书并查看是否有过期未还书的会员。");
printf("如果有就记一次不良记录,不良记录超过3次以上系统将自动删除会员名单。\n\t");
printf("查看现有库存书籍选项用于查看馆内还有多少本书并判断是否要购书。\n\t");
printf("登记用户借书的书籍选项是用于当用户查询并取到自己所须要的书后来管理工作员处登记。\n\t");
printf("登记用户所还的书籍选项用于登记用户阅读完之后还回的书籍,并将它入库。\n\t");
printf("增加书籍选项用于当馆内新购的书籍添加到书籍的库存中。\n\t");
printf("删除书籍选项用于在书籍丢失后删除此书\n\t退出系统\n\t");
printf("用户登录界面以用户的身份登录进入后可以由用户自由选样查询某一类型的某一书所在的位置,");
printf("或某一类型书籍所在的位置,如果书籍名称而不知道书籍的类型时可以选择“未知书籍类型”");
printf("来在整个库存搜索。查询到书籍所在的位置,自行去取书后到管理员处登记,登记完成后借书过程结束。\n\t");
printf("帮助界面是用于对于本系统不太熟悉的用户或是管理工作员来进行指导的一个文档。\n\n\n");
printf("按任意键返回主界面……");
fflush(stdin);
getch();
logoInterface();
}
//退出系统
void Exits()
{
logo();
char Judge;//定义一个char 类型的局部变量 Judge ,用于判断用户输入
printf("\n");
printf("你确定退出吗?\ny---退出\tn---返回主界面\n");
fflush(stdin);//清除缓冲
scanf("%c",&Judge);
if(Judge=='y'||Judge=='Y')
{
exit(0);
}
if(Judge=='n'||Judge=='N')
{
logoInterface();
}
if((Judge!='y'||Judge!='Y')||(Judge!='n'||Judge!='N'))
{
printf("\n\n\n");
printf("您的输入有误!……按任意键重新输入!");
getch();
Exits();//重新调用函数再次输入
}
}
//退出查询
void ExitSearch()
{
logo();
char Judge;//定义一个char 类型的局部变量 Judge ,用于判断用户输入
printf("\n");
printf("你确定退出吗?\ny---返回到主界面\tn---返回查询界面\n");
fflush(stdin);//清除缓冲
scanf("%c",&Judge);
if(Judge=='y'||Judge=='Y')
{
logoInterface();
}
if(Judge=='n'||Judge=='N')
{
UserSearch();
}
if((Judge!='y'||Judge!='Y')||(Judge!='n'||Judge!='N'))
{
printf("\n\n\n");
printf("您的输入有误!……按任意键重新输入!");
getch();
Exits();//重新调用函数再次输入
}
}
//返回到管理员操作界面
void RAdminOperate()
{
logo();
char Judge;//定义一个char 类型的局部变量 Judge ,用于判断用户输入
printf("\n");
printf("你确定退出吗?\ny---返回到主界面\tn---返回到上一级\n");
fflush(stdin);//清除缓冲
scanf("%c",&Judge);
if(Judge=='y'||Judge=='Y')
{
logoInterface();
}
if(Judge=='n'||Judge=='N')
{
AdminOperate();
}
if((Judge!='y'||Judge!='Y')||(Judge!='n'||Judge!='N'))
{
printf("\n\n\n");
printf("您的输入有误!……按任意键重新输入!");
getch();
RAdminOperate();//重新调用函数再次输入
}
}
//返回继续借书
void CtLendbook()
{
logo();
char Judge;//定义一个char 类型的局部变量 Judge ,用于判断用户输入
printf("\n");
printf("你确定退出吗?\ny---返回到上一级\tn---继续借书\n");
fflush(stdin);//清除缓冲
scanf("%c",&Judge);
if(Judge=='y'||Judge=='Y')
{
AdminOperate();
}
if(Judge=='n'||Judge=='N')
{
RecordLend2();
}
if((Judge!='y'||Judge!='Y')||(Judge!='n'||Judge!='N'))
{
printf("\n\n\n");
printf("您的输入有误!……按任意键重新输入!");
getch();
Returnbook();//重新调用函数再次输入
}
}
//返回继续还书
void CtRbook()
{
logo();
char Judge;//定义一个char 类型的局部变量 Judge ,用于判断用户输入
printf("\n");
printf("你确定退出吗?\ny---返回到主界面\tn---继续还书\n");
fflush(stdin);//清除缓冲
scanf("%c",&Judge);
if(Judge=='y'||Judge=='Y')
{
AdminOperate();
}
if(Judge=='n'||Judge=='N')
{
Returnbook();
}
if((Judge!='y'||Judge!='Y')||(Judge!='n'||Judge!='N'))
{
printf("\n\n\n");
printf("您的输入有误!……按任意键重新输入!");
getch();
CtRbook();//重新调用函数再次输入
}
}
//管理员操作
void AdminOperate()
{
int s;//定义一个 int 的局部变量 s 用来接受用户输入来匹配switch
logo();//调用logo()函数用于设置时间、日期与欢迎语
printf(" 管理员操作 \n");
printf("\n");
printf("\t≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌\n");
printf("\t≮ 1 - 增加管理员 ≯\n");
printf("\t≮ 2 - 删除管理员 ≯\n");
printf("\t≮ 3 - 增加用户 ≯\n");
printf("\t≮ 4 - 删除用户 ≯\n");
printf("\t≮ 5 - 查看所有借出书籍 ≯\n");
printf("\t≮ 6 - 查看现库存书籍 ≯\n");
printf("\t≮ 7 - 登记用户借出书籍 ≯\n");
printf("\t≮ 8 - 登记用户所还书籍 ≯\n");
printf("\t≮ 9 - 增加书籍 ≯\n");
printf("\t≮ 10- 删除书籍 ≯\n");
printf("\t≮ 0 - 退出系统 →\n");
printf("\t≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌\n\n\n\n\n");
printf("请选择(0-10):");
fflush(stdin);//清除缓冲
scanf("%d",&s);
switch(s)
{
case 0:
Exits();//退出系统
break;
case 1:
AddAdmin();//增加管理员
break;
case 2:
DelAdmin();//删除管理员
break;
case 3:
AddUser();//增加用户
break;
case 4:
DelUser();//删除用户
break;
case 5:
Lendbook();//查看所有借出书籍
break;
case 6:
stockbook();//查看现库存书籍
break;
case 7:
RecordLend();//登记用户借出书籍
break;
case 8:
Returnbook();//登记用户所还的书籍
break;
case 9:
AddBook();//增加书籍
break;
case 10:
DelBook();//删除书籍
break;
default :
printf("没有这个选项!……按任意键重新输入\n");
getch();
AdminOperate();//重新返回到主界面输入
}
}
//用户查询书籍
void UserSearch()
{
logo();//调用logo()函数用于设置时间、日期与欢迎语
int s;//定义一个局部变量,用于给 switch 传参
int Other,Toolbook,Science,Literature;//定义一个 int 类型的变量 Other,Toolbook,Science,Literature 用于存储对比后的返回值
int judge;
int Count=0;
for(int i=0;i<B;i++)
{
if(arr_bk[i].b_judge!=0)
{
Count++;
}
}
printf(" 用户查询书籍 \n");
printf("\n");
printf("\t≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌\n");
printf("\t≮ ≯\n");
printf("\t≮ 1—— 科学类 ≯\n");
printf("\t≮ ≯\n");
printf("\t≮ 2—— 文学类 ≯\n");
printf("\t≮ ≯\n");
printf("\t≮ 3—— 工具书 ≯\n");
printf("\t≮ ≯\n");
printf("\t≮ 0—— 其它 ≯\n");
printf("\t≮ ≯\n");
printf("\t≮ →\n");
printf("\t≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌\n\n\n\n\n");
printf("请选择(0-3):");
fflush(stdin);//清除缓冲
scanf("%d",&s);
switch(s)
{
case 0:
system("cls");
logo();
printf("\n");
int Other;//定义一个 int 类型的变量 Other 用于存储对比后的返回值
printf("书籍编号 书名 书籍类型 书籍借出日期 书籍还进日期 书籍所在位置\n");
for(int i=0;i<Count;i++)
{
Other=strcmp(arr_bk[i].b_type,"其它");
Science=strcmp(arr_bk[i].b_type,"科学类");
Literature=strcmp(arr_bk[i].b_type,"文学类");
Toolbook=strcmp(arr_bk[i].b_type,"工具书");
if(Other==0 || (Science!=0 && Literature!=0 && Toolbook!=0))
{
printf("%s %s\t%s\t\t%d\t%d\t\t%s\n",arr_bk[i].b_number,arr_bk[i].b_name,arr_bk[i].b_type,arr_bk[i].b_Lenddate,arr_bk[i].b_Givedate,arr_bk[i].b_Position);
}
}
printf("\n\n\n\n\n\n");
printf("按任意键退出……");
getch();
ExitSearch();//退出查询
break;
case 1:
system("cls");//清屏
logo();
printf("\n");
int Science;//定义一个 int 类型的变量 Science 用于存储对比后的返回值
printf("书籍编号 书名 书籍类型 书籍借出日期 书籍还进日期 书籍所在位置\n");
for(int i=0;i<Count;i++)
{
Science=strcmp(arr_bk[i].b_type,"科学类");
if(Science==0)
{
printf("%s %s\t%s\t\t%d\t%d\t\t%s\n",arr_bk[i].b_number,arr_bk[i].b_name,arr_bk[i].b_type,arr_bk[i].b_Lenddate,arr_bk[i].b_Givedate,arr_bk[i].b_Position);
}
}
printf("\n\n\n\n\n\n");
printf("按任意键退出……");
getch();
ExitSearch();//退出查询
break;
case 2:
system("cls");//清屏
logo();
printf("\n");
int Literature;//定义一个 int 类型的变量 Literature 用于存储对比后的返回值
printf("书籍编号 书名 书籍类型 书籍借出日期 书籍还进日期 书籍所在位置\n");
for(int i=0;i<Count;i++)
{
Literature=strcmp(arr_bk[i].b_type,"文学类");
if(Literature==0)
{
printf("%s %s\t%s\t\t%d\t%d\t\t%s\n",arr_bk[i].b_number,arr_bk[i].b_name,arr_bk[i].b_type,arr_bk[i].b_Lenddate,arr_bk[i].b_Givedate,arr_bk[i].b_Position);
}
}
printf("\n\n\n\n\n\n");
printf("按任意键退出……");
getch();
ExitSearch();//退出查询
break;
case 3:
system("cls");//清屏
logo();
printf("\n");
int Toolbook;//定义一个 int 类型的变量 Toolbook 用于存储对比后的返回值
printf("书籍编号 书名 书籍类型 书籍借出日期 书籍还进日期 书籍所在位置\n");
for(int i=0;i<Count;i++)
{
Toolbook=strcmp(arr_bk[i].b_type,"工具书");
if(Toolbook==0)
{
printf("%s %s\t%s\t\t%d\t%d\t\t%s\n",arr_bk[i].b_number,arr_bk[i].b_name,arr_bk[i].b_type,arr_bk[i].b_Lenddate,arr_bk[i].b_Givedate,arr_bk[i].b_Position);
}
}
printf("\n\n\n\n\n\n");
printf("按任意键退出……");
getch();
ExitSearch();//退出查询
break;
default :
printf("没有这个选项!……按任意键重新输入\n");
getch();
system("cls");//清屏
UserSearch();
}
}
//查看所有借出书籍
void Lendbook()
{
system("cls");//清屏
logo();
printf("\n");
printf("书籍编号 书名 书籍类型 书籍借出日期 书籍还进日期 借书人 书籍原所在位置\n");
for(int i=0;i<B;i++)
{
if(arr_bk[i].b_fs)
{
printf("%s %s\t%s\t\t%d\t%d\t%s\t\t%s\n",arr_bk[i].b_number,arr_bk[i].b_name,arr_bk[i].b_type,arr_bk[i].b_Lenddate,arr_bk[i].b_Givedate,arr_bk[i].b_Lenduser,arr_bk[i].b_Position);
}
}
printf("\n\n\n\n\n\n\n\n\n\n按任意键退出……");
getch();
RAdminOperate();
}
//查看库存书籍
void stockbook()
{
system("cls");//清屏
logo();
printf("\n");
int judge;
int Count=0;
for(int i=0;i<B;i++)
{
if(arr_bk[i].b_judge!=0)
{
Count++;
}
}
printf("书籍编号\t书名\t书籍类型 \t书籍所在位置\n");
for(int i=0;i<Count;i++)
{
if(arr_bk[i].b_fs!=true)
{
printf("%s\t\t%s\t%s\t\t\t%s\n",arr_bk[i].b_number,arr_bk[i].b_name,arr_bk[i].b_type,arr_bk[i].b_Position);
}
}
printf("\n\n\n\n\n\n\n\n\n\n按任意键退出……");
getch();
RAdminOperate();
}
//登记用户借出的书籍(验证借书证)
void RecordLend()
{
system("cls");//清屏
logo();
printf("\n");
char p_number[4];//定义一个局部变量 char 类型的数组 p_number 用于接受输入用户编号
char p_name[20];//定义一个局部变量 char 类型的数组 p_name 用于接受输入用户姓名
char p_password[7];//定义一个局部变量 char 类型的数组 p_password 用于接受输入用户密码
char name[20];//定义一个局部变量 char 类型的数组 name 用于参数的传递
int R;//定义一个局部变量 int 类型的 R 用于接受输入判断是否返回主菜单
printf("请输入你的借书证信息!\n");
printf(" 请输入用户编号:");
fflush(stdin);
gets(p_number);
printf("\n");
printf(" 请输入用户名:");
fflush(stdin);
scanf("%s",&p_name);
printf("\n");
printf(" 请输入用户密码:");
//用一个 for 循环接受用户输入密码,利用 getch 不回显的特性使密码变为不可见
for(int i=0;i<7;i++)
{
p_password[i]=getch();
if(p_password[i]==8)
{
printf("\b \b");
p_password[i]='\0';
i-=2;
}
else
{
printf("%c",2);
}
}
p_password[6]='\0';//清空 p_password[6] 的内容
for(int i=0;i<U;i++)
{
int str_number=strcmp(p_number,arr_user[i].U_number);
int str_name=strcmp(p_name,arr_user[i].U_name);
int str_password=strcmp(p_password,arr_user[i].U_password);
if (str_number==0 && str_name==0 && str_password==0)
{
printf("\n\t确有此用户……准允借书!");
getch();
//for(int k=0;i<N;k++)
//{
// name[k]=p_name[k];
//}
RecordLend2(p_name);//将数组值参数传递
}
else if(i==U-1)
{
if(pdcount>2)
{
printf("\n\t\t\t您的输入以达到最高次数……无权再次输入!");
printf("\n\t\t\t按任意键返回到上一级……");
getch();
AdminOperate();
}
if(i==U-1)
{
printf("\n\n\n\t\t\t您输入有误……请重新输入!");
pdcount++;//用户输入一次密码,计数器累加1
getch();
RecordLend();
}
}
else
{
continue;
}
}
}
//登记用户借出的书籍2
void RecordLend2(char n[])
{
bool b=false;
int bk_date;//定义一个局部变量 int 类型的 bk_date 用于接受管理员输入借书时间
char bk_number[10];//定义一个局部变量 char 类型的数组 bk_number 用于接受管理员输入用户要借的书籍编号
system("cls");//清屏
logo();
printf("\n");
int judge;
int Count=0;
for(int i=0;i<B;i++)
{
if(arr_bk[i].b_judge!=0)
{
Count++;
}
}
printf("请输入要借的书籍编号:\n");
fflush(stdin);
scanf("%s",&bk_number);
for(int i=0;i<U;i++)
{
if(strcmp(bk_number,arr_bk[i].b_number)==0)
{
printf("请输入当前日期:\n");
fflush(stdin);
scanf("%d",&bk_date);
for(int j=0;j<Count;j++)
{
if(strcmp(arr_bk[j].b_number,bk_number)==0)
{
arr_bk[j].b_fs=true;
arr_bk[j].b_Lenddate=bk_date;
for(int k=0;k<N;k++)
{
arr_bk[j].b_Lenduser[k]=n[k];
}
b = true;
printf("登记成功!");
printf("请按任意键退出!\n");
getch();
CtLendbook();
}
}
}
if(b==false && i==Count-1)
{
printf("没有此编号的书籍!");
printf("按任意键重新输入……");
getch();
RecordLend2();
}
}
}
//登记用户所还的书籍
void Returnbook()
{
logo();
int other;
char name[10];
int judge;
int Count=0;
for(int i=0;i<B;i++)
{
if(arr_bk[i].b_judge!=0)
{
Count++;
}
}
printf("\n");
printf("\t\t\t^^^^^^^^^^^");
printf("\n");
printf("\t\t\t 归还书籍");
printf("\n");
printf("\t\t\t^^^^^^^^^^^");
printf("\n");
printf("\t\t请输入归还书籍的名称:");
fflush(stdin);
scanf("%s",name);
for (int i=0;i<Count;i++)
{
other=strcmp(name,arr_bk[i].b_name);
if(other==0)
{
printf("\t借书人\t借书日期\t所借书籍\t书籍位置\n");
printf("\t %s \t %d \t\t %s \t %s",arr_bk[i].b_Lenduser,arr_bk[i].b_Lenddate,arr_bk[i].b_name,arr_bk[i].b_Position);
printf("\n\n\n");
printf("\t\t请输入还书日期:");
scanf("%d",&arr_bk[i].b_Givedate);
arr_bk[i].b_fs=false;
printf("\n\n\n");
printf("\t\t还书成功……请把书籍放到指定位置!!!");
printf("按任意键继续还书……");
getch();
CtRbook();
}
if(i==Count-1)
{
if(other!=0)
{
if(pdcount>2)
{
printf("\n\t\t\t您的输入以达到最高次数……无权再次输入!");
printf("\n\t\t\t按任意键返回到上一级……");
getch();
AdminOperate();
}
else
{
pdcount++;//用户输入一次密码,计数器累加1
printf("\n\n\n\n");
printf("\t\t对不起,此本书未借出或不是本馆的书籍。请按任意键从新输入!!!");
getch();
Returnbook();
}
}
}
}
}
//增加管理员
void AddAdmin()
{
char input; //用来记录用户是否继续
logo();//调用logo()函数用于设置时间、日期与欢迎语
char num[10];
int Count=2; //用来记录管理员结构的个数
for(int i=Count;i<N;i++)
{
printf("请输入要增加的管理员编号:\n");
fflush(stdin);
gets(arr_admin[i].A_number);
printf("请输入要增加的管理员姓名:\n");
fflush(stdin);
gets(arr_admin[i].A_name);
printf("请输入要增加的管理员密码:\n");
fflush(stdin);
for(int p=0;p<6;p++)
{
arr_admin[i].A_password[p]=getch();
printf("*");
}
arr_admin[Count].A_password[6]='\0';
gets(num);
printf("增加成功!!!\n");
Count++;
printf("是否继续增加 y/n ?");
fflush(stdin);
input=getchar();
gets(num);
if(input=='y'||input=='Y')
{
continue;
}
else
{
AdminOperate();
break;
}
}
}
//删除管理员
void DelAdmin()
{
char input;//用来记录用户是否继续
int Count=2; //用来记录管理员结构的个数
logo();//调用logo()函数用于设置时间、日期与欢迎语
char number[4];
char name[20];
char password[7];
printf("请输入您要删除的编号:");
fflush(stdin);
gets(number);
for(int i=0;i<N;i++)
{
if(strcmp(number,arr_admin[i].A_number)==0)
{
for(int j=0;j<4;j++)
{
arr_admin[i].A_name[j]='\0';
arr_admin[i].A_password[j]='\0';
arr_admin[i].A_number[j]='\0';
}
printf("删除成功!\n\n");
printf("是否继续删除 y/n ?");
/*fflush(stdin);
o=getchar();*/
fflush(stdin);
scanf("%c",&input);;
if(input=='y'|| input=='Y')
{
DelAdmin();
}
else
{
AdminOperate();
}
}
if(i==N-1)
{
printf("对不起没找到你输入的信息.……按任意键重新输入");
getch();
DelAdmin();
break;
}
}
}
//增加用户
void AddUser()
{
char input; //用来记录用户是否继续
logo();//调用logo()函数用于设置时间、日期与欢迎语
char num[10];
int Count=2; //用来记录用户结构的个数
for(int i=Count;i<N;i++)
{
printf("请输入要增加的用户编号:\n");
fflush(stdin);
gets(arr_user[i].U_number);
printf("请输入要增加的用户姓名:\n");
fflush(stdin);
gets(arr_user[i].U_name);
printf("请输入要增加的用户密码:\n");
fflush(stdin);
for(int p=0;p<6;p++)
{
arr_user[i].U_password[p]=getch();
printf("*");
}
arr_user[Count].U_password[6]='\0';
gets(num);
printf("增加成功!!!\n");
Count++;
printf("是否继续增加 y/n ?");
fflush(stdin);
input=getchar();
gets(num);
if(input=='y'||input=='Y')
{
continue;
}
else
{
AdminOperate();
break;
}
}
}
//删除用户
void DelUser()
{
char input;//用来记录用户是否继续
int Count=2; //用来记录管理员结构的个数
logo();//调用logo()函数用于设置时间、日期与欢迎语
char number[4];
char name[20];
char password[7];
printf("请输入您要删除的编号:");
fflush(stdin);
scanf("%s",&number);;
for(int i=0;i<N;i++)
{
if(strcmp(number,arr_user[i].U_number)==0)
{
for(int j=0;j<4;j++)
{
arr_user[i].U_number[j]='\0';
arr_user[i].U_name[j]='\0';
arr_user[i].U_password[j]='\0';
}
printf("删除成功!\n\n");
printf("是否继续删除 y/n ?");
/*fflush(stdin);
o=getchar();*/
fflush(stdin);
scanf("%c",&input);;
if(input=='y'|| input=='Y')
{
DelAdmin();
}
else
{
AdminOperate();
}
}
if(i==N-1)
{
printf("对不起没找到你输入的信息.……按任意键重新输入");
getch();
DelAdmin();
break;
}
}
}
//增加书籍
void AddBook()
{
system("cls");
logo();
printf("增加书籍");
char input;
int judge;
int Count=0;
for(int i=0;i<B;i++)
{
if(arr_bk[i].b_judge!=0)
{
Count++;
}
}
for(int i=Count;i<B;i++)
{
printf("请输入要增加书籍的编号:");
fflush(stdin);
scanf("%s",&arr_bk[i].b_number);
printf("请输入要增加的书名:");
fflush(stdin);
scanf("%s",&arr_bk[i].b_name);
printf("请输入要增加的类型:");
fflush(stdin);
scanf("%s",&arr_bk[i].b_type);
printf("请输入要增加的书籍存放位置:");
fflush(stdin);
scanf("%s",&arr_bk[i].b_Position);
printf("请输入书籍的定位(数字):");
fflush(stdin);
scanf("%d",&arr_bk[i].b_judge);
printf("\n增加成功!!!\n\t\t\t是否继续添加书籍? Y or N ?");
printf("\n");
printf("\t\t\t\t----->");
fflush(stdin);
scanf("%c",&input);
if(input =='y'||input=='Y')
{
AddBook();
}
if(input =='n'||input=='N')
{
AdminOperate();
}
}
}
//删除书籍
void DelBook()
{
char name[10];
char ch;
system("cls");
logo();
int judge;
int Count=0;
for(int i=0;i<B;i++)
{
if(arr_bk[i].b_judge!=0)
{
Count++;
}
}
printf("\n");
printf("\t\t\t^^^^^^^^^^^");
printf("\n");
printf("\t\t\t 删除书籍");
printf("\n");
printf("\t\t\t^^^^^^^^^^^");
printf("\n");
printf("\t\t请输入你要删除书籍的名称:");
fflush(stdin);
scanf("%s",&name);
for(int i=0;i<N;i++)
{
if(strcmp(name,arr_bk[i].b_name)==0)
{
for(int j=0;j<4;j++)
{
arr_bk[i].b_name[j]='\0';
arr_bk[i].b_number[j]='\0';
arr_bk[i].b_type[j]='\0';
arr_bk[i].b_Position[j]='\0';
}
printf("\t\t删除成功!!\n\n");
getch();
printf("\t\t是否继续删除:y or n ?");
printf("\n");
printf("\t\t\t-->");
fflush(stdin);
scanf("%s",&ch);
if(ch =='y'||ch=='Y')
{
DelBook();
}
if(ch =='n'||ch=='N')
{
AdminOperate();
}
}
if(strcmp(name,arr_bk[i].b_name)!=0)
{
if(pdcount>2)
{
printf("\n\t\t\t您的输入以达到最高次数……无权再次输入!");
printf("\n\t\t\t按任意键返回到上一级……");
getch();
AdminOperate();
}
if(i==Count)
{
system("cls");
logo();
printf("\n\n\n\n");
printf("\t\t对不起!没有相应的书籍!请按任意键从新输入!");
pdcount++;
getch();
DelBook();
}
}
}
}
注:是在Visual Studio 2005 里编写的,在C++里要去FOR 里面的INT