收藏 分销(赏)

2023年《C+程序设计》期末考核选题.doc

上传人:二*** 文档编号:4526456 上传时间:2024-09-26 格式:DOC 页数:16 大小:171.04KB
下载 相关 举报
2023年《C+程序设计》期末考核选题.doc_第1页
第1页 / 共16页
本文档共16页,全文阅读请下载到手机保存,查看更方便
资源描述
<p>《C++程序设计》期末考核选题 考试规定: 1、规定运用C++课程上学习的基础编程技巧来完毕程序的设计;在设计的过程中,要建立清楚的类并对的使用相应的数据类型;在系统设计中要分析类与类之间的关系,将查找和排序的算法独立出来形成为单独的函数。对的使用继承、重载和多态等技巧。 2、假如有数据交互的地方,规定对用户输入的数据都进行有效性验证,以保证程序的正常运营。 考试目的: 1、加深对面向对象设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。通过课程设计,让学生可以纯熟运用C++进行面向对象编程,建立对象模型,减少软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。 2、通过程序设计,掌握面向对象程序设计语言C++,培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力指导等。 提交方式: 请大家自由选题,并运用课余时间将程序写好。 提交时间:本学期第16周星期三56节课(12月18日)S2-206 提交形式:向老师展示代码,并回答老师提出的2个问题。 本次考核题目占期末考试的30分,请大家谨慎对待! 选题1:银行类的设计(20分) 设计一个Bank类,帮助实现银行某账号的资金往来账目管理,涉及建账号、存入、取出等。 Bank类涉及五个私有数据成员: Top(当前账指针),data(日期),money(金额),rest(余额和sum(累计余额)。 除一个构造函数外,尚有以下三个成员函数: Void bankin(char d[],int m): //解决存入账 Void bankout(char d[],int m); //解决取出账 Void disp();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//输出明细账 现程序已经给出Bank()成员函数的实现,请补充完整Bank类数据和函数的定义以及其他两成员函数的实现。 程序运营时的结果如下: 日期&nbsp; 存入&nbsp;&nbsp;&nbsp; 取出&nbsp; 余额 2023.6.5&nbsp;&nbsp; 3000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3000 2023.7.2&nbsp;&nbsp; 1000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4000 2023.8.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 600&nbsp;&nbsp; 3400 2023.8.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 400&nbsp;&nbsp; 3000 选题2:MyString类的设计(20分) 用C++语言定义MyString(涉及成员函数的实现代码),使之能符合下面程序及在注释中描述的运营结果的规定: int main() { &nbsp;MyString s1 = &quot;&quot;, s2(5), s3, s4(s1); &nbsp;s1.display(); &nbsp; &nbsp; // 此时显示出: &lt;&gt; &nbsp;s2.display(); // 此时显示出(&lt;&gt;之间是五个空格): &lt; &nbsp; &nbsp; &gt; &nbsp;s3.display(); &nbsp; &nbsp; &nbsp; // 此时显示出: &lt;&gt; &nbsp;s4.display(); &nbsp; &nbsp; &nbsp; // 此时显示出: &lt;&gt; &nbsp;s3 = s1; &nbsp;s3.display(); &nbsp; &nbsp; &nbsp; // 此时显示出: &lt;&gt; &nbsp;s3 = 3+s3; &nbsp;s3.display(); &nbsp; &nbsp; &nbsp; // 此时显示出:&lt;9&gt;s2 = s1[2]; &nbsp;s2.display(); &nbsp; &nbsp; &nbsp; // 此时显示出:&lt;23456789&gt;s1.display(); &nbsp; &nbsp; &nbsp; // 此时显示出: &lt;&gt; &nbsp;s3 = s2++; &nbsp;s2.display(); &nbsp; &nbsp; &nbsp; // 此时显示出:&lt;3456789&gt;s3.display(); &nbsp; &nbsp; &nbsp; // 此时显示出:&lt;23456789&gt;return 0; } 选题3:职工信息管理系统设计(30分) 职工信息涉及职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不反复)。试设计一职工信息管理系统,使之能提供以下功能: 1、职工信息录入功能(职工信息用文献保存) 2、职工信息浏览功能 3、查询或排序功能:(至少一种查询方式) A、按工资查询 B、按学历查询等 4、职工信息删除、修改功能 选题4:学员成绩管理系统(30分) 定义主类,规定可以完毕下列功能,并在主函数中给出主菜单,供用户调用和实现: 1、输入:函数input把N学生的学号、姓名、性别、年龄、3科成绩以及平均成绩和总成绩放在一个结构体数组中,学生的学号、姓名、3科成绩由键盘输入,然后计算出平均成绩和总成绩放在结构体相应的域中。 2、插入:insert函数输入一个学生的记录,按学号的先后顺序插入该学生的所有内容。 3、排序:sort函数对所有学生按规定排序(1.学号2.总成绩),并输出。 4、查找:find函数输入一个学生的学号或姓名,找到该学生并输出该学生的所有内容。规定能查询多次。 5、删除:delete函数输入一个学生的学号或姓名,找到该学生并删除该学生的所有内容。 6、输出:函数output输出所有学生的记录。 选题5:黑白棋游戏(30分) 黑白棋,又叫反棋(Reversi)、奥赛罗棋(Othello)。 黑白棋规则: 1)两人对奕,以轮流方式持黑子与白子。 2)开辟新局者持白子,加入者持黑子,之后以轮流方式将棋子置于棋盘格子中。若无地方可下子,则跳过一回,由对方下子。 3)在提醒的格子中,选择一个格子下子,当下子的位置与离最近的同色旗子中,若有其他棋子则中间的棋子变为与我方同样颜色。 4)当下满64个棋子,棋子多者为胜。 选题6:图书馆管理系统(30分) 设计规定:该系统规定可以具有图书管理和会员管理的功能,并且可以具有增长图书、查询图书、删除图书、图书借阅——借书、还书的功能,还可以具有增长会员、查询会员、删除会员、查询借书信息等功能。 设计环节: (1)创建图书和会员两个类。 (2)通过屏幕菜单方式选择具体操作方式。 (3)完毕相应的操作,并可以显示操作的结果。 设计方法:可应用所学类和链表的基本知识实现设计规定。 选题7:图书信息管理系统设计(30分) 图书信息涉及:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能: 1、图书信息录入功能(图书信息用文献保存) 2、图书信息浏览功能 3、查询或排序功能:(至少一种查询方式) A、按书名查询 B、按作者名查询 4、图书信息的删除与修改 选题8:学生选修课程系统设计(30分) 假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按规定(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供以下功能: 1、课程信息录入功能(课程信息用文献保存) 2、课程信息浏览功能 3、查询功能:(至少一种查询方式) A、按学分查询 B、按课程性质查询 4、学生选修课程 选题9:飞机订票系统设计(30分) 假定民航机场共有n个航班,每个航班有一航班号、拟定的航线(起始站、终点站)、拟定的飞行时间(星期几)和一定的成员订额。试设计一民航订票系统,使之能提供下列服务: 1、航班信息录入功能(航班信息用文献保存) 2、航班信息浏览功能 3、查询航线:(至少一种查询方式) A、按航班号查询 B、按终点站查询 4、承办订票和退票业务 选题10:年历系统(30分) 功能规定: 1)输入任一年将显示出该年的所有月份日期,相应的星期 2)注意闰年情况 其显示格式规定如下: 1)月份:中文英文都可以, 2)下一行显示星期,从周日到周六,中英文都可以 3)下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐 当输入2023显示如下: Inputtheyear:2023 Inputthefilename:a Thecalendaroftheyear2023. 选题11:大学模拟管理系统(25分) 为了简化设计,假设大学中只有3种人:教师、学生和在职学生,且只实现信息的输入和显示,不涉及其他功能。其中: 教师信息涉及:身份证号、姓名、职称、所在系、工资; 学生信息:身份证号、学号、姓名、专业、入学时间; 在职学生:身份证号、学号、姓名、专业、入学时间、职称、所在系、工资; 一、设计规定 (1)各类之间不允许有反复的属性,即教师、学生、在职生中不能同时出现身份证号,姓名等属性(提醒:由类继承来实现)。 (2)类的内部也不能同时具有一个属性的两个版本(提醒:由虚基类来实现)。 (3)每个类中必须有完备的构造函数和析构函数。 (4)必须按照下面给出的类继承层次: Person Employee Student Teacher E_Student (5)派生类和基类之间不能存在相同的代码(提醒:调用基类的函数成员)。 (6)要给出完整的程序,应能看到程序的输入和结果。 选题12:班级通讯录程序(30分) 设计一个实用的小型通信录程序,具有查询和删除功能,并且能打开或修改指定文献。它完全使用类来实现,充足体现面向对象的程序设计特点。 功能设计规定: 1、建立文献 (1)存储文献可以使用默认文献名或指定文献名. (2)可以不保存输入记录,但需要确认是否保存输入记录。 2、文献的存取和显示 (1)可以单独存取文献。 (2)可以随时显示内存中记录的所有内容。 (3)可以直接存取默认文献或指定的文献。 3、删除记录 (1)可以按“姓名”的方式删除记录并更新内存内容。 (2)能给出被删除记录的信息。 (3)假如没有要删除的信息,输出没有找到的信息。 4、查询记录 (1)可以按“姓名”方式查询记录。 (2)能给出查询记录的信息。 (3)假如查询的信息不存在,输出“没有找到”的信息。 可使用C++标准库提供的list来实现双向链表用以保存数据。选题13:职工信息管理系统(30分) 设计规定实现如下功能: (1)建立职工信息数据,涉及职工编号、姓名、性别、工资、出生时间、参与工作时间和年龄(必须计算得到)。 (2)根据职工信息表,建立只具有姓名和年龄的职工信息简表。(可选功能) (3)使用继承的方法构造3个类,(即雇员类——虚基类,教师类和工人类——派生类)使用相应的对象放置10个职工信息。 (4)编写同名display()成员函数,用来输出数组的内容。 (5)规定对“<<”和“>>”运算符进行重载。考虑到输人职工编号时,也会因不小心引入空格,并且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个规定。 (6)抽取并计算职工的平均年龄。 (7)检索(查找)指定信息。(如按姓名检索、按年龄检索) (8)参考界面如下: 1、增长一位教师记录 2、增长一位工人记录 3、显示所有职工记录 4、计算教师平均年龄 5、计算工人平均年龄 6、删除一个教师 7、删除一个工人 8、按姓名检索所有信息 9、结束程序运营 选题14:类的多态(30分) 定义一个具有多态性的基类Shape,继承以下一些类:圆Circle类(坐标点和半径构成),长方形Rectangle类(两个不重合的坐标点构成),三角形Triangle类(三个互不相重合的坐标点构成).定义一些操作,特别是定义求面积操作. 编制应用程序,按文献内容创建各类对象,放在Shape指针向量中. 循环解决向量中的每个元素,求其面积.若为圆,则还要输出其半径(输出半径不是求面积的职能,应另设get成员实现之,它不是虚函数). shape.txt文献内容如下: C 123 5 5000 T 1 3 1 50 60 3 C 6 61 30 R 6 8 8 1000 C 2 3 12.3 X 若第一个字符为&#39;C&#39;,则后面为圆数据:x坐标,y坐标,圆半径三个实数. 若第一个字符为&#39;R&#39;,则后面为长方形数据:x1,y1,x2,y2坐标. 若第一个字符为&#39;T&#39;,则后面为三角形数据:x1,y1,x2,y2,x3,y3坐标. 若第一个字符为&#39;X&#39;,则表达输入结束. 选题15:学生成绩记录管理(30分) 重要功能: 1、输入一个班级的学生的基本信息(涉及学好,姓名,性别,5门课程成绩)。 2、按姓名或者学号查找、修改、删除和保存各个学生的信息。 3、计算每个学生各门功课总分和平均分,按学号或总分排序输出每个学生的基本信息及总分、平均分和名次。 4、计算全班各门功课的平均分,显示每门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩。 5、显示每门科目中,成绩在90分以上的学生信息,以及每门科目中不及格的学生信息。 6、设立系统登陆密码,只有对的输入密码方可进入管理系统。课更改和保存登陆密码。 选题16:宿舍电话查询系统(30分) 设计一个宿舍电话查询系统,规定: (1)用户输入用户名及口令,然后在已有的用户名及口令中检查是否合法,合法进入查询界面;对于不合法的用户或口令最多余错3次,超过3次后自动退出程序; (2)进入系统的用户可以浏览所有用户的电话号码及相关资料; (3)参考所给出的程序,自行设定数据库(规定至少涉及:宿舍号、班级、电话号码三个字段,其它字段可选),系统菜单及其未说明功能可自行添加设计。 规定用SQL SERVER 2023+C++完毕。 选题17:矩阵类(30分) 用面向对象程序设计(OOP)方法实现一个基本矩阵类,具有以下功能: 1)矩阵的输入、输出 2)矩阵的转置 3)矩阵的加法、减法、乘法运算 4)求矩阵的秩、方阵求逆 动态一维数组储存数据 通过重载操作符实现:加法,减法,乘法,转置,逆矩阵操作 选题18:工资管理系统(30分) 设计说明: (1)某公司重要有四类人员:经理、技术员、销售员和销售经理。规定存储这些人员的职工编号、姓名、年龄、性别、级别、月工资等信息。 (2)程序要具有对所有人提高级别的功能。所有人员的初始级别均为1级,然后系统可以根据输入进行升级,经理升为4级,销售经理为3级,技术员为2级,销售员仍为1级。 (3)月薪的计算方法: 1、经理:固定月薪8000元。 2、技术员:工作时间×小时工资(100元/小时)。 3、销售员:销售额×4%提成。 4、销售经理:底薪(5000)+销售额×0.5%提成。 (4)类的层次结构如下: 设计一个基类职工类employee,然后派生出技术员类technician、经理类manager、销售员类salesman,销售经理salesmanager既是经理又是销售人员,兼具两类人员的特点,因此同时继承manager和salesman两个类。 2、设计规定: (1)职工编号在输入人员信息时生成,每输入一个人员信息编号顺序加1。 (2)程序对所有人员有提高级别的功能。 (3)可以按照不同身份进行月薪的计算。 (4)能按姓名或者编号查找各类人员的信息。 (5)可以修改/删除各类人员的信息。 (6)可以显示所有人员的信息。 3、总体界面的设计 程序运营要显示菜单用于选择功能,各项菜单的功能通过调用相应的函数实现。菜单设计如下: (1)输入信息 (2)查询信息 (3)修改信息 (4)删除信息 (5)显示所有信息 (6)退出系统 以上假如有问题,请与危孟君老师联系 QQ: Tel:</p>
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服