C++计算机程序设计基础(C++)课程设计[2023-06-11]

发布时间 2023-06-11 01:51:41作者: programwriter

C++计算机程序设计基础(C++)课程设计[2023-06-11]

计算机程序设计基础(C++)课程设计

设计要求与题目
(适用班级:土木安全类 2224 班)

课程设计时间、上机地点:
第 19 周,周一至周五。

采矿楼五楼资安院计算机中心
学时与学分:

一周/1 学分

一、课程的性质和任务
《计算机程序设计(C++)课程设计》是资源与安全工程学院本科生的实践必修课,是本科计算机教育的重要实践学习环节。通过本课程设计,使学生在“计算机程序设计基础(C++)”课程学习的基础上,通过完成一些具有一定难度的课程设计题目的编写、调试、运行工作,进一步掌握面向过程和面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合,从而提高自我分析问题、解决问题的能力。

二、课程基本要求
在所列设计题目中任选一题于规定时间内完成设计任务。按题目要求进行系统分析与程序设计,实现题目要求的功能,程序要能正常运行,并在此基础上完成课程设计报告撰写和答辩。具体有以下几个方面的要求:

  1. 针对设计问题,查阅资料,自学课堂未讲授的 C++知识和编程方法,培养学习能力和知识应用能力。
  2. 独立思考,独立完成。培养独立思考的综合分析问题的能力。
  3. 要求先设计,后上机实现。上机前应有设计草稿。
  4. 注意培养团结协作的精神。在独立思考的基础上,同学之间应该互相讨论协助,探讨编程方法和技巧,取长补短,但不能抄袭。
  5. 按时完成上机编程任务和写出课程设计报告。
    设计完成后必须提交的内容:课程设计报告(纸质报告)、程序源代码(电子版)与编译完成的可执行文件。

三、课程设计的基本内容及重点
学生根据指导老师指定的课程设计题目于一周时间内完成设计任务,也可在以下课程设计题目中任选一到两个题目。同时鼓励学生结合自身专业特点自行设计题目,但学生自行拟定题目必须经指导老师审查认可后方可做为本课程设计的设计题目。

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

3.1 备选题目(正选题)

题目一:

设计一个“学生成绩管理系统”,主要功能是对学生的成绩进行输入、修改、管理和存储。

系统功能要求:
①界面要求示例

************************************
学生成绩管理系统
************************************
************************************
**1--输入数据***********************
**2--查询成绩***********************
**3--修改成绩***********************
**4--输出所有学生成绩***************
**5--统计及格和优秀人数*************
**6--退出系统***********************
**0--清屏***************************
************************************

②功能
这个程序的主要功能是输入学生学号(要注意保证学号的唯一性)、姓名、成绩,并可
以对学生成绩按学号或姓名进行查询。该系统具有存储学生数据,按学号、姓名查询,按需
要修改学生成绩,列出学生成绩和统计功能。
③系统中初始数据如下:

学号 姓名 成绩
220101 张三 92
220102 李四 85
220103 王五 70
220104 陈六 60
220105 钱七 80
L220106 Jessi 90
L220107 Yoon Suk Yeol 3

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

题目二:

设计一个“学生考勤管理系统”。考勤信息记录了学生的考勤情况,它包括:考勤日期、

第几节课、课程名称、学生姓名、学生学号、考勤类型(迟到、早退、请假及旷课)。系统具有以下功能:

  1. 录入学生的考勤记录;
  2. 修改某个学生的考勤记录;
  3. 查询某个学生的考勤情况;
  4. 统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;
  5. 统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;
  6. 考勤数据以明码方式保存在数据文件中;
  7. 系统以菜单方式工作。
    具体要求如下:
  8. 采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设
    计合理。也可根据自己对题目的理解增加新的功能模块。
  9. 系统以菜单界面方式(可采用文本菜单界面)工作,运行界面友好。
  10. 容错性强(能对错误输入进行判断控制)。

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

题目三:

设计一个小型的航空售票系统

某航空公司要为一趟航班的每次飞行编写自动售票系统要求实现以下功能:

  1. 该航班分为头等舱 15 个座位经济舱 150 个座位(其中 140 个无烟区,10 个有烟区)根据系统提示,每位旅客均应输入自己的身份证号进行购票。
  2. 给购票者提供一个清晰的界面,例如:按“T”键为选头等舱;按“J”为选经济舱,若选经济舱则按“L”选择“无烟区”,按“C”选择“有烟区”。
  3. 若有烟区卖完了,系统能够自动询问购买者是否愿意购买无烟区。若愿意的话,就为其在无烟区分配一个座位,否则给出信息:“欢迎乘坐下次航班。”若票已全部售完应该给出清晰的提示。
  4. 对于购票者能给出详细的购票信息,例如:“欢迎乘坐本次航班您的机票是头等航的 4 号座。
  5. 系统能够计算出本次航班已经售出的各种机票总数和售票的总金额数。
  6. 查询:能够输入身份证号查询所购票是否已经订好。
    注:要用到面向对象的方法。

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

题目四:

通讯录管理系统设计

设计一个通讯录管理系统。定义通讯录类,属性有:编号、姓名、性别、通讯地址、邮箱地址、电话等信息和相关的对属性做操作的行为。完成对通讯录的简单管理。

功能要求:
1)添加功能:程序能够添加通讯录信息,要求编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加;
2)查询功能:可根据姓名、电话、邮箱地址等信息对已添加的信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;
3)显示功能:可显示当前系统中所有通讯信息,每条记录占据一行;
4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性;
5)删除功能:主要实现对已添加的通讯记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;
6)保存功能:可将当前系统中通讯录记录存入文件中,存入方式任意;
7)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

题目五:

人事管理系统设计

功能与内容:

  • 建立职工信息数据(职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息)和信息简表(编号,姓名,电话)
  • 根据职工编号查询职工信息(查询时需要身份确认。单位领导和人事秘书可以看到职工所有信息;财务处人员可以看到职工编号,姓名,性别,年龄,电话,工资;一般职工仅能查到信息简表)
  • 增加新职工信息(由人事秘书完成,需要身份确认)
  • 删除职工信息(由人事秘书完成,需要身份确认)
  • 修改职工工资(由财务处人员完成,需要身份确认)
  • 要求所有信息能够存储在文件中,并具有良好的用户界面

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

题目六:

模拟 ATM 机存取款管理系统

模拟银行的自动取款机使用过程中的界面和用户交互过程。实现查询银行卡余额、取款、修改密码、退出系统等功能。
功能要求:
1)卡号、密码输入最多三次,否则直接退出系统;
2)取款功能:取款金额受卡余额、机单笔最大取款金额及机当前剩余金额的限制;
3)查询功能:实现查询余额功能;
4)更改密码:实现密码更改功能,对于密码要有 2 次验证;
5)锁卡功能:实现卡被锁的功能;
6)退卡功能:实现退出系统功能。

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

题目七:

酒店点菜管理系统

为了适应现代信息时代点餐的需求,采用新信息技术,研究设计了一个计算机点餐系统。能够完成权限管理、点餐管理、订单管理、结账管理、菜谱评分等功能。
功能要求:
一款具有如下功能的可以提供消息传送和人机交互的实用性服务系统,具有如下功能:
1)权限管理:包括用户的注册、登录、用户信息管理;
2)点餐功能:包括餐单的增加、修改、删除、查看;
3)订单管理:包括生成订单、修改、删除、查找;
4)结账管理:统计消费的总额;
5)查看历史:查看消费历史;
6)菜谱评分:对各菜谱中经常点取的菜肴进行评分。

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

题目八:

超市商品管理系统

设计一个超市商品管理系统。超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和生产厂家、品牌等信息。主要完成对商品的销售、统计和简单管理。
功能要求:
1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。
2)商品简单管理功能。

  • 添加功能:主要完成商品信息的添加。
  • 查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。
  • 修改功能:可根据查询结果对相应的记录进行修改。
  • 删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。
    3)统计功能。
    输出当前库存中所有商品的总数及详细信息。商品详细信息可按商品的价格、库存量从大到小排序输出,并对每种商品的总价值进行统计、输出。
    4)商品信息存盘:将当前程序中的商品信息存入文件中。
    5)读出信息:从文件中将商品信息读入程序。

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

题目九:

停车场管理系统

设计一个停车场管理系统。定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满 n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
功能要求:
1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加;
2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;
3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行;
4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性;
5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;
6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等;
7)保存功能:将系统中当前停车信息保存至文件中,存入方式任意;
8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

题目十

学校水电费管理系统

设计一个学校水电费管理系统。住宿学生信息包括:学号、姓名、性别、年龄、班级、用电量、用水量等信息。教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。能计算出学生和教工每月所要交的电费和水费。定义一个人员类,实现学生和教工共同的信息和行为。
功能要求:
1)添加功能:程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加;
2)查询功能:可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;
3)显示功能:可显示当前系统中所有学生和教工的记录,每条记录占据一行;
4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性;
5)删除功能:主要实现对已添加的学生或教工记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作;
6)统计功能:能根据多种参数进行统计。能统计学生和教工的用水用电量、所要交纳的电费和水费、未交纳水电费的人员信息等;
7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意;
8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用;
9)计算电费和水费。学生每月都有一定额度的水电免费使用,超过的部分需要交费。

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

题目十一

物业费管理系统

完成小区物业费用管理系统设计。功能要求:
(1)新住户信息的添加。(户主姓名、性别、身份证号、联系电话、楼号、单元号、房号、平米数、每平米物业价格、应缴纳物业费,备注信息)
(2)修改住户信息的功能。
(3)删除住户信息的功能。
(4)应缴物业费自动生成。每月 1 号,自动生成本月份的物业费。如果该住户之前的物业费未交清,则本月物业费与之前拖欠费用进行累加,为该用户应缴纳的物业费。
(5)缴费功能。根据用户缴纳金额,修改“应缴纳物业费”。
(6)统计功能:能够按楼号分类统计所有未交清物业费的记录。能够按拖欠款项多少,对所有用户信息进行从大到小排序。
(7)用菜单进行管理

源码

https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111

3.2 附加题:(每人至少必做一个正选题,附加题为可选题,即,可在正选题的
基础上加做附加题)
附加一
线性方程组求解
在纯文本文件中输入是 N(N<20)元线性方程组(方程形式:a1x1+a2x2+…+ anxn+c=0)
的系数矩阵,每行一个方程,系数之间用空格隔开,在程序中读取方程组的系数矩阵,求解
方程组(可用高斯消去法求解,也可以采用其它方法)。方程组的解输出到另一个纯文本文
件中,每个未知数的解占一行(如 x1=4.5)。如果方程组无解,则直接在程序中输出“此方
程组无解”,不写结果文件;如果有多组解,则应输出多组解至结果文件中每组解之间用两
个空行分隔开。
系数矩阵、结果示例
方程组:

?1 + 2?2 + 3?3 + 4 = 0
2?1 + 2?2 + ?3 + 2 = 0
?1 + ?2 + ?3 − 7 = 0

系数矩阵:(输入文件中的内容)

1 2 3 4
2 2 1 2
1 1 1 -7

结果:(输出文件中的内容)

x1 = 34
x2 = -43
x3 = 16

附加二
矩阵乘法(数值求解算法)
编写一个函数实现矩阵 A(AL 行 AR 列)与矩阵 B 相乘(AR 行 BR 列)。在 main 函
数中输入相乘的两个矩阵,并输出结果矩阵 C(AL 行 BR 列)。
矩阵示例:

A:
[
2 1 3
3 1 1
]→第一行输入 2 1 3,回车,第二行输入 3 1 1 回车
B:
[
1 2
2 3
4 1
]→第一行输入 1 2,回车,第二行输入 2 3 回车,第三行 4 1 回车
A 与 B 的乘积:
[
16 10
9 10]→第一行显示 16 10 换行,第二行显示 9 10 换行

附加三
用梯形法求定积分(数值求解算法) 用梯形法编程求函数 f(x)=ax
2+bx+c 的定积分
把积分区间[A,B]等分为 N 等分(N 越大,误差可能越小。A、B、N 的值在程序中输入),可得到若干个小梯形,积分面积就近似为这些小梯形面积之和。也可采用矩形法。
3.3 源程序设计注意事项

  • 所有题目原则上要求使用面向对象的程序设计方法,尽可能避免使用 C 语言程序设计风格。
  • 源程序中一定要有充分的注释
  • 所有程序中涉及输入操作时,要有输入有效性验证与合理的容错处理措施
  • 尽可能使用多文件编程

四、实验要求
上机 C++编程环境为 Microsoft Visual Studio(2010 至 2022 版)。
每天课内上机不少于 2 小时,课外自学不少于 3 小时。

五、课程学时分配
于一周内完成所有设计、报告撰写及答辩任务。

六、考核方式
课程设计的成绩按以下几个方面进行综合评定。

  • 程序完成课程设计题目要求情况;
  • 答辩情况,答辩包括题目简述、关键技术要点的理解、程序运行演示、问题回答等;
  • 课程设计报告撰写情况;
  • 平时成绩。

七、报告撰写要求
课程设计报告应包括如下几个部分内容:
1、所选题目及其完整设计要求
2、系统分析
根据所选题目的设计要求进行面向对象的系统分析,要求有完整系统分析过程与功能模块分析。设计思路与设计过程的阐述应详尽、明确。
3、技术关键点算法分析与流程图
所有的关键技术点(至少二到三个)要解释其算法并绘制流程图。
4、程序源代码
提供完整的程序源代码,要求每个功能模块及技术关键点、难点处加注释以说明。
自定义类要针对每个类成员进行注释。所用到类库中的类或系统自定义对象也要做必要
的注释说明。
5、课程设计总结
针对整个课程设计过程进行一个总结,如系统分析过程所遇问题与解决办法,程序编写、
调试运行过程与体会等等。
6、参考文献
八、课程设计注意事项:
1、答辩时,源程序必须以 Microsoft Visual Studio 项目的形式提交,并编译运行程序。
2、学院计算机中心计算机在关机、重启后,先前保存在硬盘中产生的任何文件保存与
修改都会自动清除!请同学们自备优盘、移动硬盘等备份自己的程序。
3、严格遵守机房有关管理规定与纪律要求。
计算机程序设计基础(C++)
课程设计报告
学 院: 资源与安全工程学院
班 级: 土木安全类 2224 班
学 号:
姓 名:
指导老师: 杨念哥
课程设计时间:2022~2023 学年第二学期第 19 周
一、课程设计题目与设计要求
1.1 课程设计题目
设计一个简单的图书管理系统……
……
二、系统分析
三、技术关键点算法分析与流程图
四、程序源代码
五、课程设计总结
六、参考文献