问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

1、问题描述(功能要求) 要求设计的系统应具有如下功能 (1)借书。 (2)还书。 (3)图书维护:删除图

发布网友 发布时间:2022-05-27 04:44

我来回答

2个回答

热心网友 时间:2023-10-09 00:30

#include iostream
#include iomanip
#include string
#include fstream//输入/输出文件流类
using namespace std;
const int Maxr=100;//最多的读者
const int Maxb=100;//最多的图书
const int Maxbor=5;//每位读者最多借五本书
//读者类,实现对读者的信息的描述
class Reader
{
private:
int tag; //删除标记 1:已删 0:未删
int no; //读者编号
char name[10]; //读者姓名
int borbook[Maxbor];//所借图书
public:
Reader() {}
char *getname() {return name;} //获取姓名
int gettag() {return tag;} //获取删除标记
int getno() {return no;} //获取读者编号
void setname(char na[]) //设置姓名
{
strcpy(name,na);
}
void delbook(){ tag=1; }//设置删除标记 1:已删 0:未删
void addreader(int n,char *na)//增加读者
{
tag=0;
no=n;
strcpy(name,na);
for(int i=0;iMaxbor;i++)
borbook[i]=0;
}
void borrowbook(int bookid)//借书操作
{
for(int i=0;iMaxbor;i++)
{
if (borbook[i]==0)
{
borbook[i]=bookid;
return;
}
}
}
int retbook(int bookid)//还书操作
{
for(int i=0;iMaxbor;i++)
{
if(borbook[i]==bookid)
{
borbook[i]=0;
return 1;
}
}
return 0;
}
void disp()//读出读者信息
{
cout setw(5) no setw(10) name"借书编号:[";
for(int i=0;iMaxbor;i++)
if(borbook[i]!=0)
cout borbook[i] "|";
cout "]"endl;
}
};
//读者类库,实现建立读者的个人资料
class RDatabase
{
private:
int top; //读者记录指针
Reader read[Maxr];//读者记录
public:
RDatabase() //构造函数,将reader.txt读到read[]中
{
Reader s;
top=-1;
fstream file("reader.txt",ios::in);//打开一个输入文件
while (1)
{
file.read((char *)s,sizeof(s));
if (!file)break;
top++;
read[top]=s;
}
file.close(); //关闭 reader.txt
}
void clear()//删除所有读者信息
{
top=-1;
}
int addreader(int n,char *na)//添加读者时先查找是否存在
{
Reader *p=query(n);
if (p==NULL)
{
top++;
read[top].addreader(n,na);
return 1;
}
return 0;
}
Reader *query(int readerid)//按编号查找
{
for (int i=0;i=top;i++)
if (read[i].getno()==readerid
read[i].gettag()==0)
{
return read[i];
}
return NULL;
}
void disp() //输出所有读者信息
{
for (int i=0;i=top;i++)
read[i].disp();
}
void readerdata();//读者库维护
~RDatabase() //析构函数,将read[]写到reader.txt文件中
{
fstream file("reader.txt",ios::out);
for (int i=0;i=top;i++)
if (read[i].gettag()==0)
file.write((char *)read[i],sizeof(read[i]));
file.close();
}
};
void RDatabase::readerdata()
{
char choice;
char rname[20];
int readerid;
Reader *r;
while (choice!='0')
{
cout "\n\n\t\t\t读 者 维 护\n\n\n\t\t 1 新 增\n\n\t\t 2 更 改\n\n\t\t 3 删 除\n\n\t\t 4 查 找\n\n\t\t 5 显 示\n\n\t\t 6 全 删\n\n\t\t 0 退 出"endl;
cin choice;
switch (choice)
{
case '1':
cout "输入读者编号:";
cin readerid;
cout "输入读者姓名:";
cin rname;
addreader (readerid,rname);
break;
case '2':
cout "输入读者编号:";
cin readerid;
r=query(readerid);
if (r==NULL)
{
cout " 该读者不存在 "endl;
break;
}
cout "输入新的姓名:";
cin rname;
r-setname(rname);
break;
case '3':
cout " 输入读者编号:";
cin readerid;
r=query(readerid);
if (r==NULL)
{
cout " 该读者不存在" endl;
break;
}
r-delbook();
break;
case '4':
cout "读入读者编号:";
cin readerid;
r=query(readerid);
if (r==NULL)
{
cout "该读者不存在" endl;
break;
}
r-disp();
break;
case '5':
disp();
break;
case '6':
clear();
break;
default:cout"输入错误,请从新输入:";break;
}
}
}
//图书类,实现对图书的描述,图书的编号,书名,借出,还入等
class Book
{
private:
int tag;//删除标记 1:已删 0:未删
int no;//图书编号
char name[20];//书名
int onshelf;//是否再架 1:再架 2:已借
public:
Book(){}
char *getname() { return name; }//获取姓名
int getno(){ return no; }//获取图书编号
int gettag(){ return tag; }//获取删除标记
void setname(char na[])//设置书名
{
strcpy(name,na);
}
void delbook(){ tag=1;}//删除图书
void addbook(int n,char *na)//增加图书
{
tag=0;
no=n;
strcpy(name,na);
onshelf=1;
}
int borrowbook()//借书操作
{
if (onshelf==1)
{
onshelf=0;
return 1;
}
return 0;
}
void retbook()//还书操作
{
onshelf=1;
}
void disp()//输出图书
{
cout setw(6) no setw(18) name setw(10)
(onshelf==1? "在架":"已借") endl;
}
};
//图书库类,实现对图书的维护,查找,删除等
class BDatabase
{
private:
int top; //图*录指针
Book book[Maxb]; //图*录
public:
BDatabase()//构造函数,将book.txt读到book[]中
{
Book b;
top=-1;
fstream file("book.txt",ios::in);
while (1)
{
file.read((char *)b,sizeof(b));
if (!file) break;
top++;
book[top]=b;
}
file.close();
}
void clear()//全删
{
top=-1;
}
int addbook(int n,char *na)//增加图书
{
Book *p=query(n);
if (NULL==p)
{
top++;
book[top].addbook(n,na);
return 1;
}
return 0;
}
Book *query(int bookid)//查找图书
{
for (int i=0;i=top;i++)
if (book[i].getno()==bookid book[i].gettag()==0)
{
return book[i];
}
return NULL;
}
void bookdata();//图书库维护
void disp()
{
for (int i=0;i=top;i++)
if (book[i].gettag()==0)
book[i].disp();
}
~BDatabase()//析构函数,将book[]写到book.txt文件中
{
fstream file("book.txt",ios::out);
for (int i=0;i=top;i++)
if (book[i].gettag()==0)
file.write((char *)book[i],sizeof(book[i]));
file.close();
}
};
void BDatabase::bookdata()
{
char choice;
char bname[40];
int bookid;
Book *b;
while (choice!='0')
{
cout "\n\n\n\t\t\t图 书 维 护 "endlendl;
cout"\t\t1 新 增\n \t\t2 更 改\n\t\t3 删 除\n\t\t4 查 找\n\t\t5 显 示\n\t\t6 全 删\n\t\t0 退 出"endl;
cin choice;
switch (choice)
{
case '1':
cout "输入图书编号:"endl;
cin bookid;
cout "输入图书书名:"endl;
cin bname;
addbook(bookid,bname);
break;
case '2':
cout "输入图书编号:"endl;
cin bookid;
b=query(bookid);
if (b==NULL)
{
cout " 该图书不存在 "endl;
break;
}
cout "输入新的书名:"endl;
cin bname;
b-setname(bname);
break;
case '3':
cout " 读入图书编号:"endl;
cin bookid;
b=query(bookid);
if (b==NULL)
{
cout " 该图书不存在" endl;
break;
}
b-delbook();
break;
case '4':
cout " 读入图书编号:"endl;
cin bookid;
b=query(bookid);
if (b==NULL)
{
cout " 该图书不存在" endl;
break;
}
b-disp();
break;
case '5':
disp();
break;
case '6':
clear();
break;
default:cout"输入错误,请从新输入:";
}
}
}
//main() 函数的实现,程序的主界面的引导
void main()
{
char choice;
int bookid,readerid;
RDatabase ReaderDB;
Reader *r;
BDatabase BookDB;
Book *b;
while(choice!='0')
{
cout endlendl"\t\t\t 图 书 管 理 系 统\n\n\n";
cout "\t\t\t1 借 书\n\n\t\t\t2 还 书 \n\n\t\t\t3 图 书 维 护\n\n\t\t\t4 读 者 维 护\n\n\t\t\t0 离 开"endl;
cin choice;
switch (choice)
{
case '1':
cout " 借书 读者编号:";
cin readerid;
cout " 图书编号: ";
cin bookid;
r=ReaderDB.query(readerid);//按编号查找
if (NULL==r)
{
cout " 不存在该读者,不能借书" endl;
break;
}
b=BookDB.query(bookid);
if (b==NULL)
{
cout " 不存在该图书,不能借书" endl;
break;
}
if (b-borrowbook()==0)
{
cout " 该图书已借出,不能借书" endl;
break;
}
r-borrowbook(b-getno());
break;
case '2':
cout"还书\n 读者编号:";
cin readerid;
cout " 图书编号:";
cin bookid;
r=ReaderDB.query(readerid);
if (r==NULL)
{
cout " 不存在该读者,不能还书" endl;
break;
}
b=BookDB.query(bookid);
if (b==NULL)
{
cout " 不存在该图书,不能还书" endl;
break;
}
b-retbook();
r-retbook(b-getno());
break;
case '3':
BookDB.bookdata();
break;
case '4':
ReaderDB.readerdata();
break;
default:cout"输入错误,请从新输入:";
}
}
}

热心网友 时间:2023-10-09 00:30

机械制图习题集(多学时)金书网抢先发售中!

内容简介:
本习题集是在原中等职业教育国家规划教材配套用书《机械制图习题集(机械类)》第2版的基础上,根据教育部颁布、2010年实施的中等职业学校《机械制图教学大纲》(多学时)的基本要求,按最新机械制图国家标准修订而成。与金大鹰主编的教材《机械制图(多学时)》第3版配套使用。
本习题集共十一章,前九章为必修内容,后两章为选学内容。习题集中的内容丰富,图形清晰、秀美。凡教材中的内容均有习题相伴,题型多、寓意深、角度新。习题有一定余量,为教师选用、学生选作提供了方便。此外,在零件图、装配图部分还编排了一些难度较大的看图题,并附有立体图,供学生自行选读。
本习题集适用于中等职业学校(普通中专、职业高中、技工学校、职工中专等)机械类(或近机械类)各专业的制图教学,也可供职工培训使用或参考。

前言
本习题集是在原中等职业教育国家规划教材配套用书《机械制图习题集(机械类)第2版的基础上,根据教育部颁布、2010年实施的中等职业学校《机械制图教学大纲 (多学时)的基本要求,按最新机械制图国家标准修订而成。与全大鹰主编的教材《机械制图(多学时)》第3版配套使用。
本习题集共十一章,分为三个模块:①基础模块前九章(学生的必修内容和应达到的基本要求);②选学模块后两幸(供各校根据专业培养的实际需要自主选择);③综合实践模块以零部件测绘为主(应在必修、选学内容教学结束后,专用一周时间集中进行)。本习题集具有如下特点:
1.突出了对学生看图和画图能力的培养。自投影作图起,即将二者揉在一起,步步相随。尤其为了突破看图难关,从点、直线、平面的投影开始,即以其轴测图为媒介,以识读一面视图为手段,加强投影的可逆性训练,逐步引导学生走上正确的看图之路。进而,通过适时引入的形体分析法和线面分析法及试作层次渐进的习题,力求使学生把握开启画图、看图之门的两把钥匙,使其能力的培养得到强化。
2.内容丰富。凡教材中的重点内容均有习题相伴,题型多、寓意深、角度新,且具有典型性。除供理解、消化、巩固知识的基本题外,又设计了一些开发智能的趣味题。需要说明的是,看图和画图能力的提高关键在"练"。为此,本习题集中安排的习题较多。但并非要求都做,教师完全可以根据教学情况进行取舍(纽合体及其之前的习题应多作些,并多用些学时演练)。此外,习题集中还有一些难度较大的"看图选作题",并附有答案或立体图,这是为那些学有余力的学生再提高而安排的自学题,它不属于本课程的教学范畴。
3.为了加强对学生绘制苹图能力的训练,习题集中设计了一些网格纸,以引导学生初步掌握徒手画图的技能,但这是远远不够的,只有在教学中不断坚持训练才能奏效。
4.习题集中的图形准确、清晰、秀美,利于看图、方便画图,可提高学习效果。
本习题集适用于中等专业学校、职业高中、技工学校等各专业多学时的制图教学,也可供其他相近专业使用或参考。参加本习题集修订工作的有:金大鹰、刘宇、高鹏、刘春兰、李丽、高鑫,由全大鹰担任主编。

编者2010年2月
图书在版编目(CIP)数据
书名:机械制图习题集:多学时(第3版)
丛书:中等职业教育国家规划教材配套用书
作者:金大鹰主编
出版社:机械工业出版社,
中等职业教育国家规划教材配套用书
标准书号:ISBN 978-7-111-31536-0
定价:19.00元

目录
第3版前言
一、制图的基本知识和技能1
二、投影基础15
三、轴测图42
四、立体的表面交线48
五、组合体55
六、机件的表达方法78
七、常用零件的特殊表示法99
八、零件图110
九、装配图129
十、第三角画法139
十一、其他图样142
附录选作题答案149
http://www.golden-book.com/booksinfo/13/1373781.html
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小白开始做牛腩烧番茄前,应该做哪些准备? 普洱茶不管是纯料还是拼配它本身就很有意思 普洱茶的纯料VS拼配,谁更值得珍藏? 为什么我们听到熟悉的歌曲的音乐会感觉在唱歌词呢? abs制动防抱死系统什么时候用到 请问有谁知道离朝阳北路的煊特嘉园(炫特区)最近的浩沙健身俱乐部在哪 ... 朝阳北苑郊野公园有哪些 北苑哪些公园 北京北苑健身有哪些 王者荣耀黄忠开大怎么转圈 下列表示图书借阅的流程正确的是(  ) A.入库 阅览 借书 找书 出库 还书 B.入库 找书 领取后该书将放入你的书架 对下列三种图形,正确的表述为(  )A.它们都是流程图B.它们都是结构图C.(1)、(2)是流程图,(3 紧急求助!图书馆借书还书流程图 梦见最爱的男人说给她妻子离婚 已婚男人为什么叫情人骂自己的老婆 做梦梦见喜欢自己的男人跟他老婆陷害自己 梦见两个男人和自己的老婆在床上吵架是什么意思 港币1998年的五十元硬币现在值多少钱 梦见河里水不停地上涨,努力向山上跑,洪水涨得要淹没大山,我向山上跑, 最后洪水还是没有淹没我! 怎么办?怎么样去痘印,脸上长痘痘可能是因为喝咖啡造成的,喝咖啡会不会消除黑眼圈?? 喝咖啡会长黑眼圈吗?咖啡喝多了对身体有那些影响?大神们帮帮忙 我在微商上面买东西然后电话弄错了,快递到了,云柜打不开,怎么办啊 用循证医学的证据告诉你喝咖啡的N大好处 喝咖啡的小孩儿怎么能去掉黑眼圈 我发现我被微商骗了,但是我支付了一半的钱,货也给我发了,剩下一半不想给他了,我会被投诉吗? 我跟一个微商买东西,付款后,第二天,他没说什么理由,就要把我的快递截回,怎么办 ? (圆 我去微商那买东西,送去中山,但他写错地址,写成了珠海,我让他帮忙改,他答应改了,可是那会快递已经发 315投诉是工商部门还是消协你好,我去年是做微商的,上级把货给我发过来,结果货是假的,我该怎么办? 我在微商那买东西,地址错了但快递已签收,短信电话也没有,打电话给派送员说查不到物流信息说假的物流信? 江西师范大学图书馆的服务指南 在app store里下载软件充钱后打苹果客服为什么钱可以退了 旋转式刷牙法的介绍 卡扣式键盘如何拆? 2016年离婚协议书版本 离婚协议书2016的 推荐一下1500元以下的手机 2016年云龙区离婚协议书是什么样的 oppovivo手机系统是不是经过优化?对啊,处理器很低当。可是系统优化的和中高档处理器没什么痒样 oppoa53手机好吗 工伤鉴定由谁申请 谁可以申请工伤伤残鉴定? 工伤伤残鉴定申请向谁提出 我在windows7中文版上安装sql server2005中文开发版,但是sql的sp4补丁就是装不上去,安装失败,怎么办 工伤认定书拿到后,还要做工伤伤残等级鉴定,是单位申请还是个人申请啊?谁申请有区别吗? 广元市苍溪县繁华地段那里有门面出租 工伤认定由谁来申请 为什么Win7系统32位安装SQLServer2000的sp4补丁总是停留在“安装程序正在为升级进程对服务器进行初始化” 苍溪找找网倒闭了吗?怎么不能使用了? 我今年大学毕业,刚考过司法考试C证,想回苍溪找个律师事务所工作,不知道苍溪律师行业发展怎么样?