1、void insert();void del();void order();void show();4主函数 2。4。1包含项目 信息录入函数,信息查询函数,信息修改函数,添加信息函数,删除信息函数,排序函数void main() int n; menu(); /显示菜单函数 scanf(”d,&n); /输入选择功能编号 while(n) switch(n) case 1: in(); /录入函数 break; case 2: search(); /查询函数 case 3: modify(); /修改函数 case 4: insert(); /插入函数 break; case 5: del(
2、); /删除函数 case 6: order(); /排序函数 getch(); menu(); /执行完成后继续显示菜单界面 scanf(”d”,& 2.5功能菜单程序代码:void menu() system(”cls”); /清屏 printf(”nnnn”); printf(t|=n”);t 图书管理系统 |n); printf(”t=n printf(”t|t 0。退出 n”); printf(”t|t 1。录入图书信息 |n”); printf(”t|t 2。查询图书信息 |n); printf(”tt 3。修改图书信息 n printf(”tt 4。插入新记录 |n”); pri
3、ntf(”tt 5。删除记录 |n printf(”tt 6。书籍排序 |n”); printf(”t|=|n”); printf(”n请选择(06):”);2.6录入图书信 2.6。1功能叙述 *在功能界面中输入1,即可以进入图书信息录入状态,如果没有数据,则图书的编号,书名,作者,出版社,并提示用户是否输入.输入y,则开始录入信息;输入n,则显示“OK,再按任意键返回到主菜单界面。 *如果输入y,屏幕显示图书的编号,书名,作者,出版社,输入完成以后,系统提示“保存成功!是否继续?. *如果输入y,系统继续提示相应信息,再输入一条记录. 2。6.2程序代码void in() int i,m=
4、0; /m是记录的条数 char ch2; FILE *fp; if(fp=fopen(Bookinf。dat”,”ab+”)=NULL) printf(无法打开文件!n”); return; while(!feof(fp) /检测是否到了文件结尾 if(fread(bookm,sizeof(struct Bookinf),1,fp)=1) m+; /统计当前记录条数,读取成功则m自加1,继续往后读取 if(m=0)没有记录!n else system(”cls show(); /show函数位置错误(y/n):”); scanf(s”,ch); /ch之所以定义成字符数组,是为了接收一个字符
5、和回车符,以字符串方式存入 /有所改动 while(strcmp(ch,”Y”)=0|strcmp(ch,”y”)=0) /判断是否要录入信息 编号: scanf(”d,bookm.num); /输入商品编号 for(i=0;im;i+) if(booki.num=bookm。num) /检验文件中是否已经存在所输入的编号 printf(”该记录已存在! getch(); scanf(”s”,ch); printf(”书名: scanf(s”,bookm.name); /输入书名作者: scanf(”%s”,bookm。aut); /输入作者出版社: scanf(”%s”,bookm.pub)
6、; /输入出版社 printf(”价格: scanf(”f”,&bookm。price); /输入价格 /错打成,格式输入错误%f写成5。2f if(fwrite(&bookm,sizeof(struct Bookinf),1,fp)!=1) /将录入信息写入指定文件 printf(不能保存! getch(); return; /后来添加的 else printf(”%s保存成功!n”,bookm。name); printf(”是否继续? /询问是否继续 /接受回车 scanf(”s,ch); /输入一次后,无法继续,原因:格式输入 fclose(fp); printf(”OK!7显示信息(在
7、程序中如果不声明要放在in()前面) 程序代码void show() FILE fp; int i,m=0; if(fp=fopen(”Bookinf。dat,”rb)=NULL) /由wb改成 printf(”无法显示文件!feof(fp) if(fread(bookm,sizeof(struct Bookinf),1,fp)=1) printf(”编号tt书名tt作者tt出版社tt价格n”); for(i=0;ii;j-) bookj+1=bookj; /从最后一条记录开始均向后移一位请输入新信息:编号: scanf(”d”,booki+1.num); for(k=0;kk+) if(bo
8、okk。num=booki+1。num&k!=i+1) 该编号已经存在,按任意键继续! getch(); fclose(fp); printf(”书名:s”,booki+1。name); printf(”作者: scanf(”s,booki+1。aut); printf(”出版社:%s”,booki+1.pub);价格: scanf(”%f”,booki+1。 if(fp=fopen(dat”,”wb)=NULL) printf(”文件打开失败! return; for(k=0;k=m; if(fwrite(bookk,sizeof(struct Bookinf),1,fp)!=1) /将修改
9、后的记录写入磁盘文件 printf(保存失败! getch(); printf(”插入成功! fclose(fp);10修改图书信息 2.10.1功能叙述 进入修改记录功能模块后,程序提示用户输入要修改的图书编号,输入编号,如果存在该记录,系统显示“编号 书名 作者 出版社,用于修改记录,如果没有找到,则提示“没有找到!10。void modify() int i,j,m=0,snum; if(fp=fopen(”Bookinf.dat”,”ab+ printf(”无法打开文件! if(fread(bookm,sizeof(struct Bookinf),1,fp)=1) fclose(fp)
10、; printf(”请输入要修改的记录信息的编号!d”,snum); if(snum=booki。num) /检索记录中是否有要修改的信息 if(im) 已经找到,是否修改?(y/n)ns”,ch);Y)=0strcmp(ch,”y”)=0)书名: scanf(%s”,booki+1。 printf(”作者: scanf(”%s”,booki+1.aut); printf(”出版社: scanf(”%s”,booki+1.pub); scanf(”f,booki+1.price); printf(”保存成功! else printf(”没有找到! return; if(fp=fopen(dat
11、”,wb”)=NULL) printf(”文件打开失败! return; for(j=0;jj+) if(fwrite(bookj,sizeof(struct Bookinf),1,fp)!=1)保存失败! fclose(fp);2.11删除图书信息 2.11。 进入删除记录功能模块,程序提示输入要删除的图书编号,按Enter之后,如果查询到该书记录,,则提示“记录已找到,是否删除?,如果用户输入“y,则删除该记录,并弹出“删除成功!”的提示信息,如果没找到要删除的图书信息,则提示“没有找到”信息11。void del() int snum,i,j,m=0; char ch2;,”ab+ pr
12、intf(”无法打开文件! if(fread(bookm,sizeof(struct Bookinf),1,fp)=1)没有记录!请输入要删除的记录信息的编号! scanf(”d”,snum); printf(”该记录已找到,是否删除?(y/n)”); scanf(”%s,ch); if(strcmp(ch,”Y”)=0strcmp(ch,y for(j=i;jm; bookj=bookj+1; m; printf(”删除成功!Bookinf.dat”,”wb”)=NULL) printf(”打开失败!jm; if(fwrite(&bookj,sizeof(struct Bookinf),1,
13、fp)! getch(); fclose(fp);12图书排序 2.12.1功能叙述 将图书按价格升或降进行排序,选择1,升序,选择2,降序12。void order() struct Bookinf temp; int i,j,m=0,n;文件打开失败! if(fread(bookm,sizeof(struct Bookinf),1,fp)=1) printf(”请选择排序方式(1。价格升序,2.价格降序): scanf(”d”,n); case 1: for(i=0;im2;i+) /之前是m1 for(j=i+1;m1; if(booki。pricebookj.price) temp=booki; booki=bookj; bookj=temp; break; /忘记break了m2;m-1; if(booki。pricebookj.price) temp=booki; booki=bookj; bookj=temp; break; default: printf(”输入有误!编号tt书名tt作者tt出版社tt价格n”); printf(”%dttsttsttstt%5。2f”,booki.num,booki.name,booki.aut,booki。pub,booki.price); printf(”n fclose(fp);注:所有程序代码都已经经过了调试并且成功
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1