明天要交,能写完的,我追加200分

kingteng 2009-01-12 11:19:48
图书的详细信息应存储在一个名为 book.dat 的文件中,该文件应包含下列详细信息:

 代码(从 1 开始按顺序编码);
 名称(最多 30 个字符);
 出版商的名字(最多 30 个字符);
 作者的名字(最多 30 个字符);
 出版日期;
 价格;
 可用性状态(“A”代表可借阅,“I”代表已被借阅);

期刊的详细信息应存储在一个名为 periodical.dat 的文件中,该文件应包含下列详细信息:

 代码(从 1 开始按顺序编码);
 名称(最多 30 个字符);
 出版商的名字(最多 30 个字符);
 周期(“F”代表两周,“M”代表一个月,“S”代表六个月,“Y”代表一年);

每种期刊每一期的详细信息应保存在一个名为 issue.dat 的文件中,该文件应包含下列详细信息:

 期刊代码;
 发行期数;
 发行日期;
 价格;
 可用性状态(“A”代表可借阅,“I”代表已被借阅);

资料库管理系统应以下列菜单开始:

LIBRARY MANAGEMENT SYSTEM

1. Add new Book details
2. Add new Periodical details
3. Record Issue/Return details
4. Delete old Periodical Issue details
5. View Available Books/Periodicals
6. Exit

Enter choice:
根据用户的选择,将执行下列操作:

 Add new Book details(添加新书的详细信息)

通过访问 book.dat 文件中最后一本书的代码并将其加 1 生成新图书代码,接受图书的详细信息,确保书名、出版商名及作者名不为空,接受出版日期,确认书的价格大于 0,书的可用性状态不应接受,而应设为“A”,将记录保存到 book.dat 文件中。
 Add new Periodical details(添加新期刊的详细信息)

询问用户是添加新期刊详细信息还是添加期刊的新一期的详细信息,根据用户的输入,执行下列任务:

• 新期刊:通过访问 periodical.dat 文件中最后一种期刊的代码并将其加 1 生成新期刊代码,接受新期刊的详细信息,确保期刊的名称和出版商的名字不为空,确认输入的周期是有效值,将记录保存到 periodical.dat 文件中。

• 新一期:接受期刊代码,并确保 periodical.dat 文件中存在该代码,接受发行期数,并确认 issue.dat 文件中不存在该期的详细信息,接收发行日期,确认该期的价格大于 0,该期的可用性状态不应被接受,而应设为“A”,将记录保存到 issue.dat 文件中。

添加期刊新一期详细信息的屏幕如图 4 所示,其中,必须输入特定期刊的发行期数、日期和价格,例如,假设接受一个名为“Oracle 杂志”的月刊,从一月开始,则可以输入 1 作为一月份的发行期数,该期刊二月份的发行期数为 2 ,依次类推。 Record Issue/Return details(记录借阅/归还的详细信息)

接受用户的事务类型,询问用户本次事务是关于图书还是关于期刊的某一期,根据事务的类型,更新该图书或该期期刊的可用性状态,如果事务类型是“Issue”,则状态应设置为“I”,如果类型是“Return”,则状态应设置为“A”。

 Delete old Periodical Issue details(删除旧期刊某一期的详细信息)

接受期刊代码和发行期数,从 issue.dat 文件中删除所有小于输入的发行期数的那些期的记录。
 View Available Books/Periodicals(查看可用的图书/期刊)

询问用户要查看图书还是期刊的详细信息,根据用户的输入,显示可用图书或期刊各期的清单。

 Exit(退出)

关闭程序,并退出资料库管理系统。

应在整个系统中应用面向对象编程的概念,在系统的所有功能点处显示相应的消息。

第四部分:对应的知识点

一:高级函数特性

显示菜单并接受选项,根据输入的选项,调用函数以显示相应的消息,告知用户所选择的选项。

二:流

为图书、期刊和期刊的某一期创建类,接受并显示每一个类的数据。

三:文件操作和异常

根据菜单选项创建函数,调用函数来添加图书、添加期刊,并执行借出和归还、删除和查看等操作。

新书将添加到 book.dat 文件中,新期刊将被写入 periodical.dat 文件,而期刊各期的详细信息将存储在 issue.dat 文件中。

使用文件输入/输出流 (fstream) 函数来执行下列操作:

- open 打开文件;
- close 关闭文件;
- seekg 设置 get 指针的位置;
- write 将字符序列写入文件;
- read 读取数据块;

四:多态

将图书和期刊类的公共元素合并到基类中,适当地修改图书类和期刊类的数据项和函数来继承基类。
...全文
111 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wolf0403 2009-01-12
  • 打赏
  • 举报
回复
不点评了,直接锁。
flydream1980 2009-01-12
  • 打赏
  • 举报
回复
顶1楼说的好啊
waizqfor 2009-01-12
  • 打赏
  • 举报
回复
so so long 啊 这么长的说明 看来这题也不能太难 课程设计题 LZ把class定义好 然后写几个调用函数就行了
不太想写这样程序 LS说得有道理 把代码给你了 等于害你
arong1234 2009-01-12
  • 打赏
  • 举报
回复
分不是万能的,不要把这种东西当作“交易”的对象,作业是只有无聊的人才帮你做的

这样对你自己页没好处,有机会学习,就认真一点,否则找工作时就苦了

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧