程序设计基础课程设计题目

基本要求:

  1. 每一名同学的课程设计选题B类)应各不相同,要求按计划进度独立完成。
  2. 每一名同学需要独立完成A全部题目B1B同一题目选择人数不超过2
  3. 课程设计不限定程序设计语言的种类,C/C++C#JAVA等语言均可。
  4. B类题要求采用面向对象程序设计思想,重点在于业务需求分析、功能模块设计、人机界面设计等。
  5. 课程设计文档需结合图表进行说明,应给出软件界面和测试结果。

 

 

A. 基础设计题

 

以下为校内址,校外用户先登录学校VPN,再进入头歌教学平台

 

【教学课堂邀请】董鑫正老师邀请您加入平台教学课堂-《【高级语言程序设计/程序设计基础】课程设计22-23-2》,您可以访问下方的链接,以学生身份加入该教学课堂。

校内链接:http://172.16.36.81/classrooms/2lgh83zc?code=5PAHZ

 

1章 C++开发环境应用入门

第1关C++开发环境应用入门

第2章 C++简单程序设计

 第1关求自然数1~N之和

 第2关求自然数1~N之和(二)

 第3关计算面积

第3章 函数

 第1关华氏温度转摄氏温度

 第2关max1函数

 第3关计算x的y次幂

 第4关Fibonacci

第4章 类与对象

 第1关CPU类

 第2关Computer类

第5章 C++程序的结构

 第1关运行下面的程序,观察变量x、y的值

 第2关实现客户机(CLIENT)类。

第6章 数组、指针与字符串

 第1关矩阵转置

 第2关矩阵转置-动态内存分配

 第3关字符串连接

 第4关字符串连接-使用string类

 第5关Employee类构建与测试

 

B. 综合设计题

说明:本计题目中的描述属于基本要求,选做该题的同学可以在题目描述的功能基础上进一步完善,比如输入校验,文件存取;也可以扩充业务需求,还可以采用多种不同的设计方法进行设计,并进行比较分析

  1. 形状设计

题目描述:能够生成不同的形状,展现不同形状的行为。

功能要求:

(1)    设计一个形状抽象类Shape,提供3个方法,计算面积,计算周长,输出相关信息,包括自身形状的基本信息、面积和周长。

(2)    设计Shape的子类Rectange,代表矩形。

(3)    设计Shape的三角形Triangle,代表三角形。

(4)    设计界面根据用户选择需要生成的形状,提示不同的输入信息以及计算结果。比如三角形,需要输入三条边长。

(5)    思考:如果还有别的形状需要实现,应该做哪些修改?

 

  1. 基于坐标的形状设计

题目描述:以点为基础,组建不同形状。

功能要求:

(1)    创建一个Point类,表示平面上的一个点,有两个数据成员,分别表示点的横、纵坐标

(2)    创建一个Circle类,表示平面上的一个圆,包含一个Point类的成员,表示圆心,另外,还有一个数据成员表示半径,Circle类包含一个判断给定点是在圆内,圆外,还是圆上的函数成员。

(3)    创建一个Triangle类,表示平面上的一个三角形,包个Point类的成员,表示三角形的三边,Triangle类包含一个计算周长的函数成员。

(4)    意进行合法性检查,例如,并不是任意三点都可以构成三角形,在对三角形进行初始化时要考虑指定的点能不能构成三角形。

(5)    思考:如果要求构建一个抽象类,怎么设计?

 

  1. 学生课程系统

题目描述:一个简单的学生课程系统。

功能要求:

(1)    创建一个学生类,包含学号,姓名,性别。

(2)    创建一个课程成绩类,包含课程名称和成绩。

(3)    创建一个学生课程成绩类,包含学生类成员和课程类数组成员。

(4)    可以生成学生,并且为学生创建课程成绩。

(5)    输出指定科目分数最最低的学生课程成绩信息。

(6)    输出指定学生的科目分数最高和最低分。

样例:学生课程成绩信息如下

【1】 姓名:Zhang 性别:男 学号:001 成绩:A 65 B 70 C 53 D 80

【2】 姓名: Cheng 性别:女 学号:002 成绩:A 75 B 75 C 85 D 78

【3】 姓名:Li    性别:女 学号:003 成绩:A 68 B 45 C 95 D 72

【4】 姓名:Cha   性别:男 学号:004 成绩:A 67 B 70 C 64 D 62

5】 姓名:Xun   男 学号:005 成绩:A 65 B 90 C 78 D 85

运行结果示例:【可有不同,但主要信息需相同】

输出:

A科目分数最低的:

姓名:Zhang

性别:男

学号:001

成绩:A 65 B 70 C 53 D 80

 

B科目分数最低的:

姓名:Li   

性别:女

学号:003

最高成绩:C 95

最低成绩:B 45

 

  1. 金拱门快餐点餐、结算系统

题目描述:金拱门快餐店主要出售汉堡、小吃、饮料和甜品等类型的快餐食品,每种类型的食品有不同的产品,例如饮料类食品有可乐、咖啡、茶饮料等。现在让你担任吉珠金拱门连锁门店的经理,负责销售产品的选定和套餐的设计,你需要使用C/C++的console模式开发一个软件,包含所有销售产品的信息(包括单品和套餐信息),通过一个菜单系统实现顾客的点餐和结算过程,通过管理员权限统计当前结算周期的销售信息(如各产品的销售量、销售额等)

功能需求:

(1)    根据面向对象的设计思想,设计一个抽象类作为基类,封装所有具体产品的共有属性和运算。根据你的产品列表,从基类派生出各具体类,包括单品和套餐产品。

(2)    设计一个菜单类,应该包含但不限定下述多层菜单选项

  1. 顾客点餐子菜单:商品列表,顾客可一次购买多种产品
  2. 结算子菜单:顾客点餐完毕自动转入结算界面,现实顾客点餐内容及总金额。要求可以返回点餐菜单进行修改。
  3. 管理员子菜单:密码管理,销售统计,退出系统。

(3)    设计一个订单类,封装每一个售出的订单信息,以供数据统计使用。

(4)    使用外部文件存取数据,方便数据的输入输出。

 

  1. 九宫棋小游戏

题目描述:三子棋是一种民间传统游戏,又叫九宫棋、井子棋、圈圈叉叉、一条龙等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。请设计一个三子棋小游戏。

功能需求:

(1)    创建一个九宫棋的类。

(2)    能够选择难易程度。

(3)    既可以选择人机,也可以两人对弈。

(4)    思考:是否可以给玩家给出正确的提示,让玩家永远不败。

 

  1. 日历系统

题目描述:要求设计一个面向对象程序,能够以一定的格式显示当天日期、时间,显示用户指定的某年某月的日期信息,计算用户指定的某年某月某日的农历日期。

功能需求:

(1)    设计一个时间类Time,包含一天中小时、分钟、秒的属性及其相关运算。

(2)    设计一个日期类Date,数据成员应该包含但不限定为年、月、日、星期几等属性。

(3)    设计菜单系统,根据用户输入显示题目描述中的显示功能。

 

  1. 猜成语

题目描述:成语是中国汉字语言词汇中一部分定型的词组短句,是中国传统文化的一大特色,有固定的结构形式和固定的说法,表示一定的意义,在语句中是作为一个整体来应用的,承担主语、宾语、定语等成分。请设计猜四字成语游戏。

功能需求:

(1)    设计一个四字成语类Idiom,包含成语内容,多级解释。

(2)    设计一个猜四字成语游戏类Game,可以随机产生成语的解释信息,显示到控制台,等待用户输入猜测到的成语。

(3)    用户作答后,系统可以判断用户输入的成语内容是否正确,如果正确,继续一下;如果不正确,让用户继续做答,直到猜词成功。

(4)    设计提示功能,引导用户猜成功。如果用户根据一级解释没能回到正确,继续展开第二级解释,如果用户还是回答错误,继续展开更多级别的解释,直到全部解释展开完或者用户回答正确

(5)    使用外部文件存储相关数据。

 

  1. 成语接龙

题目描述:成语接龙是中华民族传统的文字游戏。它有着悠久的历史,也有广泛的社会基础,是老少皆宜的民间文化娱乐活动。请设计四字成语接龙游戏。

功能需求:

(1)    设计一个四字成语类Idiom,包含成语内容,首字母的拼音,末尾字母的拼音。

(2)    设计一个成语接龙游戏类Game,系统可以判断用户的回答是否是成语,并且可以按照前一个成语,判断是否接龙成功。如果回答的成语接龙正确,则以新的成语作为新的起点,继续接龙;如果不成功,继续为原有的成语接龙。

(3)    设计提示功能,引导用户接龙成功。

(4)    使用外部文件存储相关数据。

 

  1. 猜谜语

题目描述:谜语源自中国古代民间,历经数千年的演变和发展。它是中国古代劳动人民集体智慧创造的文化产物。请设计一个猜谜语游戏。

功能需求:

(1)    设计一个谜语类Riddle,包含谜面,谜底,谜底所属类别。

(2)    设计一个猜谜语游戏类Game,可以随机产生谜面内容,显示给用户。系统根据谜底,判断当前回答是否正确。

(3)    设计多级提示功能,引导用户猜谜底成功。如果回答距离谜底很远,提示用户跑偏了,当接近的时候,提示加油等。

(4)    使用外部文件存储相关数据。

 

  1. 地铁自动售票机系统

题目描述:地铁是当今城市较为流行的一种铁路运输的形式,地铁能避免城市地面拥挤,充分利用空间,具有运量大、准时、正点率较其他公交高、速度快等优点。请设计一个简易的地铁自动售票机系统。

功能需求:

(1)    设计一个地铁路线类Router,包含路线编号,途中的各个站点。

(2)    设计一个地图类Map,可以显示所有可以乘坐的地铁站名,以及线路信息。

(3)    根据用户输入的起点和终点和人次信息,可以自动计算应付金额;根据用户输入的金额,计算找零信息;

 

  1. 通信录管理系统

题目描述:设计出模拟通信录管理系统,实现对用户的通信录进行管理。

功能需求:

(1)    设计一个联系人类Person,包含姓名,电话,单位。

(2)    设计一个通讯录类AddressBook,按照分类保存联系人,类别有办公和个人。

(3)    当输入需要查询的类别时,可以显示该类别的全部联系人信息。

(4)    可以添加,删除,修改联系人信息。可以对重复录入的联系进行检查。

(5)    使用外部文件存储通讯录信息。

 

  1. 学生管理系统

题目描述:设计一个简单的学籍管理系统,实现出最基本的功能。

功能需求:

(1)    设计一个学生类Student,包含学号,姓名,宿舍,电话。

(2)    设计一个学生成绩类Score,包括学号,课程名称,分值。

(3)    添加、删除、修改学生信息功能。对重复录入进行检查。

(4)    添加,删除,修改学生成绩功能。对重复录入进行检查。

(5)    根据学生学号,查询该学生信息,以及成绩情况。

(6)    使用外部文件存储通讯录信息。

 

  1. 宾馆客房管理系统

题目描述:设计一个宾馆客房管理系统,以菜单方式工作。

功能需求:

(1)    设计一个房间类Room,记录的客房信息包括客房号、客房类型、客房价格、空闲情况、客人姓名、客人身份证号、入住时间、退房时间,预付费用等信息。

(2)    客房信息的录入功能。

(3)    客人入住登记。

(4)    客房信息浏览功能,浏览全部客房的信息。支持按照空房、姓名、身份证号、房间号查询。

(5)    客人退房结算。

(6)    使用外部文件存储相关数据。

 

  1. 银行储蓄管理系统

题目描述:设计一个银行储蓄管理系统,以菜单方式工作。

功能需求:

(1)    设计一个账户类Account,包括户名、密码、电话、余额等信息。

(2)    为新用户开户。

(3)    为老用户销户、挂失。

(4)    可以办理存取款操作。

(5)    可以查询每笔历史交易记录。

(6)    使用外部文件存储相关数据。

 

  1. 库存管理系统

题目描述:设计一个库存管理系统,以菜单方式工作。

功能需求:

(1)    设计一个物品类Goods,包括产品编号、产品名称、产地、数量、价格、总价值。

(2)    添加、删除功能。

(3)    编辑功能,根据条件定位商品,并进行修改。

(4)    进货功能:按要求添加相应商品的信息到库存中。添加进货日期、生产厂家、进货价、数量等信息。

(5)    出货功能:出货时,先输入商品类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入出货的数量、出货日期,计算销售额和利润。如果库存量不够,给出提示信息,结束出货。

(6)    查询功能:查询进、出货详细记录。

(7)    使用外部文件存储相关数据。

 

  1. 分数计算器

题目描述:

设计一款快速、简单、易于使用的计算器,提供加、减、乘、除等功能,可用于处理分数计算。

功能需求:

(1)    定义整数类和分数类,分数类由整数类派生。其中,包括构造函数、析构函数、显示函数等。

(2)    输入/输出:对流提取和流插入运算符进行重载,能对分数进行各种计算和输入/输出。

(3)    计算功能:可进行分数的加、减、乘和除法运算。

(4)    化简功能:将分数化简为最简分数。

(5)    异常处理功能:分数中分母不能为零。

 

  1. 小型公司工资管理系统

题目描述:

某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中的雇员分为经理、技术人员。月薪计算方法如下:经理拿固定月薪;技术人员按小时领取月薪。

功能需求:

(1)    设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。

(2)    添加功能:根据用户选择的人员类别,添加经理或者技术人员。要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复,并取消添加。

(3)    查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;可显示当前系统中所有记录,每条记录占据一行。

(4)    编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)    删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示记录为空!并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。

(6)    统计功能:能根据多种参数进行人员的统计。例如,统计人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。

(7)    保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意;可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。

 

  1. 美发店管理系统

题目描述:

设计完成对美发店的简单管理

功能需求:

(1)    定义顾客类,属性有:会员卡号、姓名、性别、电话等信息和相关的对属性做操作的行为。

(2)    定义员工类:属性有:编号、姓名、性别、电话、美发项目(理发、烫发、洗发)等信息和相关的对属性做操作的行为。

(3)    定义美发类:属性有各种美发项目的收费标准和相关的对属性做操作的行为。

(4)    定义一个管理类。

(5)    添加、删除、修改、查询顾客信息和雇员信息,要求编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加;删除、修改、查询时,如果没有对应人员记录,则提示记录为空!并返回操作。

(6)    使用外部文件存储相关数据。

 

  1. 诊所信息管理系统

题目描述:

设计完成小型诊所的简单信息管理程序。

功能需求:

(1)    设计人类(Person类)和医生类(Doctor类),在此基础上,通过增加患者和账单,使它们公用于表示一家诊所的信息管理。

(2)    在一条医生记录中,包括医生的专业说明(specialty),如内科医生(surgeon)、儿科医生(pediatrician) 、产科医生(obstetrician)及全科医生(general practitioner)。

(3)    Doctor记录还含有诊费(office_vist_fee)。

(4)    在一条患者记录中,包括该患者产生的药费(drug_fee) ,患者的诊费(即医生的诊费)。

(5)    在一条账单记录中,包括一条患者对象、该患者对应得主治医生、该患者产生的诊费和药费。

(6)    应用程序能够显示出诊所中每个患者的信息和对应主治医生的信息。

(7)    能够统计出所有患者的总费用。

 

  1. 考勤系统

题目描述:

设计一考勤管理系统,记录学生的缺课情况。

功能需求:

(1)    设计学生类(Student),记录姓名,车名,核定载客人数。

(2)    设计课程类(Course),记录课程信息,比如课程名称,上课时间(星期几第几节课),地点。

(3)    设计考勤类(Attendance),记录学生在具体时间课程出席情况。

(4)    录入学生的缺课记录。

(5)    修改某个学生的缺课记录。

(6)    查询某个学生的缺课情况。

统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序。