

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序综合实验实验指导书 适用实验课时: 20 适用对象:计算机科学与技术专业 网络工程专业 软件工程专业实验目的和内容 程序综合实验是计算机专业的公共实践环节,课程开设的目的是为 了提高学生对C语言程序设计、面向对象程序设计、离散数学等程序设计相 关知识的综合运用能力,加强其程序设计、编程、调试等软件开发的综合实 践能力。 课程通过设计综合性实验题目,引导学生对程序设计相关知识的综合运 用,锻炼程序实现能力。通过小组讨论、成果展示等丰富的实验环节,锻炼 学生的沟通能力和表达能力,为培养学生的创新精神和大型软件开发能力打 下基础。 实验分为三个部分,第一部分锻炼可视化编程能力,第二部分锻炼面向
2、对象与文件存储的设计与实现能力,第三部分锻炼离散结构、算法设计与实 现能力,总的实验学时为20课时。 要求每个学生独立完成三个基本实验的设计和编程实现,并将实验题目 的分析、设计和实现形成完整的实验报告,并进行成果展示 实验项目及学时分配 序 号 项目名称 实验 学时 分配 内容提要 实验要求 实验 类型 设备 台套 数 每组 人数 备注 1 计算器设计 与实现 6 设计并实现 一个四则运 算计算器 运用可视化 编程 上机 1台 /组 1 1-2选 1 2 简单文本编 辑器设计与 实现 6 设计并实现 一个简单的 文本编辑器 运用可视化 编程 上机 1台 /组 1 3 通讯录管理 程序设计与
3、6 设计并实现 一个简单的 掌握面向对 象编程与文 上机 1台 /组 1 3-4选 1 实现 通讯录管理 程序 件存储 4 成绩管理程 序设计与实 现 6 设计并实现 一个简单的 成绩管理程 序 掌握面向对 象编程与义 件存储 上机 1台 /组 1 5 超市选址问 题 6 选择建立超 市的最佳位 置,使n个居 民点到超市 的距离总和 最小 数据结构、 算法设计与 实现 上机 1台 /组 1 5-6选 1 6 拯救大兵瑞 恩 6 设计找到迷 宫中存放钥 匙单兀,营救 瑞恩 数据结构、 算法设计与 实现 上机 1台 /组 1 7 2 展示 合计 20 实验一 计算器设计与实现 一、实验目的与要求
4、实验目的: 锻炼可视化编程能力 实验要求 : 1熟悉VC+编程环境。 2运用C+程序设计知识对实验题目进行分析和设计。 3 进行程序编写和调试工作。 二、 实验内容 使用MFC!架在Visual Studio 6.0 环境下编写一个简易的计算器,能 实现简单的加、减、乘、除四则运算,并加入特定的一些效果,如使计算器 的颜色在红色, 绿色和蓝色之间轮流变换等。 完成诸如计算器对话框的创建、 控件编辑、界面设计、关键功能的实现等工作。 三、 实现方法 1 、设计界面。创建一个对话框,在对话框中添加文本框用来显示计算结果, 按钮: 0-9 、小数点、 +、-、*、/、=等。 2、 实现各个按钮的功能
5、。 3、 实现简单的算术四则运算语法分析,保证正确的计算结果。 4、 实现颜色的变换。实验二 简单文本编辑器设计与实现 一、实验目的与要求 实验目的: 锻炼可视化编程能力 实验要求 : 1熟悉VC+编程环境(不限编程工具也可使用 Visual Studio 2005、Java等)。 2 运用面向对象程序设计知识对实验题目进行分析和设计。 3 进行程序编写和调试工作。 二、实验内容 设计、实现一个与DOSS作系统下的Edit相似的文本编辑器。在此文本编 辑器中,用户可以通过快捷和选择菜单项,完成基本的文本编辑器和文件处 理工作。文本编辑器主要由五大功能模块构成,它们分别是文件操作模块,文 本编辑
6、模块,剪切操作模块,菜单控制模块和帮助及其他模块。各模块的功 能要求: (1)文件操作模块。在文件操作模块中,主要完成文件的创建,打开,保存和 另存操作。用户可以选择File菜单上的New子菜单来完成新建文本文件操作; 选择File菜单上的Save子菜单来完成保存文件操作选择 File菜单上的Open 子菜单来完成打开文件操作;选择Flie菜单上的Save as子菜单来完成文件 的另存为操作。在文件的打开,保存和另存为操作中,系统会提示用户输入文件 路径及文件名。值得一提的是,当用户打开一个文件时,指定的文件必须存 在,否则系统会报错。 (2)文本编辑器模块。在文本编辑器模块中,主要完成在编辑
7、窗口中以添 加或插入的方 式输入字符,删除光标所在当前位置的单个字符或前一个位置的单个字 符,朝上下左右4 个方向的光标移动操作。当光标所在位置及后面的位置没有 字符时,系统会以添加的方式输入字符;当光标所在位置及后面的位置有字符 时,系统会已插入的方式输入字符。用户可以使用 Backspace键删除光标前 一个字符,也可以使用 Del 键删除当前位置的字符或删除 Ctrl+ 左移(右移) 键i选定了的多个字符。用户可以使用左移键(J),右移键(f),上移键 (T)和下移键(J)来移动光标位置。 ( 3)剪贴板操作模块。 在剪贴板操作模块中, 主要完成对已选定文本的剪切, 复制,粘贴工作。如果
8、用户要剪切文本以便可以将它移动到其他位置,可通 过 Ctrl+X 左移键(右移键)先选定文本,然后选择 Edit 菜单上的 Cut 子菜 单或按 Ctrl+X 快捷键来完成剪切任务。 如果用户要复制文本以便可以将它黏 贴到其他位置,必须先选定文本,然后选择 Edit菜单上的Copy紫菜单或按 Ctrl+C 快捷键来完成复制任务。如果用户要粘贴剪切或复制的文本,必须将 光标置于要粘贴文本的位置,然后选择 Edit 菜单上的 Paste 子菜单或按 Ctrl+V 快捷键来完成粘贴任务。 ( 4)菜单控制模块。在菜单控制模块中,主要完成菜单的显示。光带条在子 菜单之间的上下移动或菜单之间的左右移动和
9、子菜单项的选取。本文本编辑器共有 Flie,Edit 和Help3个子菜单项,用户可以分别按F1,F2和F3功能键来完成这 3 个菜单项的调用,即显示某项菜单。用户可按光标上移或下移键在某菜单 项的子菜单之间循环移动,也可使用光标的左移或右移键在 3 个菜单项之间 循环移动。当光带移动到某个字菜单项上时,用户此时可使用 Enter 键来选取 相关菜单选项。 ( 5)帮助及其他模块。在帮助及其他模块中,主要完成系统功能及按键的简要 介绍。其他模块包括文本的快速预览和窗口的显示。用户可按 F10功能键来 打开快速预览窗口,在快速预览窗口中没有功能菜单条。主窗口要有菜单栏, 文本编辑区和状态栏三大部
10、分构成,菜单栏用来显示菜单项,文本编辑区主 要用来文本字符的输入,删除等操作,状态栏主要用来显示当前光标在文本 窗口中的坐标值。 三、实现方法 利用VC(或其他IDE)提供的可视化编程,功能的实现使用的是模块化的 编程方式进行,利用相关的系统自带函数实现主要功能。 1 、编辑区 编辑器利用IDE提供的文本框控件,利用文本编辑函数来实现文本编辑功 2、文件操作模块 新建菜单:新建文档的时候需要对文本的编辑区进行判断,对文本框中 存在的文本进行存档,而新建的文档就是对文本编辑区进行重绘,对原有的 内容进行存储和销毁。 打开菜单:使用IDE中自带的打开对话框,其中重点是在运行的过程中对 绝对路径的获
11、取以及特定格式文件的打开和提取。 保存菜单:当文档已经创建以后,文本的保存就改变为把文本编辑区的 内容重新写入同一个地址的文本文档中。 另存为菜单:是一种特殊的保存形式。 3、剪贴板操作模块 剪切,粘贴,复制,删除,全选等功能可以由系统提供的参数来实现, 要求能够正确的实现各种文本编辑功能。 4、菜单控制模块,帮助及其他模块 利用IDE自带的系统参数及相关函数实现,要求能够正确的实现各种文本 编辑功能。实验三 通讯录管理程序设计与实现 一、实验目的与要求 实验目的: 锻炼面向对象编程与文件操作能力 实验要求 : 1、 熟悉C+程序设计(不限编程工具也可使用 Visual Studio 2005
12、、Java 等)。 2、 运用0C知识对实验题目进行分析和设计。 3、 进行程序编写和调试工作。 二、 实验内容 设计、实现一个具有通讯信息插入、修改、删除、显示、查询和统计 功能的通讯录管理程序。程序设计功能及要求: 1 、 人数不定,数据使用文件存放。 2、 记录每位同学的学号、姓名、性别、工作单位、电话号码和 E-mail 地址建立单独的条目,存入数据文件。 3、 可对记录中的姓名和电话号码等进行修改。 4、 可增加或删除记录。 5、 可显示所有保存的记录。 6、 可以统计男女同学或总人数。 7、 通过姓名、学号或电话号码查询到同学的条目。 8、 在开始画面加入简单的菜单便于选择功能。
13、9、 储存数据文件格式: 学号 姓名 性别 工作单位 电话号码 E-mail 1 李四 . . . 10、选做:加入文件加密系统,对储存数据文件进行简单的加密,要求 通过直接打开储存数据文件无法获得其中的数据。但同时不影响程序对储存 数据文件的调用。 三、 实验方法 1、通讯录的录入: 从键盘接收输入的通讯录信息, 将其存储到通讯录文 件中。 2、通讯录信息的修改: 从键盘接收输入的需要修改通讯录的姓名, 在文 件中查找是否存在相应记录,如果存在,则从键盘输入修改后的信息,并保 存在文件中。 3、通讯录信息的删除: 从键盘接收输入的需要删除的通讯录的姓名, 在 通讯录文件中进行查找,如果存在这
14、样的记录,则在文件中将记录删除。 4、通讯录信息的增加: 从键盘接收要增加的通讯录信息, 并与通讯录文 件中已存在的信息进行比对,如果存在这样的记录,且前后信息不符,则更 新该记录,如果不存在该条记录,则将新录入的通讯录信息保存到通讯录文 件中。 5、显示所有保存的记录:能显示出所有通讯录文件的所有记录。 6、统计男女生人数或总人数。 7、通讯录的查询功能:从键盘接收要查询的姓名、学号或电话号码,对 通讯录文件进行查询,并将查询到整条记录显示出来。 8、该通讯录可以采用字符界面, 也可以在开始画面加入简单的菜单便于 选择功能。实验四 成绩管理程序设计与实现 一、实验目的与要求 实验目的:锻炼面
15、向对象编程与文件操作能力 实验要求: 1、 熟悉C+程序设计(不限编程工具也可使用 Visual Studio 2005、Java 等)。 2、 运用0C知识对实验题目进行分析和设计。 3、 进行程序编写和调试工作。 二、实验内容 设计一个程序实现对学生成绩的管理,要求可以对指定的文件进行操作, 可将多个文件组成一个文件。程序设计功能及要求: 1、输入:学生的基本信息,包括学号、姓名、 C语言成绩、高等数学成 原始数据文件格式 (具体数据和项目自行编写): 学号 姓名 英语 C语言 高等数学 1 张三 76 89 78 2 李四 2、查询: 可以按学号、 姓名等进行成绩查询。 3、删除:删除某
16、条记录。 4、 计算:计算每个学生的总成绩、平均成绩,所有学生单科的平均成绩, 将总成绩、平均成绩、名次加到对应学生成绩记录后。 5、 统计:统计每科成绩分布情况,统计情况加到文件最后。 输出数据文件(由程序自动生成) 学号姓名英语C语言高等数学 . 平均成绩 名次 1 张三 76 89 78 . 2 李四 . . . 统计情况: 分数段 英语 C语言 高等数学 . 60 2 6069 8 7079 5 8089 10 平均分 78 三、实验方法 1、 数据结构的设计 根据对题目的要求,设计合适的类或结构类型、以及各种对象、变量。 2、 设计各成员函数,分别实现以下功能: 1) 学生信息的录入
17、 从键盘录入学生的基本信息,并将其保存至学生成绩文件。 2) 学生信息查询 从键盘输入姓名或学号,在学生成绩文件中实现按学号、姓名的查找, 如果存在,则输出该学生的其他信息,如不存在,输出不存在此学生。 3) 学生信息的删除 从键盘输入要删除的学生学号或姓名,在学生成绩文件中删除该学生 的基本信息。 4) 成绩的计算 计算每个学生的总成绩、平均成绩,所有学生单科的平均成绩,将总 成绩、平均成绩、名次加到对应学生成绩记录后; 5)统计 统计每科成绩分布情况,统计情况加到学生成绩文件最后。 3、 界面的设计 采用菜单或字符界面的形式,方便功能的选择。 实验五 超市选址问题 一、实验目的与要求 实验
18、目的: 锻炼数据结构、算法设计与实现能力 实验要求 : 1熟悉数据结构、离散数学、算法设计等课程。 2对实验题目进行分析,选取适当的数据结构和算法设计方法。 3 进行程序编写和调试工作。 二、实验内容 在一个按照东西和南北方向划分成规整街区的城市里, n 个居民点散乱 地分布在不同的街区中。用 x 坐标表示东西向,用 y 坐标表示南北向。各居 民点的位置可以由坐标(x,y)表示。街区中任意两点(x1,y1)和(x2,y2)之间的 距离可以用数值 |x1-x2|+|y1-y2| 度量。居民们希望在城市中选择建立超市的 最佳位置,使 n 个居民点到超市的距离总和最小。 编程任务:给定 n 个居民点
19、的位置,编程计算 n 个居民点到超市的距离 总和的最小值。 输入:输入由多组测试数据组成。每组测试数据输入的第 1 行是居民点 数n,接下来n行是居民点的位置,每行两个整数 x和y。 输出:对应每组输入,输出数据是n个居民点到超市距离总和的最小值。 输入示例: 5 居民点到超市最小距离和: 10 1 2 2 2 1 3 3 -2 3 3 三、实验方法 超市选址问题的核心可以看成是求中值的问题,即 n个居民点的横、纵 坐标值的中位数就是最优解。为此可先求出 n个居民点的x坐标值和y坐标 值的中位数,然后由此求得n个居民点到超市距离总和的最小值。 本实验需完成算法设计、数据结构的选择、运行结果分析
20、以及相关内容 的说明等。例如,求中位数的过程可用快速排序等算法将 n个居民点的x和 y坐标分别排序后,计算出中位数。程序的编写可以参考以下步骤: 1输入居民点位置文件,或用随机数发生器得到各居民点位置坐标 (x,y)。 2、 将输入的二维数组(x,y)转化为两个一维数组(x)、(y)。 3、 计算横坐标和纵坐标数组的中位数。 4 、求n个居民点到超市距离总和的最小值,并输出此值, 并以图示的方 式显示居民点与超市的位置分布。实验六拯救大兵瑞恩 一、 实验目的与要求 实验目的:锻炼数据结构、算法设计与实现能力 实验要求: 1熟悉数据结构、离散数学、算法设计等课程。 2、 对实验题目进行分析,选取
21、适当的数据结构和算法设计方法。 3、 进行程序编写和调试工作。 二、 实验内容 1944年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一 个孤岛,营救被敌军俘虏的大兵瑞恩。瑞恩被关押在一个迷宫里,迷宫地形 复杂,但是幸好麦克得到了迷宫的地形图。 迷宫的外形是一个长方形,其在南北方向被划分为 N行,在东西方向被 划分为M列,于是整个迷宫被划分为NX M个单元。我们用一个有序数对(单 元的行号,单元的列号)来表示单元位置。南北或东西方向相邻的两个单元 之间可以互通,或者存在一扇锁着的门,又或者存在一堵不可逾越的墙。迷 宫中有一些单元存放着钥匙,并且所有的门被分为 P类,打开同一类的门的 钥
22、匙相同,打开不同类的门的钥匙不同。 大兵瑞恩被关押在迷宫的东南角,即(N,M)单元里,并已经昏迷。迷宫 只有一个入口,在西北角,也就是说,麦克可以直接进入 (1,1)单元。另外, 麦克从一个单元移动到另一个相邻单元的时间为 1,拿取所在单元的钥匙的 时间以及用钥匙开门的时间忽略不计。 输入: 第一行是三个整数,依次表示 N,M,P的值;(3 N,MK 15,1 P 10) 第二行是一个整数K,表示迷宫中门和墙的总个数; 第 i+2 行(1 i 1时,表示(Xi1,Yi1)单元与(Xi2,Yi2) 单元之间有一扇第 Gi类 的门,当Gi=0时, 表示(Xi1,Yi1)单元与(Xi2,Yi2) 单元之间有一堵不可 逾越的墙;(其中,|Xi1-Xi2|+|Yi1-Yi2|=1 , 0 Gi P) 第K+3行是一个整数S,表示迷宫中存放的钥匙总数; 第K+3+j 行(1 j S),有3个整数,依次为Xi1,Yi1,Qi :表示第j把 钥匙存放在(Xi1,Yi1)单元里,并且第j把钥匙是用来开启第Qi类门的。(其 中 K Qi P) 输出 对每组数据只输出一个整数T,表示麦克营救到大兵瑞恩的最短时间 的值,若不存在可行的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业保险产品销售与理赔协议
- 当代国际服务贸易的发展趋势及我国的对策
- 百年孤独:小说选段赏析教案
- 会计准则制定的动因与前提
- 音程考试试题及答案解析
- 疫情韩国考试试题及答案
- 医院在线考试试题及答案
- 医院文化考试试题及答案
- 六一医院活动方案
- 六一商会活动方案
- 2024年承包建设工程合同
- 2024年江苏省无锡市中考地理试卷(附真题答案)
- 河南省郑州市金水区2023-2024学年七年级(下)期末数学试卷(含答案)
- DBJ∕T 15-120-2017 城市轨道交通既有结构保护技术规范
- 免拆底模钢筋桁架楼承板应用技术规程
- 文化墙设计制作安装合同范本版
- 安恒信息:2024体育赛事网络安全保障实践蓝皮书
- 扩大基础重力式桥台综合标准施工核心技术专业方案修改
- 大学生安全教育(共31张课件)
- DL-T800-2018电力企业标准编写导则
- 北师大版六年级下册数学期末测试卷a4版可打印
评论
0/150
提交评论