本文实例为大家分享了C语言图书借阅系统的具体代码,供大家参考,具体内容如下
#include "stdafx.h"#include"stdio.h"#include"conio.h"#include"string.h"#include"stdlib.h"int N;
char mima[20]="mm";
/**********定义图书结构体类型book*******/struct book{
long num;
char name[20];
char publish[20];
/*出版社*/ struct time {
int day;
int month;
int year;
}
t;
int jie;
/*借阅*/}
bk[20];
/********建立图书信息库********/void xinxi(){
int i;
system("CLS");
printf("tt ===================== n");
printf("tt 录入图书信息 n");
printf("tt ===================== nn");
printf("tt请输入您要录入的数量:");
scanf("%d",&N);
for(i=0;
i<N;
i++) {
printf("tt请输入第%d本书的编号:",i+1);
scanf("%d",&bk[i].num);
printf("tt请输入第%d本书的名称:",i+1);
scanf("%s",bk[i].name);
printf("tt请输入第%d本书的出版社:",i+1);
scanf("%s",bk[i].publish);
printf("tt请输入第%d本书的出版时间(用逗号隔开):",i+1);
scanf("%d,%d,%d",&bk[i].t.year,&bk[i].t.month,&bk[i].t.day);
printf("tt该书是否已经被借阅,已被借阅输入'1',未被借阅输入'0':");
scanf("%d",&bk[i].jie);
printf("--------------------------------------------------------------------------------n");
}
system("CLS");
printf("tt ===================== n");
printf("tt 信息录入完成 n");
printf("tt ===================== n");
printf("ntt 按任意键继续...n");
}
/******主菜单******/int mymainmenu(){
int x;
printf("nnnn");
printf("tt|-------------------------------------------------------------|n");
printf("tt| |n");
printf("tt| ====================== |n");
printf("tt| 欢迎光临图书管理系统 |n");
printf("tt| ====================== |n");
printf("tt| |n");
printf("tt| 1.管理员模式 |n");
printf("tt| 2.客户模式 |n");
printf("tt| 3.退出系统 |n");
printf("tt|--------------------------------------------------------------|n");
printf("ntt请输入您的选择:");
scanf("%d",&x);
return x;
}
/**************管理员密码验证*****************/int mimayanzheng(){
char temp_mima[20];
/*用来存放用户输入的密码*/ printf("n");
printf("tt ====================== n");
printf("tt 欢迎使用管理员模式 n");
printf("tt ====================== n");
printf("n");
printf("tt 请输入密码:");
scanf("%s",temp_mima);
if(strcmp(temp_mima,mima)==0)/*比较密码*/ return 1;
else return 0;
}
/**************修改密码***********/void xiugaimima(){
char temp_mima[20],temp1[20],temp2[20];
/* temp_mima[20]用来存放用户输入的密码,temp1[20],temp2[20]分别用来存放用户输入的两次修改的密码*/ printf("n");
printf("tt ====================== n");
printf("tt 修改密码 n");
printf("tt ====================== n");
printf("n");
printf("tt 请输入原始密码:");
scanf("tt%s",temp_mima);
while(1) {
if(strcmp(temp_mima,mima)==0)/*比较密码*/ {
printf("t请输入新密码:");
scanf("%s",temp1);
printf("t请再输入一次:");
scanf("%s",temp2);
if(strcmp(temp1,temp2)==0)/*如果输入的两次新密码都相同*/ {
printf("t修改密码成功!!请记牢密码,任意键返回...");
strcpy(mima,temp1);
getch();
break;
}
else {
printf("t输入两次密码不相同,修改失败!任意键返回...");
getch();
break;
}
}
else {
printf("t密码错误!您不能进行密码修改!任意键返回...");
getch();
break;
}
}
}
/**************管理员模式****************/int adm(){
int x;
printf("nnnn");
printf("tt|-------------------------------------------------------------|n");
printf("tt| |n");
printf("tt| ====================== |n");
printf("tt| 管理员模式 |n");
printf("tt| ====================== |n");
printf("tt| |n");
printf("tt| 1.录入图书信息 |n");
printf("tt| 2.查看图书信息 |n");
printf("tt| 3.修改图书信息 |n");
printf("tt| 4.修改管理密码 |n");
printf("tt| 5.退出系统 |n");
printf("tt|-------------------------------------------------------------|n");
printf("ntt请输入您的选择:");
scanf("%d",&x);
return x;
}
/******************客户模式********************/int peo(){
int x;
printf("nnnn");
printf("tt|-------------------------------------------------------------|n");
printf("tt| |n");
printf("tt| ====================== |n");
printf("tt| 欢迎光临 |n");
printf("tt| ====================== |n");
printf("tt| |n");
printf("tt| 1.查看图书信息 |n");
printf("tt| 2.借阅图书 |n");
printf("tt| 3.退出系统 |n");
printf("tt|-------------------------------------------------------------|n");
printf("ntt请输入您的选择:");
scanf("%d",&x);
return x;
}
/*********查看所有图书*******/void show_all_book(){
int i;
if(bk[0].num==0&&bk[0].t.year==0||N==0)/*当bk[0].num,bk[0].t.year,结构体数组等值同时为零时表示无图书信息*/ printf("t数据不存在,请先录入数据!ntt按任意键返回...");
else {
printf("t编号 图书名称 出版社 出版时间 状态n");
for(i=0;
i<N;
i++) {
printf("t%-7d %-8s %-12s %4d年%2d月%2d日 ",bk[i].num,bk[i].name,bk[i].publish,bk[i].t.year,bk[i].t.month,bk[i].t.day);
if(bk[i].jie==0) printf("未借阅n");
else printf("已借阅n");
}
}
}
/*********按书名查看********/void showbook_name(){
int i,k=0,n;
/*k用来标记是否存在该书*/ char book_name[20];
printf("tt ===================== n");
printf("tt 按书名查看 n");
printf("tt ===================== n");
printf("ntt请输入您要查看的图书名称:");
scanf("%s",book_name);
for(i=0;
i<N;
i++) if(strcmp(book_name,bk[i].name)==0) {
n=i;
if(k==0)/* "项目"只输出一次*/ printf("t编号 图书名称 出版社 出版时间 状态n");
printf("t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[n].num,bk[n].name,bk[n].publish,bk[n].t.year,bk[n].t.month,bk[n].t.day);
if(bk[n].jie==1) printf("已被借阅n");
else printf("可以借阅n");
printf("按任意键返回...");
k++;
/*k值不为零则表示找到图书*/ }
if(k==0) /*k值为零则表示未找到图书*/ printf("t不存在该书!按任意键返回...");
}
/*********按书号查看********/void showbook_num(){
int n,book_num,i,k=0;
/*k用来标记是否存在该书*/ printf("tt ===================== n");
printf("tt 按书号查看 n");
printf("tt ===================== n");
printf("ntt请输入您要查看的图书编号:");
scanf("%d",&book_num);
for(i=0;
i<N;
i++) if(book_num==bk[i].num) {
n=i;
if(k==0)/*项目只输出一次*/ printf("t编号 图书名称 出版社 出版时间 状态n");
printf("t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[n].num,bk[n].name,bk[n].publish,bk[n].t.year,bk[n].t.month,bk[n].t.day);
if(bk[n].jie==1) printf("已被借阅n");
else printf("可以借阅n");
k++;
printf("t按任意键返回...");
}
if(k==0) /*k为零则表示未找到图书*/ printf("t不存在该书!按任意键返回...");
}
/********显示全部已借阅的图书**********/void yijieyue(){
int i,k=0;
if(bk[0].num==0&&bk[0].t.year==0||N==0) printf("t数据不存在,请先录入数据!ntt按任意键返回...");
else {
for(i=0;
i<N;
i++) if(bk[i].jie==1) {
if(k==0) printf("t编号 图书名称 出版社 出版时间 n");
printf("t%-7d %-8s %12s %4d年%2d月%2d日 n",bk[i].num,bk[i].name,bk[i].publish,bk[i].t.year,bk[i].t.month,bk[i].t.day);
k++;
}
if(k==0) printf("ntt目前没有任何书借出。按任意键继续...");
}
}
/********显示全部未借阅的图书********/void weijieyue(){
int i,k=0;
if(bk[0].num==0&&bk[0].t.year==0||N==0) printf("t数据不存在,请先录入数据!ntt按任意键返回...");
else {
for(i=0;
i<N;
i++) if(bk[i].jie==0) {
if(k==0) printf("t编号 图书名称 出版社 出版时间 n");
printf("t%-7d %-8s %12s %4d年%2d月%2d日 n",bk[i].num,bk[i].name,bk[i].publish,bk[i].t.year,bk[i].t.month,bk[i].t.day);
k++;
}
if(k==0) printf("nt很遗憾!目前所有的书都被借出了。按任意键继续...");
}
}
/*****查看图书菜单******/void show(){
int x;
do {
system("cls");
printf("nnnn");
printf("tt|-------------------------------------------------------------|n");
printf("tt| |n");
printf("tt| ===================== |n");
printf("tt| 查看图书信息 |n");
printf("tt| ===================== |n");
printf("tt| |n");
printf("tt| 1.按书名查找 |n");
printf("tt| 2.按书号查找 |n");
printf("tt| 3.查看所有未借阅图书 |n");
printf("tt| 4.查看所有已借阅图书 |n");
printf("tt| 5.查看所有图书 |n");
printf("tt| 6.返回主菜单 |n");
printf("tt|-------------------------------------------------------------|n");
printf("ntt请输入您的选择:");
scanf("%d",&x);
switch(x) {
case 1:system("cls");
showbook_name();
getch();
break;
/*按书名查看*/ case 2:system("cls");
showbook_num();
getch();
break;
/*按书号查看*/ case 3:system("cls");
weijieyue();
getch();
break;
/*查看未借阅图书*/ case 4:system("cls");
yijieyue();
getch();
break;
/*查看已借阅图书*/ case 5:system("cls");
show_all_book();
getch();
break;
/*查看所有图书*/ }
}
while(x!=6);
}
/*********按书名借阅*******/void jie_name(){
char jy[2],name[20];
/*jy用来表示是否确定借阅*/ int i,book_xb,k=0;
/*k用来标记是否存在该书*/ printf("tt ====================== n");
printf("tt 按书名借阅 n");
printf("tt ====================== n");
while(1) {
printf("ntt请输入书名:");
scanf("%s",name);
for(i=0;
i<N;
i++) if(strcmp(bk[i].name,name)==0&&bk[i].jie!=1)/*找到图书并确认图书没有被借出,记录图书下标*/ {
book_xb=i;
k++;
}
if(k==0) {
printf("t不存在该书,或该书已经借出!请正确输入图书名称!ntt按任意键返回...");
getch();
break;
}
if(k==1) printf("t编号 图书名称 出版社 出版时间 状态n");
printf("t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[book_xb].num,bk[book_xb].name,bk[book_xb].publish,bk[book_xb].t.year,bk[book_xb].t.month,bk[book_xb].t.day);
if(bk[book_xb].jie==1) printf("已被借阅n");
else {
printf("可以借阅nt是否借阅?(是:'y',否:'n'):");
scanf("%s",jy);
if(strcmp(jy,"n")==0) {
printf("t借阅取消,按任意键返回....");
getch();
break;
}
else if(strcmp(jy,"y")==0) {
printf("t借阅成功!按任意键返回...");
bk[book_xb].jie=1;
getch();
break;
}
else {
printf("t输入有错!按任意键重新输入...");
getch();
break;
}
}
}
}
/*********按书号借阅*******/void jie_num(){
long i,k=0,book_xb,book_num;
/*k用来标记是否存在该书*/ char jy[2];
/*jy用来表示是否确定借阅*/ printf("tt ====================== n");
printf("tt 按书号借阅 n");
printf("tt ====================== n");
while(1) {
printf("ntt请输入书号:");
scanf("%d",&book_num);
for(i=0;
i<N;
i++) if(bk[i].num==book_num&&bk[i].jie!=1) {
book_xb=i;
k++;
}
if(k==0) {
printf("t不存在该书,或该书已经借出!请正确输入图书名称!ntt按任意键返回...");
getch();
break;
}
printf("t编号 图书名称 出版社 出版时间 状态n");
printf("t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[book_xb].num,bk[book_xb].name,bk[book_xb].publish,bk[book_xb].t.year,bk[book_xb].t.month,bk[book_xb].t.day);
if(bk[book_xb].jie==1) printf("已被借阅n");
else {
printf("可以借阅nt是否借阅?(是:'y',否:'n'):");
scanf("%s",jy);
if(strcmp(jy,"n")==0) {
printf("t借阅取消,按任意键返回....");
getch();
break;
}
else if(strcmp(jy,"y")==0) {
printf("t借阅成功!按任意键返回...");
bk[book_xb].jie=1;
getch();
break;
}
else {
printf("t输入有错!按任意键重新输入...");
getch();
break;
}
}
}
}
/*********借阅图书********/void jieyue(){
int x;
do {
system("cls");
printf("nnnn");
printf("tt|-------------------------------------------------------------|n");
printf("tt| ===================== |n");
printf("tt| 借阅图书 |n");
printf("tt| ===================== |n");
printf("tt| |n");
printf("tt| 1.按书名借阅 |n");
printf("tt| 2.按书号借阅 |n");
printf("tt| 3.查看所有图书 |n");
printf("tt| 4.返回主菜单 |n");
printf("tt|-------------------------------------------------------------|n");
printf("tt请输入您的选择:");
scanf("%d",&x);
switch(x) {
case 1:system("CLS");
jie_name();
getch();
break;
/*按书名借阅*/ case 2:system("CLS");
jie_num();
getch();
break;
/*按书号借阅*/ case 3:system("cls");
show_all_book();
getch();
break;
/*查看所有图书*/ }
}
while(x!=4);
}
/***************按书名进行查找并修改信息*************/void xiugai_name(){
int i,book_xb,k=0;
/*book_xb用来记录下标,k用来判断是否找到该书*/ char temp[20];
/*temp[20]用来存放用户输入的查找的书名*/ while(1) {
system("cls");
printf("n");
printf("tt| ===================== |n");
printf("tt| 按书名进行修改 |n");
printf("tt| ===================== |n");
printf("tt请输入您准备修改的图书的名称,输入'exit'退出:");
scanf("%s",temp);
if(strcmp(temp,"exit")==0) break;
else {
for(i=0;
i<N;
i++) if(strcmp(temp,bk[i].name)==0) {
book_xb=i;
printf("t该书的信息为:n");
printf("t编号 图书名称 出版社 出版时间 状态n");
printf("t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[book_xb].num,bk[book_xb].name,bk[book_xb].publish,bk[book_xb].t.year,bk[book_xb].t.month,bk[book_xb].t.day);
if(bk[book_xb].jie==1) printf("已被借阅n");
else printf("可以借阅n");
k++;
printf("tt现在请输入新信息:n");
printf("tt请输入本书的编号:");
scanf("%d",&bk[book_xb].num);
printf("tt请输入本书的名称:");
scanf("%s",bk[book_xb].name);
printf("tt请输入本书的出版社:");
scanf("%s",bk[book_xb].publish);
printf("tt请输入本书的出版时间(用逗号隔开):");
scanf("%d,%d,%d",&bk[book_xb].t.year,&bk[book_xb].t.month,&bk[book_xb].t.day);
printf("tt该书是否已经被借阅,已被借阅输入'1',未被借阅输入'0':");
scanf("%d",&bk[book_xb].jie);
}
if(k==0) {
printf("t您输入的书名不存在!按任意键继续...");
getch();
continue;
}
printf("t恭喜!信息修改成功!任意键返回...");
getch();
break;
}
}
}
/***************按书号进行查找并修改信息*************/void xiugai_num(){
int i,book_xb,k=0;
/*book_xb用来记录下标,k用来判断是否找到该书*/ long temp;
/*temp用来存放用户输入的查找的书号*/ do {
system("cls");
printf("n");
printf("tt| ===================== |n");
printf("tt| 按书号进行修改 |n");
printf("tt| ===================== |n");
printf("tt请输入您准备修改的图书的图书号,输入'0'退出:");
scanf("%ld",&temp);
if(temp==0) break;
else {
for(i=0;
i<N;
i++) if(temp==bk[i].num) {
book_xb=i;
printf("t该书的信息为:n");
printf("t编号 图书名称 出版社 出版时间 状态n");
printf("t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[book_xb].num,bk[book_xb].name,bk[book_xb].publish,bk[book_xb].t.year,bk[book_xb].t.month,bk[book_xb].t.day);
k++;
if(bk[book_xb].jie==1) printf("已被借阅n");
else printf("可以借阅n");
printf("现在请输入新信息:n");
printf("tt请输入本书的编号:");
scanf("%d",&bk[book_xb].num);
printf("tt请输入本书的名称:");
scanf("%s",bk[book_xb].name);
printf("tt请输入本书的出版社:");
scanf("%s",bk[book_xb].publish);
printf("tt请输入本书的出版时间(用逗号隔开):");
scanf("%d,%d,%d",&bk[book_xb].t.year,&bk[book_xb].t.month,&bk[book_xb].t.day);
printf("tt该书是否已经被借阅,已被借阅输入'1',未被借阅输入'0':");
scanf("%d",&bk[book_xb].jie);
}
if(k==0) {
printf("t您输入的书名不存在!按任意键继续...");
getch();
continue;
}
printf("t恭喜!信息修改成功!任意键返回...");
getch();
break;
}
}
while(temp!=0);
}
/**************删除所有图书***********/void dele_all(){
char queren[4];
printf("t继续操作会删除所有信息,是否继续?'y'继续,'n'撤销...");
scanf("%s",queren);
if(strcmp(queren,"y")==0) {
N=0;
printf("t删除成功!n");
}
else {
printf("t操作被用户取消!任意键返回...");
getch();
}
}
/******************按书名删除************/void dele_name(){
int i,book_xb,k=0;
/*book_xb用来存放图书下标,k用标记是否找到书*/ char queren[4],temp_name[20];
/*queren[2]用来存放'是否'确认删除,temp_name[20]用来存放查找时输入的图书名称*/ printf("t输入你要删除的书的名称,输入'0'退出:");
scanf("%s",temp_name);
if(strcmp(temp_name,"0")!=0) {
for(i=0;
i<N;
i++) if(strcmp(temp_name,bk[i].name)==0) {
book_xb=i;
printf("t该书的信息为:n");
printf("t编号 图书名称 出版社 出版时间 状态n");
printf("t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[book_xb].num,bk[book_xb].name,bk[book_xb].publish,bk[book_xb].t.year,bk[book_xb].t.month,bk[book_xb].t.day);
if(bk[i].jie==0) printf("未借阅n");
else printf("已借阅n");
k++;
printf("t是否要删除该书?是'y',否'n'");
scanf("%s",queren);
if(strcmp(queren,"y")==0) {
if(book_xb==N-1) N--;
else {
for(i=0;
i<N;
i++) bk[book_xb+i]=bk[book_xb+i+1];
N--;
}
printf("t删除成功!n");
}
else printf("t操作被用户取消!任意键返回...");
}
if(k==0) printf("t未找到该书,请核实以后再操作!,按任意键返回....");
getch();
}
}
/***************按书号查找并删除***********/void dele_num(){
int i,book_xb,k=0,temp_num;
/*book_xb用来存放图书下标,k用标记是否找到书,temp_num用来存放查找时输入的图书名称*/ char queren[4];
/*queren[2]用来存放'是否'确认删除*/ while(1) {
printf("t输入你要删除的书的书号,输入'0'退出:");
scanf("%d",&temp_num);
if(temp_num==0) break;
else {
for(i=0;
i<N;
i++) if(temp_num==bk[i].num) {
book_xb=i;
printf("该书的信息为:n");
printf("t编号 图书名称 出版社 出版时间 状态n");
printf("t%-7d %-8s %12s %4d年%2d月%2d日 ",bk[book_xb].num,bk[book_xb].name,bk[book_xb].publish,bk[book_xb].t.year,bk[book_xb].t.month,bk[book_xb].t.day);
if(bk[i].jie==0) printf("未借阅n");
else printf("已借阅n");
k++;
printf("t是否要删除该书?是'y',否'n'");
scanf("%s",queren);
if(strcmp(queren,"y")==0) {
if(book_xb==N-1) N--;
else {
for(i=0;
i<N;
i++) bk[book_xb+i]=bk[book_xb+i+1];
N--;
}
printf("t删除成功!n");
}
else printf("t操作被用户取消!任意键返回...");
}
if(k==0) printf("t未找到该书,请核实以后再操作!,按任意键返回....");
getch();
break;
}
}
}
void dele(){
int x;
do {
system("cls");
printf("tt|-------------------------------------------------------------|n");
printf("tt| ===================== |n");
printf("tt| 删除图书信息 |n");
printf("tt| ===================== |n");
printf("tt| |n");
printf("tt| 1.按书名删除 |n");
printf("tt| 2.按书号删除 |n");
printf("tt| 3.删除所有图书 |n");
printf("tt| 4.返回主菜单 |n");
printf("tt|-------------------------------------------------------------|n");
printf("tt请输入您的选项:");
scanf("%d",&x);
switch(x) {
case 1:system("cls");
dele_name();
break;
case 2:system("cls");
dele_num();
break;
case 3:system("cls");
dele_all();
getch();
break;
}
}
while(x!=4);
}
/***************修改图书**************/void xiugai(){
int x;
do {
system("cls");
printf("nnnn");
printf("tt|-------------------------------------------------------------|n");
printf("tt| ===================== |n");
printf("tt| 修改图书信息 |n");
printf("tt| ===================== |n");
printf("tt| |n");
printf("tt| 1.按书名查找 |n");
printf("tt| 2.按书号查找 |n");
printf("tt| 3.删除图书 |n");
printf("tt| 4.返回主菜单 |n");
printf("tt|-------------------------------------------------------------|n");
printf("tt请输入您的选择:");
scanf("%d",&x);
switch(x) {
case 1:system("CLS");
xiugai_name();
break;
/*按书名查找名修改信息*/ case 2:system("CLS");
xiugai_num();
break;
/*按书号查找并修改信息*/ case 3:system("cls");
dele();
break;
}
}
while(x!=4);
}
/**************主函数**************/ void main(){
int x,x2,s;
/*s用来判断密码验证的结果*/ do {
system("cls");
x=mymainmenu();
switch(x) {
case 1:/************调用管理员模式函数***********/ system("cls");
s=mimayanzheng();
/*密码验证*/ do {
if(s==1) {
system("cls");
x2=adm();
switch(x2) {
case 1:system("cls");
xinxi();
getch();
break;
/*录入信息*/ case 2:system("cls");
show();
break;
/*查看信息*/ case 3:system("cls");
xiugai();
break;
/*修改信息*/ case 4:system("cls");
xiugaimima();
break;
/*修改密码*/ }
}
else {
printf("t密码错误!按任意键返回...");
getch();
break;
}
}
while(x2!=5);
break;
case 2:/*调用客户模式函数*/ do {
system("cls");
x2=peo();
switch(x2) {
case 1:system("cls");
show();
getch();
break;
/*查看图书信息*/ case 2:system("cls");
jieyue();
getch();
break;
/*借阅图书*/ }
}
while(x2!=3);
}
}
while(x!=3);
system("cls");
printf("nnnnnnnnnnnntttt谢谢使用!nttt");
getch();
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- C语言超市管理系统设计
- C语言通讯录管理系统课程设计
- C语言通讯录管理系统完整版
- C语言实现通讯录系统
- C语言链表实现图书管理系统
- C语言银行储蓄系统源码
- C语言银行系统课程设计
- C语言职工信息管理系统源码
- C语言实现歌曲信息管理系统
- C语言商品销售系统源码分享