




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、- - 1.题目小型图书信息管理系统的设计与实现2.功能(1)每一条记录包括一本图书的书名、 isbn 、作者、出版社、定价、出版日期和数量。(2)输入功能:可以一次完成无数条记录的输入。(3)显示功能:完成全部图书信息的显示。(4)查找功能:完成按书名查找图书信息,并显示。(5)排序功能:按图书价格进行排序。(6)插入功能:按图书价格高低插入一条图书信息。(7)保存功能:将图书信息保存在任何自定义的文件中,如保存在:c:book。(8)读取功能:将保存在文件中的图书信息读取出来。(9)有一个清晰美观界面来调用各个功能3.要求(1)整个系统均用c语言实现;(2)利用指针、链表来实现学生成绩的数
2、据结构设计;(3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将图书信息保存在文件中。(6)可以将图书信息从文件中读取出来。4.源程序#include #include #include #include #include #define ll sizeof(book_type) int maininterface(); void infor_input(); void refer(); void refer_1(); void refer_2(); void modify(); void delete(); void
3、 findbook(); void findbook1(); void findbook2(); void devise(); - - void main() int a=0; do a=maininterface(); switch(a) case 1:system(cls);infor_input();break; case 2:system(cls);refer();break; case 3:system(cls);modify();break; case 4:system(cls);delete();break; case 5:exit(0); default:system(cls)
4、;printf(nnnnttt无此操作,请按任意键返回:n);getch();system(cls); while(a!=6); int maininterface() int n; printf(nnntt-小型图书登记管理系统-n); printf(ntttt1:n); printf(ntttt2:n); printf(ntttt3:n); printf(ntttt4:n); printf(ntttt5:n); printf(nttt请输入 1-5,其他输入非法!n); scanf(%d,&n); return n; typedef struct int month; int da
5、y; int year; dates; dates day; typedef struct books char bookname50; char isbn50; - - char author50; char publisher50; float money; dates day; int count; struct books *next; book_type; book_type ts; struct books *head = null; void infor_input() file *fp; int n=0; book_type ts; printf(-图书资料基本信息录入-n);
6、 do printf( 请输入书名 n); scanf(%s,ts.bookname); printf( 请输入 isbnn); 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); prin
7、tf( 请输入数量 n); scanf(%d,&ts.count); printf(nttt请选择 (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
8、); printf( 请选择 (1:返回主界面 t2:输入另一本图书信息t0:退出系统 ):n); scanf(%d,&n); switch(n) case 1:system(cls);break; case 2:system(cls);infor_input();break; case 0:break; default:printf( 无此操作 ,按任意键返回n);getch();system(cls);break; void refer() int n; printf(1:n); printf(2:n); printf(3:n); printf(4:n); printf(5:n);
9、 printf(0:n); printf( 请输入 0-5,其他输入非法!n); scanf(%d,&n); switch(n) case 1:system(cls);findbook();break; case 2:system(cls);findbook1();break; case 3:system(cls);findbook2();break; case 4:system(cls);refer_1();break; case 5:system(cls);refer_2();break; case 0:system(cls);break; default:printf( 无此操作
10、 n);break; struct books *read_1() file *fp; struct books *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); return head; void refer_1() struct books
11、 *head,*p,*d; struct books *read_1(); int total=0; head=read_1(); for(p=head;p-next!=null;d=p,p=p-next,free(d) total=total+p-count; printf( 书籍总数 :%dn,total); printf( 按任意键返回);getch();system(cls); void refer_2() int num=0; struct books *head,*p1,*p2; struct books *read_1(); float total=0,average=0; he
12、ad=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( 书籍总金额 :%.2fn,total); printf( 书籍平均价格 :%.2fn,average); printf( 按任意键返回);getch();system(cls); void findbook() file *fp; char isbn50; int i; fp=fopen(book.txt,r
13、); 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 %dn 按任 意键 返回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); v
14、oid findbook1() file *fp; char publisher50; int i; fp=fopen(book.txt,r); printf( 请输入书的publishern); 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 %dn 按任 意键 返回n,ts.bookname,ts.isbn,ts.author,ts.publisher,t
15、s.money,ts.day.month,ts.day.day,ts.day.year,ts.count); printf( 没有你所需要的书籍); fclose(fp); void findbook2() - - file *fp; char bookname50; int i; fp=fopen(book.txt,r); printf( 请输入书的booknamen); scanf(%s,bookname); for(i=0;fread(&ts,ll,1,fp)!=0;i+) if(strcmp(bookname,ts.bookname)=0) printf( 这 本 书的 详细资
16、料为 : %s %s %s %s %f %d/%d/%d %dn 按任 意键 返回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); void delete() struct books *p1, *p2; char isbn50; int e=0; if(head = null) printf( 无书籍记录 ); return; printf( 请输入您要删除的书籍的isbn:n)
17、; 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; else p2-next = p1-next; free(p1); - - e-; else printf( 没有该书籍记录,请核对!n); void modify() struct books *p1, *p2; char isbn50; if(head = null) printf( 无书籍记录!n);
18、 return; printf( 请输入您要修改的书籍的isbnn :); scanf(%s,isbn); p1 = head; while(isbn != p1-isbn & p1-next != null) p2 = p1; p1 = p1-next; if(isbn = p1-isbn) devise(p1); else printf( 没有该学生记录,请核对!n); void devise(struct books *p) int choice; choice = -1; do printf( 请选择您要修改的书籍的信息内容:n); printf(+-+n); printf(|
19、 书名请按1 |n); printf(| isbn 请按2 |n); printf(| 作者请按3 |n); - - printf(| 出版社请按4 |n); printf(| 定价请按5 |n); printf(| 出版日期请按6 |n); printf(| 数量请按7 |n); printf(| 取消请按0 |n); printf(+-+n); printf( 请输入您的选择:); scanf(%d, &choice); switch(choice) case 0: return; case 1: printf( 请输入新书名:); scanf(%s, p-bookname); break; case 2: printf( 请输入新isbn:); scanf(%s, &p-isbn); break; case 3: printf( 请输入新作者:); scanf(%s, p-author); break; case 4: printf( 请输入新出版社:); scanf(%s, p-publisher)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年制药工程专业考试试卷及答案
- 2025年现代语言学考试题及答案
- 2025年信息与计算机科学考试试卷及答案
- 2025年戏剧文学与创作课程考试试题及答案
- 2025年社会心理学研究方法测试卷及答案
- 2025年武术与健身课程考试试题及答案
- 2025年物流管理考试卷及答案
- 2025年海洋科学基础课程考试试题及答案
- 2025年财务报表分析考题及答案
- 合同协议书范本模板图片
- 雨水泵站专项施工方案
- 抗生素分级管理规范
- T-PAYS 002-2024 磐安药膳制作技术规程
- 牛场安全培训
- 脑电图及临床应用
- 新《城镇燃气设施运行、维护和抢修安全技术规程》考试题库(含答案)
- 第八单元常见的酸、碱、盐基础练习题-+2024-2025学年九年级化学科粤版(2024)下册
- 2025年广西物流职业技术学院单招职业技能测试题库带答案
- 万科物业绿化养护管理手册
- 卡车充换电站建议书可行性研究报告备案
- 第十二周《遇见劳动之美点亮成长底色》主题班会
评论
0/150
提交评论