C语言图书借阅系统源码
发布时间:2020-12-15 01:00:09 所属栏目:C语言 来源:网络整理
导读:本文实例为大家分享了C语言图书借阅系统的具体代码,供大家参考,具体内容如下 #include "stdafx.h"#include"stdio.h"#include"conio.h"#include"string.h"#include"stdlib.h"int N;char mima[20]="mm";/**********定义图书结构体类型book*******/struct boo
本文实例为大家分享了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本书的出版社:",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].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].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].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,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].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,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].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,&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,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].t.day); k++; if(bk[book_xb].jie==1) printf("已被借阅n"); else printf("可以借阅n"); printf("现在请输入新信息:n"); printf("tt请输入本书的编号:"); 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,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].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,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日 ","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(); } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |