收藏 分销(赏)

C个人书籍标准管理系统的设计和实现.doc

上传人:w****g 文档编号:3031526 上传时间:2024-06-13 格式:DOC 页数:24 大小:116.54KB
下载 相关 举报
C个人书籍标准管理系统的设计和实现.doc_第1页
第1页 / 共24页
C个人书籍标准管理系统的设计和实现.doc_第2页
第2页 / 共24页
C个人书籍标准管理系统的设计和实现.doc_第3页
第3页 / 共24页
C个人书籍标准管理系统的设计和实现.doc_第4页
第4页 / 共24页
C个人书籍标准管理系统的设计和实现.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、数学和计算机学院 C程序设计 课程设计汇报年级 学号 110911 姓名 刘怡然 成绩 专业 电气 试验地点 B3-401 指导老师 许景山 试验项目 简单个人书籍管理系统设计和实现 试验日期 6月23日 一、 试验题目 简单个人书籍管理系统设计和实现二、 试验目标、要求 1、存放书籍多种相关信息。2、提供查找功效,根据多个关键码查找需要书籍,查找成功后能够修改统计相关项。3、提供排序功效,根据多个关键码对全部书籍进行排序,比如根据购置日期进行排序。4、其它辅助维护工作。三、 数据结构及算法描述 1、使用C+中类来实现,其中有DATE类和Book类,进行类复合。数据均为私有数据。class D

2、ATE public: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;-class Book public:Book(int t,char *

3、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=(Book &); /重载等于运算符private:int type; /书籍类型char nameM

4、AX; /书籍名称char authorMAX; /作者float price; /书籍价格DATE date; /购置日期; 2、定义数组Book books200使用流提取、流插入方法进行数据读取和存放。 3、在排序函数int sort( )中使用冒泡算法排序:for(i=0;inum-1;i+)for(j=i+1;booksi.date 1000#pragma once#endif / _MSC_VER 1000#include class DATE public:friend ostream & operator(istream &input, DATE &t); /友元函数重载流提取

5、运算符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_60A3_4347_853E_4B83FD47F383_INCLUDED_)-DATE.cpp:类DATE实现/ DATE.cpp: impl

6、ementation 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日期错误!(istream &input, DATE &t)inputt.yeart.montht.day;return input;int DATE:operator (DATE

7、 &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 #include DATE.h#define MAX 12class Book public:Book(int t,char *n,char *a,float p,int y,int m,int d);Book();virtual Boo

8、k();int f_new(); /新建书籍信息int f_save(); /保留书籍信息 int f_open(); /打开书籍信息int display(); /显示书籍信息int e_delete(); /删除书籍信息int e_update(); /修改书籍信息int showInfo(); /显示部分书籍信息int sort(); /排序书籍信息Book &operator=(Book &); /重载等于运算符private:int type; /书籍类型char nameMAX; /书籍名称char authorMAX; /作者float price; /书籍价格DATE date

9、; /购置日期;#endif / !defined(AFX_BOOK_H_0541F24F_979E_4421_8EAC_FD9_INCLUDED_)-Book.cpp:类Book实现/ Book.cpp: implementation of the Book class./#include Book.hBook books200; /定义200条数组int 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

10、=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;printf(请输入书名:);gets(booksnum.name);printf(请输入作者名:);gets(booksnum.author);coutbooksnum.price;coutbooksnum.date;num+;return 1;int Boo

11、k:f_save()ofstream outFile(book.dat,ios:out|ios:binary);if(!outFile)cerrOpen file or create file error.endl;elseoutFilenum;outFile.write(char *)&books,sizeof(books);outFile.close();cout保留成功!num;if(num=0)cout没有统计!请先输入书籍信息。endl;system(pause);return 1;for(i=0;inum;i+)infile.read(char *)&booksi,sizeof(b

12、ooks);infile.close();return 1;int Book:sort()char c;system(cls); printf(n-排序书籍信息-nn); cout1-按时间次序排序endl2-按书名次序排序endl;c=getch();switch(c)case1: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;book

13、sj=ex;for(i=0;inum-1;i+)booksi.showInfo();system(pause);return 1;return 1;int Book:display()char *s;char *s1=学习;char *s2=名著;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-全部书

14、籍列表-nn); printf(类型 书名 作者 价格 日期nn); for(int i=0;inum;i+) switch(booksi.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); break; printf(%-15s

15、%-18s%-15s%-15.1f,s,name,author,price);coutdateendl; break;case2:system(cls);printf(n-书籍分类列表-nn);for(int i=0;inum;i+)if(booksi.type=1)cout学习类:endlbooksi.name booksi.authorendl;for(i=0;inum;i+)if(booksi.type=2)cout名著类:endlbooksi.name booksi.authorendl;for(i=0;inum;i+)if(booksi.type=3)cout小说类:endlbook

16、si.name booksi.authorendl;for(i=0;inum;i+)if(booksi.type=4)cout散文类:endlbooksi.name booksi.authorendl;system(pause);return 1;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,s

17、2); 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;return 1;int Book:e_delete()char c;char sMAX;system(cls);couts;for(int i=0;inum;i+)if(strcmp(s,booksi.name)=0)printf(n-搜索书籍列表-n

18、n);printf(类型 书名 作者 价格 日期nn);booksi.showInfo(); cout1-删除并保留endl2-返回endl;c=getch(); switch(c) case1: 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);

19、coutn;for(int i=0;inum;i+)if(strcmp(n,booksi.name)=0)printf(n-搜索书籍列表-nn);printf(类型 书名 作者 价格 日期nn);booksi.showInfo();cout1-修改此书籍信息endl2-返回endl;c=getch();switch(c)case1:printf(n-修改书籍信息-nn);cout1-学习 2-名著 3-小说 4-散文endlendlendl; coutex.type; printf(请输入修改后书名:);gets(ex.name); printf(请输入修改后作者名:);gets(ex.aut

20、hor); coutex.price; coutex.date;booksi=ex;cout修改成功!endl;system(pause);return 1;case2:return 1;return 1;Book &Book:operator =(Book &right)type=right.type;strncpy(name,right.name,MAX);nameMAX=0;strncpy(author,right.author,MAX);authorMAX=0;price=right.price;date=right.date;return *this;-main.cpp:主函数#in

21、clude Book.hint main()extern Book books200;extern num;char c;Book *mptr;mptr=&booksnum;for(;)system(cls);printf(n _ );printf(n -|个人书籍管理系统|-);printf(n nnn);cout |-按0键结束程序-|endl;cout |-按1键添加书籍信息-|endl;cout |-按2键显示书籍信息-|endl;cout |-按3键删除书籍信息-|endl;cout |-按4键修改书籍信息-|endl;cout |-按5键排列书籍信息-|endl;cout 电气七班 刘怡然f_open();mptr-f_new();mptr-f_save();break;case 2:mptr-f_open(); mptr-display();break;case 3:mptr-f_open(); mptr-e_delete(); mptr-f_save(); break;case 4:mptr-f_open();mptr-e_update();mptr-f_save();break;case 5:mptr-f_open();mptr-sort();break;return 1;六、程序测试主界面:全部书籍列表: 修改书籍:时间次序排序书籍信息:

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服