1、 int no; / 分类号 char publisher5;/出版单位 char time10;/出版时间 float price; /价格 struct books *next;BOO;3 主函数声明:BOO *create_form();void Cipher(); /密码登入菜单BOO *del(); /删除与修改void prin(); /浏览图书信息void search(); /查询图书信息void insert();void savefile();void readfile();void books();void myInsert(BOO *books);4 主函数:int m
2、ain() int w=1; do system(cls); puts(nntt*MENU*nntttt1.登入菜单nttt2.退出nntt*n printf(请输入选择(1-2):bb scanf(%d,&ID); switch(ID) case 1:Cipher();break; case 2:w=0; while(w=1); return 0;5 录入密码模式源代码:void Cipher() int n,w=1,flag=0,i=3; char s8; char password7=123456;nnEnter password:%s,s); if(!strcmp(s,password
3、) flag=1; break; else printf(nnError! You only have %d times! Enter again:n,i-1); i-; while(i0); if(!flag)you have Enter 3 times! exit(0); nntt*登陆菜单*nntttt1-图书信息录入ntttt2-图书信息浏览ntttt3-图书信息查询ntttt4-图书信息的删除与修改-ntttt5-返回主菜单nntt*n请输入选择(1-5): scanf(n); switch(n)insert();savefile();prin(); case 3:search();
4、 case 4:del(); case 5:return;6 浏览浏览的函数名为“void prin()”,浏览选项可以将录入的图书一次显示出来。可被主函数调用浏览的源代码为:void prin() /浏览图书信息 BOO *ptr=NULL; head=NULL; readfile(); if(head=NULL)nnt*NO RECORDS!*n return; printf(登入号 书名 作者名 分类号 出版单位 出版时间 价格n for(ptr=head;ptr;ptr=ptr-next)%5d%10s%12s%12d%10s%12s%12fn,ptr-ID,ptr-name, ptr
5、-authorname,ptr-no,ptr-publisher,ptr-time,ptr-price); system(pause7 书名的读取 读取保存在”all_book.txt”中的图书信息。 读取的源代码:void readfile() BOO *newBoo=NULL; char c,fID15; FILE *fp; strcpy(fID,all_boo.txt fp=fopen(fID,r if(fp=NULL) printf(read file error!exit(0); while(!feof(fp) if(c=fgetc(fp)=n) printf(ok newBoo=(
6、BOO *)malloc(sizeof(BOO); fscanf(fp,%d%s%s%d%s%s%fnewBoo-ID,newBoo- newBoo-authorname,&no,newBoo-publisher,newBoo-time,& myInsert(newBoo); fclose(fp);8 书名的保存保存录入的图书信并存入”all_book.txt”电子书中,以便在读取,查询,浏览中调用。 源代码为:void savefile() BOO *p; fp=fopen(,wopen file error! fprintf(fp, for(p=head;p;p=p- fprintf(fp
7、, p-ID,p-name,p-authorname,p-no,p-publisher,p-time,p-创建后的信息已放入all_boo.txt文件中nPAUSE 9 书名查找“查找”的函数名为“void search_book(void)”能够对录入的图书进行查找,查找的方式有“按书名查询”和“按作者名查询” ,可被主函数调用。查找的源代码为:void search() int a; int t=1; char type10,min10;l1:system(nntt*请选择查询方式*nnttt1-按书名查询nnttt2-按作者名查询nnttt3-退出查询nnttt*nnnChoose yo
8、ur number(1-3):a); switch(a) case 1:请输入要查询的书名:,min); if(strcmp(min,ptr-name)=0) ptr-time, t=0; if(t)tn未找到! t=1; goto l1; case 2:请输入要查询的作者名:,type); if(strcmp(type,ptr-authorname)=0) case 3:10 图书信息的录入源代码如下:void myInsert(BOO *books) /红色字全体为刚刚所加的 BOO *p1,*p2; p1=books; head=p1; head-next=NULL; else for(
9、p2=head;p2;p2=p2- if(p2-next=NULL) p2-next=books;next- break; void insert() BOO *ptr,*books; int size=sizeof(BOO); char ch=1,ch1; while(ch!=0 books=(BOO*)malloc(size);输入录入的图书信息:ntt登入号:books-ntt书名:,books-name);ntt作者名:authorname);ntt分类号:no);ntt出版单位:publisher);ntt出版时间:time);ntt价格:%f myInsert(books);nn继
10、续录入请按回车nn结束录入请按n: ch1=getchar(); ch=getchar();11 删除“删除”的函数名为“void book_del(void)”主要功能为对录入的图书信息进行删除。可被主函数调用。删除的源代码为:BOO *del() char ch,ch1;输入想要删除的图书ID: bbbbb if(head-ID=ID) p2=head; head=head-next; free(p2); if(head=NULL) return NULL; p1=head; p2=head- while(p2) p1-next=p2- p1=p2; p2=p2-n继续删除请按回车nn结束
11、删除图书信息按0:12 信息保存在TXT中要链接 链接代码:BOO *create_form() BOO *head,*tail,*p; int no,ID; char name5,authorname5,publisher5,time5; head=tail=NULL;输入图书信息:%5d%5s%12s%12s%10s%12s%12dnID,name,authorname,&no,publisher,time,& while(ID!=0) p=(BOO*)malloc(size); p-ID=ID; strcpy(p-name,name);authorname,authorname);pub
12、lisher,publisher);time,time);no=no;price=price; head=p; tail-next=p; tail=p;%5d%5s%12s%12s%10s%12s%12d tail- return head;四 调试与测试在编程的过程中我们遇到了许许多多的错误,令我印象最深的调试错误有如下:1.函数的未定义声明。因为把一般函数写在主函数的后面而没有在前面做函数的声明,导致函数未定义声明错误。2.两个不同类型的变量在用if语句时相比较。3.变量的重复定义,未能成功调用函数。4.语句的混乱导致主要功能的无法运用的。5.也学会如果语句无法调用时,看程序运行到哪一条语句时,可以写入输出语句,如:printf(“ok”),看是否会被输出。五 整个图书信息管理系统源代码如下: #includeBOO *head=NULL;int ID=0; /定义可能为错
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1