您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 小型图书信息管理系统(C语言)
1.题目《小型图书信息管理系统》的设计与实现2.功能(1)每一条记录包括一本图书的书名、ISBN、作者、出版社、定价、出版日期和数量。(2)输入功能:可以一次完成无数条记录的输入。(3)显示功能:完成全部图书信息的显示。(4)查找功能:完成按书名查找图书信息,并显示。(5)排序功能:按图书价格进行排序。(6)插入功能:按图书价格高低插入一条图书信息。(7)保存功能:将图书信息保存在任何自定义的文件中,如保存在:c:\book。(8)读取功能:将保存在文件中的图书信息读取出来。(9)有一个清晰美观界面来调用各个功能3.要求(1)整个系统均用C语言实现;(2)利用指针、链表来实现学生成绩的数据结构设计;(3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将图书信息保存在文件中。(6)可以将图书信息从文件中读取出来。4.源程序#includestdio.h#includestring.h#includeconio.h#includestdlib.h#includewindows.h#defineLLsizeof(BOOK_TYPE)intmaininterface();voidinfor_input();voidrefer();voidrefer_1();voidrefer_2();voidmodify();voiddelete();voidfindbook();voidfindbook1();voidfindbook2();voiddevise();voidmain(){inta=0;do{a=maininterface();switch(a){case1:system(CLS);infor_input();break;case2:system(CLS);refer();break;case3:system(CLS);modify();break;case4:system(CLS);delete();break;case5:exit(0);default:system(CLS);printf(\n\n\n\n\t\t\t无此操作,请按任意键返回:\n);getch();system(CLS);}}while(a!=6);}intmaininterface(){intn;printf(\n\n\n\t\t------------小型图书登记管理系统-----------\n);printf(\n\t\t\t\t1:录入图书信息\n);printf(\n\t\t\t\t2:查询信息\n);printf(\n\t\t\t\t3:修改图书信息\n);printf(\n\t\t\t\t4:删除图书信息\n);printf(\n\t\t\t\t5:退出系统\n);printf(\n\t\t\t请输入1--5,其他输入非法!\n);scanf(%d,&n);returnn;}typedefstruct{intmonth;intday;intyear;}DATES;DATESday;typedefstructbooks{charbookname[50];charISBN[50];charauthor[50];charpublisher[50];floatmoney;DATESday;intcount;structbooks*next;}BOOK_TYPE;BOOK_TYPEts;structbooks*head=NULL;voidinfor_input(){FILE*fp;intn=0;BOOK_TYPEts;printf(---------------图书资料基本信息录入--------------\n);do{printf(请输入书名\n);scanf(%s,ts.bookname);printf(请输入ISBN\n);scanf(%s,ts.ISBN);printf(请输入作者\n);scanf(%s,ts.author);printf(请输入出版社\n);scanf(%s,ts.publisher);printf(请输入定价\n);scanf(%f,&ts.money);printf(请输入出版日期\n);scanf(%d/%d/%d,&ts.day.month,&ts.day.day,&ts.day.year);printf(请输入数量\n);scanf(%d,&ts.count);printf(\n\t\t\t请选择(1:确定\t2:取消\t0:重新输入):);scanf(%d,&n);}while(n==0);if(n==1){if((fp=fopen(book.txt,a))==NULL)/*若book.txt文件不存在,则以创建方式打开文件*/{fp=fopen(book.txt,w+);}fwrite(&ts,LL,1,fp);/*将输入的图书信息写入磁盘文件book.txt*/fclose(fp);}system(CLS);printf(输入成功!\n);printf(请选择(1:返回主界面\t2:输入另一本图书信息\t0:退出系统):\n);scanf(%d,&n);switch(n){case1:system(CLS);break;case2:system(CLS);infor_input();break;case0:break;default:printf(无此操作,按任意键返回\n);getch();system(CLS);break;}}voidrefer(){intn;printf(1:根据ISBN号,找出图书信息\n);printf(2:根据出版社名称,找出所有图书信息\n);printf(3:根据书名,找出图书信息\n);printf(4:统计书籍总数\n);printf(5:统计书籍总金额和平均价格\n);printf(0:返回\n);printf(请输入0--5,其他输入非法!\n);scanf(%d,&n);switch(n){case1:system(CLS);findbook();break;case2:system(CLS);findbook1();break;case3:system(CLS);findbook2();break;case4:system(CLS);refer_1();break;case5:system(CLS);refer_2();break;case0:system(CLS);break;default:printf(无此操作\n);break;}}structbooks*read_1(){FILE*fp;structbooks*p1,*p2,*head;fp=fopen(book.txt,r);head=p1=(BOOK_TYPE*)malloc(LL);fread(p1,LL,1,fp);while(feof(fp)==0){p2=(BOOK_TYPE*)malloc(LL);fread(p2,LL,1,fp);p1-next=p2;p1=p2;}p1-next=NULL;fclose(fp);returnhead;}voidrefer_1(){structbooks*head,*p,*d;structbooks*read_1();inttotal=0;head=read_1();for(p=head;p-next!=NULL;d=p,p=p-next,free(d)){total=total+p-count;}printf(书籍总数:%d\n,total);printf(按任意键返回);getch();system(CLS);}voidrefer_2(){intnum=0;structbooks*head,*p1,*p2;structbooks*read_1();floattotal=0,average=0;head=read_1();for(p1=head;p1-next!=NULL;p2=p1,p1=p1-next,free(p2)){num=num+p1-count;total=total+p1-money*p1-count;}average=total/num;printf(书籍总金额:%.2f\n,total);printf(书籍平均价格:%.2f\n,average);printf(按任意键返回);getch();system(CLS);}voidfindbook(){FILE*fp;charISBN[50];inti;fp=fopen(book.txt,r);printf(请输入书的ISBN号\n);scanf(%s,ISBN);for(i=0;fread(&ts,LL,1,fp)!=0;i++){if(strcmp(ISBN,ts.ISBN)==0)printf(这本书的详细资料为:%s%s%s%s%f%d/%d/%d%d\n按任意键返回\n,ts.bookname,ts.ISBN,ts.author,ts.publisher,ts.money,ts.day.month,ts.day.day,ts.day.year,ts.count);}printf(没有你所需要的书籍);fclose(fp);}voidfindbook1(){FILE*fp;charpublisher[50];inti;fp=fopen(book.txt,r);printf(请输入书的publisher\n);scanf(%s,publisher);for(i=0;fread(&ts,LL,1,fp)!=0;i++){if(strcmp(publisher,ts.publisher)==0)printf(这本书的详细资料为:%s%s%s%s%f%d/%d/%d%d\n按任意键返回\n,ts.bookname,ts.ISBN,ts.author,ts.publisher,ts.money,ts.day.month,ts.day.day,ts.day.year,ts.count);}printf(没有你所需要的书籍);fclose(fp);}voidfindbook2(){FILE*fp;charbookname[50];inti;fp=fopen(book.txt,r);printf(请输入书的bookname\n);scanf(%s,bookname);for(i=0;fread(&ts,LL,1,fp)!=0;i++){if(strcmp(bookname,ts.bookname)==0)printf(这本书的详细资料为:%s%s%s%s%f%d/%d/%d%d\n按任意键返回\n,ts.bookname,ts.ISBN,ts.author,ts.publisher,ts.money,ts.day.month,ts.day.day,ts.day.year,ts.count);}printf(没有你所需要的书籍);fclose(fp);}voiddelete(){structbooks*p1,*p2;charISBN[50];inte=0;if(head==NULL){printf(无书籍记录);return;}printf(请输入您要删除的书籍的ISBN:\n);scanf(%s,ISBN);p1=head;while(ISBN!=p1-ISBN&&p1-next!=NULL){p2=p1;p1=p1-next;}if(ISBN==p1-ISBN){if(p1==head)head=p1-next;elsep2-next=p1-next;free(p1);e--;}elseprintf(没有该书籍记录,请核对!\n);}voidmodify(){structbooks*p1,*p2;charISBN[50];if(head==NULL){printf(无书籍记录!\n);return;}prin
本文标题:小型图书信息管理系统(C语言)
链接地址:https://www.777doc.com/doc-5566893 .html