图书借阅管理系统(C语言)
C语言课程设计指导书学期:2010-2011第二学期课程名称:0BS11007 程序设计实践 指导教师:刘梅彦一、课程设计目的与要求通过本次程序设计实践,完成用C语言一个小型软件的设计,学习C语言程序设计的基本方法,掌握常用程序调试的方法和技巧,理解结构化程序设计的基本理念,理解程序设计的系统分析、概要设计、编码、调试等过程,培养基本算法的设计能力,培养严密逻辑思考能力,培养程序设计的实践能力,培养团队协作精神等。二、设计内容简介题目:图书借阅管理系统 在程序中采用结构体数组存储每本书的信息,每本书应包含如下几方面的信息:主编、出版社、出版年、版次、ISBN书号、书名、定价、拥有本数、借出本数、现余本数。要求将图书信息以文件的形式存放在磁盘上。软件由主函数(含欢迎界面)下列4个功能模块组成:(1)借出功能(被借之书“借出本数”增1,“现余本数”减1);(2)归还功能;(3)查找功能(需指定书的某项信息,查找该书目前借出、余存信息);(4)退出程序。(1) 参考数据结构(仅供参考) struct book;char name10;/图书名称char isbn10;char serialNum15;/本馆图书编号(同一本会有多本,因此只靠书号不能唯一定位每本书。)int number;/图书数量float price;/图书价格char version10;/ 图书版次char date10;/图书出版日期,如20090101等char author10;/图书作者(主编)char print20;/出版社integer lend_number; /借出本数integer hold_number; / 现有本数 ;struct reader har name10;/姓名char department20;/所在学院long ID;/读者编号char bookname10; /所借图书名称;(2) 实现功能² 能够完成对图书和读者信息的录入、修改和删除(图书编号不允许修改);²² 假定每名读者只能借一本书;²² 能够根据图书名称、编号、作者或者出版社进行查询;²² 能够查询某本书现在被哪个/哪些作者借走。三安排次序内 容一1 讲解文件及结构的相关内容。2 总体设计二功能模块设计三功能模块设计四功能模块设计、程序联调五完成课程设计报告四、课程设计报告要求1.课程设计报告及程序代码均要求打印,并按要求顺序(封面、任务书、目录、正文、程序代码、参考文献)装订。2.使用A4纸打印。五课程设计考核方式及评分办法1、考核方式:1)上机检查程序运行结果2)根据源程序提出两个问题请学生回答3)检查学生的课程设计报告2、评分办法:1)程序运行情况(正确性及友好性) 30分2)课程设计书写情况 30分3)回答问题情况 20分4)平时表现 20分根据学生的综合表现,给出优、良、中、及格和不及格五个等级分。源程序:include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> struct BOOK int number; char name20; char publish50; float price; books100; void title(char *menu_item) printf("* 图书管理系统*nn- %s -nn",menu_item); void return_confirm(void) printf("n任意键返回n"); getch(); void book_count(void) int n,i=0; for(n=0;n<100;n+) if(strlen(booksn.name)!=0 && strlen(booksn.publish)!=0) printf("第%d本书信息:n <编号:%dn 书名:%s n 出版社:%sn 价格:%f>n",n+1,booksn.number,booksn.name,booksn.publish,booksn.price); i=i+1; printf("nn目前共有%d本书n",i); return_confirm();int book_search_number(void) int n,i; title("请输入编号:"); scanf("%d",&i); for(n=0;n<100;n+) if(booksn.number=i) printf("所查询图书信息如下n编号:%dn",booksn.number); printf("名称:%sn",booksn.name); printf("出版社:%sn",booksn.publish); printf("价格:%fn",booksn.price); return n; printf("n错误或无效信息.n"); return -1; void book_search_publish() int i=1; char k20; int n; system("cls"); title("请输入出版社名称:"); scanf("%s",&k); for(n=0;n<100;n+) if(strcmp(booksn.publish,k)=0) printf("所查询的图书信息如下n");printf("编号:%dn",booksn.number); printf("名称:%sn",booksn.name); printf("出版社:%sn",booksn.publish); printf("价格:%fnnn",booksn.price); i=0; if(i=1) printf("没有查到相关的图书"); return_confirm();void book_add(void) int ncount=0; int n=ncount+1,number; char name30,publish30; float price; system("cls"); title(""); printf("请录入第%d本书的信息:n",n); for(n=0;n<100;n+) if(booksn.number=0) break; printf("编号:"); scanf("%d",&number);booksn.number=number; printf("名称:"); scanf("%s",name);strcpy(booksn.name,name); printf("出版社:"); scanf("%s",&publish);strcpy(booksn.publish,publish); printf("价格:"); scanf("%f",&price);booksn.price=price; return_confirm(); void book_delete(void) int n,num,i,z=1; system("cls"); title("删除图书"); printf("请输入所要删除的书的编号:"); scanf("%d",&num); for(n=0;n<100;n+) if(booksn.number=num) for(i=n;i<100;i+) booksi.number=booksi+1.number; strcpy(booksi.name,booksi+1.name); strcpy(booksi.publish,booksi+1.publish); booksi.price=booksi+1.price; z=0; if(z=1) printf("该书已删除.n"); return_confirm(); void book_change(void) int n,num,s; system("cls"); printf("nnnntttt【修改信息操作】nnnttt"); printf("请输入要修改的图书编号:"); scanf("%d",&num); for(n=0;n<100;n+) if(booksn.number=num) printf("确定要对修改该图书的信息吗?(1/0)n"); break; scanf("%d",&s); if(s=1) printf("修改编号:"); scanf("%d",&booksn.number); printf("修改名称:"); scanf("%s",booksn.name); printf("修改出版社:"); scanf("%s",booksn.publish); printf("修改价格:"); scanf("%f",&booksn.price);