C个人书籍管理系统的设计与实现_第1页
C个人书籍管理系统的设计与实现_第2页
C个人书籍管理系统的设计与实现_第3页
免费预览已结束,剩余18页可下载查看

下载本文档

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

文档简介

1、仅供个人参考数学与计算机学院C 程序设计课程设计报告年级2012学号11姓名刘怡然成绩专业电气实验地点B3-401指导教师许景山实验项目简单个人书籍管理系统的设计与实现实验日期2013年6月 23日不得用于商业用途仅供个人参考一、实验题目简单个人书籍管理系统的设计与实现二、实验目的、要求1、存储书籍各种相关信息。2、提供查找功能,按照多种关键码查找需要的书籍,查找成功后可以修改记录的相关项。For personal use only in study and research; not for commercial use3、提供排序功能,按照多种关键码对所有的书籍进行排序,例如按照购买日期进

2、行排序。4、其他辅助的维护工作。三、数据结构及算法描述1、使用 C+中的类来实现,其中有DATE 类和 Book 类,进行类的复合。数据均为私有数据。class DATEpublic:friend ostream & operator(istream &input, DATE &t);/友元函数重载流提取运算符public:DATE(int y=0,int m=0,int d=0);/初始化virtual DATE();DATE &operator=(DATE &);/ 重载时间等于运算符int operator (DATE &);/重载时间小于运算符int operator =(DATE &

3、);/重载时间等于判断运算符private:int year,month,day;-class Bookpublic:Book(int t,char *n,char *a,float p,int y,int m,int d);Book();virtual Book();int f_new();/新建书籍信息不得用于商业用途仅供个人参考int f_save();/保存书籍信息int f_open();/打开书籍信息int display();/显示书籍信息int e_delete();/删除书籍信息int e_update();/修改书籍信息int showInfo();/显示个别书籍信息int

4、 sort();/排序书籍信息Book &operator=(Book &);/ 重载等于运算符private:int type;/书籍类型char nameMAX;/书籍名称char authorMAX;/作者float price;/书籍价格DATE date;/购买日期;2、定义数组 Bookbooks200使用流提取、流插入方式进行数据读取和存储。3、在排序函数 int sort( )中使用冒泡算法排序:for(i=0;inum-1;i+)for(j=i+1;booksi.date 1000#pragma once#endif / _MSC_VER 1000#include class

5、 DATEpublic:friend ostream & operator(istream &input, DATE &t);/友元函数重载流提取运算符public:DATE(int y=0,int m=0,int d=0);/初始化virtual DATE();DATE &operator=(DATE &);/ 重载时间等于运算符int operator (DATE &);/重载时间小于运算符int operator =(DATE &);/重载时间等于判断运算符private:int year,month,day;#endif/ !defined(AFX_DATE_H_6B5CFDD0_60

6、A3_4347_853E_4B83FD47F383_INCLUDED_)-DATE.cpp:类 DATE 的实现不得用于商业用途仅供个人参考/ DATE.cpp: implementation of the DATE class./#include DATE.h/ Construction/Destruction/DATE:DATE(int y,int m,int d)year=y;month=m;day=d;DATE:DATE()ostream & operator0&t.month0&t.day31) outputt.year-t.month-t.dayendl;elseoutput日期错

7、误! (istream &input, DATE &t)inputt.yeart.montht.day;return input;不得用于商业用途仅供个人参考int DATE:operator (DATE &operand)if(yearoperand.year) return 0;else if(monthoperand.month) return 0;else if(day 1000不得用于商业用途仅供个人参考#pragma once#endif / _MSC_VER 1000#include #include fstream.h#include #include #include #in

8、clude DATE.h#define MAX 12class Bookpublic:Book(int t,char *n,char *a,float p,int y,int m,int d);Book();virtual Book();int f_new();/新建书籍信息int f_save();/保存书籍信息int f_open();/打开书籍信息int display();/显示书籍信息int e_delete();/删除书籍信息int e_update();/修改书籍信息int showInfo();/显示个别书籍信息int sort();/排序书籍信息Book &operator=

9、(Book &);/ 重载等于运算符private:int type;/书籍类型char nameMAX;/书籍名称char authorMAX;/作者float price;/书籍价格DATE date;/购买日期;#endif / !defined(AFX_BOOK_H_0541F24F_979E_4421_8EAC_1FD9_INCLUDED_)-不得用于商业用途仅供个人参考Book.cpp:类 Book 的实现/ Book.cpp: implementation of the Book class./#include Book.hBook books200;/定义 200 条数组int

10、 num=0;/初始化书籍信息条数零/ Construction/Destruction/Book:Book(int t,char *n,char *a,float p,int y,int m,int d):date(y,m,d)type=t;price=p;strncpy(name,n,MAX);nameMAX=0;strncpy(author,a,MAX);authorMAX=0;Book:Book()int Book:f_new()system(cls);cout1- 学 习 2- 名 著 3- 小 说 4- 散 文endlendlendl;coutbooksnum.type;print

11、f( 请输入书名: );gets();不得用于商业用途仅供个人参考printf( 请输入作者名: );gets(booksnum.author);coutbooksnum.price;coutbooksnum.date;num+;return 1;int Book:f_save()ofstream outFile(book.dat,ios:out|ios:binary);if(!outFile)cerrOpen file or create file error.endl;elseoutFilenum;outFile.write(char *)&books,sizeo

12、f(books);outFile.close();cout保存成功! num;if(num=0)cout没有记录!请先输入书籍信息。endl;system(pause);return 1;for(i=0;inum;i+)不得用于商业用途仅供个人参考infile.read(char *)&booksi,sizeof(books);infile.close();return 1;int Book:sort()char c;system(cls);printf(n-排序书籍信息 -nn);cout1- 按时间顺序排序 endl2- 按书名顺序排序 endl;c=getch();switch(c)ca

13、se1:system(cls);int i,j;Book ex;printf(n-时间顺序排序书籍信息 -nn);for(i=0;inum-1;i+)for(j=i+1;booksi.datebooksj.date|booksi.date=booksj.date;j+)ex=booksi;booksi=booksj;booksj=ex;for(i=0;inum-1;i+)booksi.showInfo();system(pause);return 1;return 1;不得用于商业用途仅供个人参考int Book:display()char *s;char *s1=学习 ;char *s2=名

14、著 ;char *s3= 小说 ;char *s4= 散文 ;char c;for(;)system(cls);cout1. 显示全部书籍信息。 endl;cout2. 显示指定类别书籍信息。endl;cout0. 返回上一层。 endl;c=getch();if(c=0)break;switch(c)case1:system(cls);printf(n-全部书籍列表 -nn);printf( 类型书名作者价格日期nn);for(int i=0;inum;i+)switch(booksi.type)case 1:s=new charstrlen(s1)+1;strcpy(s,s1);break

15、;case 2:s=new charstrlen(s2)+1;strcpy(s,s2);break;case 3:s=new charstrlen(s3)+1;strcpy(s,s3);不得用于商业用途仅供个人参考break;case 4:s=new charstrlen(s4)+1;strcpy(s,s4);break;printf(%-15s%-18s%-15s%-15.1f,s,name,author,price);coutdateendl;break;case2:system(cls);printf(n-书籍分类列表 -nn);for(int i=0;inum;i+)if(booksi

16、.type=1)cout学习类:booksi.authorendl;for(i=0;inum;i+)if(booksi.type=2)cout名著类:booksi.authorendl;for(i=0;inum;i+)if(booksi.type=3)cout小说类:booksi.authorendl;for(i=0;inum;i+)if(booksi.type=4)cout 散 文 类 : booksi.authorendl;system(pause);return 1;

17、int Book:showInfo()不得用于商业用途仅供个人参考char *s;char *s1=学习 ;char *s2=名著 ;char *s3= 小说 ;char *s4= 散文 ;switch(type)case 1:s=new charstrlen(s1)+1;strcpy(s,s1);break;case 2:s=new charstrlen(s2)+1;strcpy(s,s2);break;case 3:s=new charstrlen(s3)+1;strcpy(s,s3);break;case 4:s=new charstrlen(s4)+1;strcpy(s,s4);bre

18、ak;printf(%-15s%-18s%-15s%-15.1f,s,name,author,price);coutdateendl;return 1;int Book:e_delete()char c;char sMAX;system(cls);couts;for(int i=0;inum;i+)if(strcmp(s,)=0)printf(n-搜索书籍列表 -nn);不得用于商业用途仅供个人参考printf( 类型书名作者价格日期nn);booksi.showInfo();cout1- 删除并保存 endl2- 返回 endl;c=getch();switch(c)c

19、ase1:booksi=books200;num-;system(cls);cout删除成功! endl;system(pause);return 0;case 2:return 0;elsecout没有匹配的搜索对象 endl;system(pause);return 0;return 0;int Book:e_update()char c;char nMAX;Book ex;system(cls);coutn;for(int i=0;inum;i+)不得用于商业用途仅供个人参考if(strcmp(n,)=0)printf(n-搜索书籍列表 -nn);printf( 类

20、型书名作者价格日期nn);booksi.showInfo();cout1- 修改此书籍信息 endl2- 返回 endl;c=getch();switch(c)case1:printf(n-修改书籍信息 -nn);cout1- 学习 2- 名著 3- 小说 4- 散文endlendlendl;coutex.type;printf( 请输入修改后的书名: );gets();printf( 请输入修改后的作者名:);gets(ex.author);coutex.price;coutex.date;booksi=ex;cout修改成功! endl;system(pause);retur

21、n 1;case2:return 1;return 1;Book &Book:operator =(Book &right)type=right.type;strncpy(name,,MAX);不得用于商业用途仅供个人参考nameMAX=0;strncpy(author,right.author,MAX);authorMAX=0;price=right.price;date=right.date;return *this;-main.cpp:主函数#include Book.hint main()extern Book books200;extern num;char c;Book *mptr;mptr=&booksnum;for(;)system(cls);printf(n_);printf(n-| 个人书籍管理系统 |-);printf(nnnn);cout|- 按 0 键结束程序 -|endl;cout|- 按 1键添加书籍信息 -|endl;cou

温馨提示

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

评论

0/150

提交评论