南京邮电大学《程序设计(上机)》题目[2023-07-21]

南京邮电大学《程序设计(上机)》题目[2023-07-21]

2022-2023学年第1学期
程序设计
实验指导书
胥备 17766106600

一、 实验前准备
硬件:微型计算机一台(个人笔记本电脑)
软件:任一C或C++语言开发工具
知识准备:
1)复习C或者C++语言知识

二、 实验目的与任务
目的:本课程是在《高级语言程序设计》和《面向对象程序设计及C++》两门课程结束之后的一个编程实践环节,通过较复杂和综合的题目对学生的程序设计能力进行一次综合训练。学生在程序准备、程序实现、完成文档、答辩验收过程中,将全面巩固已学过的编程知识,全面提高编程技能,在编程风格、调试器的使用、测试技术等方面得到全面训练。在程序设计过程中,学生需要查找各种资料获取有用信息解决实际问题,自学相关知识,提高文档书写能力,加强团队合作意识,提高口头表达能力。
任务:本课程设置了几个不同的课题,每个人完成一个课题。每个课题中将有多个功能模块。

三、实验时间和安排:第3-4周
日期 课程安排
第1-4课时 公布课程安排,说明上机时间安排、课程内容、课程要求、考核方式、评分标准。
第5-8课时 学生按每人一个小组,确定程序题目,设计程序结构和程序模块,完成程序设计书。
第9-16课时 上机编写程序
第17-20课时 上机编写程序
第21-24课时 检查程序编写进度,继续上机编写程序。
第25-28课时 上机编写程序
第29-32课时 检查程序,提交代码和程序设计报告

三、 实验内容和要求

源码联系UP主 -> https://space.bilibili.com/329101171

《程序设计(上机)》题目

模块一:猜单词

(一)课题内容
要求用C或C++模拟猜单词游戏。游戏包括:单词管理、玩家纪录、猜词过程、系统设置等必须完成的基本功能以及成绩计算、猜词时间限制、词库管理等选做的扩展功能。通过该课题全面熟悉数组、字符串、文件的使用,掌握程序设计的基本方法及友好界面的设计。
(二)课题要求
课题分基本要求和扩展要求,基本要求是必须完成的,扩展要求视能力自选一个或多个完成。

  1. 基本要求
    (1) 单词管理:程序中用来做谜题的单词必须存放在磁盘文件中,文件中的单词数不得少于200个。
    (2) 玩家纪录:程序要求记录前五名成绩。成绩指标自行设计,必须包括时间。记录的时候要求有排名、玩家姓名、成绩三项,并保存在文件中。在程序开始运行的时候就必须读入,以便随时供玩家查询、及时更新成绩。
    (3) 猜词过程:①先请用户输入猜的单词数量,可以有一个默认值。②随机抽取单词,对每个单词,系统根据谜底单词长度在屏幕上显示相应个数’-‘,假设谜底单词为"hello",则在屏幕上输出"-----"。③玩家输入一个字母进行猜测,如果这个字母不在单词中,系统提示玩家不对;如果猜对字母,比如玩家输入了一个’l’,则在屏幕上输出"–ll-"。④重复③,直到玩家在规定的次数内猜出了单词或者超过次数游戏失败。⑤显示玩家每个单词猜对与猜错次数等统计信息。如果玩家猜出单词,计算成绩,如进入前五名提示玩家并记录存储到记录文件中。⑥询问玩家是否开始新一轮猜词,如果玩家选“否”,则系统退到外面的菜单。
    (4) 系统设置:猜词次数可以为默认值。玩的时候,可以对其进行修改。
  2. 扩展要求
    (1) 成绩计算:考虑各种情况下所设计的成绩计算方法是否合理。
    (2) 除了玩家猜词的次数有限制之外,对玩家猜一个单词的总时间进行限制。
    (3) 可以向单词库中添加单词、删除单词或修改单词。
    (三)考核及报告要求
  3. 考核
    根据学生平时的上机出勤情况、为上机所作的准备情况、上机时的表现、程序的完成情况、报告的完成情况、验收答辩时的表现等综合打分。等级为:优秀、良好、中等、及格、不及格。
  4. 报告要求
    见附件。

模块二:打印万年历

(一)课题内容
用C或C++编程实现一个简单、实用的万年历程序。主要功能为在屏幕上显示任意年月的月历,按每行两个月的格式输出当年或指定的任意年的年历。通过此课题,熟练掌握数组、格式输出、字符串处理、时间函数的调用、文件的各种操作,以及一些基本的日期算法思想。
(二)课题要求
课题分基本要求和扩展要求,基本要求是必须完成的,扩展要求视能力自选一个或多个完成。

  1. 基本要求
    (1) 读取系统时钟,计算与日期相关的信息,首先打印出当月的月历,在当月月历的最下方也下列两行方式显示与当前有关的信息:
    今天是: 2021年12月20日,星期二
    当前时间是:22时40分43秒
    (2) 输入任意年号能得到指定年的年历(万年历)。
    (3) 将屏幕上显示的月历和年历均存为文本文件以便今后读取。
    (4) 按每行两个月的格式显示今年的日历,形式如下:
***** ***** ***** *****
    * *   * *   * *   *
***** *   * *   * *****
*     *   * *   *     *
***** ***** ***** *****
              Jan                                  Feb
________________________________     ________________________________
Sun Mon Tue Wed Thu Fri Sat          Sun Mon Tue Wed Thu Fri Sat
                          1                    1   2   3   4   5
  2   3   4   5   6   7   8            6   7   8   9  10  11  12
                ……                                   ……
  1. 扩展要求
    (1) 重要节假日用一个文本文件进行设置,文件格式为txt。程序应通过读取节假日文件的信息来对日历上的节假日日期进行标注。从而在日历上显示节假日信息。如十月份的1号显示为:国庆节 1。
    (2) 提供按年上下翻页的功能来实现对上一年或下一年的年历的查询功能。
    (三)考核及报告要求
  2. 考核
    根据学生平时的上机出勤情况、为上机所作的准备情况、上机时的表现、程序的完成情况、报告的完成情况、验收答辩时的表现等综合打分。等级为:优秀、良好、中等、及格、不及格。
  3. 报告要求
    见附件。

模块三:火车票务管理系统

(一)课题内容
用C或C++语言实现一个简单的火车票务系统,能实现火车车次信息管理、查询、统计、排序等功能,并提供售票及退票服务。通过此课题,熟练掌握文件、数组、结构体的各种操作,以及一些算法思想的应用。
(二)课题要求
课题分基本要求和扩展要求,基本要求是必须完成的,扩展要求视能力自选一个或多个完成。

  1. 基本要求
    (1) 提供录入功能,录入一个火车站的n个发车班次信息存于文件schedule.dat中,具体有下列信息:
    车次 发车时间 起点站 终点站 行车时间 额定载量 余票数量
    (2) 可随时增加、修改、删除车次数据。
    (3) 浏览班次信息,可显示出所有车次当前状况(如果当前系统时间超过了某班次的发车时间,则显示“此车已发出”的提示信息)。
    (4) 查询路线:可按班次号、起点站、终点站查询售票情况。
    (5) 按发车时间的先后给出发车时间表(排序方法自选),存入文件保存(sort.dat)。
    (6) 售票和退票功能:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新余票数量;退票时,输入退票的班次,在本车次发出前半小时才可以退票,自动更新已售票数和余票数量。
  2. 扩展要求
    (1) 角色区分:以上的功能(1)和(2)只有管理员凭密码才能操作;其余所有的功能管理员和普通访客均可操作。
    (2) 某人一旦购买了某一天的某一趟火车,则不允许他预订同一天其他班次的火车。
    (三)考核及报告要求
  3. 考核
    根据学生平时的上机出勤情况、为上机所作的准备情况、上机时的表现、程序的完成情况、报告的完成情况、验收答辩时的表现等综合打分。等级为:优秀、良好、中等、及格、不及格。
  4. 报告要求
    见附件。

模块四:文档编辑器的设计与实现

(一)课题内容
用C或C++语言实现一个简单的文档编辑器,该系统要求对一个文本文件中的内容进行各种常规操作,如:插入、删除、查找、替换、排序等功能。通过此课题,熟练掌握文本文件的操作及用字符数组或字符指针实现字符串操作的功能。
(二)课题要求
课题分基本要求和扩展要求,基本要求是必须完成的,扩展要求视能力自选一个或多个完成。

  1. 基本要求
    (1) 首先文件标准化处理:如果句子有前导空格和后导空格,则删除这些空格,单词与单词之间只保留一个空格。
    (2) 统计功能:可方便地统计出文档中所有出现次数最多和最少的单词。
    (3) 查找与替换功能:能够查找任意一个字符串在文档中出现的次数,并可以选择全部或有选择地将其替换为另一个字符串。
    (4) 显示功能:编辑完成后可以显示编辑后的文档。
    (5) 抽取功能:重复单词只保留一份拷贝,单独存于另一个文件中。
    (6) 排序功能:按单词的长度由小到大排序。
  2. 扩展要求
    (1) 按单词出现的频率由小到大排序。
    (2) 不是简单地以空格为分隔符来确定单词,单词必须以字母开头,加入一些规则将单词和非单词分别用不同的文件存储。
    (三)考核及报告要求
  3. 考核
    根据学生平时的上机出勤情况、为上机所作的准备情况、上机时的表现、程序的完成情况、报告的完成情况、验收答辩时的表现等综合打分。等级为:优秀、良好、中等、及格、不及格。
  4. 报告要求
    见附件。

模块五:大整数的算术运算

(一)课题内容
用C或C++语言实现一个简单的大整数的算术运算程序。主要功能计算两个大整数(20位)的加减乘除算术运算,按指定的格式输出结果。通过此课题,熟练掌握字符串、格式输出、文件的各种操作,以及基本的计算算法思想的应用。
(二)课题要求
课题分基本要求和扩展要求,基本要求是必须完成的,扩展要求视能力自选一个或多个完成。

  1. 基本要求
    (1) 输入功能:能实现从键盘或文本文件输入代表大整数的字符串并用合适的结构存储,能实现输入整个表达式(含大整数和相应的运算符)。
    (2) 输出功能:将算式及计算结果按照一定格式批量输出到屏幕及另一个文本文件中。
    (3) 判断功能:能够对输入的表达式判断其正确与否,如果表达式不正确则无法进行运算;表达式正确的情况下执行运算功能。
    (4) 运算功能:可以实现大整数的加减乘除运算。
  2. 扩展要求
    (1) 定义一些常用的数学函数对大整数进行运算,如:sqrt(x)、pow(x,y)等。
    (三)考核及报告要求
  3. 考核
    根据学生平时的上机出勤情况、为上机所作的准备情况、上机时的表现、程序的完成情况、报告的完成情况、验收答辩时的表现等综合打分。等级为:优秀、良好、中等、及格、不及格。
  4. 报告要求
    见附件。
    四、主要仪器设备
    硬件:微型计算机。
    软件:Visual C++6.0或Turbo C++3.0或其他集成开发环境。
    五、教材及参考书
    教材:
    [1] 朱立华,王立柱.C语言程序设计.北京:人民邮电出版社,2009
    [2] 朱立华,朱建,俞琼.面向对象程序设计及C++.北京:人民邮电出版社,2008
    参考书:
    [1] 张引等.C程序设计基础课程设计.浙江:浙江大学出版社,2007
    [2](美国)哈比森.C语言参考手册(原书第5版).北京:机械工业出版社,2008
    [3](美国)Brian W.Ketnighan,Dennis M.Ritchie.C程序设计语言(第2版).北京:机械工业出版社,2005

附:程序设计提交的报告样例

通达学院
程序设计
报告
题 目:
专 业
学 生 姓 名
班 级 学 号
指 导 教 师
指 导 单 位 计算机学院、软件学院、
网络空间安全学院
日 期 2022.9

Title(Here,please write the name of your Project)
(题目格式:宋体,3号,加粗,居中对齐)
一、 Description and Requirement(格式:Times New Roman,4号,加粗,两端对齐)
(正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距)
二、Requirement Analysis(格式:Times New Roman,4号,加粗,两端对齐)
在该部分中叙述系统的功能,由此得到相应的模块,并分析需要什么的数据,由此可以指导数据库的设计。
(正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距)
三、High level design (格式:Times New Roman,4号,加粗,两端对齐)
在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,如果用面向对象的方法,应该给出类中成员变量和成员函数原型声明),(正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距)
四、Low level design 格式:Times New Roman,4号,加粗,两端对齐)
各个算法实现的源程序结构(可以是一组源程序,每个功能模块采用不同的函数实现),要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
注意:不要粘贴全部程序,只要把关键算法的程序以及反应程序结构的声明粘贴过来就可以了。
(正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距)
五、Tested data and result analysis(格式:Times New Roman,4号,加粗,两端对齐)
说明程序运行过程,并解释过程中每个界面的功能。如果可以的话对一些异常情况也要加以说明。
(正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距)
六、Problem(格式:Times New Roman,4号,加粗,两端对齐)
每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),以及算法的改进设想。
(正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距)
七、Conclusion(格式:Times New Roman,4号,加粗,两端对齐)
总结可以包括 : 程序设计过程的收获、遇到的问题,遇到问题解决问题过程的思考、程序调试能力的思考,对该课程组织和考核方式的建议等。
(正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距)

源码联系UP主 -> https://space.bilibili.com/329101171

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值