Released
并本地备份以下为原文:
《面向对象程序设计》课程设计题
(2021年7月)
1 课程设计要求
1.1 每一位同学必须提交的材料
① 目标软件及其版本序列;
② 课程设计报告。
要求每位同学独立完成,提倡互相交流、帮助,但是严格拒绝抄袭。
1.2 目标软件的开发环境
① 建议采用C++编写,同时鼓励采用任何支持面向对象技术的语言;
② 程序形式可以是控制台程序,同时鼓励实现窗口程序或网站程序。
1.3 目标软件的编程风格
① 代码缩进;
② 合适的变量名;
③ 几乎不使用全局变量;
④ 每个函数的代码,不能超过20行。
1.4 在目标软件应满足的技术指标
① 类的数量>=5个;
② 代码量>=500行;
③ 拒绝没有数据成员的类(除非有特别的理由);
④ 使用了数据文件,保存软件的运行前和运行后的数据。
1.5 在目标软件的开发中,采用迭代式开发方法
① 版本序列:保留至少3个递进的开发版本。
② 这将成为师生交流、评判成绩的重要材料。
1.6 课程设计报告的书写规范
① 采用各级“标题”样式,组织结构化的文档;
② 采用Visio之类的软件,绘制相关的设计图。
④ 报告末尾有“设计感想”。
2 评分标准
欢迎大家在假期中,努力进步,常常在课程群中提问、讨论。
每位同学的成绩,都是在提交材料后,经过师生的交流,当面给出的。
在满足“课程设计要求”之后,必须至少使用了以下技术之一:
① 多态技术;
② 类模板技术;
③ 采用了可视化的编程语言,实现了窗口程序或网站程序。
在满足“课程设计要求”之后,必须至少使用了以下技术之一:
① 类的包含关系
② 类的继承关系;
3 课程设计的选题
数据文件:课程表、学生表、成绩表等。
模块:课程管理、学生管理、成绩管理等。
模块中的功能:打开、保存、查询、增加、删除、修改等。
数据文件:工作人员表、物品表、进货表、销售表等。
模块:工作人员管理、物品管理、进货管理、销售管理等。
模块中的功能:打开、保存、查询、增加、删除、修改等。
数据文件:学生表、图书表、借阅表、归还表等。
模块:学生管理、图书管理、借阅管理、归还管理等。
模块中的功能:打开、保存、查询、增加、删除、修改等。
自定义并完善字符串类KString,从而实现对字符串对象的方便定义,空间可伸缩、动态管理和便捷运算。
本系统的功能要求如下:
1、该类用于存储和处理字符串对象的相关信息
2、使用堆空间实现可变长字符串信息的动态存储,尽可能考虑全面
3、完成以下的操作:初始化字符串、获得字符串长度、在字符串中查找一个字符、在字符串中查找另一个字符串、字符串连接(‘+’运算符)、字符串比较(‘>’‘<’‘= =’等)、赋值(‘=’)等。
提示:
1、建立KString类和相关测试程序
2、字符串内部只使用ASCII字符编码
3、对象内部空间动态管理
4、方便字符串内容输出
5、程序须有必要的注释
数据文件:一元多项式的系数、指数文件。
功能:求值、加法、减法、乘法、除法等,支持连续运算。
数据文件:算式文件。
功能:加法、减法、乘法、除法等,支持连续运算。
功能1:用动态顺序表类,模拟内存管理;用成员函数mynew和mydelete,实现new和delete的功能。
功能2:建立链表类,检测空间的申请、释放效果,判断链表类的代码,是否存在内存泄漏的情形。
绘图模拟程序,用来在一个画板上,模拟绘制矢量图。要求实现以下功能:
根据图形的类型实现相应的绘图操作(记录图形的位置,大小,形状,线条,颜色等特征,在屏幕上只显示绘制成功与否)
所有图形都绘制在一个画板上,画板的颜色大小可以设置。
存储画板上的图形(文件名可以输入)
根据图形文件名读入图形到画板中,并将它们显示在屏幕上(可以只显示图形属性数据)
扩展功能:以图形化的方式显示绘制的图形
小球游戏(弹射、接球等);
贪吃蛇游戏;
汉诺塔游戏;
扫雷游戏;
纸牌游戏;
24点游戏等。
具体功能请自拟,然后与任课教师交流,得到认可后,再进行设计开发。