图书管理系统源代码.doc_第1页
图书管理系统源代码.doc_第2页
图书管理系统源代码.doc_第3页
图书管理系统源代码.doc_第4页
图书管理系统源代码.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络,如有侵权,请联系网站删除#include header.h#include Struct.hint printMainUI() /主界面,并返回选择,int ret = 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);return ret;int printAdminUI() /管理员界面int ret = 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);return ret;int printUerManageUI()int ret = 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);return ret;int printUerFunUI()int ret = 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);return ret;int printTeacherUI() /教师界面int ret = 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);return ret;int printStudentUI() /学生界面 int ret = 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);return ret;int login()/登陆return -1;int AdminOperation(int choice);/管理员界面的操作声明Book* scanBooks(Book* books,int *count);/读取书籍信息void printBooks(Book* books,int count);/打印书籍信息void printBook(Book book);Book* uploadBooks();/图书上架void saveBook(Book book,FILE* fp);/保存书籍信息void saveBooks(Book* books,Book book ,int lastCount,int updateCount);void saveUser(User user,FILE* fp);/保存用户信息void saveUsers(User* users,User user,int lastCount,int updateCount,char* fileName);Book* downBooks();User* scanUers(User* users,int *count,char* fileName);void printUsers(User* users,int count);void printUser(User user);void userFunRealized(int choice,char* fileName);void uerManageRealized(int choice);void addUser(char* fileName);void delUser(char * fileName);void tip();/提示信息void mainOperation(int choice)/对于主界面的选择操作int choice1= 0;switch(choice)case 1:dochoice1 = printAdminUI();AdminOperation(choice1);while(choice1 != 0);break;case 2:printTeacherUI();break;case 3:printStudentUI();break;case 0:break;default:break;int AdminOperation(int choice)/管理员界面的操作int count = 0;switch(choice)case 1:uploadBooks();system( PAUSE ); break;case 2:downBooks();system( PAUSE ); break;case 3:int count=0;Book* books= 0;books = scanBooks(books,&count);printBooks(books,count);system( PAUSE ); break;case 4:int choice1 = 0;dochoice1 = printUerManageUI();uerManageRealized(choice1);while(choice1 != 0);break;case 0:break;default:break;return choice;Book* scanBooks(Book* books,int* count)int num = 0;/用于存储读取到的书籍种数int i;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 num; i+)booksi.bookID = (char*)malloc(sizeof(char) * 256);booksi.bookName= (char*)malloc(sizeof(char) * 256);booksi.author= (char*)malloc(sizeof(char) * 256);booksi.pubDate= (char*)malloc(sizeof(char) * 256);booksi.price= (char*)malloc(sizeof(char) * 256);booksi.style= (char*)malloc(sizeof(char) * 256);fscanf(fp,%s,booksi.bookID);/读取数编号fscanf(fp,%s,booksi.bookName);/读取书名fscanf(fp,%s,booksi.author);/读取作者fscanf(fp,%s,booksi.pubDate);/读取出版日期fscanf(fp,%s,booksi.price);/读取金额fscanf(fp,%s,booksi.style);/读取类别fscanf(fp,%d,&(booksi.totalCount);/总入库量fscanf(fp,%d,&(booksi.nowCount);/库存量fscanf(fp,%d,&(booksi.outCount);/借出数量fclose(fp);return books;void printBooks(Book* books,int count)int i ;if(count = 0)printf( );printf(图书信息为空!);return ;for(i = 0 ; i count; i+)printf( t第%d款图书 n,i+1);printBook(booksi);void printBook(Book book)printf(n ); printf(n 图书编号:%st图书名称:%st作 者:%st ,book.bookID,book.bookName,book.author);printf(n 出版日期:%st金 额:%stt类 别:%st ,book.pubDate,book.price,book.style);printf(n 入库总量:%dt现库存量:%dtt借出数量:%dt ,book.totalCount,book.nowCount,book.outCount);printf(n n); Book* uploadBooks()Book one;Book* books =0;char choice = z;int count=0;int i =0;char bookID256;int flag = -1;/是否库存已有该书籍标志,-1无,大于等于0则有增加books = scanBooks(books,&count);/读取原书籍信息system(cls);/以下开始进行添加操作tip();/输出提示信息printf(n请你输入图书编号:);scanf(%s,bookID);for(i = 0; i count;+i)if(strcmp(bookID,booksi.bookID) = 0)flag = i;/存在某种书籍只需要改变数量if(flag != -1)printf(n管理员你好,你正在添加编号为%s的书籍为已有书籍。,bookID);printBook(booksflag);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);booksflag.totalCount += one.totalCount;booksflag.nowCount += one.totalCount;saveBooks(books,one,count,0);printf(n成功添加编号为%s的书籍:%d本n,bookID,one.totalCount);elseone.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);/写入文件return books;Book* downBooks()Book one;Book* books =0;char choice = z;int count=0;int i =0;char bookID256;int flag = -1;/是否库存已有该书籍标志,-1无,大于等于0则有books = scanBooks(books,&count);/读取原书籍信息system(cls);/以下开始进行添加操作tip();/输出提示信息printf(n请你输入图书编号:);scanf(%s,bookID);for(i = 0; i count;+i)if(strcmp(bookID,booksi.bookID) = 0)flag = i;/存在某种书籍只需要改变数量if(flag != -1)printf(n管理员你好,你正在下架编号为%s的书籍为已有书籍。,bookID);printBook(booksflag);printf(n请核对是否有未归还的书籍,若有建议不要下架。n你确定让其下架吗?(1-y,0-n);while(!(choice = y| choice = Y|choice = n|choice = N)scanf(%c,&choice);if(choice = y | choice = Y)/更改入库量,现存数量booksflag.bookID = bookscount-1.bookID;booksflag.bookName = bookscount-1.bookName;booksflag.author = bookscount-1.author;booksflag.nowCount = bookscount-1.nowCount;booksflag.outCount = bookscount-1.outCount;booksflag.price = bookscount-1.price;booksflag.pubDate = bookscount-1.pubDate;booksflag.style = bookscount-1.style;booksflag.totalCount = bookscount-1.totalCount;saveBooks(books,one,count,-1);printf(n成功下架编号为%s的书籍:%d本n,bookID,booksflag.totalCount);elseprintf(n管理员你好,系统中不存在你正在下架编号为%s的书籍。,bookID);return books;void saveBooks(Book* books,Book book ,int lastCount,int updateCount)int i = 0;FILE* fp = fopen(Book.txt,w);fprintf(fp,%dn,lastCount+updateCount);/写入书本种数for(i = 0 ; i lastCount+updateCount;+i)if(i lastCount)saveBook(booksi,fp);elsesaveBook(book,fp);fclose(fp);void saveBook(Book book,FILE* fp)fprintf(fp,%sn,book.bookID);/存储数编号fprintf(fp,%sn,book.bookName);/存储书名fprintf(fp,%sn,book.author);/存储作者fprintf(fp,%sn,book.pubDate);/存储出版日期fprintf(fp,%sn,book.price);/存储金额fprintf(fp,%sn,book.style);/存储类别fprintf(fp,%dn,(book.totalCount);/存储总入库量fprintf(fp,%dn,(book.nowCount);/存储库存量fprintf(fp,%dn,(book.outCount);/存储借出数量void saveUser(User user,FILE* fp)/保存用户信息int i = 0;fprintf(fp,n%s,user.userID);fprintf(fp,n%s,user.userName);fprintf(fp,n%d,user.borrowCount);for(i = 0; i user.borrowCount;+i)fprintf(fp,n%s,user.borrowBooksi.bookID);void saveUsers(User* users,User user ,int lastCount,int updateCount,char* fileName)int i = 0;FILE* fp = fopen(fileName,w);fprintf(fp,n%d,lastCount+updateCount);for(i = 0; i lastCount+updateCount;+i)if(i 0)users = (User*)malloc(num * sizeof(User);for(i = 0; i 0)usersi.borrowBooks = (BorrowBooks*)malloc(sizeof(BorrowBooks) * usersi.borrowCount);for(j = 0; j usersi.borrowCount;+j)fscanf(fp,%s,usersi.borrowBooksj.bookID);/读取用户编号fclose(fp);return users;void printUsers(User* users,int count)int i = 0;for(i = 0; i count; +i)printf(n编号为%s用户信息:,users

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论