图书管理系统源代码.docx
- 文档编号:10938082
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:29
- 大小:20.03KB
图书管理系统源代码.docx
《图书管理系统源代码.docx》由会员分享,可在线阅读,更多相关《图书管理系统源代码.docx(29页珍藏版)》请在冰豆网上搜索。
图书管理系统源代码
#include"header.h"
#include"Struct.h"
intprintMainUI()//主界面,并返回选择,
{
intret=0;
system("cls");
printf("\n");
printf("\n┌──────────────────────────────┐");
printf("\n││");
printf("\n││");
printf("\n│*****欢迎来到图书管理系统*****│");
printf("\n││");
printf("\n││");
printf("\n│*1管理员│");
printf("\n││");
printf("\n│*2教师│");
printf("\n││");
printf("\n│*3学生│");
printf("\n││");
printf("\n│*0退出程序│");
printf("\n││");
printf("\n││");
printf("\n└──────────────────────────────┘\n");
printf("");
scanf("%d",&ret);
returnret;
}
intprintAdminUI()//管理员界面
{
intret=0;
system("cls");
printf("\n");
printf("\n┌──────────────────────────────┐");
printf("\n││");
printf("\n││");
printf("\n│*****尊贵的管理员你好*****│");
printf("\n││");
printf("\n││");
printf("\n│*1图书上架│");
printf("\n││");
printf("\n│*2图书下架│");
printf("\n││");
printf("\n│*3图书浏览│");
printf("\n││");
printf("\n│*4用户管理│");
printf("\n││");
printf("\n│*0上一层│");
printf("\n││");
printf("\n││");
printf("\n└──────────────────────────────┘\n");
printf("");
scanf("%d",&ret);
returnret;
}
intprintUerManageUI()
{
intret=0;
system("cls");
printf("\n");
printf("\n┌──────────────────────────────┐");
printf("\n││");
printf("\n││");
printf("\n│*****尊贵的管理员你好*****│");
printf("\n││");
printf("\n││");
printf("\n│*1教师用户│");
printf("\n││");
printf("\n│*2学生用户│");
printf("\n││");
printf("\n│*3浏览全部│");
printf("\n││");
printf("\n│*0上一层│");
printf("\n││");
printf("\n││");
printf("\n└──────────────────────────────┘\n");
printf("");
scanf("%d",&ret);
returnret;
}
intprintUerFunUI()
{
intret=0;
system("cls");
printf("\n");
printf("\n┌──────────────────────────────┐");
printf("\n││");
printf("\n││");
printf("\n│*****尊贵的管理员你好*****│");
printf("\n││");
printf("\n││");
printf("\n│*1查询│");
printf("\n││");
printf("\n│*2增加│");
printf("\n││");
printf("\n│*3删除│");
printf("\n││");
printf("\n│*0上一层│");
printf("\n││");
printf("\n││");
printf("\n└──────────────────────────────┘\n");
printf("");
scanf("%d",&ret);
returnret;
}
intprintTeacherUI()//教师界面
{intret=0;
system("cls");
printf("\n");
printf("\n┌──────────────────────────────┐");
printf("\n││");
printf("\n││");
printf("\n│*****尊敬的老师你好*****│");
printf("\n││");
printf("\n││");
printf("\n│*1借书│");
printf("\n││");
printf("\n│*2还书│");
printf("\n││");
printf("\n│*3图书浏览│");
printf("\n││");
printf("\n│*4续借书籍│");
printf("\n││");
printf("\n│*0上一层│");
printf("\n││");
printf("\n││");
printf("\n└──────────────────────────────┘\n");
printf("");
scanf("%d",&ret);
returnret;
}
intprintStudentUI()//学生界面
{intret=0;
system("cls");
printf("\n");
printf("\n┌──────────────────────────────┐");
printf("\n││");
printf("\n││");
printf("\n│*****亲爱的同学你好*****│");
printf("\n││");
printf("\n││");
printf("\n│*1借书│");
printf("\n││");
printf("\n│*2还书│");
printf("\n││");
printf("\n│*3图书浏览│");
printf("\n││");
printf("\n│*4续借书籍│");
printf("\n││");
printf("\n│*0上一层│");
printf("\n││");
printf("\n││");
printf("\n└──────────────────────────────┘\n");
printf("");
scanf("%d",&ret);
returnret;
}
intlogin()//登陆
{
return-1;
}
intAdminOperation(intchoice);//管理员界面的操作声明
Book*scanBooks(Book*books,int*count);//读取书籍信息
voidprintBooks(Book*books,intcount);//打印书籍信息
voidprintBook(Bookbook);
Book*uploadBooks();//图书上架
voidsaveBook(Bookbook,FILE*fp);//保存书籍信息
voidsaveBooks(Book*books,Bookbook,intlastCount,intupdateCount);
voidsaveUser(Useruser,FILE*fp);//保存用户信息
voidsaveUsers(User*users,Useruser,intlastCount,intupdateCount,char*fileName);
Book*downBooks();
User*scanUers(User*users,int*count,char*fileName);
voidprintUsers(User*users,intcount);
voidprintUser(Useruser);
voiduserFunRealized(intchoice,char*fileName);
voiduerManageRealized(intchoice);
voidaddUser(char*fileName);
voiddelUser(char*fileName);
voidtip();//提示信息
voidmainOperation(intchoice)//对于主界面的选择操作
{
intchoice1=0;
switch(choice)
{
case1:
{
do
{
choice1=printAdminUI();
AdminOperation(choice1);
}while(choice1!
=0);
}break;
case2:
{
printTeacherUI();
}break;
case3:
{
printStudentUI();
}break;
case0:
{}break;
default:
break;
}
}
intAdminOperation(intchoice)//管理员界面的操作
{
intcount=0;
switch(choice)
{
case1:
{
uploadBooks();
system("PAUSE");
}break;
case2:
{
downBooks();
system("PAUSE");
}break;
case3:
{
intcount=0;
Book*books=0;
books=scanBooks(books,&count);
printBooks(books,count);
system("PAUSE");
}break;
case4:
{
intchoice1=0;
do
{
choice1=printUerManageUI();
uerManageRealized(choice1);
}while(choice1!
=0);
}break;
case0:
{}break;
default:
break;
}
returnchoice;
}
Book*scanBooks(Book*books,int*count)
{
intnum=0;//用于存储读取到的书籍种数
inti;
FILE*fp;
books=0;
fp=fopen("Book.txt","r");
fscanf(fp,"%d",&num);
*count=num;
if(num>0)
{
books=(Book*)malloc(num*sizeof(Book));
for(i=0;i { books[i].bookID=(char*)malloc(sizeof(char)*256); books[i].bookName=(char*)malloc(sizeof(char)*256); books[i].author=(char*)malloc(sizeof(char)*256); books[i].pubDate=(char*)malloc(sizeof(char)*256); books[i].price=(char*)malloc(sizeof(char)*256); books[i].style=(char*)malloc(sizeof(char)*256); fscanf(fp,"%s",books[i].bookID);//读取数编号 fscanf(fp,"%s",books[i].bookName);//读取书名 fscanf(fp,"%s",books[i].author);//读取作者 fscanf(fp,"%s",books[i].pubDate);//读取出版日期 fscanf(fp,"%s",books[i].price);//读取金额 fscanf(fp,"%s",books[i].style);//读取类别 fscanf(fp,"%d",&(books[i].totalCount));//总入库量 fscanf(fp,"%d",&(books[i].nowCount));//库存量 fscanf(fp,"%d",&(books[i].outCount));//借出数量 } } fclose(fp); returnbooks; } voidprintBooks(Book*books,intcount) { inti; if(count<=0) { printf(""); printf("图书信息为空! "); return; } for(i=0;i { printf("\t第%d款图书\n",i+1); printBook(books[i]); } } voidprintBook(Bookbook) { printf("\n┌──────────────────────────────┐"); printf("\n图书编号: %s\t图书名称: %s\t作者: %s\t",book.bookID,book.bookName,book.author); printf("\n出版日期: %s\t金额: %s\t\t类别: %s\t",book.pubDate,book.price,book.style); printf("\n入库总量: %d\t现库存量: %d\t\t借出数量: %d\t",book.totalCount,book.nowCount,book.outCount); printf("\n└──────────────────────────────┘\n"); } Book*uploadBooks() { Bookone; Book*books=0; charchoice='z'; intcount=0; inti=0; charbookID[256]; intflag=-1;//是否库存已有该书籍标志,-1无,大于等于0则有增加 books=scanBooks(books,&count);//读取原书籍信息 system("cls");//以下开始进行添加操作 tip();//输出提示信息 printf("\n请你输入图书编号: "); scanf("%s",bookID); for(i=0;i { if(strcmp(bookID,books[i].bookID)==0) { flag=i; } } //存在某种书籍只需要改变数量 if(flag! =-1) { printf("\n管理员你好,你正在添加编号为%s的书籍为已有书籍。 ",bookID); printBook(books[flag]); printf("\n你确定更新其数量吗? (1-y,0-n)"); while(! (choice=='y'||choice=='Y'||choice=='n'||choice=='N')) { scanf("%c",&choice); } if(choice=='y'||choice=='Y')//更改入库量,现存数量 { printf("\n输入更新数量: "); scanf("%d",&one.totalCount); books[flag].totalCount+=one.totalCount; books[flag].nowCount+=one.totalCount; saveBooks(books,one,count,0); printf("\n成功添加编号为%s的书籍: %d本\n",bookID,one.totalCount); } } else { one.bookID=(char*)malloc(sizeof(char)*256); one.bookName=(char*)malloc(sizeof(char)*256); one.author=(char*)malloc(sizeof(char)*256); one.pubDate=(char*)malloc(sizeof(char)*256); one.price=(char*)malloc(sizeof(char)*256); one.style=(char*)malloc(sizeof(char)*256); printf("\n管理员你好,你正在添加编号为%s的书籍为新进书籍。 你确定归类它吗? (1-y,0-n)",bookID); while(! (choice=='y'||choice=='Y'||choice=='n'||choice=='N')) { scanf("%c",&choice); } if(choice=='y'||choice=='Y')//录取新书籍信息 { printf("\n图书编号: "); scanf("%s",one.bookID);//读取数编号 printf("\n图书名称: "); scanf("%s",one.bookName);//读取书名 printf("\n作者: "); scanf("%s",one.author);//读取作者 printf("\n出版日期: "); scanf("%s",one.pubDate);//读取出版日期 printf("\n金额: "); scanf("%s",one.price);//读取金额 printf("\n类别: "); scanf("%s",one.style);//读取类别 printf("\n入库总量: "); scanf("%d",&one.totalCount);//总入库量 printf("\n现库存量: "); scanf("%d",&one.nowCount);//库存量 printf("\n借出数量: "); scanf("%d",&one.outCount);//借出数量 saveBooks(books,one,count,1);//写入文件 } } returnbooks; } Book*downBooks() { Bookone; Book*books=0; charchoice='z'; intcount=0; inti=0; charbookID[256]; intflag=-1;//是否库存已有该书籍标志,-1无,大于等于0则有 books=scanBooks(books,&count);//读取原书籍信息 system("cls");//以下开始进行添加操作 tip();//输出提示信息 printf("\n请你输入图书编号: "); scanf("%s",bookID); for(i=0;i { if(strcmp(bookID,books[i].bookID)==0) { flag=i; } } //存在某种书籍只需要改变数量 if(flag! =-1) { printf("\n管理员你好,你正在下架编号为%s的书籍为已有书籍。 ",bookID); printBook(books[flag]); printf("\n请核对是否有未归还的书籍,若有建议不要下架。 \n你确定让其下架吗? (1-y,0-n)"); while(! (choice=='y'||choice=='Y'||choice=='n'||choice=='N')) { scanf("%c",&choice);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 源代码