C++程序设计基础II程序设计实践课程要求(8题)[2024-07-09]
程序设计基础II程序设计 实践课程要求
一、 实践内容
参照附录中,课程设计题目列表中,题目的要求,完成实践内容。
二、实践安排
分组安排:*人一组,自由组合,分工合作完成课程设计。
指导平台:腾讯会议+泛雅平台。
时间安排:共四天。此处添加具体四天及每天时间安排,例如:18周(周一、三、四),19周(周一);每天上课时间(上午第一大节、第二大节,下午第三大节、第四大节)。每天上午第一大节课由老师讲解实践要求与内容;其余时间学生设计模块并编写代码,完成文档。最后一天,由老师检查学生程序内容,学生答辩并上交实践课程报告。
考勤安排:每天每大节课开始前,请学生在腾讯会议中,打开摄像头,教师完成考勤。
三、评分标准
(1)平时成绩占20%;
(2)系统功能和报告占60%;
(3)答辩占20%
详见评分表格。
四、实践报告要求
(1)内容要求
需要包含以下6个部分:
(1)设计题目
(2)系统环境(软件环境、硬件环境)
(3)设计内容(包括功能模块及详细说明)
(4)测试内容及结果
(5)心得体会
(6)参考文献
(2)撰写的要求
WORD排版,详见实验报告模板。
附:课程设计题目列表:
源码联系UP主 -> https://space.bilibili.com/329101171
题号:C01 题目:超市货物管理系统
超市有三个货架,分别放着日常用品、食品和家电。
基本功能要求:
(1) 实现描述超市的类Supermarket,其中定义了增加商品的函数Add(可以增加新的商品,也可以增加已有商品的数量),按照商品名称卖出商品的函数Sale(如果商品现有数量少于卖出数量,则不能继续卖出商品,并给出提示信息),按照商品类别查询商品情况的函数Search,并显示查询结果(每类商品中有哪些商品,每种商品的名称和现有数量)。
(2) 定义商品类Goods,包含属性名称和商品现有数量,以及纯虚函数ShowMe。
(3) 从基类Goods中派生日常用品类DailyGoods、食品类Food和家电类ElectricalAppliance,其中食品类商品拥有保质期属性,家电类商品拥有颜色属性,具体实现上述纯虚函数ShowMe,显示商品的名称、现有数量和食品类商品的保质期,以及家电类商品的颜色。
(4) 重载输入“>>”操作符,使得可以通过cin直接读入上述日常用品类、食品类和家电类的对象值。
(5) 编写main函数,测试上述所要求的各种功能,即可以根据菜单命令增加、卖出和查询各类商品,其中的商品可以是日常用品、食品和家用电器。
扩展功能提示:
(1)可扩充需求,实现某些扩展功能,例如:以文件的形式保存商品信息并由文件中导入系统;添加合理的类及实现相关功能;等。
(2)扩展功能中可包含书上的知识点内容,如虚基类、虚函数、函数重载、运算符重载、派生、静态数据成员和成员函数、模板等。
题号:C02 题目:图书馆管理系统
图书馆有三个书库,分别放着自然科学、人文科学、外文图书。
一.基本功能要求
1、定义图书类Books,具有属性(图书编号,名称,价格,作者,出版社,现有库存数量等信息)和功能(纯虚函数ShowMe),从基类Books中派生自然科学图书类ScienceBook、人文社科图书类SocialBook和外文图书类ForeignBook,ForeignBook类具有语言(Language)属性,请具体实现上述纯虚函数ShowMe,用于显示图书编号、图书名称等相关信息。
2、实现描述图书馆的类Library,具有四个函数:
(1)新增功能:定义增加图书的函数Add(可以增加新的图书,也可以增加已有图书的数量,考虑函数的传参方式);
(2)外借功能:定义借出图书的函数Lend(如果图书现有数量少于借出数量,则不能继续借出图书,并给出提示暂无库存图书的信息);
(3)还书功能:定义归还图书的功能Return(增加图书的库存数量);
(4)查询功能:定义查询图书的函数Search,并显示查询结果,显示图书信息和现有数量)。
3、重载输入“>>”操作符,使得通过cin直接读入上述自然科学图书类、人文社科图书类和外文图书类的对象值。
4、编写main函数,测试上述所要求的各种功能,即可以根据菜单命令增加、借出和查询图书,要求使用系统时便捷友好。
二、扩展功能提示
(1)以文件的形式保存图书信息,并由文件导入图书馆管理系统;
(2)统计功能,实现现有库存各类图书的统计;
(3)定义外借记录类Borrow,具有属性(图书编号,借阅人,借阅时间,归还时间),在Lend时记录借阅时间,在Return时记录归还时间;
(4)添加合理的类及实现相关功能,扩展功能中可包含书上的知识点内容,如虚基类、虚函数、函数重载、运算符重载、派生、静态数据成员和成员函数、模板等。
题号:C03 题目:职工工资信息管理系统
设计一个职工信息管理案例,实现不同类别职工的工资数据。职工的种类包括:正式职工和临时工。
定义一个基本的职工类,基本属性包括:编号、姓名、性别、家庭住址、基本职务工资。派生的正式职工类,增加的属性包括:岗位津贴、养老金、住房公积金 、医疗保险、个人所得税;临时工增加的属性包括:奖金、个人所得税。
1.正式职工:实发工资=基本职务工资+岗位津贴-养老金-住房公积金-医疗保险-个人所得税;
2.临时工:实发工资=基本职务工资+奖金-个人所得税;
基本功能与技术要求:
1、 数据文件管理功能:利用输入输出流创建新文件、打开文件、保存文件(保存职工的信息和工资明细)。
2、计算与统计功能:
采用静态数据成员与成员函数完成记录中相关数据的统计(实发工资总额);
3、记录管理功能:利用继承创建不同的类;采用抽象类、虚函数、操作符重载等实现对象与函数的动态关联,体现多态性。
1)查询:根据用户要求按所给关键字查询一个或多个相关联记录的各项信息(如按照姓名,工资范围等)。
2) 排序功能:按照工资高低顺序输出职工列表;
3)增加记录:输入新职工的数据并保存到文件中。
4)修改记录:能够打开已存在的数据表文件,并对确定的任意职工记录进行修改,在修改过程中,应给出确认提示,并对更新的记录信息进行文件保存。
5)删除记录:能够打开已存在的数据表文件,可以删除任一职工记录,要求具备逻辑删除(暂时停用,具有恢复功能)和物理删除(从数据文件中彻底删除)功能,并对新的数据表信息进行文件保存。
题号:C04 题目:教室预订管理系统
1 任务
采用C++语言,应用面向对象技术、文件读写和异常处理等,对教室预订管理功能进行设计和实现。
2 基本功能要求
(1) 定义教室类
教室类包括教室号、教室名称、容纳人数、当前占用状态、教室类型类号(实验室为1,多媒体为2,录课教室为3) 等,以及与教师类型相关的属性号码一项,实验室的属性号码为实验室类型(化学为1、物理为2、生物为3、计算机为4、水环境5)等,多媒体教室的属性号码为配备空调数(无为1,有为2)等,录课教室的属性号码为摄像头个数(0~4个)。教室类可以重载 >> 和<< 运算符。
教室对象需要存储在文件中。可以考虑将上述教室类定义成子类和分开存储。
(2) 定义教师类
教师类包含工号、姓名、权限等级、电话号码、办公室名称等;
系统管理员权限等级为1,系统管理员可以浏览教室预订申报记录表,可以审核预订信息,在其中可以设置某条预订申请的申报状态为通过;
普通教师权限等级为2,可以生成预订,查看预订记录表中的自己的预订,以及取消预订等。
教师类可以重载 >> 和 <<运算符。
教师相关信息可存储在文件中,可以考虑将上述两类教师定义为子类和分开存储。
(3) 定义教室预订记录类
其中记录教师对教室的预订信息,每条信息对应一次预订,数据包括:预订号(自动递增生成)、预订提交的时间(年月日时分秒,以自动读取预订时时间来生成)、预订教室的序号、要预订的日期。预订数据在教师预订过程中生成,之后,在管理员审核和相应教师撤销预订中修改,注意,预订申请一旦被通过就不好再撤销,一旦被撤销就不好再通过。
预订信息,可存储在文件中。
(4) main函数
在主界面中,显示登录、普通老师注册、退出等。
在管理员界面,可浏览教室、浏览预订记录,审核预订记录、退出等。
在普通老师界面中,可浏览教室、查询教室(按名称)、浏览预订记录、预订教室、撤销预订、退出等。
上述相关功能内容仅供参考。
3 扩展功能提示
(1)可扩充需求,实现某些扩展功能,例如:以文件的形式保存各种信息,并由文件中导入系统。
(2)扩展功能中可包含书上的知识点内容,如虚基类、虚函数、函数重载、运算符重载、派生、静态数据成员和成员函数、模板等。
题号:C05 题目:高校教师在线答疑辅导系统
高校有教师、学生、课程三类实体,老师可以增加、删除课程、学生可以选课、退选课程;教师可以增加、删除课程答疑辅导信息,学生可以查看信息。
基本功能要求:
(1) 实现描述教师的类Teacher,其中定义了增加课程的函数Add(可以增加新的课程),定义了删除课程的函数Delete(可以删除课程),查询已有课程函数Search,并显示查询结果。
(2) 实现描述学生的类Student,其中定义了选修课程的函数Select(可以选修新的课程),定义了退选课程的函数Unselect(可以退选课程),查询已有选修课程函数Search,并显示查询结果。
(3) 实现课程类Course,包含课程ID、课程名、答疑辅导时间,以及纯虚函数Type。
(4) 从基类Course中派生必修课程BCourse、选修课程XCourse。其中必修课程BCourse显示类型为必修、选修课程XCourse显示类型为选修,具体实现上述纯虚函数ShowMe,显示课程名,课程类型、答疑辅导时间。
(5) 实现教师根据自己的课程增加、删除答疑辅导信息、学生根据已选课程查看答疑辅导信息。
(6) 重载输入“>>”操作符,使得可以通过cin直接读入上述Teacher类、Student类和Course类的对象值。
(7) 编写main函数,测试上述所要求的各种功能。
扩展功能提示:
(1)可扩充需求,实现某些扩展功能,例如:以文件的形式保存商品信息并由文件中导入系统;添加合理的类及实现相关功能;等。
(2)扩展功能中可包含书上的知识点内容,如虚基类、虚函数、函数重载、运算符重载、派生、静态数据成员和成员函数、模板等。
题号:C06 题目:学生成绩管理系统
一、基本要求
1)能进行数据的添加、删除、修改、查询、排序;
2)完全使用类实现。
3) 重载输入“>>”操作符,使得可以通过cin直接读入类的对象值。
4) 编写main函数,测试系统的各种功能。
二、系统基本类
系统基本类4个:Score类,subject类,Student类,Class类。存储学生的个人信息,考试科目,成绩,班级信息。
三、功能拓展
文件操作:1)初始数据从文件导入,能够实现文件的显示;2)数据保存至文件中;3)对文件记录进行增、删、改、查;4)多个文件组成一个文件。
派生:为Student类派生研究生类GStudent,为研究生填加课题类Project类。
扩展功能中可包含书上的知识点内容,如文件流、STL标准模板库虚函数、派生、函数重载、运算符重载、静态数据成员和成员函数等。
题号:C07 题目:公司员工信息管理系统
系统中管理的内容:工号、姓名、性别、手机号码、科室、工资等。
基本功能要求:
使用C++面向对象程序设计设计一个简易的公司员工信息管理系统,其中用到了:类的使用、数组、循环体、函数的调用、封装等内容。系统需要定义职工(Employee)类,其中包括工号、姓名、性别、电话、所在科室和工资等信息。实现如下基本功能:
(1)设计菜单实现功能选择;
(2)添加功能:输入人员信息,并保存到文件中;
(3)删除功能:输入人员编号实现删除,并保存到文件中;
(4)修改功能:输入人员编号及其他相关信息,实现修改并保存到文件中;
(5)查询功能:能够根据姓名精确查询人员信息;
(6)统计功能:根据科室分别统计每个科室员工的平均工资并输出结果;
参考建议:
(1)定义了一个Employee类(class Empolyee),类中定义下述成员函数:
① void AddEmployee();该函数添加职工信息。
② void DeleteEmployee();该函数删除职工信息。
③ void UpdateEmployee();该函数修改职工信息。
④ void reseachStudentByName();该函数用于按名字查询职工信息。
⑤ void reseachStudentByOffice();该函数用于按科室查询职工信息。
⑥ void add();该函数统计职工的平均工资。
⑦ void SaveInfo();该函数用于对员工信息的书写。
(2)在输出结果中,可按照相关提示进行调试操作:
① 增加职工信息,按“1”键;
② 删除职工信息,按“2”键;
③ 修改职工信息,按“3”键;
④ 按姓名查询职工信息,按“4”键;
⑤ 按科室查询职工信息,按“5”键;
⑥ 按科室统计职工平均工资,按“6”键;
⑦ 退出职工工资管理系统,按“0”键;
扩展功能提示:
(1)可扩充需求,实现某些扩展功能,例如:以文件的形式保存员工信息并由文件中导入系统;添加合理的类及实现更多相关功能等。
(2)扩展功能中可包含书上的知识点内容,如虚基类、虚函数、函数重载、运算符重载、派生、静态数据成员和成员函数、模板等。
题号:C08 题目:学校计算机机房管理系统
基本需求:计算机机房共有教室6间,每间教室50台计算机,分为10排,每排5台计算机。管理系统应包含对机房教室的管理,如每间教室的排课信息(周几第几大节有课,课程信息,任课教师信息等),设置可以修改教室排课信息和显示排课信息的功能;包含对每台计算机一周内使用全部信息,包括计算机序号、配置、位置、状态、使用情况的历史记录(包括使用者姓名、学号、使用时间段)等。系统可以模拟学生上机和离开的登记过程,查询机房计算机的使用情况。
基本功能要求:
(1) 实现描述机房教室的类、计算机的类等关键类,在类中定义实现相应功能的函数。
(2)编写main函数,测试上述所要求的各种功能。
扩展功能提示:
(1)可扩充需求,实现某些扩展功能,例如:以文件的形式保存商品信息并由文件中导入系统;添加合理的类及实现相关功能;等。
(2)扩展功能中可包含书上的知识点内容,如虚基类、虚函数、函数重载、运算符重载、派生、静态数据成员和成员函数、模板等。
文章评论