C++程序设计选题与考核标准.docx

上传人:b****9 文档编号:29149084 上传时间:2023-07-20 格式:DOCX 页数:14 大小:82.45KB
下载 相关 举报
C++程序设计选题与考核标准.docx_第1页
第1页 / 共14页
C++程序设计选题与考核标准.docx_第2页
第2页 / 共14页
C++程序设计选题与考核标准.docx_第3页
第3页 / 共14页
C++程序设计选题与考核标准.docx_第4页
第4页 / 共14页
C++程序设计选题与考核标准.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C++程序设计选题与考核标准.docx

《C++程序设计选题与考核标准.docx》由会员分享,可在线阅读,更多相关《C++程序设计选题与考核标准.docx(14页珍藏版)》请在冰豆网上搜索。

C++程序设计选题与考核标准.docx

C++程序设计选题与考核标准

C++程序设计选题与考核标准

一、训练要求:

1、要求利用C/C++程序设计课程上学习的基础编程技巧来完成程序的设计;在设计的过程中,要建立清晰的类并正确使用相应的数据类型;在系统设计中要分析类与类之间的关系,将查找和排序的算法独立出来形成为单独的函数。

正确使用继承、重载和多态等技巧。

2、如果有数据交互的地方,要求对用户输入的数据都进行有效性验证,以保证程序的正常运行。

二、训练目的:

1、加深对面向对象设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。

通过课程设计,让学生能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。

2、通过程序设计,掌握面向对象程序设计语言C++,培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力指导等。

三、课程设计分组及考核办法

本课程设计采用分组的方式进行,设计内容分为基础部分和发挥部分。

具体实施如下:

1、每组3—5人,不得多于5人;

2、共有18个设计题目,每个题目限3组可选;

3、每组选1人参与课程设计答辩,限时15分钟,PPT内容包括:

介绍本组每个成员的分工情况和设计过程(演示);

或完成后,向教师演示程序的运行和回答教师的问题,老师对每位同学提问3次,时间大概5分钟。

4、每个人(或3人或4人合作完成,作为训练考核)都要交一份课程设计报告(3-5页左右),要有侧重点。

5、考核计分,总分为分

课程成绩由小组答辩成绩和报告成绩组成,计算方法如下:

(1)答辩成绩基础设计部分占60%和发挥部分占40%;

(2)设计报告成绩根据格式和论述的完整性打分,分四个层次:

优秀90分以上占20%,良好80-90分占30%,中60-70分占40%,差60一下分占10%;

(3)课程设计成绩=答辩成绩×50%+设计报告成绩×50%。

6、有效时间:

从第周-第周,可利用上机时间向教师提交程序。

每道题目最高分为习题前面所列分值。

四、选题

选题1:

银行类的设计(20分)

设计一个Bank类,帮助实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。

Bank类包括五个私有数据成员:

Top(当前账指针),data(日期),money(金额),rest(余额和sum(累计余额)。

除一个构造函数外,还有以下三个成员函数:

Voidbankin(chard[],intm):

//处理存入账

Voidbankout(chard[],intm);//处理取出账

Voiddisp();             //输出明细账

现程序已经给出Bank()成员函数的实现,请补充完整Bank类数据和函数的定义以及其他两成员函数的实现。

程序运行时的结果如下:

日期 存入   取出 余额

2005.6.5  3000          3000

2005.7.2  1000          4000

2005.8.1           600  3400

2005.8.5           400  3000

选题2:

MyString类的设计(20分)

用C++语言定义MyString(包括成员函数的实现代码),使之能符合下面程序及在注释中描述的运行结果的要求:

intmain()

{

MyStrings1="0123456789",s2(5),s3,s4(s1);

s1.display();//此时显示出:

<0123456789>

s2.display();//此时显示出(<>之间是五个空格):

<>

s3.display();//此时显示出:

<>

s4.display();//此时显示出:

<0123456789>

s3=s1;

s3.display();//此时显示出:

<0123456789>

s3=3+s3;

s3.display();//此时显示出:

<0123456789999>

s2=s1[2];

s2.display();//此时显示出:

<23456789>

s1.display();//此时显示出:

<0123456789>

s3=s2++;

s2.display();//此时显示出:

<3456789>

s3.display();//此时显示出:

<23456789>

return0;

}

选题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号开始,并按其是周几实际情况与上面的星期数垂直对齐

当输入2004显示如下:

Inputtheyear:

2004

Inputthefilename:

a

Thecalendaroftheyear2004.

选题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文件内容如下:

C12355000

T13150603

C66130

R6881000

C2312.3

X

若第一个字符为'C',则后面为圆数据:

x坐标,y坐标,圆半径三个实数.

若第一个字符为'R',则后面为长方形数据:

x1,y1,x2,y2坐标.

若第一个字符为'T',则后面为三角形数据:

x1,y1,x2,y2,x3,y3坐标.

若第一个字符为'X',则表示输入结束.

选题15:

学生成绩统计管理(30分)

主要功能:

1、输入一个班级的学生的基本信息(包括学好,姓名,性别,5门课程成绩)。

2、按姓名或者学号查找、修改、删除和保存各个学生的信息。

3、计算每个学生各门功课总分和平均分,按学号或总分排序输出每个学生的基本信息及总分、平均分和名次。

4、计算全班各门功课的平均分,显示每门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩。

5、显示每门科目中,成绩在90分以上的学生信息,以及每门科目中不及格的学生信息。

6、设置系统登陆密码,只有正确输入密码方可进入管理系统。

课更改和保存登陆密码。

选题16:

宿舍电话查询系统(30分)

设计一个宿舍电话查询系统,要求:

(1)用户输入用户名及口令,然后在已有的用户名及口令中检查是否合法,合法进入查询界面;对于不合法的用户或口令最多出错3次,超出3次后自动退出程序;

(2)进入系统的用户可以浏览所有用户的电话号码及相关资料;

(3)参考所给出的程序,自行设定数据库(要求至少包括:

宿舍号、班级、电话号码三个字段,其它字段可选),系统菜单及其未说明功能可自行添加设计。

要求用SQLSERVER2000+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)退出系统

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1