当前位置: 首页 > article >正文

西南科技大学C++实验作业3——容器使用和文件输入输出流

目录

一、实验效果预览

​二、实验要求

三、实验代码

文件目录

book.h

borrow.h

library.h

resource.h

student.h

book.cpp

borrow.cpp

library.cpp

resource.cpp

student.cpp

main.cpp


一、实验效果预览

二、实验要求

作业3:容器使用与文件输入输出流

目 的:

1) 巩固类的定义,成员变量、成员方法的定义;

2) 巩固类的对象的定义,对象对成员变量、成员方法的访问;

3) 掌握类的继承和派生的使用;

4) 掌握多态的应用(尤其是虚函数多态)。

5) 实现一个合理的操作符重载(可选)。

6) 会使用一个容器类型。

7) 能够对数据进行文件的读写。

要 求:

1)认真阅读实验指导书实验五和实验六内容,单人完成;

2)依据自己之前作业2所选参考,不得进行更换。即延续作业2所选参考,保留作业1组合或依赖关系,进一步进行扩展优化 ,加入STL的使用和文件输入输出流。

3)提交材料包括:对分易上提交作业源码(把.h和.cpp文件压缩成一个压缩包上传)与文档作业。

题目1:几何图形的计算

将第二次作业的基础上增加对STL和文件输入输出流的运用。STL运用可选择vector来组织多个几何题目对象,考虑设计基类指针的vector作为组织多个对象的数据结构。文件输入输出流可以运用到实现用户登录,保存用户相应信息等功能当中,最后形成一个完整的可用的小型应用程序。

1. 需求

1) 程序给用户出题,关于计算几何图形面积,周长的题目。

2) 用户通过键盘输入每次练习的题目数。

3) 随机生成要计算的几何图形类型(正方形,长方形,圆形,三角形,梯形,椭圆等)

4) 随机生成几何图形的基本信息(长,宽,高,半径等)

5) 用户通过键盘输入计算的面积值、周长值。

6) 程序可以判断用户的回答是否正确。

7) 并且汇总成绩并输出。

8) 用户可检查和回看所做题目。(可以看上一题,也可以看下一题)

2. 扩展需求

1) 可以进行用户管理功能,用户可以注册,登录,注销。

2) 用户可以保存自己所做的题目的信息到外部文件里。

3) 关闭系统后,用户重新登录可以查看自己做过题目,和回答问题的正确率。

4) 程序可以根据用户正确率和做题所用时间的排序维护两个排名,用户可以查看自己的计算和识别的排名。

题目2:简单生态仿真系统

将第二次作业的基础上增加对STL和文件输入输出流的运用。STL运用可选择vector来组织多个生物对象,考虑设计基类指针的vector作为组织多个对象的数据结构。文件输入输出流可以运用到实现重现生态系统,保存生态系统当前生物状态等功能中,最后形成一个完整的可用的小型应用程序。

1. 需求

设计并实现一个简单的二维生态仿真系统。系统中至少包含多种对象:一种为捕食者,一种为被捕食者,及植物。它们在某个时钟(或者计数器)的驱动下进行统一的移动,同时捕食者每移动一步其生命值减一。当被捕食者移动到捕食者的捕食范围(捕食范围由其生物品种和其生命值确定,生命值高扑食范围广)内时,捕食者将对其进行捕杀,被捕食者的生命期结束,同时捕食者的生命值恢复到最佳。如果捕食者在一定的时钟周期内没有完成任何捕食活动,生命值将减为0,此时捕食者的生命也将结束。

1) 每类生物都具有位置信息, 性别、年龄等基本信息。

2) 每类生物都有一定的生存规则,如运动规则,繁殖规则(年龄、性别),死亡规则(生老病死),捕食规则(可以通过位置判定可以捕食)等。

3) 程序初始化时,需要初始化食物链的规模(即每类生物的数量)、随机生成每个生物的基本信息。并打印输出。

4) 通过键盘输入食物链的运行时间。

5) 程序根据运行时间运行,各类生物按照自己的生存规则运行。

6) 程序需要输出生存期间的重要时间(如捕食、繁殖等)。

7) 提供生态系统的人工干预,如加入人工捕食、自然灾害等。干预动物们的生活。

8) 程序可自动加载及存储生物基本信息文件。

题目3:图书馆系统

将第二次作业的基础上增加对STL和文件输入输出流的运用。STL运用可选择vector来组织多个图书资源对象,考虑设计基类指针的vector作为组织多个对象的数据结构。文件输入输出流可以运用到实现用户登录,保存用户相应信息等功能当中,最后形成一个完整的可用的小型应用程序。

1. 需求

分析系统图书管理系统是对学生、教师信息和图书信息进行管理,学生基本信息包括学号,姓名,院系,最大借阅图书数量属性,教师基本信息包括工号,姓名,院系,最大借阅图书数量属性,图书基本信息中包括图书号,书名,作者,出版社,图书数量属性,要求输入、输出、修改、查询以上信息功能, 设计并实现功能。考虑借阅人、图书是否可以采用继承派生关系,使用多态等机制实现不同类型学生借阅不同类型的图书或资源。以下是一些基本功能,根据情况可以进行添加修改

1) 添加借阅人信息;

2) 修改借阅人信息;

3) 处理借阅人借阅信息;

4) 处理借阅人还书信息;

5) 添加图书或资源信息;

6) 修改图书或资源信息;

7) 查看图书信息;

8) 提供用户管理功能

题目4:几何图形绘制

将第二次作业的基础上增加对STL和文件输入输出流的运用。STL运用可选择stack容器来组织多个几何图形对象,从而实现撤销绘制的操作,考虑设计基类指针的容器作为组织多个对象的数据结构。文件输入输出流可以运用到保存图形绘制数据等功能当中,最后形成一个完整的可用的小型应用程序。

3. 需求

1) 用户通过键盘输入进行选择要绘制的图形


http://www.kler.cn/a/382022.html

相关文章:

  • openssl交叉编译(这次基本上正规了)
  • webrtc获取IceCandidate流程
  • springboot481基于springboot社区老人健康信息管理系统(论文+源码)_kaic
  • Docker 技术系列之安装多版本Mysql5.6和Mysql5.7
  • springboot中使用gdal将表中的空间数据转shapefile文件
  • 重温设计模式--命令模式
  • 实现数传数据转网口(以太网)和遥控器SBUS信号转串口的功能
  • leetcode 75.颜色分类
  • Python的struct打包通讯数据头文件
  • 杨辉三角——c语言
  • 浏览器内核版本更新:Chrome 130✔
  • 【MySQL】函数
  • 网络安全求职指南_看完这篇就足够了~
  • c++设计模式demo
  • 【Linux】Linux安全与密钥登录指南
  • 工作管理实战指南:利用Jira、Confluence等Atlassian工具打破信息孤岛,增强团队协作【含免费指南】
  • 算法学习(十)—— 字符串
  • Oracle 第15章:安全性管理
  • 基于python主观题自动阅卷系统毕业设计项目
  • 计算机网络:网络层 —— 虚拟专用网 VPN
  • [C++从小白到大牛]第三篇:3分钟带你入门C++(下)
  • 苍穹外卖day-01
  • java 正则匹配json中占位符
  • 7.qsqlquerymodel 与 qtableview使用
  • HBuilderx修改主题色-改变编辑器背景颜色等
  • 【AI换装整合包及教程】OOTDiffusion: AI换装工具的革命性创新