C++ 图书管理系统源代码
C图书信息管理系统设计源码

if (flag)
{printf("cannot found!");
}
fflush(stdin); /*清楚文件缓冲区,并写入*/
getchar();
}
void search_by_author() /*定义按作者名查询*/
{
char s3[20];
int flag=1;
int i;
for (i=0;i<library.count;i++)
{
if(strcmp(number,library.book[i].number)==0)
break;
}
if (i!=library.count)
{
for(;i<library.count-1;i++)
{
strcpy(library.book[i].name,library.book[i+1].name);
}
void putin() /*定义录入函数*/
{
int y=1;
system("cls"); /*清屏*/
while(y)
{
printf("\t请输入您的书籍的登录号:");
scanf("%s",library.book[library.count].no);
printf("\t请输入分类号:");
scanf("%s",s2);
printf("登录号\t分类号\t图书名\t\t作者名\t出版单位\t出版日期\t图书价格\n");
C图书管理系统源代码

C图书管理系统源代码 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#图书管理系统系统功能:1.借书:根据借书人提出的图书编号(id)查询该图书,如果该图书现存量(store)不为0,则提示输入借阅者的学号(num),为借书人办理借书手续,提示用户该书已被借出。
2.归书:根据借书人的学号查询该读者的信息,若有该读者,则提示输入所借书籍的编号(id),为该读者办理还书手续,提示该书已还。
3.书籍管理:弹出书籍管理界面,输入所要执行操作的号码:(1)增加书籍:弹出注册新书的窗口,按照提示输入所增加书籍的信息,最后,提示用户该书已被注册。
(2)删除书籍:弹出删除书籍的窗口,输入所要删除书籍的编号(id),输出该书的信息,确认是否删除该书,1为删除,0为放弃。
(3)修改书籍:弹出修改书籍的窗口,输入所要修改书籍的编号(id),输出该书的信息,确认是否修改该书,1为修改,0为放弃。
之后按照提示重新输入书籍的信息。
4.读者管理:弹出读者管理界面,输入所要执行操作的号码:(1)增加读者:弹出注册读者的窗口,按照提示输入所增加读者的信息,最后,提示用户该读者已被注册。
(2)删除书籍:弹出删除读者的窗口,输入所要删除读者的学号(num),输出该读者的信息,确认是否删除该读者,1为删除,0为放弃。
(3)修改书籍:弹出修改读者的窗口,输入所要修改读者的学号(num),输出该读者的信息,确认是否修改该读者,1为修改,0为放弃。
之后按照提示重新输入读者的信息。
5.搜索:此搜索包括两方面的搜索,书籍搜索以及读者搜索,弹出搜索的窗口,按照提示输入所要搜索的内容,1为书籍搜索,2为读者搜索:(1)搜索书籍:弹出搜索书籍的窗口,按照提示输入所要搜索的方式,包括按<1>书名搜索,<2>书号搜索,<3>作者搜索,<4>出版社搜索,<5>出版时间搜索;根据所选方式输入相应的内容,若是该书籍存在,则输出该书籍的信息,否则,返回主界面。
C课程设计图书管理系统源代码

#include "stdio.h"#include "stdlib.h"#include "string.h"#include "io.h"typedef struct book{char num[15]; //中图分类号char name[20]; //书名char author[20]; //作者char press[20]; //出版单位char time[15]; //出版时间char status[10]; //是否可借double price; //价格int count; //库存量}book;void menu(); //图书馆系统界面void insert(); //插入图书信息记录void browse(); //浏览图书信息void find(); //查找图书信息void deleter(); //删除图书信息void modify(); //修改图书信息void leave(); //退出图书系统void main(){int choice;do{menu();printf("请选择服务项目:");scanf("%d",&choice);switch(choice){case 1:insert();break;case 2:browse();break;case 3:find();break;case 4:deleter();break;case 5:modify();break;case 6:leave();break;default:printf("输入数据错误,请从新输入!");}}while(1);}void menu(){printf("\t====================欢迎进入图书馆系统!=============================\n\n");printf("\t\t*****************1.录入图书信息********************\n");printf("\t\t*****************2.浏览图书信息********************\n");printf("\t\t*****************3.查找图书信息********************\n");printf("\t\t*****************4.删除图书信息********************\n");printf("\t\t*****************5.修改图书信息********************\n");printf("\t\t********************6.退出*************************\n");}void insert(){FILE *fp;book a={"\0","\0","\0","\0","\0","\0",0.0,0};if(access("bookinf.txt",0)) //如果文件不存在,则初始化文件格式{if((fp=fopen("bookinf.txt","w"))==NULL){printf("file creat failure!");exit(0);}fprintf(fp,"中图分类好书名作者出版社出版时间状态价格数量");}else //如果文件存在,则打开文件追加信息{if((fp=fopen("bookinf.txt","a+"))==NULL){printf("file open error!");exit(0);}}printf("请输入图书信息\n");printf("中图分类好书名作者出版社出版时间状态价格数量\n");scanf("%s%s%s%s%s%s%lf%d",a.num,,a.author,a.press,a.time,a.status,&a.price,&a.c ount);printf("%s %s %s %s %s %s %lf %d\n",a.num,,a.author,a.press,a.time,a. status,a.price,a.count);fprintf(fp,"\n%-15s%-20s%-20s%-20s%-15s%-10s%-8.2lf%4d",a.num,,a.author,a.pre ss,a.time,a.status,a.price,a.count); //-为左对齐,必须是“\n和+右对齐”,方便实现browse()函数fclose(fp);}void browse(){FILE *fp;book a={"\0","\0","\0","\0","\0","\0",0.0,0},b=a;if((fp=fopen("bookinf.txt","a+"))==NULL){printf("file open error!");exit(0);}fscanf(fp,"%*[^\n]"); //跳过文本的第一行fscanf(fp,"%*[^\n]%*c");?while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%lf%d",a.num,,a.author,a.press,a.time,a.status,&a.price, &a.count);printf("%-4s%-4s%-4s%-4s%-4s%-4s%-8.2lf%-4d\n",a.num,,a.author,a.press,a.time,a .status,a.price,a.count);a=b;}fclose(fp);}void find(){char str[15]="\0";FILE *fp;int flag=0;book a={"\0","\0","\0","\0","\0","\0",0.0,0},b=a;printf("请输入所要查找图书的中图分类号:");scanf("%s",str);if((fp=fopen("bookinf.txt","r"))==NULL){printf("file open error!\n");exit(0);}fscanf(fp,"%*[^\n]"); //跳过文本的第一行fscanf(fp,"%*[^\n]%*c");?while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%lf%d",a.num,,a.author,a.press,a.time,a.status,&a.price, &a.count);if(!strcmp(a.num,str)){flag=1;printf("所找图书信息为:");printf("%-4s%-4s%-4s%-4s%-4s%-4s%-8.2lf%-4d\n",a.num,,a.author,a.press,a.time,a .status,a.price,a.count);break;}a=b; //b的用处}if(flag==0)printf("您所找的图书不存在!\n");fclose(fp);}void deleter(){char str[15]="\0";int flag=0;FILE *fp,*fp1;book a={"\0","\0","\0","\0","\0","\0",0.0,0},b=a;printf("请输入所要删除图书的中图分类号:");scanf("%s",str);if((fp=fopen("bookinf.txt","r"))==NULL){printf("file open error!");exit(0);}if((fp1=fopen("f.txt","w"))==NULL){printf("file open error!");exit(0);}fprintf(fp1,"中图分类好书名作者出版社出版时间状态价格数量");fscanf(fp,"%*[^\n]"); //跳过文本的第一行fscanf(fp,"%*[^\n]%*c");?while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%lf%d",a.num,,a.author,a.press,a.time,a.status,&a.price, &a.count);if(!strcmp(str,a.num)){flag=1;continue;}fprintf(fp1,"\n%-15s%-20s%-20s%-20s%-15s%-10s%-8.2lf%4d",a.num,,a.author,a.pr ess,a.time,a.status,a.price,a.count);a=b;}fclose(fp1);fclose(fp);remove("bookinf.txt");rename("f.txt","bookinf.txt");if(flag==0)printf("所要删除的图书不存在!\n");elseprintf("删除成功!\n");}void modify(){char str[15]="\0";FILE *fp,*fp1;char s[120]="\0";book a={"\0","\0","\0","\0","\0","\0",0.0,0};printf("请输入所要修改图书的中图分类号:");scanf("%s",str);if((fp=fopen("bookinf.txt","r+"))==NULL){printf("file open error!");exit(0);}if((fp1=fopen("f.txt","w"))==NULL){printf("file open error!");exit(0);}fgets(s,120,fp); //读取bookinf.txt第一行的信息,使读取位置移动到第二行fprintf(fp1,"中图分类好书名作者出版社出版时间状态价格数量");//初始化新文件f.txtwhile(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%lf%d",a.num,,a.author,a.press,a.time,a.status,&a.price, &a.count);if(!strcmp(str,a.num)) //如果遇到所要修改的记录,则从新输入图书信息{printf("请输入图书信息,即将记录修改为:\n");printf("中图分类好书名作者出版社出版时间状态价格数量\n");scanf("%s%s%s%s%s%s%lf%d",a.num,,a.author,a.press,a.time,a.status,&a.price,&a.c ount);}fprintf(fp1,"\n%-15s%-20s%-20s%-20s%-15s%-10s%-8.2lf%4d",a.num,,a.author,a.pr ess,a.time,a.status,a.price,a.count);}fclose(fp1);fclose(fp);remove("bookinf.txt");rename("f.txt","bookinf.txt");}void leave(){exit(0);}。
原创c语言图书馆管理系统源代码

原创C语言图书馆管理系统源代码介绍图书馆作为一个重要的知识储备和学习场所,必须进行有效的管理和组织。
使用C语言编写的图书馆管理系统可以帮助图书馆实现自动化的借阅、归还和管理功能。
本文将介绍一个原创的C语言图书馆管理系统的源代码。
功能概述这个图书馆管理系统具有以下核心功能: - 图书管理:包括添加图书、删除图书、查询图书等操作。
- 借阅管理:可以进行借阅操作,记录借阅者和借阅时间。
- 归还管理:可以进行归还操作,并更新图书的可借状态。
- 用户管理:管理借阅者的信息,包括添加用户、删除用户、查询用户等操作。
数据结构设计该图书馆管理系统使用了以下几种数据结构: 1. 图书(Book)结构体:包含图书的ID、书名、作者、可借状态等字段。
2. 用户(User)结构体:包含用户的ID、姓名、地址等字段。
3. 借阅记录(BorrowRecord)结构体:包含借阅者ID、图书ID、借阅时间等字段。
系统流程整个系统的流程可以分为以下几个步骤: 1. 用户打开系统,进入主菜单。
2. 用户选择不同的功能选项(如图书管理、借阅管理、用户管理等)。
3. 根据用户选择的功能,进入相应的功能界面。
4. 用户可以根据提示,输入相应的信息进行图书管理、借阅管理或用户管理操作。
5. 用户完成操作后,可以选择返回主菜单或退出系统。
代码实现以下是一个简化版的C语言图书馆管理系统的源代码:```c #include <stdio.h>// 定义结构体 struct Book { int id; char name[50]; char author[50]; int isAvailable; };struct User { int id; char name[50]; char address[100]; };struct BorrowRecord { int userId; int bookId; char borrowDate[20]; };// 函数声明 void addBook(); void deleteBook(); void searchBook(); void borrowBook(); void returnBook(); void addUser(); void deleteUser(); void searchUser();int main() { int choice;do {// 显示主菜单printf(\。
图书馆管理系统C语言_附完整源码

if (m == 5) { bnode* temp; head = NULL; sum = ReadSum(); head=ReadFile(sum); SelectSort(sum, head); //OutToFileArray(temp, sum); system("pause"); system("cls"); menu(); cin >> m; } if (m == 6) { bnode* temp; head = NULL; sum = ReadSum(); head=ReadFile(sum); BubbleSortName(sum, head); //OutToFileArray(temp, sum); system("pause"); system("cls"); menu(); cin >> m; } if (m == 7) { bnode* temp; head = NULL; sum = ReadSum(); head=ReadFile(sum); SelectSortWord(sum, head); //OutToFileArray(temp, sum); system("pause"); system("cls"); menu(); cin >> m; }
图书馆管理系统
#include< iostream > #include< string > #include< fstream > using namespace std; typedef struct node { char name[20]; char writter[30]; char publish[30]; int date; int word; double price; int number; struct node* next; }bnode; bnode* head = NULL; int sum = 1; void WriteSum(int mysum); int ReadSum(); void menu(); //对书库的操作 void InputInfo(); void SearchBook(bnode* myhead); void ChangeBook(bnode* myhead); int DeleteBook(bnode* myhead); //文件操作 void OutputToFile(); void OutToFileArray(bnode *temp, int mysum); bnode* ReadFile(int mysum); 在屏幕上 //排序 bnode* SelectSort(int mysum, bnode* myhead); bnode* SelectSortWord(int mysum, bnode* myhead); bnode* SelectSortDate(int mysum, bnode* myhead); bnode* BubbleSortName(int mysum, bnode* myhead);
C语言 图书信息管理系统 最终源代码

C语言图书信息管理系统最终源代码#include<stdio.h>#include"string.h"struct book /* book2 是用来装用户要录入图书的信息*/{long num,time;char name[12],writer[12],fenlei[8],danwei[10];int pay;}stu[100];struct book1{long num,time;char name[12],writer[12],fenlei[8],danwei[10];int pay;}stu1[100];struct book2 /* book 是用来装cc.dat 文件中的图书信息*/{long num,time;char name[12],writer[12],fenlei[8],danwei[10];int pay;}stu2[100];denglu(){char a[15]="drzhang",b[15]="29257966",c[15],d[15];L3:system("cls");printf(" 欢迎登陆图书管理系统\n\n");printf("请输入姓名:");gets(c);printf("请输入密码:");gets(d);if(strcmp(a,c)==0&&strcmp(b,d)==0)return 0;else{printf("输入错误请重新输入\n\n");printf("1.重新输入 2.退出系统\n\n");printf("请输入.....");switch(getch()){case 49: goto L3;break;default: return 56;break;}}}/*此功能实现的是开始菜单的显示和具体功能的选择*/start(){printf("******************************欢迎使用图书管理系统******************************");printf("* 功能目录:*");printf("* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *");printf("* || || *");`printf("* || 1、图书查询2、图书浏览3、录入图书4、删除与修改5、备份与还原|| *");printf("* || || *");printf("* || || *");printf("* || || *");printf("* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *");printf("* 使用说明:如要选择“图书查询”,直接输入:1 退出:0 *");printf("************************************************************************* *******");printf("你想要做什么:");return getch(); /*输入选择对应功能的值,返回输入的值,即:用于判断选择的功能*/ }/*实现备份功能,以防图书信息出错带来的麻烦,不必看懂*/beifen(){FILE *fp1,*fp2;int i,a;jieshuo();system("cls");printf("\n\n请选择\\ 备份(B)| 浏览备份(L)/ \\ 还原(H)/ \\ 退出(Q)/ \n");switch(getch()){case 'B':case 'b':if((fp1=fopen("cc","r"))==NULL){printf("不能打开次文件\n");exit(0);}if((fp2=fopen("cc01","w"))==NULL){printf("不能打开次文件\n");exit(0);}fscanf(fp1,"%d",&a);fprintf(fp2,"%d\n",a);printf("\n\n确认备份吗?(Y/N)");switch(getch()){case 'Y':case 'y':for(i=0;i<a;i++){fscanf(fp1,"%ld %s %s %s %s %ld %d",&stu[i].num,stu[i].name,stu[i].writer,stu[i].fenlei,stu[i] .danwei,&stu[i].time,&stu[i].pay);fprintf(fp2,"%ld\t%s\t%s\t%s\t%s\t%ld\t%d\n",stu[i].num,stu[i].name,stu[i].writer,stu[i].fenlei,st u[i].danwei,stu[i].time,stu[i].pay);}printf("\n\n备份成功!\n\n是否打开浏览备份文件?(Y/N)");switch(getch()){case 'Y':case 'y':fclose(fp1);fclose(fp2);liulan02();break;case 'N':case 'n':break;}break;case 'N':case 'n':break;}fclose(fp1);fclose(fp2);break;case 'H':case 'h':if((fp1=fopen("cc01","r"))==NULL){printf("不能打开此文件\n");exit(0);}if((fp2=fopen("cc","w"))==NULL){printf("不能打开此文件\n");exit(0);}fscanf(fp1,"%d",&a);fprintf(fp2,"%d\n",a);printf("\n\n确认还原吗?(Y/N)");switch(getch()){case 'Y':case 'y':for(i=0;i<a;i++){fscanf(fp1,"%ld %s %s %s %s %ld %d",&stu[i].num,stu[i].name,stu[i].writer,stu[i].fenlei,stu[i] .danwei,&stu[i].time,&stu[i].pay);fprintf(fp2,"%ld\t%s\t%s\t%s\t%s\t%ld\t%d\n",stu[i].num,stu[i].name,stu[i].writer,stu[i].fenlei,st u[i].danwei,stu[i].time,stu[i].pay);}printf("\n\n还原成功!\n\n是否打开浏览还原文件?(Y/N)");switch(getch()){case 'Y':case 'y':fclose(fp1);fclose(fp2);liulan();break;case 'N':case 'n':break;}break;case 'N':case 'n':break;}fclose(fp1);fclose(fp2);break;case 'l':case 'L':liulan02();break;case 'Q':case 'q':break;}}/* 在屏幕上打印查询菜单*/chaxun(){jieshuo();system("cls");printf("******************************欢迎使用图书查询系统******************************");printf("* 查询方式:*");printf("**");printf("* 1、书名2、作者名3、出版时间*");printf("**");printf("* 4、价格5、分类号6、出版单位*");printf("**");printf("* 使用说明:如要选择“书名”,直接输入:1 退出:0 *");printf("************************************************************************* *******");printf("\n请输入你要怎么查询:");chaxun01(); /*打印完毕后,进入chaxun()函数,执行用户需要的查询功能*/}/*此程序段实行查询的各种功能*/chaxun01(){FILE *fp;char ch[8];int a=0,i,j,k,n=0,c,d;long b;if((fp=fopen("cc","r"))==NULL) /*说明:cc.dat 文件装着图书的信息,*/ {printf("不能打开此文件\n");exit(0);} /*并且文件开记录的是图书的书量,后*/ fscanf(fp,"%d",&a); /*从文件中读出图书数*/ /*面依次才是具体信息。
C语言图书管理系统代码

#include<stdio.h>#include<stdlib.h>#include<string.h>struct book{int num;char bname[50];char wname[20];char press[50];char sort[50];int time;float price;struct book *next;};struct book *creatbook(); //创建链表struct book *addbook(struct book *head); //添加图书int yanzheng(struct book *head,int m); //验证新添加的图书编码是否已存在void deletebook(struct book *head); //删除图书void fprint(struct book *head); //将链表写入文件struct book *load(); //从文件中读取信息并建成链表void print_book(struct book *head); //将链表信息输出void chaxun(struct book *head); //查询图书信息void num_chaxun(struct book *head); //按图书编号查询图书void wname_chaxun(struct book *head); //按作者名查询图书void sort_chaxun(struct book *head); //按类别查询图书void time_chaxun(struct book *head); //按出版时间查询图书void bname_chaxun(struct book *head); //按图书名查询图书void xiugai(struct book *head); //修改图书信息void paixu(struct book *head); //对图书进行排序void num_paixu(struct book *head); //按图书编号排序void time_paixu(struct book *head); //按图书出版时间排序void price_paixu(struct book *head); //按图书价格排序void bname_paixu(struct book *head); //按图书名排序void wname_paixu(struct book *head); //按作者名排序int main(){int choice,n,x,y=1,c,c1=1234;char a,d,b[10],b1[10]="yjk";struct book *head=NULL;while(y){system("cls");printf("\n\n\n\n\n\n\n");printf(" ********** 欢迎光临**********\n\n");printf(" ********************** 图书信息管理系统************************\n\n\n");printf("\n\n");printf(" ============1-用户登录===========\n");printf(" ============0-退出系统===========\n");printf(" 请输入您的选择:");scanf("%d",&n);printf("\n");getchar();switch(n){case 0:y=0;break;case 1:printf(" 请输入您的用户名:");gets(b);printf("\n");printf(" 请输入您的密码:");scanf("%d",&c);printf("\n");if(strcmp(b,b1)!=0||c!=c1){printf(" 验证失败,请重新输入!\n");scanf("%c",&d);getchar();system("cls");}else{printf(" 验证通过!请按Enter键进入!\n");scanf("%c",&d);getchar();x=1;while(x){system("cls");printf(" ------------------\n");printf(" *图书信息管理系统*\n");printf(" ------------------\n\n");printf("**********************************************\n\n");printf("**********************************************\n\n");printf(" || 1-添加图书2-删除图书||\n\n");printf(" || 3-图书列表4-图书排序||\n\n");printf(" || 5-查询图书6-修改图书||\n\n");printf(" || 7-录入数据0-退出系统||\n\n");printf("**********************************************\n\n");printf("**********************************************\n\n");printf("请输入所选择的序号:");scanf("%d",&choice);getchar();system("cls");switch(choice){case 0:x=0;break;case 1:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{head=addbook(head);printf("添加成功!\n");printf("是否将新信息保存到文件?(y/n)\n");scanf("%c",&a);getchar();switch(a){case 'n':break;case 'y':fprint(head);printf("保存成功!\n");getchar();break;}break;}case 2:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{deletebook(head);getchar();break;}break;case 3:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{print_book(head);getchar();break;}case 4:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{paixu(head);getchar();}break;case 5:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{chaxun(head);getchar();}break;case 6:head=load();if(head==NULL){printf("文件为空,请先录入数据!\n");getchar();break;}else{xiugai(head);getchar();break;}break;case 7:printf("注意:输入图书编码为0时结束!\n");head=creatbook();printf("是否将输入的信息保存到文件以覆盖文件中已存在的信息?(y/n)\n");getchar();scanf("%c",&a);getchar();switch(a){case 'n':break;case 'y':fprint(head);printf("保存成功!\n");getchar();break;}break;default:printf("您的输入有误,请重新输入!\n");getchar();break;}}}break;default:printf(" 您的输入有误! 请重新输入!\n");getchar();break;}}}//录入数据并形成链表struct book *creatbook(){struct book *head,*tail,*p;int num,time,n;char bname[50],wname[20],press[50],sort[50];float price;int size=sizeof(struct book);head=tail=NULL;printf("请输入图书编号:");scanf("%d",&num);printf("请输入图书名:");scanf("%s",bname);getchar();printf("请输入作者名:");scanf("%s",wname);getchar();printf("请输入出版社:");scanf("%s",press);getchar();printf("请输入类别:");scanf("%s",sort);getchar();printf("请输入出版时间:");scanf("%d",&time);getchar();printf("请输入价格:");scanf("%f",&price);getchar();while(1){p=(struct book *)malloc(size);p->num=num;strcpy(p->bname,bname);strcpy(p->wname,wname);strcpy(p->press,press);strcpy(p->sort,sort);p->time=time;p->price=price;p->next=NULL;if(head==NULL)head=p;elsetail->next=p;tail=p;do{printf("请输入图书编号:");scanf("%d",&num);n=yanzheng(head,num);if(n==0)break;elseprintf("您输入的编号已存在,请重新输入!\n");}while(1);if(num==0)break;else{printf("请输入图书名:");scanf("%s",bname);getchar();printf("请输入作者名:");scanf("%s",wname);getchar();printf("请输入出版社:");scanf("%s",press);getchar();printf("请输入类别:");scanf("%s",sort);getchar();printf("请输入出版时间:");scanf("%d",&time);getchar();printf("请输入价格:");scanf("%f",&price);getchar();}}return head;}//插入结点,并且插入后仍按一定顺序struct book *addbook(struct book *head){struct book *ptr,*p1,*p2,*p;char bname[50],wname[20],press[50],sort[50];int size=sizeof(struct book);int num,time,n=1;float price;do{printf("请输入图书编号:");scanf("%d",&num);n=yanzheng(head,num);if(n==0)break;elseprintf("您输入的编号已存在,请重新输入!\n");}while(1);printf("请输入图书名:");scanf("%s",bname);getchar();printf("请输入作者名:");scanf("%s",wname);getchar();printf("请输入出版社:");scanf("%s",press);getchar();printf("请输入类别:");scanf("%s",sort);getchar();printf("请输入出版时间:");scanf("%d",&time);getchar();printf("请输入价格:");scanf("%f",&price);getchar();p=(struct book *)malloc(size);p->num=num;strcpy(p->bname,bname);strcpy(p->wname,wname);strcpy(p->press,press);strcpy(p->sort,sort);p->time=time;p->price=price;p2=head;ptr=p;while((ptr->num>p2->num)&&(p2->next!=NULL)){ p1=p2;p2=p2->next;}if(ptr->num<=p2->num){if(head==p2)head=ptr;else{p1->next=ptr;p->next=p2;}}else{p2->next=ptr;p->next=NULL;}return head;}//验证添加的图书编号是否已存在int yanzheng(struct book *head,int m){struct book *p;p=head;while(p!=NULL){if(p->num==m)break;p=p->next;}if(p==NULL)return 0;elsereturn 1;}//将新链表写入文件中void fprint(struct book *head){FILE *fp;char ch='1';struct book *p1;if((fp=fopen("f1.txt","w"))==NULL){printf("File open error!\n");exit(0);}fputc(ch,fp);for(p1=head;p1;p1=p1->next){fprintf(fp,"%d %s %s %s %s %d %f\n",p1->num,p1->bname,p1->wname,p1->press,p1->sort ,p1->time,p1->price);}fclose(fp);}//从文件中读取图书信息struct book *load(){FILE *fp;char ch;struct book *head,*tail,*p1;head=tail=NULL;if((fp=fopen("f1.txt","r"))==NULL){printf("File open error!\n");exit(0);}ch=fgetc(fp);if(ch=='1'){while(!feof(fp)){p1=(struct book *)malloc(sizeof(struct book));fscanf(fp,"%d%s%s%s%s%d%f\n",&p1->num,p1->bname,p1->wname,p1->press,p1->sort,&p1-> time,&p1->price);if(head==NULL)head=p1;elsetail->next=p1;tail=p1;}tail->next=NULL;fclose(fp);return head;}elsereturn NULL;}//将整个链表的信息输出void print_book(struct book *head){struct book *ptr;if(head==NULL){printf("\n没有信息!\n");return;}printf(" 图书信息列表如下\n");printf("==========================================================\n");printf(" 编号图书名作者名出版社类别出版时间价格\n");for(ptr=head;ptr;ptr=ptr->next)printf(" %d %s %s %s %s %d %.2f\n",ptr->num,ptr->bname,ptr->wname,ptr->press,ptr->sort,ptr->time,ptr->price);printf("==========================================================\n");}//删除图书信息void deletebook(struct book *head){int a;char b,ch='1';struct book *p1,*p2;FILE *fp;printf("请输入要删除的图书编号:");scanf("%d",&a);p1=head;if(p1->num==a&&p1->next==NULL){ //对于文件中只有一组数据printf("是否清空文件!(y/n)\n");getchar();scanf("%c",&b);getchar();switch(b){case 'n':break;case 'y':if((fp=fopen("f1.txt","w"))==NULL){printf("File open error!\n");exit(0);}fclose(fp);printf("文件已清空!\n");}}else{while(p1->num!=a&&p1->next!=NULL){p2=p1;p1=p1->next;}if(p1->next==NULL){if(p1->num==a){p2->next=NULL;printf("是否确定从文件中彻底删除该图书?(y/n)\n");getchar();scanf("%c",&b);switch(b){case 'n':break;case 'y':fprint(head);printf("删除成功!\n");getchar();break;}}else{printf("没有找到要删除的数据!\n");getchar();}}else if(p1==head){head=p1->next;printf("是否确定从文件中彻底删除该图书?(y/n)\n");getchar();scanf("%c",&b);switch(b){case 'n':break;case 'y':fprint(head);printf("删除成功!\n");getchar();break;}}else{p2->next=p1->next;printf("是否确定从文件中彻底删除该图书?(y/n)\n");getchar();scanf("%c",&b);switch(b){case 'n':break;case 'y':fprint(head);printf("删除成功!\n");getchar();break;}}}}//图书查询void chaxun(struct book *head){int a;printf("==========================================================\n");printf(" ** 1-按图书编号查询2-按图书名查询**\n");printf(" ** 3-按图书类别查询4-按作者名查询**\n");printf(" ** 5-按出版时间查询0-退出查询**\n");printf("==========================================================\n");printf("请输入所选择的编号:");scanf("%d",&a);getchar();switch(a){case 0:break;case 1:num_chaxun(head);break;case 2:bname_chaxun(head);break;case 3:sort_chaxun(head);break;case 4:wname_chaxun(head);break;case 5:time_chaxun(head);break;default:printf("您的输入有误!\n");break;}}//按编号查询图书信息void num_chaxun(struct book *head){int a;struct book *p;printf("请选择您要查询的图书编号:");scanf("%d",&a);getchar();p=head;while(p!=NULL){if(p->num==a)break;p=p->next;}if(p==NULL){printf("没有找到该编号的图书!\n");}else{printf(" 你所查询的图书信息如下\n");printf("====================================================================== ===\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");printf("** %d %s %s %s %s %d %.2f **\n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);printf("====================================================================== ===\n");}}//按图书名查询图书信息void bname_chaxun(struct book *head){char a[50];int flag=0;struct book *p;printf("请选择您要查询的图书名:");gets(a);p=head;while(p!=NULL){if(strcmp(p->bname,a)==0){flag=1;break;}p=p->next;}if(flag==0){printf("没有找到该图书名的图书!\n");}else{printf(" 你所查询的图书信息如下\n");printf("====================================================================== ===\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");while(p!=NULL){if(strcmp(p->bname,a)==0){printf("** %d %s %s %s %s %d %.2f **\n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);}p=p->next;}printf("====================================================================== ===\n");}}//按作者名查询图书信息void wname_chaxun(struct book *head){char a[50];int flag=0;struct book *p;printf("请选择您要查询的图书作者名:");gets(a);p=head;while(p!=NULL){if(strcmp(p->wname,a)==0){flag=1;break;}p=p->next;}if(flag==0){printf("没有找到该图书名的图书!\n");}else{printf(" 你所查询的图书信息如下\n");printf("====================================================================== ===\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");while(p!=NULL){if(strcmp(p->wname,a)==0){printf("** %d %s %s %s %s %d %.2f **\n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);flag=1;}p=p->next;}printf("====================================================================== ===\n");}}//按图书类别查询图书信息void sort_chaxun(struct book *head){char a[50];int flag=0;struct book *p;printf("请选择您要查询的图书类别:");gets(a);p=head;while(p!=NULL){if(strcmp(p->sort,a)==0){flag=1;break;}p=p->next;}if(flag==0){printf("没有找到该图书名的图书!\n");}else{printf(" 你所查询的图书信息如下\n");printf("====================================================================== ===\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");while(p!=NULL){if(strcmp(p->sort,a)==0){printf("** %d %s %s %s %s %d %.2f **\n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);flag=1;}p=p->next;}printf("====================================================================== ===\n");}}//按图书出版时间查询图书信息void time_chaxun(struct book *head){int a,flag=0;struct book *p;printf("请选择您要查询的图书出版时间:");scanf("%d",&a);getchar();p=head;while(p!=NULL){if(p->time==a){flag=1;break;}p=p->next;}if(flag==0){printf("没有找到该图书名的图书!\n");}else{printf(" 你所查询的图书信息如下\n");printf("====================================================================== ===\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");while(p!=NULL){if(p->time==a){printf("** %d %s %s %s %s %d %.2f **\n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);flag=1;}p=p->next;}printf("====================================================================== ===\n");}}//修改图书信息void xiugai(struct book *head){int a,b;char c;struct book *p;printf("请输入要修改的图书编号:");scanf("%d",&a);p=head;while(p!=NULL){if(p->num==a)break;p=p->next;}if(p==NULL){printf("没有找到该编号的图书!\n");getchar();}else{printf("============================================================\n");printf(" ** 1-编号2-图书名3-作者名**\n");printf(" ** 4-出版社5-类别6-出版时间**\n");printf(" ** 7-价格8-修改全部0-放弃修改**\n");printf("============================================================\n");printf("请选择你要修改的信息编号:");scanf("%d",&b);getchar();switch(b){case 1:printf("请输入新编号:");scanf("%d",&p->num);printf("修改成功!\n");getchar();break;case 2:printf("请输入新图书名:");gets(p->bname);printf("修改成功!\n");break;case 3:printf("请输入新作者名:");gets(p->wname);printf("修改成功!\n");break;case 4:printf("请输入新出版社:");gets(p->press);printf("修改成功!\n");break;case 5:printf("请输入新类别:");gets(p->sort);printf("修改成功!\n");break;case 6:printf("请输入新出版时间:");scanf("%d",&p->time);printf("修改成功!\n");getchar();break;case 7:printf("请输入新价格:");scanf("%f",&p->price);printf("修改成功!\n");getchar();break;case 8:printf("请输入新图书编号:");scanf("%d",&p->num);printf("请输入新图书名:");scanf("%s",p->bname);getchar();printf("请输入新作者名:");scanf("%s",p->wname);getchar();printf("请输入新出版社:");scanf("%s",p->press);getchar();printf("请输入新类别:");scanf("%s",p->sort);getchar();printf("请输入新出版时间:");scanf("%d",&p->time);getchar();printf("请输入新价格:");scanf("%f",&p->price);getchar();printf("修改成功!\n");getchar();break;case 0:break;default :printf("您的输入有误!\n");break;}printf("是否将修改后的信息保存到文件中?(y/n)\n");scanf("%c",&c);getchar();switch(c){case 'n':break;case 'y':fprint(head);printf("保存成功!\n");getchar();break;}}}//图书排序void paixu(struct book *head){int a;printf("================================================================\n");printf(" ** 1-按图书编号排序2-按出版时间排序**\n");printf(" ** 3-按图书价格排序4-按图书名排序**\n");printf(" ** 5-按作者名排序0-取消排序操作**\n");printf("================================================================\n");printf("请输入您选择的编号:");scanf("%d",&a);getchar();switch(a){case 0:break;case 1:num_paixu(head);break;time_paixu(head);break;case 3:price_paixu(head);break;case 4:bname_paixu(head);break;case 5:wname_paixu(head);break;default:printf("您的输入有误!\n");break;}}//按图书编号排序void num_paixu(struct book *head){struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n++;for(i=0;i<n;i++){a[i]=p1;p1=p1->next;}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++){if(a[i]->num<a[index]->num)index=i;}temp=a[index];a[index]=a[k];a[k]=temp;}printf("排序成功!\n");printf("是否显示排序结果?(y/n)\n");scanf("%s",&b);switch(b){case 'n':break;case 'y':printf("================================================================\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");for(i=0;i<n;i++){printf("** %d %s %s %s %s %d %.2f **\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);}printf("================================================================\n");break;default:printf("您的输入有误!\n");break;}}//按出版时间排序void time_paixu(struct book *head){struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n++;for(i=0;i<n;i++){a[i]=p1;p1=p1->next;}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++){if(a[i]->time<a[index]->time)index=i;}temp=a[index];a[index]=a[k];a[k]=temp;}printf("排序成功!\n");printf("是否显示排序结果?(y/n)\n");scanf("%s",&b);getchar();switch(b){case 'n':break;case 'y':printf("===============================================================\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");for(i=0;i<n;i++){printf("** %d %s %s %s %s %d %.2f **\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);}printf("===============================================================\n");break;default:printf("您的输入有误!\n");break;}}//按图书价格排序void price_paixu(struct book *head){struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n++;for(i=0;i<n;i++){a[i]=p1;p1=p1->next;}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++){if(a[i]->price<a[index]->price)index=i;}temp=a[index];a[index]=a[k];a[k]=temp;}printf("排序成功!\n");printf("是否显示排序结果?(y/n)\n");scanf("%s",&b);getchar();switch(b){case 'n':break;case 'y':printf("===============================================================\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");for(i=0;i<n;i++){printf("** %d %s %s %s %s %d %.2f **\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);}printf("===============================================================\n");break;default:printf("您的输入有误!\n");break;}}//按图书名排序void bname_paixu(struct book *head){struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n++;for(i=0;i<n;i++){a[i]=p1;p1=p1->next;}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++){if(strcmp(a[index]->bname,a[i]->bname)>0)index=i;}temp=a[index];a[index]=a[k];a[k]=temp;}printf("排序成功!\n");printf("是否显示排序结果?(y/n)\n");scanf("%s",&b);getchar();switch(b){case 'n':break;case 'y':printf("===============================================================\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");for(i=0;i<n;i++){printf("** %d %s %s %s %s %d %.2f **\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);}printf("===============================================================\n");break;default:printf("您的输入有误!\n");break;}}//按作者名排序void wname_paixu(struct book *head){struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)n++;for(i=0;i<n;i++){a[i]=p1;p1=p1->next;}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++){if(strcmp(a[index]->wname,a[i]->wname)>0)index=i;}temp=a[index];a[index]=a[k];a[k]=temp;}printf("排序成功!\n");printf("是否显示排序结果?(y/n)\n");scanf("%s",&b);getchar();switch(b){case 'n':break;case 'y':printf("===============================================================\n");printf(" ** 编号图书名作者名出版社类别出版时间价格**\n");for(i=0;i<n;i++){printf("** %d %s %s %s %s %d %.2f **\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);}printf("===============================================================\n");break;default:printf("您的输入有误!\n");break;}}。
图书管理系统源代码--纯C语言.

#include<stdio.h〉#include〈stdlib。
h>#include<string。
h>#include<ctype。
h〉#define NULL 0#define LEN sizeof(Book)struct A{char Name[20];int all,left,borrow;struct A *next;};typedef struct A Book;int Display_Main_Menu(); /*主菜单显示*/Book *Create(); /*功能函数声明*/void Display(Book *head);Book *Insert(Book *head,Book *s);Book *Insert_a_record(Book *head);Book *Delete(Book *head,char *name);Book *Delete_a_record(Book *head);Book *Borrow(Book *head,char *name,int sum);Book *Borrow_a_Book(Book *head);Book *Return(Book *head,char *name,int sum);Book *Return_a_Book(Book *head);Book *Query(Book *head,char *name);void Query_a_record(Book *head);Book *AddfromText(Book *head,char *filename);Book *WritetoText(Book *head,char *filename);void Quit(Book *head);void main() /*主函数部分*/{Book *head; /*定义变量*/char filename[20];int keyword=111,a;printf(”Please input keyword:”);scanf("%d",&a);if(a!=keyword) exit(0);else printf("Welcome!”);head=NULL; /*置首指针为空*/for(;;){switch(Display_MainMenu()){case 1:printf("1.Create BookList\n”); /*调用Create函数创建链表*/ head=Create();system(”pause");break;case 2:printf("Display All Books\n”);Display(head); /*调用Display函数显示所有*/system(”pause”);break;case 3:printf("Insert a Record\n");head=Insert_a_record(head);/*调用Insert_a_record函数插入*/system("pause”);break;case 4:printf(”Delete a Book\n”);head=Delete_a_record(head);/*调用Delete_a_record函数删除*/system(”pause”);break;case 5:printf(”Borrow a Book\nInput BookName and sum you borrow:”);head=Borrow_a_Book(head);system("pause”);break;case 6:printf("Return a Book\nInput BookName and sum you return:”);head=Return_a_Book(head);system("pause”);break;case 7:printf("Query\nInput the BookName you want:");Query_a_record(head);/*调用查询函数*/system(”pause");break;case 8:printf("Input the name of Text File\n”);scanf(”%s",filename);/*输入文件名*/head=AddfromText(head,filename);system("pause");break;case 9:printf("Input the name of the NewText File\n");scanf(”%s",filename);/*输入要写入的文件名*/head=WritetoText(head,filename);system("pause”);break;case 0:printf("Goodbye\n");Quit(head);exit(0);}}}int Display_MainMenu() /*显示菜单的函数*/{char x;do{system(”cls”);printf(”************************\n”);printf("1.Create BookList\n”);printf("2。
C 大型实验之图书管理系统源代码(仅供参考)

//===================================
void DBFile::Write_borrowdata_infile(){
ofstream outfile("BorrowData.dat",ios::trunc);
//覆盖写入模式,因为中间有修改变量
infile>>(m->ID);
if((m->ID)[0]=='\0')break;
infile>>(m->Password);
infile>>(m->Name);
infile>>(m->Sex);
if(managers==0)
managers=m;
string bname;//书名
string author;//作者
string press;//出版社
int storenum;//现有藏书量
int borrownum;//借出数
Book *next;
Book();
void print();
};
#endif
//DBFile.h//数据操作类
//====================
#ifndef HEADER_DBFILE
#define HEADER_DBFILE
#include <iostream>
#include <fstream>
#include <string>
#include "Reader.h"
图书管理系统代码(C语言)

图书管理系统代码(c语言)#include〈stdio. h>#include〈stdlib・ h>#include〈string・ h>struct book{int num;char bname[50];char wname[20];char press[50^;char sort[50]:int time;float price;struct book *next;};struct book *creatbook() ; //创建链表struct book * addbook (structbook *head) ; //添加图书int yanzheng(struct book *head, int m) ; //验证新添加的图书编码是否已存在void deletebook (struct book *head) ; //删除图书void fprint (struct book *head) : //将链表写入文件struct book *load() ; // 从文件中读取信息并建成链表void print_book(struct book *head) : //将链表信息输出void chaxun(struct book *head) ; //查询图书信息void num_chaxun(struct book *head) ; //按图书编号查询图书void wname_chaxun(struct book *head) ; //按作者名查询图书voidsort_chaxun(struct book *head) ; //按类另lj查询图书void time_chaxun(structbook *head) ; //按出版时间查询图书void bname_chaxun(struct book *head); //按图书名査询图书void xiugai (struct book *head); //修改图书信息void paixu(struct book *head) ; //对图书进行排序void num_paixu(struct book ♦head); 〃按图书编号排序void time_paixu(struct book *head) ; //按图书出版时间排序void price_paixu(struct book *head): //按图书价格排序void bname_paixu(struct book *head) ; //按图书名排序void wname_paixu(struct book *head) ; //按作者名排序int main()int choice, n, x, y=l, c, cl=123456;char a, d, b[10], bl[10]="201102520116";struct book *head=NULL;while(y){system("cis");printf ("\n\n\n\n\n\n\n");printf (z ********** 欢迎光临**********\n\n,z);printf (,z ********************** 图书信息管理系统printf C\n\n');printf C ™=_1—用户登录=_==\十);二二二二二二二二二二二二0-退出系统二二二二二二二二二二二\『);printf Cprintf f请输入您的选择「);scanf (,z%d,z, &n);printf("\n");getchar ();switch(n) {case 0:y 二0;break;case 1:printf C请输入您的用户名:〃);gets(b);printf C\n");printf C请输入您的密码:“);scanf("%d", &c);printf("\n");if(strcmp(b, bl)!=0 |c!=cl){printf C验证失败,请重新输入!\n〃);scanf &d);getchar ();system("cls");}else {printf ("验证通过!请按Enter键进入!\n"); scanf("%c", &d);getchar ();x二1;while(x){ system("cis");printf C --------------------- \n"); printff *图书信息管理系统*\n 〃); printf C --------------------- \n\rT); • I • '.I"■、』•-1"• I • '.I" ■、』•-1"■、/• I • '.I" ■、』•-1"■、/• I • '.I" ■、』•-1"■、/• I • '.I" ■、』•-1" ■、/ • I • '.I" \ \1 •viw vaw vVw vTw vVwvaw vgW viw vaw vVw vTw vVwvaw vgW viw vaw vVw vTw vVwvaw vgW viw vaw vVw vTw vVwvaw vgW viw vaw vVw vTw vVw vaw vgW viw vaw vVw vTw viw »Tw 、『(、『]•、.• \ \ 1 • viw viw vaw vTw viw viw viw viw vTW viwvaw vaw viw viw viw viw vTW viw vaw vaw viw viw viw viw vTW viw vaw vaw viw viw viw viw vTW viw vaw vaw viw viw viw viw vTW viw vaw vaw viw »Tw•”f.・•工・•」・• —I" ■、尸■、■•■、丿•工・•」・• —I"■、尸■、■•■、丿•工・•」・• —I"■、尸■、■•■、丿•工・•」・• —I" ■、尸■、■• ■、丿•工・•」・• —I"■、尸■、■• ■、丿•工・•」・• —I"■、,\ \1 •VBW VIW VIW VSW VBW VCW VIW VIW VIW VIW VBW VBW vYw VIW VIW VIW VIW VBW VBW vYwVIW VIW VIW VIW VBW VBW vYw V IW VIW VIW VIW VBW VBW vYwVIW VIW VIW VIW VBW VIW»Tw 、『(、[]• (_•・.l ・■、』•工・•丄• •」•• •丄••丄• •■l ・■、』•工・•丄• •」•• •丄••丄• •■1・■、』•工・•丄• •」•• •丄• •丄• •■1・■、』•工・•丄••」•• •丄••丄• •■1・■、』•工・•丄• •」•• •丄• •丄•■、』•工・•丄• •」.• \ \ 1 •v^w viw vaw vTw vawv^w viw vaw vaw vawv^w viw vaw vaw vawv^w viw vaw vaw vawv^w viw vaw vaw vawv^w viw vaw viw ^«w | I 、了]printf C 请输入所选择的序号:〃); scanf("%d", &choice); getchar (); system("cls"); switch(choice) case 0: x=0;break; case 1: head=load(); if (head=NULL) {printf C 文件为空,请先录入数据! \n 〃); getchar (); break; } else {head=addbook(head); printf ("添加成功! \n");printff 是否将新信息保存到文件?(y/n)\n 〃); scanf&a);printf (”II 1-添加图书 2-删除图书I\n\n");printf (" II 3-图书列表 4-图书排序 I \n\rT); printf (“II 3-查询图书 6-修改图书 I \n\rT); printf (“ II 7-录入数据 0-退岀系统 I \n\rT);printf Cprintf (”printf ("printf (”getchar ();switch(a){case , n,:break;case ' y‘ :fprint(head);printf ("保存成功! \n");getchar ();break;}break;}case 2:head=load();if (head=NULL) {printf C文件为空,请先录入数据! \n〃);getchar ();break;}else{deletebook(head);getchar ();break;}break;case 3:head=load();辻(head==NULL){printf ("文件为空,请先录入数据!\n");getchar ();break;}else{print_book(head);getchar ();break;}case 4:head二load ();辻(head==NULL) {printf ("文件为空,请先录入数据! \『);getchar ();break;}else{paixu (head);getchar ();}break;case 5:head二load ();辻(head==NULL){printf ("文件为空,请先录入数据!\n");getchar ();break;}else{chaxun(head);getchar ();}break;case 6:head=load();辻(head二二NULL){printf C文件为空,请先录入数据!\n");getchar ();break;}else {xiugai(head);getchar ();break;}break;case 7:printf (〃注意:输入图书编码为0时结束! \rT);head=creatbook ();printf r是否将输入的信息保存到文件以覆盖文件中已存在的信息?(y/n)\n");getchar ();scanf (“%c", &a);getchar ();switch(a){case ' n :break;case ' y‘ :fprint(head);printf ("保存成功! \n");getchar ();break;}break;default:printff您的输入有误,请重新输入! \n〃);getchar ();break;}}}break;default:printf("您的输入有误!请重新输入!\n〃);getchar ();break;}}}//录入数据并形成链表struct book *creatbook() {struct book *head, *tail, *p;int num, time, n;char bname[50], wname[20], press[50],sort[50];float price; int size=sizeof(struct book): head二tail二NULL; printfC请输入图书编号:〃);scanf&num);printff请输入图书名:〃);scanfbname);getchar ();printff请输入作者名:〃);scanf wname);getchar ();printfC请输入出版社:“);scanfpress);getchar ();printfC请输入类别:“);scanf (〃%s: sort);getchar ();printfC请输入出版时间:“);scanf&time);getchar ();printf ("请输入价格:");scanf("%f", &price);getchar ();while(l) {p= (struct book *)malloc(size);p->num=num;strcpy(p->bname, bname);strcpy(p->wname, wname);strcpy(p->press,press);strcpy(p->sort, sort);p->time二time;p->price=price;p->next二NULL;if (head=NULL)head二p;elsetail-〉next二p;tail=p;do{printff请输入图书编号:〃);scanf&num);n=yanzheng(head, num);辻(n=0)break;elseprintff您输入的编号已存在,请重新输入! \n〃); }while(1);if(num==0) break;else printfC请输入图书名:〃);scanfbname);getchar ();printff请输入作者名:〃);scanf wname);getchar ();printff请输入出版社:“);scanfpress);getchar ();printfC请输入类别:");scanfsort);getchar ();printfC请输入出版时间:”); scanf ("%d", &time);getchar ();printf ("请输入价格:”);scanf("%f", &price);getchar ();}}return head;}〃插入结点,并且插入后仍按一定顺序struct book *addbook (struct book *head) struct book *ptr, *pl, *p2, *p;char bname[50], wname[20], press[50_, sort[50];int size=sizeof(struct book):int num, time, n=l:float price;do{printff请输入图书编号:“);scanf&num);n=yanzheng(head, num);if (n=0)break;elseprintf (〃您输入的编号已存在,请重新输入! \n〃);}while(1);printf C请输入图书名:〃);scanfbname);getchar ();printf r请输入作者名:〃);scanf wname);getchar ();printf C请输入出版社:〃);scanfpress);getchar ();printfC请输入类别:〃);scanf(〃%s〃, sort);getchar ();printfC请输入出版时间:“);scanf &time);getchar ();printf ("请输入价格:”);scanf("%f", &price);getchar ();p= (struct book *)malloc(size);p->num=num;strcpy (p~>bname, bname);strcpy(p->wname, wname);strcpy (p->press, press);strcpy (p->sort, sort);p->time=time;p->price=price;p2=head;Ptr=p;while((ptr->num>p2->num)&&(p2-〉next!=NULL)){pl二p2;p2二p2-〉next;}if(ptr->num<=p2->num){if (head=p2)head二ptr;else {pl->next=ptr;p->next=p2;}}else {p2->next=ptr;p->next二NULL;}return head;}//验证添加的图书编号是否已存在int yanzheng(struct book *head, int m) {struct book *p;p=head;while(p!=NULL){if (p-'nunFp)break;p=p->next;}辻(p二二NULL)return 0;elsereturn 1;}//将新链表写入文件中void fprint (struct book *head){FILE *f p;char ch二'1’ ;struct book *pl;if ((fp 二 f open ("fl. txt", "w"))=NULL) {printf (,z File open error!\n z/):exit(0);}fputc(ch, fp);for(pl二head;pl;pl二pl->next) {fprintf (fp,,z%d %s %s %s %s %d %f\n,z, pl->num, pl->bname, pl->wname, pl->press,pl-〉sort,pl-〉time, pl-〉price);}fclose (fp);}//从文件中读取图书信息struct book *load()FILE *fp;char ch;struct book *head,*tail,*pl:head二tail二NULL;if ((fp 二 f open ("fl. txt", "r"))=NULL) {printf (,z File open error!\n z/):exit(O);}ch=fgetc (fp);辻(ch='l'){while(!feof(fp)) {pl=(struct book *)malloc(sizeof(struct book)):fscanf (fp, z,%d%s%s%s%s%d%f\n, &pl->num, pl->bname, pl->wname, pl- >press,pl-〉sort, &pl-〉time, &pl->price);辻(head二二NULL)head=pl;elsetail->next=pl;tail=pl;}tail-〉next二NULL;fclose (fp);return head;}elsereturn NULL;}〃将整个链表的信息输出void print_book(struct book *head) {struct book *ptr;辻(head=NULL) {printf ("\n 没有信息!\n");return;}printf r图书信息列表如下\n);printf C============================+)printfC编号图书名作者名出版社类别出版时间价格\n〃);for(ptr=head;ptr;ptr=ptr->next)printf (,z %d %s %s %s %s %d%・ 2f\n z/, ptr->num, ptr->bname, ptr->wname, ptr-〉press, ptr-〉sort, ptr->time, ptr-〉price);}printf CW);}//删除图书信息void deletebook(struct book *head) {int a;char b, ch二'1’ ;struct book *pl,*p2;FILE *fp;printff请输入要删除的图书编号:〃);scanf&a);pl=head;if (pl->num~a&&pl->next==NULL) { //对于文件中只有一组数据printfC是否清空文件!(y/n)\『);getchar ();scanf&b);getchar ();switch (b) {case ' n :break;case ' y‘ :if ((fp 二 f open ("fl. txt", "w"))=NULL) {printf (,z File open error!\n z,):exit(O);}fclose (fp);printf C文件已清空! \rT);}}else {while (pl->num!二a&&pl-〉next!二NULL) {p2二pl;pl=pl->next;}if (pl->next=NULL) {if (pl->num==a){p2-〉next二NULL;printfC是否确定从文件中彻底删除该图书?(y/n)\n,z); getchar ();scanf&b);switch (b) {case ' n :break;case ' y‘ :fprint(head);printf ("删除成功!\n");getchar ();break;}}else {printf (〃没有找到要删除的数据! \『);getchar ();}}else if(pl==head) {head=pl~>next:printf("是否确定从文件中彻底删除该图书?(y/n)\n"); getchar (); scanf &b);switch(b){case ' n :break;case ' y‘ :fprint (head);PrintfC 删除成功!\n〃);getchar ():break;}}else{p2-〉next二pl->next;printf("是否确定从文件中彻底删除该图书?(y/n)\n"); getchar ();scanf ("%c", &b);switch (b) { case ' n': break;case ' y,:fprint(head);printf ("删除成功!\n");getchar ();break;}}}}〃图书查询void chaxun(struct book *head) {int a;printf(”============================\n)printf C ** 1-按图书编号查询2-按图书名查询和<\『);printf (,z ** 3-按图书类别查询4-按作者名查询和<\n〃);printf C ** 5-按出版时间査询0-退出查询**\n");printf C============================\n );printf C请输入所选择的编号:〃);scanf&a);getchar ();switch(a){case 0:break;case 1:num_chaxun(head); break;case 2:bname_chaxun(head); break;case 3:sort_chaxun(head); break;case 4:wname_chaxun(head); break;case 5:t ime_chaxun(head); break;default:printf ("您的输入有误! \n"); break;}//按编号查询图书信息void num_chaxun(struct book *head){int a;struct book *p;printff请选择您要查询的图书编号:〃); scanf&a);getchar ();p二head;while(p!=NULL){if (p->num==a)break;p=p->next;}辻(p二二NULL){printfC没有找到该编号的图书!\n〃);}else {printfC你所查询的图书信息如下\n〃); printf C二二二\『);printfC * *编号图书名作者名岀版社类别岀版时间}价格**\n9 ;printf("** %d %s %s %s %s %d %. 2fp->num, p->bname, p->wname, p->press, p->sort, p->time, p->price); printf C=\n〃);}}〃按图书名查询图书信息void bname_chaxun(struct book *head) {char a[50];int flag=0;struct book *p;printf (〃请选择您要查询的图书名:〃);gets (a);p=head;while(p!=NULL){if (strcmp(p->bname, a)==0){flag=l;break;p=p->next; }}辻(flag=O) {printff没有找到该图书名的图书!\n〃);}else {printf(〃你所查询的图书信息如下\n〃);printf C二二二\『);printf (〃桂编号图书名作者名出版社类别出版时间价格桂\n〃);while(p!=NULL){if(strcmp(p->bname, a)==0){printf("** %d %s %s %s %s %d %. 2f**\n,z, p->num, p->bname, p->wname, p->press, p->sort, p->time, p->price); }p=p->next;}printf C}===\n,z); }〃按作者名查询图书信息void wname_chaxun(struct book *head) { char a[50];int flag^O;struct book *p;printff请选择您要查询的图书作者名:〃); gets (a);p二head;while(p!=NULL){if (strcmp (p->wname, a) ==0) {flag=l;break;}p=p->next;}if(flag=0) {printff没有找到该图书名的图书!\n〃);}printf Celse {printfC你所查询的图书信息如下\n〃);printf C=\n〃);printfC **编号图书名作者名出版社类别出版时间价格while(p!=NULL){if (strcmp (p->wname, a) ==0) {printf("** %d %s %s %s %s %d %. 2fp->num, p->bname, p->wname, p->press, p->sort, p->time, p->price); flag=l;}p=p->next;}printf C=\n〃);}}〃按图书类别查询图书信息void sort_chaxun(struct book *head) {char a[50];int flag=0;struct book *p;printf C请选择您要查询的图书类别:〃);gets (a);p=head;while(p!=NULL){if(strcmp(p->sort, a)==0) {flag=l;break;}p二p->next;}辻(flag=O) {printff没有找到该图书名的图书!\n〃);}else {printf ("你所查询的图书信息如下\n〃);printf C=\『);printf (,z **编号图书名作者名出版社类别出版时间价格杯\n"); while(p!=NULL){if(strcmp(p->sort, a)==0) {printf C** %d %s %s %s %s %d %. 2f**\n,z, p->num, p->bname, p->wname, p->press, p->sort, p->time, p->price); flag=l;}p=p->next;}printf C=\『);}}〃按图书出版时间查询图书信息void time^chaxun(struct book *head) {int a,flag=0;struct book *p;printf r请选择您要查询的图书出版时间:〃);scanf("%d", &a);getchar ();p=head;while(p!=NULL){if (p->time==a) {flag=l;}break; }p=p->next;}if(flag=O) {printff没有找到该图书名的图书!\n〃);}else {printff你所查询的图书信息如下\n〃);printf(”=\n");printf (〃桂编号图书名作者名出版社类别出版时间价格while(p!=NULL){if(p->time==a){printf("** %d %s %s %s %s %d %. 2fp->num, p->bname, p->wname, p->press, p-〉sort, p->time, p-〉price);flag=l;}p二p-〉next;printf("}=\n");}}//修改图书信息void xiugai(struct book *head) {int a, b;char c;struct book *p;printfC请输入要修改的图书编号:〃);scanf&a);p=head;while(p!=NULL){if (p->num==a)break;p=p->next;}if(p二二NULL){printfC没有找到该编号的图书!\n〃); getchar ();}else {printf CW);printf r ** 1-编号2-图书名3-作者名printf C ** 4-出版社5-类别6-出版时间*水\n");printf C ** 7-价格8-修改全部0-放弃修改**\n");printf C============================\n");printf C请选择你要修改的信息编号:〃);scanf&b);getchar ();switch (b) {case 1:printf r请输入新编号:“);scanf&p->num);printf ("修改成功! \n");getchar ();break;case 2:printf r请输入新图书名:“);gets (p->bname);printf ("修改成功! \n");break;case 3:printff请输入新作者名:“);gets(p->wname);printf ("修改成功!\n"); break;case 4:printf r请输入新出版社:”);gets(p->press);printf ("修改成功! \n"); break;case 5:printf r请输入新类别:”);gets(p->sort);printf ("修改成功! \n"); break;case 6:printf r请输入新出版时间:“); scanf&p~>time);printf ("修改成功!\n"); getchar ();break;case 7:printf r请输入新价格:“); scanf ("%f", &p->price); printf ("修改成功! \n");getchar ();break;case 8:printf r请输入新图书编号:“);scanf&p->num);printf C请输入新图书名:“);scanf p->bname);getchar ();printf C请输入新作者名:“);scanf p->wname);getchar ();printf r请输入新出版社:”);scanfp->press);getchar ();printf r请输入新类别:“);scanf(〃%s: p->sort);getchar ();printf r请输入新出版时间:“);scanf&p->time);getchar ();printf r请输入新价格:〃);scanf ("%f", &p->price);getchar ();printf ("修改成功! \n");getchar ();break;case 0:break;default :printf C您的输入有误! \n");break;}printf C是否将修改后的信息保存到文件中?(y/n)\rT); scanf&c):getchar ();switch (c) {case ' n :break;case ,y‘ :fprint(head);printf ("保存成功!\n");getchar ();break;}}}〃图书排序void paixu(struct book *head) {int a;printf(”\ 〃 \\ > .----------------------------------------------------------------------- \n 丿, printf r ** 1-按图书编号排序2-按出版时间排序**\n");printf C ** 3-按图书价格排序4-按图书名排序**\n z/);printf C ** 5-按作者名排序0-取消排序操作材\n");printf (”___________________________________________________________________ \〃\ . \AX / f printf C请输入您选择的编号:〃);scanf("%d", &a);getchar ();switch(a){case 0:break;case 1:num_paixu(head); break;case 2:time_paixu(head);break;case 3:price_paixu(head);break;case 4:bname_paixu(head);break;case 5:wname_paixu(head);break;default:printf C您的输入有误! \n");break;}}〃按图书编号排序void num_paixu(struct book *head) {struct book *a[1000], *p, *pl, *temp; int i, k, index, n=0;for(p=head;p;p=p->next)n++;。
图书管理系统_(c语言)源代码

一个图书馆的管理系统,用c#做的,visual studio2008编写的。
代码经测试全部实现,暂时未发现什么bug,在年纪的评比中得到了第一名的成绩。
下面把这些代码分享给你们,希望能对你们有所帮助。
1.登陆界面主要代码:public partial class LoginForm : Form{public static string uacc;public static string upsw;public static string uname;public static string usex;public static string upart;public static string uright;public LoginForm(){InitializeComponent();}private void loginbtn_Click(object sender, EventArgs e){if (eracctxt.Text.Trim() == "" && this.pswtxt.Text == ""){MessageBox.Show("请输入您的用户名和密码!", "提示!");return;}try{string sql;sql = "select * from tb_user where uacc='"+ eracctxt.Text + "' and upsw='" + this.pswtxt.Text + "'";OleDbDataReader dr = DBHelp.OleReader(sql);dr.Read();if (dr.HasRows){uacc = eracctxt.Text;upsw = this.pswtxt.Text;uname = dr["uname"].ToString();usex = dr["usex"].ToString();upart = dr["upart"].ToString();uright = dr["uright"].ToString();MainForm af = new MainForm(this);this.Hide();eracctxt.Clear();this.pswtxt.Clear();af.Show();}else{MessageBox.Show("账号或密码错误!", "提示!");eracctxt.Clear();this.pswtxt.Clear();eracctxt.Focus();}}catch (Exception){MessageBox.Show("数据库无法连接!", "警告!");}}private void cancelbtn_Click(object sender, EventArgs e){Application.Exit();}private void LoginForm_Closing(object sender, FormClosingEventArgs e) {Application.Exit();}}2.主界面(图较小,自己可以拉大点)主要代码就不写了,很简单。
图书管理系统C语言实现源代码

//建立链表,并输入数据 struct book *chu_jian() {
struct book *head,*tail,*p; char num[N],name[M],autor[L],dizhi[K],leixing[E],time[F]; float price;
**********\n");
printf("
图书管理系统
\n");
printf("
0---退出系统
1---录入数据
\n");
printf("
2---保存文件
3---输出信息
\n");
printf("
4--- 根 据 编 号 查 询 信 息
5--- 插 入 数 据
\n");
printf("
6---删除数据
getchar();
} //输出图书的信息 void printf_(struct book *head) {
struct book *p; p=head; if(head!=NULL) {
do {
printf("编号:"); puts(p->num); printf("书名:"); puts(p->name); printf("作者:"); puts(p->autor); printf("出版社:"); puts(p->dizhi); printf("类型:"); puts(p->leixing); printf("时间:"); puts(p->time); printf("价格:"); printf("%f",p->price); printf("\n"); p=p->next; }while(p!=NULL); } getchar(); } //根据图书的编号查询图书的信息,并输出数据 void num_chaxun(struct book *head) { char a[N]; struct book *p;
C语言编写的图书借阅管理系统源代码

C语言编写的图书借阅管理系统源代码C语言编写的图书借阅管理系统源代码#include <dos.h>#include <bios.h>#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <math.h>#define LEFT 0x4b00 /*左*/#define RIGHT 0x4d00 /*右*/#define DOWN 0x5000 /*下*/#define UP 0x4800 /*上*/#define SPACE 0x3920 /*空格*/#define ESC 0x011b /* ESC键*/#define ENTER 0x1c0d /*回车键*/#define Backspace 0xe08 /*擦除键*/#define ALT_B 12288 /*组合键ALT_B */#define ALT_M 12800/*组合键ALT_M */#define ALT_H 8960/*组合键ALT_H */int key;/*按键变量*/int textx,texty;/*光标坐标,x行,y列*/struct menustruct/*菜单用的结构体*/{char name[10];/*主菜单名*/char str[10][20];/*选项*/int n;/*选项数*/}ml[3];/*使用了3个,可根据需要增删*/typedef struct BookList/*书的结构体*/{char num[20];/*图书编号*/char name[20];/*书名*/int price;/*书的价格*/char person[20];/*借阅人*/int yes;/*判断书是否存在或者已经借出,1存在,0借出*/ struct BookList *next;}Book;typedef struct MemberList/*会员的结构体*/{char name[20];/*会员的姓名*/char sex[2];/*会员的性别*/int age;/*会员的年龄*/struct MemberList *next;}Member;char save[4096];/*保存文本区域空间*//*char sav1[4096];*/char c[4096];/*清屏专用空间*/int i,j;/*常见变量*/void Menu();/*初始化界面*/void Selectitem();/*定义菜单*/void DrawSelectitem();/*显示主菜单*/void BlackText(int x,int y,char *z);/*选中菜单*/ void RedText(int x,int y,char *z);/*正常菜单*/ void Run();/*具体操作过程*/void DrawMl(int n);/*显示下拉菜单*/void MoveMl(int n,int x);/*菜单选项的控制*/ void Enter(int m,int n);/*菜单选项的具体功能*/ void BookAdd();/*添加图书*/void BookConsult();/*图书查询*/void BookDel();/*删除图书资料*/void BookBorrow();/*借书*/void BookReturn(); /*还书*/void MemberAdd(); /*增加会员*/void MemberConsult();/*查询会员*/void MemberDel(); /*删除会员*/void MemberBook(); /*查询会员借书信息*/ void Help(); /*帮助*/void Ver(); /*版本信息*/void ClrScr();/*自定义清屏函数*/void DrawFrame(int left,int up,int right,int down,int textcolor,int backgroundcolor);/*画边框*//***主函数****/void main(void){Menu();/*初始化界面*/Run();/*具体操作过程*/}/*初始化界面*/void Menu(){system("cls"); /*调用系统的清屏命令*/textbackground(BLUE);/*将背景设置为蓝色*/window(1,1,25,80);clrscr();textx=3;/*光标初始化位置*/texty=2;gotoxy(1,2);printf("%c",218);/*画左上角*/for(i=0;i<78;i++)printf("%c",196); /*画水平直线*/printf("%c",191);/*画右上角*/for(i=3;i<=23;i++){gotoxy(1,i);printf("%c",179); /*画垂直线*/gotoxy(80,i);printf("%c",179);}printf("%c",192); /*画左下角*/for(i=0;i<78;i++)printf("%c",196);printf("%c",217); /*画右下角*/gotoxy(1,1);textcolor(7); /*设置灰色*/for(i=0;i<80;i++)cprintf("%c",219);/*用符号实现画主菜单的灰色背景区*/ Selectitem(); /*调用选项函数*/DrawSelectitem(); /*画选项*/gettext(2,3,78,23,c); /*保存当前文本区域*/}/*定义菜单*/void Selectitem(){strcpy(ml[0].name,"Book");/*下面的具体选项补空格是为了各菜单黑色背景相同*/strcpy(ml[0].str[0],"Add ");/*添加图书*/strcpy(ml[0].str[1],"Consult ");/*查询图书*/strcpy(ml[0].str[2],"Del ");/*删除图书资料*/strcpy(ml[0].str[3],"Borrow ");/*借书*/strcpy(ml[0].str[4],"Return ");/*还书*/strcpy(ml[0].str[5],"Exit ");/*退出系统*/ml[0].n=6; /*保存菜单的项数*/strcpy(ml[1].name,"Member");strcpy(ml[1].str[0],"Add ");/*添加新会员*/strcpy(ml[1].str[1],"Consult ");/*查询会员资料*/strcpy(ml[1].str[2],"Del ");/*删除会员资料*/strcpy(ml[1].str[3],"Member&book ");ml[1].n=4;strcpy(ml[2].name,"Help");/*系统帮助*/strcpy(ml[2].str[0],"This System ");strcpy(ml[2].str[1],"Ver ");ml[2].n=2;}/*显示主单名*/void DrawSelectitem(){for(i=0;i<3;i++)RedText(i,1,ml[i].name); /*显示主菜单名,且首字母为红色*/ }/*正常显示菜单*/void RedText(int x,int y,char *z){textbackground(7); /*设置背景颜色为浅灰色*/gotoxy(3+x*20,y);for(j=0;z[j];j++){if(j==0)textcolor(RED);/*第一个字母显示红色*/elsetextcolor(BLACK); /*设置黑色*/cprintf("%c",z[j]); /*输出菜单名*/}}/*显示选中菜单*/void BlackText(int x,int y,char *z){textbackground(0); /*设置背景颜色为黑色*/textcolor(15); /*设置文本颜色为白色*/gotoxy(3+20*x,y);/*定位坐标*/cputs(z); /*输出菜单名字符串*/}/*按键操作过程*/void Run(){while(1){gotoxy(texty,textx);key=bioskey(0);/*接收按键*/switch(key){case ALT_B:case ESC: DrawMl(0);break; /*显示下拉菜单1*/case ALT_M: DrawMl(1);break;/*显示下拉菜单2*/case ALT_H: DrawMl(2);/*显示下拉菜单3*/case UP: /*上光标键的操作控制*/{if(textx==3)textx=23;textx--;gotoxy(texty,textx);}break;case DOWN: /*下光标键的操作控制*/ {if(textx==23)textx=3;textx++;gotoxy(texty,textx);}break;case LEFT: /*左光标键的操作控制*/ {if(texty==2)texty=79;texty--;gotoxy(texty,textx);}break;case Backspace: /*擦除键的设置*/{if(texty==2&&textx==3)continue;else{if(texty!=2)texty--; /*擦除键的细节问题,先擦去东西,然后光标还要往后退一格*/elseif(texty==2){texty=78;textx--;}gotoxy(texty,textx);printf(" ");gotoxy(texty,textx);}}break;/*end case 0xe08*/case RIGHT: /*右光标键的操作控制*/{if(texty==79)texty=2;texty++;gotoxy(texty,textx);}break;case SPACE: /*空格键的操作*/{if(texty==79)continue;else{gotoxy(texty,textx); /*空格的细节操作*/printf(" ");texty++;gotoxy(texty,textx);}}break;case ENTER: /*回车的控制操作*/{if(textx==23)continue;textx++;texty=2;gotoxy(texty,textx);}break;default : /*非控制键的结果*/{if(texty==79&&textx==23)/*到达最后就不再输出*/continue;elseif(texty==79&&textx!=23) /*到行的最后*/{textx++;texty=2;}gotoxy(texty,textx);/*输出结果*/printf("%c",key);if(texty==79) /*如果texty==79就不执行*/continue;else /*如果没到行尾就继续执行,使光标向前移动一位*/ texty++;}}}/*大循环的大括号*/}/*画边框函数*/void DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor){textbackground(bcolor); /*背景颜色*/textcolor(bcolor); /*文本颜色*/for(i=l;i<=r;i++) /*输出背景区域*/{for(j=u;j<=d;j++){gotoxy(i,j);printf("%c",219); /*输出背景字符*/}}textcolor(tcolor);/*边框颜色*/for(i=u+1;i<d;i++) /*在背景区域内输出边框线*/ {gotoxy(l,i);cprintf("%c",179); /*垂直线*/gotoxy(r,i);cprintf("%c",179);}for(i=l+1;i<r;i++){gotoxy(i,u);cprintf("%c",196); /*水平线*/gotoxy(i,d);cprintf("%c",196);}gotoxy(l,u);cprintf("%c",218);/*左上角*/gotoxy(r,u);cprintf("%c",191);/*右上角*/gotoxy(l,d);cprintf("%c",192);/*左下角*/gotoxy(r,d);cprintf("%c",217); /*右下角*//* gettext(l+1,u+1,r-1,d-1,save1);*//*保存边框内区域*/}/*显示具体下拉选择项目*/void DrawMl(int n){gettext(1,1,80,25,save);/*保存被掩盖的地方*/BlackText(n,1,ml[n].name);/*反选显示主菜单*/DrawFrame(3+20*n-1,2,3+20*n+19,3+ml[n].n,0,7);/*下拉菜单的边框*/for(i=3;i<3+ml[n].n;i++)/*输出所选菜单各选项*/{if(i==3)BlackText(n,i,ml[n].str[i-3]);/*默认选中第一项*/elseRedText(n,i,ml[n].str[i-3]);/*其余各项首字符红色显示*/}gotoxy(79,1);MoveMl(n,3);/*菜单选项的控制*/}/*菜单选项的控制,n决定水平项,x决定下拉的选项*/void MoveMl(int n,int x){int flag=1;while(flag){gotoxy(79,1);key=bioskey(0);/*接收按键*/gotoxy(79,1);switch(key){case ESC:/*退出循环*/puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/flag=0;break;case LEFT:/*移到左边的选项*/puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/if(n==0)/*往左移动越界的话移到最后一个选项*/DrawMl(2);elseDrawMl(n-1);flag=0;break;case RIGHT:/*移动右边的选项*/puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/if(n==2)/*往右移动越界的话移到第一个选项*/DrawMl(0);elseDrawMl(n+1);flag=0;break;case UP:/*具体选项往上移动*/RedText(n,x,ml[n].str[x-3]);/*输出红色字体*/if(x==3)/*移到最上面再按上键,就移到最下面*/x=3+ml[n].n-1;elsex--;/*移动到新的要显示的内容*/BlackText(n,x,ml[n].str[x-3]);/*输出黑色字体*/flag=1;break;case DOWN:/*具体选项往下移动*/RedText(n,x,ml[n].str[x-3]);if(x==(3+ml[n].n-1))/*移动到最底下再按下键就移到最上面*/x=3;elsex++;/*移动到新的要显示的内容*/BlackText(n,x,ml[n].str[x-3]);flag=1;break;case ENTER:puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/Enter(n,x-3);/*菜单选项的具体功能*/flag=0;break;}gotoxy(79,1);}}/*菜单选项的具体功能*/void Enter(int m,int n){switch(m){case 0:switch(n) /*选择了图书菜单选项*/{case 0:BookAdd();break;/*添加图书*/case 1:BookConsult();break;/*图书查询*/case 2:BookDel();break;/*删除一本图书资料*/case 3:BookBorrow();break;/*借书*/case 4:BookReturn();break;/*还书*/case 5:exit(0);break;} break;/*退出系统*/case 1: switch(n) /*选择了会员菜单选项*/{case 0: MemberAdd();break;/*添加会员*/case 1: MemberConsult();break;/*会员查询*/case 2:MemberDel();break;/*删除一个会员资料*/case 3:MemberBook();/*查询某个会员所借图书情况*/}break;case 2:switch(n) /*选择了帮助菜单选项*/ {case 0:Help();break;case 1:Ver();}}/*结束外switch*/}。
C语言图书管理系统源代码

/*需要在源代码相同目录下创建四个t x t文件:,,,*/#include<>#include<>#include<>structtushu{/*图书结构体*/charnum[11];/*编号*/charname[31];/*书名*/charwriter[21];/*作者*/charpress[21];/*出版社*/charkind[21];/*类别*/doubletime;/*时间*/doubleprice;/*价格*/structtushu*next;};structstu/*学生结构体*/{intsnum;/*学号*/charmima[11];/*密码*/structstu*next;};structjieshu{/*借书信息结构体*/intxuehao; /*学生学号*/charnum[11];/*编号*/charname[31];/*书名*/charwriter[21];/*作者*/charpress[21];/*出版社*/charkind[21];/*类别*/doubletime;/*时间*/doubleprice;/*价格*/structjieshu*next;};intdenglu=-1; /*已登录学生学号*/FILE*fp; /*图书文件*/FILE*fp1; /*管理员信息文件*/FILE*fp2; /*学生信息文件*/FILE*fp3;/*借书信息文件*/intmain(); /*主函数声明*/structtushu*create(); /*从文件创建图书链表(从文件中读出图书信息,建立单链表)*/structstu*xcreate(); /*从文件创建学生信息(从文件读出学生信息,建立学生链表)*/structjieshu*jcreate(); /2.否):");scanf("%d",&x);if(x==1)fprint(head);else{system("cls");printf("\n\n\n\t\t\t文件没有被保存!\n\n\n\n");system("pause");system("cls");menu();}}lf%.2lf\n",p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->pr ice);/*将图书信息写入文件*/fclose(fp);system("cls");printf("\n图书信息已成功保存到文件中!\n");system("pause");system("cls");getchar();menu();}lf%.2lf\n",p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->pr ice);/*将图书信息写入文件*/fclose(fp);system("cls");printf("\n图书信息已成功保存到文件%s中!\n",a);system("pause");system("cls");menu();}lf%.2lf\n",p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->pr ice);/*将图书信息写入文件*/fclose(fp);xmenu();}lf%.2lf\n",p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->pr ice);/*将图书信息写入文件*/}fclose(fp);system("cls");getchar();xmenu();}lf%.2lf\n",pj->xuehao,pj->num,pj->name,pj->writer,pj->press,pj->kind,pj-> time,pj->price);fclose(fp3);}lf\n",p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->price);}system("pause");system("cls");menu();}lf\n",p1->num,p1->name,p1->writer,p1->press,p1->kind,p1->time,p1->price);}system("pause");system("cls");xmenu();}lf\n",p->num,p->name,p->writer,p->press,p->kind,p->time,p->price);i++;}p=p->next;}if(i==0){system("cls");printf("\n对不起!没有找到名为《%s》的图书!\n",b);system("pause");}printf("\n\n\n\t\t\t是否继续查找图书信息?(1.是/其他.返回):");scanf("%d",&n);if(n==1)gfind();else{system("cls");menu();}}lf\n",p->num,p->name,p->writer,p->press,p->kind,p->time,p->price);i++;}p=p->next;}if(i==0){system("cls");printf("\n对不起!没有找到'%s'所着的相关图书!\n",b);system("pause");}printf("\n\n\n\t\t\t是否继续查找图书信息?(1.是/其他.返回):");scanf("%d",&n);if(n==1)gfind();else{system("cls");menu();}}lf\n",p->num,p->name,p->writer,p->press,p->kind,p->time,p->price);i++;}p=p->next;}if(i==0){system("cls");printf("\n对不起!没有找到类别为'%s'的图书!\n",b);system("pause");}printf("\n\n\n\t\t\t是否继续查找图书信息?(1.是/其他.返回):");scanf("%d",&n);if(n==1)gfind();else{system("cls");menu();}}lf\n",p->num,p->name,p->writer,p->press,p->kind,p->time,p->price);i++;}p=p->next;}if(i==0){system("cls");printf("\n对不起!没有找到名为《%s》的图书!\n",b);system("pause");}printf("\n\n\n\t\t\t是否继续查找图书信息?(1.是/其他.返回):");scanf("%d",&n);if(n==1)xfind();else{system("cls");xmenu();}}lf\n",p->num,p->name,p->writer,p->press,p->kind,p->time,p->price);i++;}p=p->next;}if(i==0)system("cls");printf("\n对不起!没有找到'%s'所着的相关图书!\n",b);system("pause");printf("\n\n\n\t\t\t是否继续查找图书信息?(1.是/其他.返回):");scanf("%d",&n);if(n==1)xfind();else{system("cls");xmenu();}}lf\n",p->num,p->name,p->writer,p->press,p->kind,p->time,p->price);i++;}p=p->next;}if(i==0)system("cls");printf("\n对不起!没有找到类别为'%s'的图书!\n",b);system("pause");printf("\n\n\n\t\t\t是否继续查找图书信息?(1.是/其他.返回):");scanf("%d",&n);if(n==1)xfind();else{system("cls");xmenu();}}lf\n",p5->num,p5->name,p5->writer,p5->press,p5->kind,p5->time,p5->price);system("pause");system("cls");printf("\n\n\n\t\t\t是否保存图书信息?(1.是/2.否(返回)):");scanf("%d",&x);if(x==1)fprint_(p1);elsesystem("cls");printf("\n\n\n\t\t\t没有被保存到文件!\n\n\n\n");system("pause");system("cls");menu();return;}lf\n",p5->num,p5->name,p5->writer,p5->press,p5->kind,p5->time,p5->price);system("pause");system("cls");printf("\n\n\n\t\t\t是否保存图书信息?(1.是/2.否(返回)):");scanf("%d",&x);if(x==1)fprint_(p1);elsesystem("cls");printf("\n\n\n\t\t\t没有被保存到文件!\n\n\n\n");system("pause");system("cls");menu();return;}lf\n",p5->num,p5->name,p5->writer,p5->press,p5->kind,p5->time,p5->price);system("pause");system("cls");printf("\n\n\n\t\t\t是否保存图书信息?(1.是/2.否(返回)):");scanf("%d",&x);if(x==1)fprint_(p1);elsesystem("cls");printf("\n\n\n\t\t\t没有被保存到文件!\n\n\n\n");system("pause");system("cls");menu();return;}/2.否(返回)):");scanf("%d",&x);if(x==1)fprint_(head);elsesystem("cls");printf("\n\n\n\t\t\t并没有被保存到文件!\n\n\n\n");system("pause");system("cls");menu();return;}/2.否(返回)):");scanf("%d",&x);if(x==1)fprint_(head);elsesystem("cls");printf("\n\n\n\t\t\t没有被保存到文件!\n\n\n\n");system("pause");system("cls");menu();return;}lf%.2lf\n",pj->xuehao,pj->num,pj->name,pj->writer,pj->press,pj->kind,pj-> time,pj->price);fclose(fp3);}lf%.2lf\n",h->num,h->name,h->writer,h->press,h->kind,h->time,h->price);fclose(fp);}....\n");getchar();there:fflush(stdin);system("cls");printf("\n\n\n1:管理员登陆系统\n\n2:学生登陆系统\n\n0:退出\n\n\n\n"); printf("请选择:");scanf("%d",&i);if(i==0){system("cls");printf("\n\n\n\n***************************************************** ****************************\n");printf("感谢使用图书管理系统\n");printf("************************************************************* ********************\n\n\n");system("pause");exit(0);}elseif(i==1){system("cls");secret();}elseif(i==2){system("cls");head1=xcreate();if(head1==NULL){printf("暂没有学生信息,学生不能登录!\n");system("pause");system("cls");main();}xsecret(head1);}else{printf("\n\n输入错误,请重新输入!\n\n\n");system("pause");system("cls");j++;if(j==3){system("cls");printf("\n\n\n******************************************************* ******************\n\n");printf("\n\n\t\t你输入的次数过多,自动退出!谢谢使用!\n\n");printf("\n\n********************************************************* ****************\n\n");system("pause");exit(0);}gotothere;}}。
c语言图书管理系统源代码

c语言图书管理系统源代码#include <stdio.h>#include <stdlib.h>#include<string.h>typedef struct Books/*图书信息结构体*/char bookName[21];char auther[21];char bookNumber[16];char publisher[21];int publitionTime;float price;int allNumber;int availableNumber;}Books;void luru();/*录入函数*/void liulan();/*浏览函数*/void chaxunz();/*关键字搜索,如搜"线性代数"可用关键字"线代"*/ int bijiao(char a[],char b[]);/*关键字查询主要靠该函数*/void xiushan();/*修改删除函数*/int main()printf(" ========图书信息管理系统=======\n");int a;char ch='y';/*执行主循环*/while((ch=='y')||(ch=='Y'))printf(" ===============================\n"); printf(" *1_信息录入====*====2_信息浏览*\n"); printf(" *==============*==============*\n"); printf(" *3_信息查询====*====4_信息修删*\n"); printf(" ===============================\n"); printf("请选择需要的功能\n");scanf("%d",&a);switch(a)case 1:luru();break;case 2:liulan();break;case 3:chaxunz();break;case 4:xiushan();break;default:printf("输入错误\n");break;printf("是否继续管理:y or n\n");scanf("%c",&ch);scanf("%c",&ch);void luru()Books lurua;int c,b=0;char fileName[31],*name=fileName;printf("请输入管理图书文件名及路径\n");scanf("%s",name);FILE *fp;fp=fopen(name,"a");if(fp==NULL)printf("错误请重新选择\n");printf("请输入入库数量\n");scanf("%d",&c);while(b<c)printf("请输入第%d本图书书名\n",b+1);scanf("%s",lurua.bookName);printf("请输入第%d本图书作者名\n",b+1);scanf("%s",lurua.auther);printf("请输入第%d本图书编号\n",b+1);scanf("%s",lurua.bookNumber);printf("请输入第%d本图书出版单位\n",b+1);scanf("%s",lurua.publisher);printf("请输入第%d本图书出版时间\n",b+1);scanf("%d",&lurua.publitionTime);printf("请输入第%d本图书价格\n",b+1);scanf("%f",&lurua.price);printf("请输入第%d本图书总数量\n",b+1);scanf("%d",&lurua.allNumber);printf("请输入第%d本图书可借出数量\n",b+1);scanf("%d",&lurua.availableNumber);fprintf( fp,"%-32s%-16s%-16s%-32s%d\t\t%.2f\t%d\t%d\n",lurua.bookName,lurua.auther,lurua.bookNumber,lurua.publi sher,lurua.publitionTime,lurua.price,lurua.allNumber,lurua.availableNumber);b=b+1;fclose(fp);void liulan()Books lurua;char fileName[31],*name=fileName;FILE *fp;printf("请输入图书库文件及路径\n");scanf("%s",name);fp=fopen(name,"r");if(fp!=NULL)printf("书名\t\t\t\t作者\t\t编号\t\t出版单位\t\t\t\t出版时间\t\t价格\t总数量\t可借出数量\n");while(!feof(fp))fscanf(fp,"%s%s%s%s%d%f%d%d\n",lurua.bookName,lurua.auther,lurua.bookNumber,lu rua.publisher,&lurua.publitionTime,&lurua.price,&lurua.allNumber,&lurua.availableNumbe r);printf("%-32s%-16s%-16s%-32s%d\t\t%.2f\t%d\t%d\n",lurua.bookName,lurua.auther,lurua.bookNumber,lurua.publi sher,lurua.publitionTime,lurua.price,lurua.allNumber,lurua.availableNumber); }printf("错误,请重新选择\n");fclose(fp);void chaxunz()char filename[31];printf("请输入图书库文件名及路径(小于30个字符)\n");scanf("%s",filename);FILE *fp;fp=fopen(filename,"r");Books book1;char ch='y';int a;char duqu[21],wenjian[21];/*查询次循环*/while((ch=='y')||(ch=='Y'))printf(" *********************\n");printf(" #1_按书名***2_按作者#\n");printf(" *********************\n");printf("请选择?\n");scanf("%d",&a);printf("请输入关键词;\n");scanf("%s",duqu);printf("书名\t\t\t\t作者\t\t编号\t\t出版单位\t\t\t\t出版时间\t\t价格\t总数量\t可借出数量\n");switch(a)case 1:while(!feof(fp))fscanf(fp,"%s%s%s%s%d%f%d%d\n",book1.bookName,book1.auther,book1.bookNumber ,book1.publisher,&book1.publitionTime,&book1.price,&book1.allNumber,&book1.available Number); strcpy(wenjian,book1.bookName);if((bijiao(duqu,wenjian))==1)printf("%-32s%-16s%-16s%-32s%d\t\t%.2f\t%d\t%d\n",book1.bookName,book1.auther,book1.bookNumber,book1.p ublisher,book1.publitionTime,book1.price,book1.allNumber,book1.availableNumber);};break;case 2:while(!feof(fp))fscanf(fp,"%s%s%s%s%d%f%d%d\n",book1.bookName,book1.auther,book1.bookNumber ,book1.publisher,&book1.publitionTime,&book1.price,&book1.allNumber,&book1.available Number); strcpy(wenjian,book1.auther);if((bijiao(duqu,wenjian))==1)printf("%-32s%-16s%-16s%-32s%d\t\t%.2f\t%d\t%d\n",book1.bookName,book1.auther,book1.bookNumber,book1.p ublisher,book1.publitionTime,book1.price,book1.allNumber,book1.availableNumber); FILE *fpa;char bookNumbera[16];int m=0,n,i;Books lurua;char filename[31];printf("请输入库文件名及路径:\n");scanf("%s",filename);fpa=fopen(filename,"r");if(fpa!=NULL)while(!feof(fpa))/*确定书本数*/fscanf(fpa,"%s%s%s%s%d%f%d%d\n",lurua.bookName,lurua.auther,lurua.bookNumber,l urua.publisher,&lurua.publitionTime,&lurua.price,&lurua.allNumber,&lurua.availableNum ber); m=m+1;Books xiushana[m];rewind(fpa);/*全部读取至内存*/for(i=0;i<m;i++)fscanf(fpa,"%s%s%s%s%d%f%d%d\n",xiushana[i].bookName,xiushana[i].auther,xiushan a[i].bookNumber,xiushana[i].publisher,&xiushana[i].publitionTime,&xiushana[i].price,&xiu shana[i].allNumber,&xiushana[i].availableNumber);/*具体操作*/printf(" *********************\n");printf(" #1_修改*******2_删除#\n");printf(" *********************\n");printf("请选择?\n");scanf("%d",&i);switch(i)case 1:printf("请输入需修改图书书名\n");scanf("%s",lurua.bookName);printf("请输入需修改图书作者名\n");scanf("%s",lurua.auther);printf("请输入需修改图书编号\n");scanf("%s",lurua.bookNumber);printf("请输入需修改图书出版单位\n");scanf("%s",lurua.publisher);printf("请输入需修改图书出版时间\n");scanf("%d",&lurua.publitionTime);printf("请输入第%d本图书价格\n");scanf("%f",&lurua.price);printf("请输入需修改图书总数量\n");scanf("%d",&lurua.allNumber);printf("请输入需修改图书可借出数量\n");scanf("%d",&lurua.availableNumber);for(i=0;i<m;i++)if((strcmp(lurua.bookNumber,xiushana[i].bookNumber))==0) n=i; strcpy(xiushana[n].bookName,lurua.bookName);strcpy(xiushana[n].bookNumber,lurua.bookNumber);strcpy(xiushana[n].auther,lurua.auther);strcpy(xiushana[n].publisher,lurua.publisher);xiushana[n].publitionTime=lurua.publitionTime;xiushana[n].price=lurua.price;xiushana[n].allNumber=lurua.allNumber;xiushana[n].availableNumber=lurua.availableNumber;printf("修改成功\n");};break;case 2:printf("请输入需删图书编号:\n");scanf("%s",bookNumbera);for(i=0;i<m;i++)if(strcmp(bookNumbera,xiushana[i].bookNumber)==0)for(i=n;i<m-1;i++)strcpy(xiushana[i].bookName,xiushana[i+1].bookName);strcpy(xiushana[i].bookNumber,xiushana[i+1].bookNumber); strcpy(xiushana[i].auther,xiushana[i+1].auther);strcpy(xiushana[i].publisher,xiushana[i+1].publisher); xiushana[i].publitionTime=xiushana[i+1].publitionTime;xiushana[i].price=xiushana[i+1].price;xiushana[i].allNumber=xiushana[i+1].allNumber;xiushana[i].availableNumber=xiushana[i+1].availableNumber; }fclose(fpa);fpa=fopen(filename,"w");for(i=0;i<m-1;i++)fprintf( fpa,"%-32s%-16s%-16s%-32s%d\t\t%.2f\t%d\t%d\n",xiushana[i].bookName,xiushana[i].auther,xiushana[i].bookN umber,xiushana[i].publisher,xiushana[i].publitionTime,xiushana[i].price,xiushana[i].allNu mber,xiushana[i].availableNumber);printf("删除成功。
图书管理系统的设计(C语言)

图书管理系统设计图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等功能描述:1 .新进熟土基本信息的输入2 .图书基本信息的查询3 .对撤销图书信息的删除4 .为借书人办理注册5 .办理借书手续6 .办理换书手续要求:以文件方式存储数据,系统以菜单方式工作。
这是本人大一第二学期初 C 语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ 网络硬盘中找到了当初的teta 版,发布于此,以作记念。
C 源代码如下:#include〈stdio 。
h〉#include<stdlib。
h〉#include〈string 。
h>struct book {char book_name [30];int bianhao;double price;char author[20];char state [20] ;char name[20];char sex [10];int xuehao;struct book *book_next;};struct club {char name [20];char sex[10];int xuehao;char borrow [30];struct club *club_next;};void Print_Book(struct book *head_book);/*浏览所有图书信息*/void Print_Club(struct club *head_club);/*浏览所有会员信息*/struct book *Create_New_Book();/*创建新的图书库, 图书编号输入为0 时结束*/struct book *Search_Book_bianhao(int bianhao,struct book *head_book);struct book *Search_Book_name (char *b_name,struct book *head_book);struct book *Search_Book_price (double price_h,double price_l,struct book *head_book);struct book *Insert_Book (struct book *head_book,struct book *stud_book) ;/*增加图书,逐个添加*/struct book *Delete_Book(struct book *head_book,int bianhao);/*删除图书*/struct club *Create_New_Club() ;struct club *Search_Club_xuehao(int xuehao,struct club *head_club);struct club *Search_Club_name (char *c_name,struct club *head_club);struct club *Insert_Club (struct club *head_club,struct club *stud_club);struct club *Delete_Club (struct club *head_club,int xuehao);struct book *Lent_Book (int bianhao ,int xuehao,struct book *head_book,struct club *head_club);struct book *back (int bianhao,int xuehao,struct book *head_book,struct club *head_club); int main(){struct book *head_book,*p_book;char book_name [30],name [20],author [20],sex [10];int bianhao;double price,price_h,price_l;int size_book=sizeof(struct book);int m=1,n=1,f;char *b_name,*c_name;struct club *head_club,*p_club;int xuehao;int size_club=sizeof (struct club) ;int choice;printf ("\n 欢迎您第一次进入图书管理系统!\n\n");printf("---——>[向导]————-〉[新建图书库] \n\n”) ;printf ("注意:当输入图书编号为0 时,进入下一步.\n\n");head_book=Create_New_Book();system(”cls”) ;printf("\n 欢迎您第一次进入图书管理系统!\n\n") ;printf("----—〉[向导]——---〉[新建会员库]\n\n”);printf(”注意:当输入会员学号为0 时,进入主菜单.\n\n”);head_club=Create_New_Club () ;system (”cls”);do {printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”);printf("\n”);printf ("\t\t\t[1] :借书办理\t");printf(" [6]:还书办理\n”);printf (”\n");printf(”\t\t\t[2]:查询图书\t");printf(" [7]:查询会员\n”);printf (” \t\t\t[3]:添加图书\t");printf (" [8]:添加会员\n”);printf ("\t\t\t[4]:删除图书\t");printf (” [9] :删除会员\n") ;printf (” \t\t\t[5]:遍历图书\t");printf (” [10]:遍历会员\n\n”) ;printf ("\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n”);printf("\t\t\t0:退出\n\n”) ;printf(”请选择〈0~10〉:”);scanf(”%d",&choice);switch(choice) {case 1:printf ("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");printf (”输入所借图书编号:\n");scanf (”%d",&bianhao);printf ("输入借书人的学号:\n”);scanf ("%d",&xuehao);head_book=Lent_Book(bianhao,xuehao,head_book,head_club);system (”cls");printf (” \n 借阅成功!\n\n");printf (”相关信息如下:\n\n");head_book=Search_Book_bianhao (bianhao,head_book);break;case 2:system ("cls”) ;printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”); printf ("1。
C语言图书管理系统源代码

#include<stdio。
h〉#include<stdlib.h〉#include〈string。
h〉struct tushu{ /*图书结构体*/ char num[10]; /*编号*/char name[20];/*书名*/char writer[20];/*作者*/char press[20];/*出版社*/char kind[20];/*类别*/double time; /*时间*/double price;/*价格*/struct tushu *next;};struct stu /*学生结构体*/ {int snum;/*学号*/char mima[10]; /*密码*/struct stu *next;};FILE *fp; /*图书文件*/FILE *fp1; /*管理员信息文件*/ FILE *fp2; /*学生信息文件*/void menu();/*管理员主菜单(管理员进入对图书及学生信息进行管理操作)*/void xmenu();/*学生主菜单(学生进入可对图书,密码进行操作)*/void gfind(); /*管理员查询(管理员可按一定的方式查询图书)*/void xfind();/*学生查询(学生可按一定的方式查询图书)*/ void secret();/*管理员权限(管理员登陆所用,输入错误次数过多自动退出)*/void sort();/*排序(管理员可按一定的方式对图书进行排序,排序完之后可选择文件进行保存)*/void fprint(struct tushu *head);/*保存(可追加的保存,如添加可用)*/void fprint_(struct tushu *head);/*保存(可覆盖保存如修改,删除,排序后用)*/void hfprint(struct tushu *head); /*还书保存(还书成功后自动保存到文件)*/void jfprint_(struct tushu *head);/*借书保存(借书成功之后自动从图书馆删除)*/struct tushu * Input(); /*图书添加(可进行图书的添加)*/struct tushu *create(); /*从文件创建链表(从文件中读出信息,建立单链表)*/void gBrowse(struct tushu *head);/*管理员浏览(对图书进行遍历)*/void xBrowse(struct tushu *head);/*学生浏览(学生对图书进行遍历)*/void count(struct tushu *head); /*统计数量(管理员可对图书进行统计)*/void Findofname(struct tushu *head); /*按书名查找*/ void Findofwriter(struct tushu *head); /*按作者查找*/void Findofkind(struct tushu *head); /*按类别查找*/void xFindofname(struct tushu *head);/*学生按书名查找*/void xFindofwriter(struct tushu *head);/*学生按作者查找*/ void xFindofkind(struct tushu *head); /*学生按类别查找*/ void Sort_time(struct tushu * head); /*按时间排序(管理员按时间对图书进行排序,排序完之后可选择文件进行保存)*/ void Sort_price(struct tushu *head); /*按价格排序*/void Sort_num(struct tushu * head);/*按编号排序*/ void Delete(struct tushu * head,char m[15]);/*按编号删除(管理员可按编号删除图书)*/void Revise(struct tushu *head);/*修改(管理员可对图书进行修改,并选择是否保存)*/void borrow(struct tushu *head); /*借书*/void huanshu(); /*还书(学生借完书之后进行还书,若没有图书则不能借)*/void gxinxi(); /*管理员信息(有管理员的账号及密码,可进行修改)*/void xmima(struct stu *head1);/*学生密码修改(学生可对自己的密码进行修改)*/struct stu *xcreate();/*从文件创建学生信息(从文件读出学生信息,建立学生链表)*/void xsecret(struct stu *head1);/*学生权限(学生登陆所用)*/void menu() /*管理员主菜单(管理员进入对图书及学生信息进行管理操作)*/{int choice,n=0;struct tushu *head;struct stu *head1,*p;char m[15];there:printf("┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n"); printf(" ┃┃socat 图书管理系统printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n"); printf(" ┃●[0]退出系统┃\n");printf(” ┃┃\n”);prin tf(” ┃●[1]帮助┃\n");printf(” ┃┃\n”);printf(” ┃●[2]浏览图书┃\n");printf(” ┃┃\n");printf(” ┃●[3]统计图书数目┃\n”);printf(" ┃┃\n”);printf(” ┃●[4]查询┃\n”);printf(” ┃printf(” ┃●[5]添加┃\n");printf(” ┃┃\n”);printf(” ┃●[6]排序┃\n");printf(” ┃┃\n");printf(" ┃●[7]修改┃\n”);printf(” ┃┃\n");printf(" ┃●[8]删除┃\n”);printf(" ┃┃\n”);printf(" ┃●[9]修改账号及密码┃\n");printf(” ┃┃\n”);printf(” ┃●[10]学生信息printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n");printf(” 请选择:”);fflush(stdin);head=create();scanf("%d”,&choice);if(choice==1){//help();printf(”没有内容!\n”);system("pause”);system(”cls”);menu();}else if(choice==2){system(”cls");if(head==NULL){printf(”没有图书,请先添加图书!\n”);system("pause");system("cls");menu();}gBrowse(head);}else if(choice==3){system(”cls");count(head);}else if(choice==4){system("cls");if(head==NULL){printf(”没有图书,请先添加图书!\n”);system("pause”);system(”cls”);menu();}gfind();}else if(choice==5){Input();}else if(choice==6){system("cls");if(head==NULL){printf(”没有图书,请先添加图书!\n”); system("pause”);system(”cls”);menu();}sort(head);}else if(choice==7){system("cls”);if(head==NULL){printf(”没有图书,请先添加图书!\n”);system("pause");system("cls”);menu();}Revise(head);}else if(choice==8){if(head==NULL){printf("没有图书,请先添加图书!\n");system(”pause");system(”cls");menu();}printf(" 请输入想要删除的图书编号:”);scanf(”%s",m);Delete(head,m);}else if(choice==9){gxinxi();else if(choice==10){system(”cls”);head1=xcreate();if(head1==NULL){printf("没有学生信息,请到xuesheng_list.txt添加!\n”); sys tem(”pause”);system(”cls”);menu();}for(p=head1;p!=NULL;p=p—>next){printf(”学生学号密码\n”);printf("%d %s\n",p->snum,p—>mima);}system(”pause”);system("cls”);menu();}else if(choice==0)system(”cls");printf(”\n\n\n\n”);printf(” ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n”);exit(0);}else{system("cls");printf(”\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ");system("pause”);system(”cls”);n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出!━━━━━━━━\n\n\n”);printf(" ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n");system(”pause");exit(0);}goto there;}}void xmenu()/*学生主菜单(学生进入可对图书,密码进行操作)*/{struct tushu *head;struct stu *head1;int choice,n=0;there:printf(”┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n");printf(” ┃┃socat 图书借阅系统┃┃\n");printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n"); printf(” ┃●[0]退出系统┃\n”);printf(” ┃printf(” ┃●[1]帮助┃\n”);printf(” ┃┃\n”);printf(” ┃●[2]浏览图书┃\n");printf(” ┃┃\n”);printf(" ┃●[3]查询┃\n”);printf(” ┃┃\n”);printf(” ┃●[4]借书┃\n");printf(” ┃┃\n”);printf(" ┃●[5]还书┃\n");printf(" ┃┃\n”);printf(” ┃●[6]修改密码printf("┗━━━━━━━━━━━━━━━━━━━━━━━┛\n”); printf(" 请选择:");fflush(stdin);head=create();scanf("%d”,&choice);if(choice==1){//xhelp();printf(”没有内容!\n");system(”pa use");system(”cls”);xmenu();}else if(choice==2){system("cls");if(head==NULL){printf(”没有图书!\n");system("pause”);xmenu();}xBrowse(head);}else if(choice==3){if(head==NULL){printf(”没有图书!\n”);system(”pause”);system(”cls”);xmenu();}xfind();}else if(choice==4){if(head==NULL){printf(”没有图书!\n");system(”pause”);xmenu();}borrow(head);}else if(choice==5){huanshu(head);}else if(choice==6){system("cls”);head1=xcreate();if(head1==NULL){printf(”学生信息被清空!!\n”);system("pause");system("cls”);xmenu();}xmima(head1); ;}else if(choice==0){system("cls");printf(”\n\n\n\n”);printf(” ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n");exit(0);}else{system("cls”);printf("\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system(”pause”);system(”cls”);n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出!━━━━━━━━\n\n\n”);printf(” ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n”);system("pause”);exit(0);}goto there;}}void gfind()/*管理员查询(管理员可按一定的方式查询图书)*/{int choice,n=0;struct tushu *head;there:system(”cls”);printf(” ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n”);printf(” ┃┃socat 图书借阅系统┃┃\n”);printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n");printf(" ┃●[0]返回┃\n");printf(" ┃┃\n”);printf(" ┃●[1]按书名查找┃\n”);printf(" ┃┃\n”);printf(" ┃●[2]按作者查找┃\n”);printf(” ┃┃\n”);printf(" ┃●[3]按类别查找┃\n”);printf(" ┃┃\n”);printf(" ┃● ┃\n”);printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n”);printf(" 请选择:”);fflush(stdin);head=create();scanf(”%d”,&choice);if(choice==1){system(”cls");Findofname(head); }else if(choice==2){system(”cls”); Findofwriter(head); }else if(choice==3){system(”cls");Findofkind(head); }else if(choice==0){system(”cls”);menu();}else{system(”cls”);printf(”\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system("pause");system(”cls");n++;if(n==3){printf(" \n\n\n ━━━━━━━━你错误次数太多,自动退出! ━━━━━━━━\n\n\n”);printf(" ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n”);system(”pause”);exit(0);}goto there;}}void xfind()/*学生查询(学生可按一定的方式查询图书)*/ {struct tushu *head;int choice,n=0;there:system("cls”);printf(” ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n”);printf(” ┃┃socat 图书借阅系统┃┃\n”);printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n");printf(” ┃●[0]返回┃\n”);printf(” ┃┃\n");printf(" ┃●[1]按书名查找┃\n”);printf(” ┃┃\n”);printf(" ┃●[2]按作者查找┃\n”);printf(" ┃┃\n");printf(” ┃●[3]按类别查找┃\n");printf(” ┃┃\n”);printf(" ┃● ┃\n");printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n"); printf(” 请选择:");fflush(stdin);head=create();scanf(”%d",&choice);if(choice==1){system(”cls”);xFindofname(head);}else if(choice==2){system(”cls”);xFindofwriter(head);}else if(choice==3){system("cls");xFindofkind(head);}else if(choice==0){system(”cls");xmenu();}else{system("cls");printf("\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system(”pause”);system(”cls");n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出!━━━━━━━━\n\n\n”);printf(” ━━━━━━━━感谢使用图书借阅系统━━━━━━━━\n\n\n”);system("pause”);exit(0);}goto there;}}void sort(){struct tushu *head;int choice,n=0;there:system("cls”);printf(” ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n");printf(” ┃┃socat 图书借阅系统┃┃\n");printf(" ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n”);printf(" ┃●[0]返回┃\n”);printf(” ┃┃\n");printf(” ┃●[1]按时间排序┃\n”);printf(” ┃┃\n”);printf(” ┃●[2]按价格排序┃\n");printf(" ┃┃\n”);printf(” ┃●[3]按编号排序┃\n”);printf(" ┃┃\n”);printf(” ┃●┃\n”);printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n”);printf(" 请选择:”);fflush(stdin);head=create();scanf("%d",&choice);if(choice==1){system("cls”); Sort_time(head);}else if(choice==2){sys tem(”cls");Sort_price(head);}else if(choice==3){system(”cls”);Sort_num(head); }else if(choice==0){system("cls”); menu();}else{system(”cls");printf("\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system(”pause”);system(”cls”);n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出! ━━━━━━━━\n\n\n”);printf(” ━━━━━━━━感谢使用图书借阅系统━━━━━━━━\n\n\n”);system("pause”);exit(0);}goto there;}}struct tushu *Input(){struct tushu *p1,*p2,*head,*ptr;char num;int x,i=0;system("cls”);p1=(struct tushu *)malloc(sizeof(struct tushu));head=p1;p1-〉price=—1;while(i!=1){printf(”请输入编号,以’#’结束\n”);scanf("%s",p1—>num);if(strcmp(p1-〉num,”#")==0)i=1;while(i!=1){printf(”请依次输入书名作者出版社类别出版时间价格\n”); scanf(”%s%s%s%s%lf%lf”,p1—>name,p1—>writer,p1—〉press,p1-〉kind,&p1-〉time,&p1—〉price);p2=p1;p1=(struct tushu *)malloc(sizeof(struct tushu));p2—〉next=p1;break;}}if(p1-〉price!=-1)p2—〉next=NULL;elsehead=NULL;system("cls”);printf("\n\n\n\t\t\t图书信息输入结束!\n\n\n”);system(”pause”);system(”cls”);printf(”\n\n\n\t\t\t是否保存图书信息?(1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图书管理系统系统功能:1.借书:根据借书人提出的图书编号(id)查询该图书,如果该图书现存量(store)不为0,则提示输入借阅者的学号(num),为借书人办理借书手续,提示用户该书已被借出。
2.归书:根据借书人的学号查询该读者的信息,若有该读者,则提示输入所借书籍的编号(id),为该读者办理还书手续,提示该书已还。
3.书籍管理:弹出书籍管理界面,输入所要执行操作的号码:(1)增加书籍:弹出注册新书的窗口,按照提示输入所增加书籍的信息,最后,提示用户该书已被注册。
(2)删除书籍:弹出删除书籍的窗口,输入所要删除书籍的编号(id),输出该书的信息,确认是否删除该书,1为删除,0为放弃。
(3)修改书籍:弹出修改书籍的窗口,输入所要修改书籍的编号(id),输出该书的信息,确认是否修改该书,1为修改,0为放弃。
之后按照提示重新输入书籍的信息。
4.读者管理:弹出读者管理界面,输入所要执行操作的号码:(1)增加读者:弹出注册读者的窗口,按照提示输入所增加读者的信息,最后,提示用户该读者已被注册。
(2)删除书籍:弹出删除读者的窗口,输入所要删除读者的学号(num),输出该读者的信息,确认是否删除该读者,1为删除,0为放弃。
(3)修改书籍:弹出修改读者的窗口,输入所要修改读者的学号(num),输出该读者的信息,确认是否修改该读者,1为修改,0为放弃。
之后按照提示重新输入读者的信息。
5.搜索:此搜索包括两方面的搜索,书籍搜索以及读者搜索,弹出搜索的窗口,按照提示输入所要搜索的内容,1为书籍搜索,2为读者搜索:(1)搜索书籍:弹出搜索书籍的窗口,按照提示输入所要搜索的方式,包括按<1>书名搜索,<2>书号搜索,<3>作者搜索,<4>出版社搜索,<5>出版时间搜索;根据所选方式输入相应的内容,若是该书籍存在,则输出该书籍的信息,否则,返回主界面。
(2)搜索读者:弹出搜索读者的窗口,按照提示输入所要搜索的方式,包括按<1>名字搜索,<2>学号搜索;根据所选方式输入相应的内容,若是该读者存在,则输出该读者的信息,否则,返回主界面。
6.退出:退出图书管理系统。
图书类设计:私有成员:书名(name)、编号(id)、作者名(writer)、价格(price)、总存量(total)、现存量(store)、出版单位(publish)、出版时间(pub_time)。
及该书的借阅情况(借阅者名字(borrower)、借阅者学号(borr_num):若无人借阅该书,则borrower=0, borr_num=0;否则borrower=借阅者名字,borr_num=借阅者学号)。
class book{private:char name[50]; ";getch();return 0;}char *reader::getname(){return name;}int reader::getnum(){return num;}char *reader::getgrade(){return grade;}char *reader::getclas(){return clas;}char *reader::getsex(){return sex;}char *reader::getbook_name(){return book_name;}char *reader::getdate()return date;}int reader::getavaiday(){return avai_days;}int reader::setname(char *names){strcpy(name,names);return 0;}int reader::setnum(int nums){num=nums;return 0;}int reader::setgrade(char *grades){strcpy(grade,grades);return 0;}int reader::setclas(char *classes){strcpy(clas,classes);return 0;}int reader::setsex(char *sexs){strcpy(sex,sexs);return 0;}int reader::setbook_name(char *book_names) {strcpy(book_name,book_names);return 0;int reader::setdate(char *dates){strcpy(date,dates);return 0;}int reader::setavaiday(int avaiday){avai_days=avaiday;return 0;}int page_title(){system("cls");cout<<" * * * * * * * * * * * * * * * * * * * * * * * * * *\n "; cout<<" * ☆★☆欢迎来到图书管理系统☆★☆ *\n ";cout<<" * * * * * * * * * * * * * * * * * * * * * * * * * *\n "; return 0;}book::book(){system("color 17");reader read;menu:page_title();cout<<" ★主菜单★ "<<endl<<endl<<endl; cout<<" * * * * * * * * * * * "<< endl;cout<<" * 1.借书 * "<< endl<<endl; cout<<" * 2.还书 * "<< endl<<endl; cout<<" * 3.书籍管理 * "<< endl<<endl; cout<<" * 4.读者管理 * "<< endl<<endl; cout<<" * 5.搜索 * "<< endl<<endl; cout<<" * 0.退出 * "<< endl;cout<<" * * * * * * * * * * *"<<endl<<endl;cout<<" 请输入你的选择:" ;switch(getch()){case'1':book_out();break;case'2':book_in();break;case'3':book1();break;case'4':();break;case'5':seach();break;case'0':exit(0);break;default:system("cls");page_title();cout<<" \n错误,请再输入一遍! "<< endl;}goto menu;}int book::book1(){system("cls");page_title();cout<<" ☆管理☆" <<endl<< endl<< endl; cout<<" * * * * * * * * * * *"<< endl;cout<<" * 1.增加书籍 * "<< endl<< endl; cout<<" * 2.注销书籍 * "<< endl<< endl; cout<<" * 3.修改书籍 * "<< endl<< endl; cout<<" * 0.返回 *"<<endl;cout<<" * * * * * * * * * * * "<< endl<< endl; cout<<" 请输入你的选择:" ;switch(getch()){case'1':book_add();break;case'2':book_del();break;case'3':book_mod();break;case'0':return_back();break;default:system("cls");cout<<"\n错误,请再输入一遍!\n";}return 0;}int book::book_add() d==0) break;}fclose(bfp);do{cout<<"请输入一个新的书号(书号从1001开始,但必须不同于已存在的书号):" ; cin>>books[n].id;for(i=0;i<SIZE;i++){if(books[n].id==books[i].id&&n!=i){cout<<"\n这个书号已经存在. "<< endl;break;}}}while(books[n].id==books[i].id);cout<<"书名: ";cin>>books[n].name;cout<<"作者: ";cin>>books[n].writer;cout<<"价格: ";cin>>books[n].price;cout<<"总存量: ";cin>>books[n].total;cout<<"现存量: ";cin>>books[n].store;cout<<"出版社: ";cin>>books[n].publish;cout<<"出版时间: ";cin>>books[n].pub_time;cout<<"借书人: ";cin>>books[n].borrower;cout<<"借书者学号: ";cin>>books[n].borr_num;bfp=fopen("books","wb");for(n=0;n<SIZE;n++)fwrite(&books[n],sizeof(books[n]),1,bfp);fclose(bfp);cout<<"\n该书已经添加.\n"<< endl;return 0;}int book::book_del() ";}for(i=0;i<SIZE;i++){fread(&books[i],sizeof(books[i]),1,bfp);}fclose(bfp);cout<<"\n请输入书号: ";cin>>id;for(i=0,s=-1;i<SIZE;i++){if(books[i].id==id){cout<<"书名: "<<books[i].name<< endl;cout<<"书号: "<<books[i].id<< endl;cout<<"作者: "<<books[i].writer<< endl;cout<<"价格: "<<books[i].price<< endl;cout<<"总存量: "<<books[i].total<< endl;cout<<"现存量: "<<books[i].store<< endl;cout<<"出版社: "<<books[i].publish<< endl;cout<<"出版时间: "<<books[i]. pub_time<< endl; cout<<"读者: "<<books[i].borrower<< endl;cout<<"读者学号: "<<books[i].borr_num<< endl;cout<<"**********************************************************"<< endl; cout<<"请问是否确定注销此书(1为是,0为否): "; cin>>s;if(s==1){for(;i<SIZE;i++)books[i]=books[i+1];}else if(s==0){return 0;}}}if(s==-1){cout<<"该书不存在."<< endl;}if((bfp=fopen("books", "wb"))==0){cout<<"无法打开文件. ";}for(i=0;i<SIZE;i++){fwrite(&books[i],sizeof(books[i]),1,bfp);}fclose(bfp);return 0;}int book::book_mod() ";}for(i=0;i<SIZE;i++){fread(&books[i],sizeof(books[i]),1,bfp);}fclose(bfp);cout<<endl<<"请输入书号: ";cin>>id;for(i=0,s==0;i<SIZE;i++){if(books[i].id==id){cout<<"书名:"<<books[i].name<<endl;cout<<"书号: "<<books[i].id<< endl;cout<<"作者: "<<books[i].writer<< endl;cout<<"价格: "<<books[i].price<< endl;cout<<"总存量: "<<books[i].total<< endl;cout<<"现存量: "<<books[i].store<< endl;cout<<"出版社: "<<books[i].publish<< endl;cout<<"出版时间: "<<books[i]. pub_time<< endl;cout<<"读者: "<<books[i].borrower<< endl;cout<<"读者学号: "<<books[i].borr_num<< endl;cout<<"**********************************************************"<< endl;cout<<"是否确定修改该书籍(1为是,0为否): ";cin>>s;if(s==1){ page_title();cout<<">>>请重新输入书籍的信息:<<<"<<endl;do{cout<<endl<<"请输入一个新的书号(学号从1001开始,但必须不同于已存在的书号):";cin>>books[i].id;for(n=0;n<SIZE;n++){if(books[i].id==books[n].id&&n!=i){cout<<"该书号已存在. "<<endl;break;}}}while(books[i].id==books[n].id);cout<<"书名: ";cin>>books[i].name;cout<<"作者: ";cin>>books[i].writer;cout<<"价格: ";cin>>books[i].price;cout<<"总存量: ";cin>>books[i].total;cout<<"现存量: ";cin>>books[i].store;cout<<"出版社: ";cin>>books[i].publish;cout<<"出版时间: ";cin>>books[i].pub_time;cout<<"借书人: ";cin>>books[i].borrower;cout<<"借书者学号: ";cin>>books[i].borr_num;}else if(s==0){return 0;}}}if(s==-1){cout<<"该书不存在。