C语言图书管理系统实验报告书_第1页
C语言图书管理系统实验报告书_第2页
C语言图书管理系统实验报告书_第3页
C语言图书管理系统实验报告书_第4页
C语言图书管理系统实验报告书_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、高级语言(C语言)课程设十说明书起止日期:2012年07月2日至2012年07月J4AB图书管理系统通信与信息工程学院说明书撰写提纲课程设计要求具体要求如下:1 在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作;2程序主菜单如下:II*h菜单的标题行*/2. 显示图书信息3. 图书信息查询4. 图书信息的修改5退出广显示所有记录*/*要求采用书名、作者名进行查询*/*实现图书信息的修改和删除*/MENU1.图书信息录入广输入数据*/程序的功能设计这部分主要对程序进行系统设计,给出总体的设计框图。卞菜单输入卞菜单创删修显建除改退小illIS1515IS程序的数据结构这部分主要写本

2、设计所使用的数据结构,比如结构体的 定义,单向链表,以及数据输入输出形式(如采用文件的方式读入或 保 存数据)四、/自定义枚举类型fijype,用来表示图书信息typedef enum _fi_typenews=1, /图书信息fi_type;/图书信息结构体struct fi_Jnfochar name11; /书名char writer21; /作者char shuhao10; /书号char fenlei10; /分类char chuban20; /出版社int chubantime; /出版时间float price; / fi_type type;价格struct fijnfo* n

3、ext; /结构体的指针域,用于存放链表的下个结点的地址五、;六程序的函数设计1.函数的功能描述struct finfo *head=NULL,*head_=NULL ; /将图书信息写成链表,头指针分别为空int Book_num; /图书信息的统计数void menu();int ReadinfoFromFile(); /读入数据/函数申明int chuangjian();/创建新的图书信息void chazhao(); /查找图书void shanchu(); /删除图书void xiugai(); /修改图书void show(); /查看图书void paixu() ; /图书排序v

4、oid quit(); /退出2.函数的调用尖系调用尖系为主函数调用各功能函数。七、源程序代码#in clude #in clude #in clude #include自定义枚举类型fijype,用来表示图书信息typedef enumi_type(news=1,图书信息fi_type; 图书信息结构体 struct fi_info(char name11; 书名char writer21; 作者char shuhao10; 书号char fenlei10; / 分类char chuban20; /出版社 int chubantime; /出版时间 float price;/价格 fi_ty

5、pe type;struct fijnfo* next;地址结构体的指针域,用于存放链表的下个结点的;struct finfo *head=NULL,*head_=NULL ;将图书信息写成链表,头指针分硼为空int Book_num;图书信息的统计数int ReadinfoFromFile(); 读入数据函数申明int chuangjian(); 创建新的图书信息void chazhao(); 查找图书void shanchu(); /删除图书void xiugai(); 修改图书void show(); 查看图书void paixu() ; / 图书排序void XG();void mai

6、n()/inti;char ch=T;ReadinfoFromFile();system(” cis”);system(HclsH); while(ch!=,5,) printf(nnnnnnn); printf(”tt 图书管理系统 nnnM);*MENU*nn);行*/广菜单的标题prin tf(Htt1-prin tf(tt2-prin tf(tt3- 名进行查询*/prin tf(tt4- 改和删除*/ printf(”tt5图书信息录入F); 显示图书信息F);图 书信息的查询n);图书信息的修改);系统初始化rT);广输入数据V广显示所有记录V广要 求采用书名、作者厂实现图书信息的

7、修printf (”nrT);printf(n t 请输入你的选择:”);scanf(n%c;&ch); switch(ch)case T: chuangjian();break;case 2:paixu();show();break;case 3:chazhao();break;case 4:XG();break;default:break;system(cls);system(”cis”);printf(Hnnnnnnnnntttt 谢谢使用!*); getch();读入数据文件指针结构体指针int ReadinfoFromFile()FILE *fp=NULL; struct fijnf

8、o *p=NULL;inti;if(fp=fopen(,sun.txt,7,r+,)=NULL)printf(n文件不存在! nM);fp=fopen(nsun.txr,nwn); /为输出打开一个文件printf(”文件建立成 功! nn);fscanf(fpcr,&Book_num);/从文件中分别读入图书信息统计 数, 以便于下面for循环的条件控制for(i=0;iname);fscanf(fp3,%s,p-writer);fscanf(fp,n%sn,p-shuhao); fscanf(fp,H%sn,&p-fenlei); fscanf(fp,n%s,p-chuban); fsca

9、nf(fp,”d”,&p-chubantime); fscanf(fp,”.2f”,&p-price); fscanf(fp,n%dn,&p-type);if(p-type=1)(if(head=NULL) head=p; p-next=NULL;)elsepn ext=head;head=p;else if(head_=NULL) head_=p; p-next=NULL;elsepnext=head_; head_=p;fclose(fp); return 0;ifclose(fp); return 0;int chuangjian()创建图书信息(struct fi info *p=NU

10、LL; p=(struct fi info*)malloc(sizeof(struct fijnfo); printf(” 请输入书名:”);scanff%sM,p-name);print请输入作者名:”);scanf (” s”,pwriter);printf(请输入书号:”);scanf(%s,p-shuhao);printf(”请输入分类:“);scant (n%sH,&p-fenlei);printf(” 请输入出版社:”);scanf(n%sH,p-chuban);printf(” 请输入出版时间:);scanf(H%dn,&p-chubantime);printf(”请输入价格:”

11、);scanf(n%fn,&p-price);p-type=n ews;Book_num+=1;pn ext=head;head=p;return 0;void chazhao()窗卄 /亠口(查找图书信息struct finfo*p=NULL; char name10,writer21;int price;int b=1 ,i;printf按书名查找请按1 An按作者名查找请按2.n按组合查询请按3.nM);scanf(”d”,&i);if(i=1)printf(请输入要查找的书名:”);scanf(H%sH,name);for(p=head;p!=NULL;p=p-next)一个链表指针

12、p 的遍历、直到p=NULL结尾if(strcmp(name,p-name)=O) /字符串的比较函数,0(若前后相等则 等于b=0;若存在,则b=0print找到要查找的图书信息:rT); printf(”图书名 称 %snH,p-name); printf(” 图书作 者 %sn,p-writer);printf图书分类 print图书价格printf(” 图书书号 %sn,p-shuhao);P册泸馭巒鬧it樓碰反时间 p-chuban); %drT,p chuba ntime);%.2fnn,p-price);)if(head=NULL) printf v 查无此书 nn);if(b)

13、 printfC*rf);若b=1,else则不存在if(i=2)printf(”请输入要查找的作者名门;scanf(”s”, writer);for(p=head;p!=NULL;p=p-next)结尾PNULL一个链表指针p的遍历,直到if(strcmp(writer,p-writer)=O)0b=0;字符串的比较函数,若前后相等则等于printf(“找到要查找的图书信息:n”);1若存在,则b=0printf(图书名称 %snp-name); printf(n 图书作者 %snp-writer);printf(H 图书书号 %snH,p-shuhao); printf(M 图书分类 %s

14、n;p-fenlei); printfC* 出版社 %sn,p-chuban); %dn printf(M 出版时间 H,p-chubantime); printfC* 图书价格 %.2fn;p-price);if(head=NULL) printf(,fnH);if(b) printf(t查找的图书信息不存在!n”);若b=1 ,则不存在)else if(i=3)printf(” 请输入要查找的 书名 价格 n:H); scanf(H%s %dH,name,&price);for(p=head;p!=NULL;p=p-next)一个链表指针 p 的遍历、直到结尾pNULLif(strcmp(

15、 name,pname)=0&price=p-price)字符串的比较函数,若前后相等则等于0b=0;若存在,则b=0printf(“找到要查找的图书信息:rf); printf(-图书名 称 %snH,p-name); printf(” 图书作者 %snp-writer);printf(”图书书printf图书分类printf(“出版社printf(”出版时间printf(”图书价格号 %sn,p-shuhao);%sn,p-fenlei); %sn,p-chuban); %dnf,p- chuba ntime);%.2fn,p-price);)if(head=NULL) printf(”

16、查无此书 nH);if(b) printf(”v查找的图书信息不存在! rf);若,则不存在 else printf(V没有该项功能,请重新选择:rf);system(HPAUSEn);/ 暂停void shanchu()(struct fijnfo *p=NULL;删除图书信息定义两个结构体指针struct fijnfo *q=NULL; char name10;int b=1;int a;printf(H 请输入要删除的书名:nn); scanf(H%sn,name); for(p=head,q=head;p! =NULL;p=p-next)(if(strcmp(name,p-name)=

17、O) b=0;printfC*确定删除? 0(是)or 1 (否)n”); scanfcT,&a); if(a=0)(if(p=head) head=head-next; else q-next=p-next;printfC1 删除成功! rf);else q=p;if(b) printf(Hnext)(if(strcmp(p-name,name)=0) b=0;printf(H 图书名称 %sn,p-name); printf(” 图书作 者 %snn,p-writer); printf(” 图书书 printf(” 图书分类 printf(” 出版社 printf(” 出版时间号 %snn

18、,p-shuhao);printf(”图书价格%snH,p-fenlei); %sn,p-chuba n);printf(Mchubantime);%.2fn,p-price);0倚。门俗)F);scanf(%dM,&a);if(a=0)printf(*请重新输入信息*nH); printf(“请输入书名:M);scanf(” s”,p n ame);printf(”请输入作者名:”); scanf (”s”,pwriter);printf(请输入书号:”);scanf(H%sn,p-shuhao);printf(H 请输入分类:”);scanf(M%sH,&p-fenlei);printf(

19、” 请输入出版社:”);scanf(n%sn,&p-chuban); printf(” 请输入出 版时间:”);scanf(%d,&p-chubantime);printf(” 请输入价格:”);scant(%fn,&p-price); p-type=news; printf(Mnn nnH);if(b=1) printf v没有您要修改的信息!nn);system(nPAUSEn);void show() 显示图书信息(struct fiJnfo *p=NULL; system(”cis”); for(p=head;p!=NULL;p=p-next)(printfC* 图书名称 %snH,p

20、-name); printf(H 图书作者 %snn,p-writer);printf(”图书书printf(” 图书分类号 %snn,p-shuhao);printfC*出版社 printf(n出版时间 printf(”图书价格%snn,p-fenlei); %sn” ,p-chuban); %dn”,p chubantime);%.2fnn,p-price);system(HPAUSEH);printf(void paixu() /按出版时间排序按出版时间排序如下struct fiJnfo *a1 OOO,*p,*p1 ,*temp; int i,k,index,n=0; char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;i next;for(k=0;kn-1 ;k+)in dex=k;for(i=k+1 ;ichubantimeai- chubantime) index=i;temp=ai ndex; ain dex=ak; ak=temp

温馨提示

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

评论

0/150

提交评论