【南邮】C/C++程序设计题目及要求 [2025-11-26]
指导教师:胡素君
一、课程设计的目标与意义
本实践环节旨在巩固学生在大一上学期《高级语言程序设计》课程中所掌握的基础知识,并进一步提升其运用编程解决实际问题的能力。
通过为期一周的集中上机训练,学生将深化对面向过程编程核心概念的理解,熟练掌握基于C或C++语言的程序开发方法。在此过程中,学生需独立查阅资料、分析需求、设计算法并完成编码实现,从而锻炼自主学习和综合解决问题的能力。同时,熟悉一种完整的程序开发环境,为后续专业课程的学习打下坚实基础。
每位学生以小组形式参与,需选择一个课题进行系统设计与实现。在教师指导和团队协作下,完成从需求分析到代码实现的全过程。最终提交内容包括:完整的设计报告、源代码文件以及可执行程序。指导老师将组织简要的答辩环节,检查各组成果的完成质量。
二、设计课题说明
课题一:热门电视剧评价与推荐平台
问题背景:构建一个支持双角色交互的电视剧管理系统——管理员与普通用户。管理员需凭密码登录,具备维护电视剧信息的权限,包括增删改查操作;同时可以查看所有用户对各类剧集的评分详情。普通用户则可浏览热度排名前10的电视剧信息,按剧名检索内容,观看后从多个维度进行评分,并查看他人对该剧的具体评价记录。
开发技术要求:使用C或C++语言实现,编译工具自定。
功能基本要求:
- 电视剧基础数据可通过键盘输入(建议先用记事本等文本编辑器创建),保存为文本格式文件。管理员可通过系统对这些数据进行读取、新增、删除和修改操作。
- 为增强用户体验,需设计清晰的人机交互界面,区分管理员与普通用户的操作视图。必要时应采用多级菜单结构,提升操作逻辑性与直观性。
- 管理员登录需验证用户名和密码,输入密码时字符以“*”显示,防止明文泄露。若连续三次输入错误,则禁止继续登录尝试。
- 普通用户功能包括:按剧名查询电视剧详情;选择指定剧目进行多维度评分;查看某部剧的所有用户评价;获取当前最受欢迎的前十部电视剧列表,辅助观影决策。
设计规范要求:
- 可在基础功能之上拓展合理的新功能,如搜索历史、收藏功能等。
- 变量与函数命名应遵循编程规范,具有可读性和一致性。
- 注释完整详尽:每个变量需注明用途;每个函数需说明功能、参数含义及返回值意义;关键代码段落必须配有解释性注释。
- 整体程序结构清晰,模块划分合理,便于阅读与维护。
扩展功能建议:
- 鼓励使用QT、MFC等框架开发图形化界面,支持彩色显示与鼠标操作。
- 为普通用户提供分类排序功能,例如仅按“特效”单项指标筛选出得分最高的前十部剧集,而非依赖综合评分。
- 为管理员提供统计分析功能,能够对各项评分指标按分数区间(如90-100分、80-89分等)进行分段统计,生成可视化报表或汇总结果。
课题二:航班票务模拟系统
问题描述:某机场每日运营n个航班,每个航班包含以下固定属性:航班编号、起飞时间、出发地、目的地、飞行时长、额定载客量及剩余票数。示例如下:
| 航班号 | 起飞时间 | 出发地 | 目的地 | 飞行时长 | 额定人数 | 余票数量 |
|---|---|---|---|---|---|---|
| MU2344 | 8:00 | 禄口机场 | 白云机场 | 2小时30分钟 | 168 | 30 |
| KU2112 | 6:30 | 禄口机场 | 双流机场 | 2小时45分钟 | 150 | 40 |
| HU2552 | 7:00 | 禄口机场 | 首都机场 | 1小时30分钟 | 200 | 20 |
| CA1503 | 10:00 | 首都机场 | 禄口机场 | 2小时 | 168 | 2 |
本系统需实现对存储于文件中的航班信息进行常规管理操作,如查询、排序、显示、售票退票等。通过该项目,强化对文件操作、数组处理、指针应用及基础算法思想的掌握。
开发环境:采用C或C++语言实现,编译器可自行选择。
角色与功能设定:
- 管理员:通过密码登录系统,拥有修改航班信息的权限。所有航班数据可保存在.dat或.txt文件中,支持动态添加新航班记录。
- 普通用户:
- 使用身份证号码注册账号,登录后可查看全部航班状态。若当前系统时间已超过航班起飞时间,则提示“此航班已发出”。
- 支持按航班号、始发站或终点站进行路线查询。
- 可根据起飞时间对航班列表进行排序(排序方式自定义),并将排序结果输出至文件(如sort.dat或sort.txt)中保存。
- 售票员:
- 通过密码登录进入工作界面。
- 实现售票与退票功能:
- 售票条件:已售出票数小于额定载量,且当前时间早于起飞前两小时(允许设置提前购票时限)。成功购票后自动更新余票数量。
- 退票条件:仅在航班起飞前两小时以上方可办理退票,系统自动减少已售数量。
设计要求:
- 界面设计简洁友好,确保用户输入合法合理,例如日期与时间格式的有效性校验。
- 实行实名制购票机制,系统限制每张身份证只能购买一张机票,防止重复购票。
题目3:小学100以内正整数加减运算系统
问题描述:设计并开发一个面向小学生的数学练习系统,用于完成100以内的正整数加减法训练。程序需满足以下功能要求:
- 系统随机生成10道不重复的题目。若为减法题,则被减数必须大于减数。
- 题目呈现方式支持两种模式:
- a. 选择题形式:每道题提供4个选项,其中包含正确答案;
- b. 填空题形式:用户通过键盘直接输入答案。
- 系统在每次答题后自动判断对错,并累计得分。
- 答题结束后,显示用户的总用时。
- 记录所有答错的题目及其正确答案,支持后续查看与复习。
开发环境
使用C或C++语言实现,编译工具可自行选择。
基本功能需求
- 提供菜单界面,支持用户登录并进入答题流程。
- 设置独立选项供用户查阅历史答题情况,在答题过程中不可访问该功能。
- 提供“错题重做”功能,若用户再次答对某道错题,则将其从错题集中移除。
- 支持将生成的题目导出至文本文件,同时将对应答案保存到另一文件中,便于线下测试使用。
设计规范
- 界面布局合理,操作直观便捷。
- 代码注释完整:
- 每个变量均需标注用途;
- 函数需注明功能、参数意义及返回值说明;
- 关键代码段应有解释性注释。
- 程序结构清晰,模块划分明确,易于阅读和维护。
- 命名遵循编程规范,变量与函数名称具有可读性和语义性。
拓展功能建议
- 推荐使用MFC、QT等框架开发图形化界面,提升交互体验,支持彩色显示。
- 支持带括号的复合运算表达式,例如:5 - (95 - 93),系统能正确解析并计算结果。
- 增加帮助菜单,提供系统使用说明以及模拟答题演示功能。
题目4:模拟电影院售票系统
问题描述:某电影院设有5个放映厅,需开发一套模拟排片与售票管理系统。系统需能够对存储在文件中的票务数据进行查询、统计、展示等操作。通过该项目掌握文件处理、数组与指针的应用,以及基础算法的设计思路。
开发环境
采用C或C++语言实现,编译器可自定义选择。
角色设定与功能划分
系统建议设置两类用户角色:管理员与普通观众,权限不同,功能各异。
管理员功能
- 通过密码验证登录系统;
- 为各放映厅安排次日的电影场次;
- 统计指定影片当日的票房收入;
- 对当天所有影片的票房数据进行排序展示。
普通观众功能
- 支持新用户注册;
- 可浏览当前各厅的排片信息;
- 查看具体放映厅的座位销售状态,示例如下:
□□□□□□□□□□ □□□□□□□□□□ □□□■■■■□□□ □□□□■■□□□□ □□□□■■■□□□ ■ 已售出 □ 可售
- 支持选座购票,成功购票后相应座位状态更新为“已售”;
- 支持退票操作,系统自动更新剩余票数;
- 实时反映座位图变化。
系统菜单设计
提供多级菜单选项,包括但不限于:角色选择、时间筛选、功能导航等。
设计要求
- 界面简洁美观,人机交互流畅。
- 代码注释详尽:
- 所有变量需标明作用;
- 函数需说明功能、输入参数与返回值含义;
- 重要逻辑段落附带解释性注释。
- 整体结构层次分明,逻辑清晰,便于后期扩展。
- 标识符命名符合行业标准,具备良好可读性。
拓展功能建议
- 增强输入校验机制,确保用户输入合法有效。
- 允许用户查看个人历史购票记录。
- 鼓励使用MFC、QT等工具构建图形界面,实现彩色可视化操作环境。
题目5:家庭支出管理系统
问题描述:开发一个针对家庭月度消费的数据管理工具,实现支出信息的录入、分类、分析与输出。通过本项目深入理解数组、指针的操作方法,并应用基本算法解决实际问题。
开发环境
使用C或C++语言编写,编译工具不限。
数据内容定义
每条支出记录应包含以下字段:
- 支出类型(如:饮食、服饰装扮、礼金、教育培训、电器、健身、通讯、子女培养、旅游、文化娱乐、医疗、交通、聚会、居住等);
- 金额;
- 消费地点;
- 消费时间。
核心功能实现
- 用户需凭用户名和密码登录系统;
- 输入目标月份,进入该月的支出管理界面;
- 支持逐条录入当月支出,并进行汇总统计;
- 显示完整的月度支出明细表,至少包含日期与金额信息;
- 按支出类别进行归类统计,并支持排序展示;
- 执行消费分析,计算各项支出占总支出的比例,并可视化呈现结果;
- 展示按类型排序后的支出列表;
- 将最终排序结果保存为外部文件。
设计要求
- 界面友好,交互自然;输入内容需符合现实逻辑,例如金额不能为负,禁止非数字字符输入等。
- 结合日常生活场景,设计实用且合理的功能模块。
- 各类数据结构设计清晰,便于增删改查操作。
- 允许开发者根据自身生活经验添加个性化功能。
拓展功能建议
- 推荐使用MFC、QT等GUI开发工具,打造彩色图形操作界面。
- 引入小型数据库或预设数据集作为初始数据源,拓宽知识应用场景。
题目6:企业员工业绩管理系统
问题描述:构建一个用于企业管理员工绩效的信息系统,实现业绩数据的采集、存储、分析与报告输出。通过该项目强化对结构体、数组、文件操作和算法设计的理解与应用。
开发环境
采用C或C++语言开发,编译器可自由选择。
功能设计方向
- 支持员工基本信息与业绩数据的录入,如销售额、任务完成率、考勤表现等;
- 实现按部门或个人维度的业绩查询与对比分析;
- 提供业绩排名功能,支持多指标综合评分;
- 生成月度/季度/年度报表,并可导出为文件格式。
设计原则
- 系统界面简洁直观,操作路径清晰;
- 结合企业管理实际需求,设计贴合业务流程的功能模块;
- 数据结构组织有序,主键关系明确,支持高效检索;
- 允许开发者基于真实职场体验,扩展附加功能,如奖惩记录、晋升建议等。
拓展功能建议
- 鼓励使用MFC、QT等工具开发图形用户界面,支持颜色区分与动态图表展示;
- 集成小型本地数据库或CSV文件作为数据源,提高系统的实用性与扩展性。
本项目旨在开发一个综合性的员工绩效管理平台,能够对多个员工在不同季度的工作表现进行系统化管理。系统需具备读取存储于数据文件中的员工资料功能,并支持根据工号实现信息的新增、编辑与删除操作;同时提供按工号、姓名或业绩排名等多种方式查询员工详情。用户可依工号顺序逐条浏览所有员工记录,系统还能自动统计各季度的最高、最低及平均业绩值,并计算每位员工四个季度的总成绩,据此生成排名列表。
所有系统数据必须以文件形式持久化保存至硬盘,包括员工基本信息文档,其中包含工号、姓名、性别、每季度业绩得分、四季度总分以及基于总分的排名情况。数据格式示例如下:
B01,Tom,Male,70,80,90,85
B02,Rose,Female,70,80,90,75
B03,Jack,Male,80,90,95,70
...
[此处为图片1]
开发语言限定为C或C++,编译器可自行选择。
核心功能要求
- 用户登录机制:系统使用者(通常为人力资源部门人员)需通过输入指定账号和密码方可进入主界面。
- 初始数据录入:程序开发者需预先通过键盘输入不少于20条员工数据并保存至文件中。
- 交互式界面设计:构建清晰友好的操作界面,提升用户体验。
- 排序展示功能:允许用户自定义查询结果的显示顺序,支持按任意字段升序或降序排列。
- 员工信息维护:支持对员工基础信息执行添加、删除和修改操作。
- 业绩数据调整:可单独更新某一员工在特定季度的业绩数值。
- 员工信息查询:
- 输入工号后,显示该员工的基本资料。
- 输入工号后,查看其全部季度的业绩详情。
- 业绩统计查询:
- 输入部门编号,列出该部门下所有员工的基础信息。
- 指定某个季度,获取该季度的整体业绩统计数据,包括最高分、最低分和平均分。
开发规范要求
- 界面设计应简洁直观,确保输入内容符合实际逻辑。
- 代码注释完整:每个变量需标明用途;函数需注明功能、参数意义及返回值说明;关键代码段须附解释性注释。
- 程序结构层次分明,便于阅读与维护。
- 命名规则遵循编程规范,变量与函数名称具有可读性和语义性。
扩展功能建议
- 增强输入校验机制,防止非法数据录入。
- 推荐使用MFC、QT等图形界面框架,实现彩色化或可视化操作环境。
题目7:考试管理系统
该项目目标是利用C或C++语言构建一个模拟考试流程的管理系统,涵盖考生信息管理、成绩记录、试题库建设(仅含单选与多选题型),以及完整的在线考试过程模拟。
开发语言为C/C++,编译工具可自由选定。
基本功能模块
- 考生信息管理:实现考生数据的增删改操作,所有信息以文件形式存储。
- 考试流程控制:
- 设定考试题目数量,默认值可配置且支持修改。
- 从题库中随机抽取指定数量的不重复试题进行展示。
- 模拟真实考试场景:考生输入学号登录,若已参加过考试则提示并禁止重复应试;提交答案后立即评分并将成绩写入文件。
- 试题库管理:
- 导入真实的C语言相关试题,总量不少于200道。
- 支持向题库中新增题目。
- 试题以文件形式存储,每道题包含题干、四个选项、标准答案(需兼容多选题情形)。
- 成绩查询服务:
- 输入考生学号或姓名,即可查看其考试成绩及班级排名。
技术实现要点
- 合理选择数据结构,如采用结构体数组或链表来加载并管理题库内容。
- 实现高效的随机抽题算法,确保每次抽取的题目无重复。
- 功能布局合理,界面友好易用。
- 必须完成所有基础功能,鼓励结合实际需求设计合理的菜单结构和交互逻辑,可参考扩展建议优化系统。
拓展建议
- 推荐采用MFC、QT等GUI开发工具,打造彩色图形化操作界面。
- 在题库管理过程中,需设计机制保障新增、删除、修改操作不会破坏题目的唯一性。
题目8:背单词系统
“背单词—个性化记忆”是一款面向英语学习者的词汇掌握软件。用户可根据自身需要导入所需记忆的词库,并支持对个人词库进行编辑管理。背诵模式提供两种选择:系统显示中文释义,用户拼写对应英文单词;或系统给出英文单词,用户填写中文含义。系统将判断回答是否正确,答对加分,错误则给予提示并要求重新输入。
主要功能要求
- 用户登录模块:
- 新用户可注册账户,老用户直接登录。
- 支持仅打卡不参与背词的学习模式,允许直接退出系统。
- 单词本管理:
- 存储单词的英文、词性、中文解释等基本信息。
- 提供词库维护功能,支持单词的增加、修改、删除及补充释义(针对已有单词添加新义项)。
- 背诵练习与成绩统计:
- 提供单词预览功能,用于学习前的知识回顾。
- 背诵模式分为选择题形式和拼写输入形式,支持多次循环练习。
- 每答对一题加10分,答错扣10分,错误题目自动加入错题本。
- 可查看累计得分,未达到设定过关分数时,可选择重背错题直至完全掌握。
- 复习功能:
- 当无错题时,界面提示“没有错题,继续努力”。
- 存在错题时,提供“错题重背”选项,帮助强化记忆。
- 系统退出机制:
- 退出时支持打卡操作,系统自动统计连续背词天数。
设计准则
- 界面美观大方,操作流畅便捷,提升用户交互体验。
(2)注释规范:所有变量均需添加注释,明确其用途;每个函数须配有功能说明注释,并对输入参数和返回值进行详细解释;关键代码段应附有必要的注释,帮助理解程序逻辑。
(3)程序结构清晰,具备良好的可读性,层次分明,便于后期维护与扩展。
(4)变量及函数命名遵循编程规范,采用有意义的标识符,提升代码的可读性和专业性。
拓展功能需求
(1)实现用户输入的有效性校验,确保数据的合法性和系统的稳定性。
(2)支持统计各单词的出现频率以及背诵正确率,为后续出题策略提供数据支持。
(3)具备提醒功能,通过定时提示激励用户持续学习,增强使用黏性。
(4)在条件允许的情况下,可选用MFC等开发工具构建图形化操作界面,支持彩色显示与交互式操作。
三、 程序设计要求
附1:课程期间纪律与提交内容要求
《程序设计(上机)》课程对学生的基本要求:
(1)上机前必须做好充分准备,建议提前撰写算法思路和主要代码框架,以提高上机效率。每位学生应配备一至两本相关编程工具书作为参考。
(2)每组需推选一名组长,负责任务分配与考勤管理。具体工作包括编程实现、资料收集、数据录入、程序测试及报告撰写等。建议由具备一定编程基础和组织能力的学生担任组长。
(3)在规定上机时间内不得无故缺席,如有特殊情况,须向辅导员和指导教师提交书面请假申请,严禁迟到早退。上机期间禁止从事与课程无关的活动,如玩游戏、观看视频、QQ聊天等。
(4)课程后期需认真完成程序设计报告,报告页数不少于15页,要求格式规范、结构合理、条理清晰。为保证兼容性,报告统一采用Word文档格式(.doc)。
(5)程序设计结束后需按时提交相关材料,包括程序设计报告、源代码文件、原始数据文件及其他保障程序正常运行所需的辅助文件。
[此处为图片1](6)所有提交材料由组长统一收集并核查完整性,确认无误后交予班长或学习委员。组长需确保每位成员的文档符合规范要求。班长或学习委员汇总全班资料后,压缩为一个文件包,命名为“程序设计_班级名.rar”,发送给任课教师。建议保留备份以防意外丢失。每个小组对应一个独立目录,命名格式为“组号_题目名称”,例如:“第03小组_模拟电影院售票系统”。其中组号为两位数字,不足部分以0补齐。
该目录应包含以下内容:
- 程序设计报告电子版一份,文件命名格式为:程序设计_组长学号后两位_组员学号后两位_组员学号后两位.doc,例如:程序设计_01_02_03.doc。请提交标准Word格式(.doc),避免使用WPS专用格式。
- 源程序文件一份,以课题名称命名,如:模拟电影院售票系统.cpp。
- 数据文件一份,根据实际需求命名。
- 其他确保程序正常运行所必需的文件,按实际情况命名并放入目录中。
(7)推荐进度安排如下:鉴于仅有为期一周的集中上机时间,学生需合理规划进度。第一天用于任务布置、资料查阅、小组讨论、完成需求分析及初步代码编写。第二至第三天集中进行程序设计与编码工作,同步开展阶段性测试。第四至第五天重点进行代码优化、调试完善、报告撰写,并准备答辩与项目验收。
附2:成绩评定标准
最终成绩将综合以下方面进行评定:
(1)上机出勤情况;
(2)上机前的准备工作是否充分;
(3)在机房集中上机期间的学习态度与表现;
(4)最终程序完成质量,包括正确性、健壮性、功能全面性、模拟真实度以及代码的清晰可读性;
(5)程序设计报告的撰写质量与完成度;
(6)项目验收过程中回答教师提问的表现,若有答辩环节,则还需考察答辩时的表达与应变能力;
(7)综合上述各项因素,最终成绩分为五个等级:优秀、良好、中等、及格、不及格。
附3:B240103班集中上机安排
(非集中上机时间由各小组自行组织上机与研讨)
第12周上机时间与地点:全部安排在仙林校区计算机学科楼内
| 星期一 | 星期二 | 星期三 | 星期四 | 星期五 |
|---|---|---|---|---|
| 1-9节 学六-202 |
1-9节 学六-204 |
1-5节 学六-204 6-9节 学六-206 |
10-12节 学六-202 |
8-9节 学六-204 |
四、 任务分工
本次程序设计共设有8个题目,学生需先行分组,每组人数控制在2至3人之间。各组需指定一名组长,具体选题方式将在班级群内另行通知。本课程的具体组织形式详见表1中的红色标注部分。
表1 “程序设计(上机)”课程组织形式
| 模式 | 个体模式 | 小组模式 |
|---|---|---|
| 材料提交形式 | 每人各自提交代码与报告 | 小组共同提交一份代码和报告 |
| 适用报告模板 | 报告样稿(个体报告版) | 报告样稿(团体报告版) |
| 其它要求 |
(1)每组不超过三人。 (2)确保每位学生的代码量和工作量充足。 |
(1)每组不超过三人。 (2)确保每位学生的代码量和工作量充足。 |
各小组应明确内部职责分工,涵盖系统架构设计、程序编码、代码测试、数据准备、报告撰写等内容,必要时还需安排答辩PPT的制作任务,确保项目有序推进、责任到人。
[此处为图片1]

雷达卡


京公网安备 11010802022788号







