软件编程实训1-指导书_第1页
软件编程实训1-指导书_第2页
软件编程实训1-指导书_第3页
软件编程实训1-指导书_第4页
软件编程实训1-指导书_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件编程实训 1 指导书 优集学院 制造业信息化系 1 软件编程实训 1 指导书 一 实训目的一 实训目的 1 巩固并加深学生对 C 语言程序设计知识的理解 2 培养学生面向对象的程序设计思想 使学生认识面向过程和面向对象两种设计方 法的区别 3 进一步掌握和应用 VC 6 0 或 Visual Studio 2005 集成开发环境 提高程序调试的 能力 能够快速准确的排查程序错误并纠正 最终调试出可正确运行的程序 4 提高运用 C 语言解决实际问题的能力 5 初步掌握开发小型实用软件的基本方法 能独立设计 实现基本功能的小系统 6 掌握应用程序设计开发和文档撰写规范 二 实训任务二 实训任务 每位学生从所给定的题目里面选择两个感兴趣的题目作为实训任务 另外也可自 定题目 需经指导老师同意后方可作为实训任务 1 万年历程序设计 万年历程序设计 程序功能及实现技术要求 程序主要实现 3 个功能 显示某一年的每个月的日历 显示某一年某一个月的日 历以及查询某一天是星期几 功能选择用菜单实现 例如 1 显示某一年的日历 2 显示某年某一月的日历 3 显示某一天是星期几 0 退出 用户通过输入不同的数字进入不同的菜单 每一月以日历表格的形式显示 表格的第一行显示星期 表格的内容是每一天 用户可以很容易看到每一天是星期几 利用输入输出函数和循环控制语句 实现一个简单的人机交互界面 利用逻辑表达式 使用控制语句 判断闰年 某年某月某日是星期几 2 实现对显示结果进行控制 2 公司职员的信息管理程序设计 公司职员的信息管理程序设计 程序功能及实现技术要求 本程序实现的功能是增加职员信息 查找职员信息 浏览所有的职员信息 删除 职员信息 功能结构图如下图所示 公司职员信息管理程序 增加职员信息 浏览职员信息 查找职员信息 删除职员信息 功能选择可以用菜单实现 用户根据自己不同的选择进入不同的菜单 程序可以用指针与数组或者链表实现 信息不要求保存到文件中 若用数组实现 程序开始时数组内容为空 用户需要先增加职员信息 之后才能实现查找 删除 等功能 职员信息的关键字是职员的员工号 加入时职员号重复的记录不能加入 查找 删除按照职员号进行操作 选做功能 将职员信息存储到文件中 3 集合类程序设计 集合类程序设计 集合的概念 在数学中 我们把具有某些共同特征的元素构成的一个整体称为集合 一个集合就是由同一种有序类型的一组数据元素所组成的 这一种有序类型称为该集 合的基类型 设计一个集合类 numSet 存放有序的整型数序 其中的元素按从小到大的顺序排 列并且不包含相同的元素 程序功能及实现技术要求 集合中的元素可用数组存放 也可用链表存放 构造函数要求 能够通过从键盘上输入数据的形式 给集合中各元素赋值 能够将集合置空 向集合中增加元素 过滤重复数据 并保持有序 能从集合中查找数据元素是否在集合中 能从集合中删除某个指定元素 能显示集合中元素个数 显示集合中的全部元素 能将集合元素逆置 3 能实现两个集合的 相并 能实现两个集合的 相交 能实现两个集合的 差集 在主函数中实现上述功能 创建对象 将集合置空 输入集合中元素 显示元素 及个数 能增 删元素 将集合中元素逆置 实现集合并 交 差 另外创建 一个拷贝构造函数 并使用一些数据进行测试 4 特殊计算器程序设计 特殊计算器程序设计 程序功能及实现技术要求 程序的功能是实现一个特殊的计算器 可以实现复数 有理数 矩阵和集合的特 殊运算 其中 可以实现复数 有理数的加 减 乘 除 可以实现矩阵的加法 减法和乘法运算 也可以实现两个集合的求交集 并集和判断一个集合是否是另 一个集合的子集的运算 基本功能图如下图所示 特殊运算器程序 复数运算矩阵运算有理数运算集合运算 基本功能 加 法 减法 乘 法 除法 基本功能 加 法 减法 乘 法 除法 基本功能 加 法 减法 乘 法 基本功能 交 集 并集 子 集 功能选择可以用菜单实现 例如 1 复数计算 2 有理数计算 3 矩阵计算 4 集合计算 0 退出 用户通过输入不同的数字进入不同的菜单 运行时给出明确的提示信息 比如 输入一个什么类型的数据 根据用户的输入 计算出结果 4 使用运算符重载实现各种特殊的计算 三 系统设计与实现三 系统设计与实现 一 详细开发步骤及时间分配 一 详细开发步骤及时间分配 以一个课题的设计流程为例 序号序号内容内容具体要求具体要求时间分配时间分配 1 1 选题选题 根据自己的学习能力和参考资料选择适当 的课题 并报课代表处统计 0 5 天 2 2 需求分析需求分析 明确系统需求 画出功能结构图 对系统 功能进行详细描述 0 5 天 3 3 概要设计概要设计 明确系统运行环境 开发环境 进行整体 设计 0 5 天 4 4 详细设计详细设计 类设计 界面设计 分析各部分实现方法 1 天 5 5 编码编码 实现各类代码编写 2 天 6 6 集成调试集成调试 系统各模块集成调试 0 5 天 二 程序设计指导 二 程序设计指导 1 万年历程序设计 公元计年从 1 年 1 月 1 日开始 这天是星期一 也可以以其它日期作为比照 如 1900 年 1 月 1 日是星期一 平年一年 365 天 闰年 366 天 通过除以 7 取余数可以 计算给定的某天推移到了星期几 计算某年的日历则要首先计算该年的元旦是星期几 计算某月的日历则要首先计算该月 1 号是星期几 然后进行显示控制 依次输出日历 运行结果图参考 5 2 公司职员的信息管理程序设计 公司职员的信息管理程序设计 定义员工类包含员工姓名 职工号 部门 工资 职位等基本信息 并完成带参 的构造函数 定义公司类 包含员工数 指向员工信息地址的指针数组 指向员工类的指针 并完成添加员工 删除员工 显示员工 查找员工等成员函数 动态分配的空间要在析构或者其它合适的地方释放空间 参考员工类和公司类的定义 6 class Staff public Staff Staff char name1 char no1 char dep double salary1 char work1 char name 16 char no 6 char department 16 double salary char work 16 class Company public Company Company bool AddStaff char name char no char dep double salary char work bool DeleteStaff char no bool FindStaff char no void DisplayAll private int count Staff address 30 Staff Sta 7 运行结果图参考 3 集合类程序设计 集合类程序设计 集合的概念 在数学中 我们把具有某些共同特征的元素构成的一个整体称为集合 一个集合就是由同一种有序类型的一组数据元素所组成的 这一种有序类型称为 该集合的基类型 集合中的元素可用数组存放 也可用链表存放 用数组存放时 集合中数据成员 元素个数 数组 定义时用最大值 用链表存放时 集合中数据成员 元素个数 指针 定义时指向结点类型 集合类的定义 可以使用数组或其它形式存放集合的元素 设定集合元素个数的 最大值并有一个存放当前集合元素个数的变量 也可以对集合的元素动态分配空 间 部分数据成员 int count 数序中元素的个数 int a MAX 存放数序的数组 部分成员函数 void addnum int n 向有序数组中添加元素 void delenum int n 从有序数组中查找元素并删除 8 numSet count 0 构造函数 void disp 输出有序数组 4 特殊计算器程序设计 复数的运算法则 加法 a bi c di a c b d i 减法 a bi c di a c b d i 乘法 a bi c di ac bd ad bc i 除法 a bi c di a bi c di c c d d ac bd bc ad i c c d d 矩阵 矩阵类的定义 所要做矩阵的加 减 乘运算对矩阵行数与列数的要求不同 矩阵的行数与列数 应该是动态确定的 这时就需要在构造函数里根据给定的行数和列数参数用 new 动 态分配空间 析构函数里用 delete 删除分配的空间 并要重新定义拷贝构造函数和对 赋值运算符 进行重载 以避免分配的资源不能拷贝造成程序错误 对如何给矩阵元素动态分配空间有两种方法 采用第一种方法在动态分配空间相 对第一种略显复杂 但在进行矩阵类运算的重载时不需要转换行与列到一维数组 采 用第二种方法动态分配空间简单些 但进行运算符重载时要进行行数与列数的对应转 换 亦可采用其它方法 第一种 double data 定义二维矩阵数据数组指针 int rows cols 矩阵的行数 列数 下面是如何在构造函数中分配空间 data new double rows for i 0 i rows i data i new double cols for i 0 i rows i 行 for j 0 j n j 列 data i j 0 每个元素都初始化为零 也可保持随机值 在析构函数中删除动态分配的空间时 Matrix 析构函数 9 int i for i 0 i rows i delete data i cout 析构函数被调用 endl 第二种 对二维数组中的数据可以通过下标的转换变成对一维数组的处理 如二维 数组 a rows cols 和一维数组 b rows cols 可以通过如下进行对应 a i j 对应 b i 1 cols j 1 矩阵的运算法则 矩阵相加减就是两个行数和列数相同的二维数组相加减 两个矩阵相乘 其实就 是两个二维数组 其中一个的行数等于另一个的列数 按矩阵相乘的法则进行运算 有理数 有理数的概念 任何一个有理数都可以写成分数 m n m n 都是整数 且 n 0 的形式 在构造有理数对象时 若分子分母是可以约分的 应该进行约分的简 化运算 同为负数的应该将结果转为正数 同时要注意处理分子为零的情况 有理数运算法则 加法 a b c d a d b c b d 减法 a b c d a d b c b d 乘法 a b c d a c b d 除法 a b c d a d b c 集合 集合的概念 在数学中 我们把具有某些共同特征的元素构成的一个整体

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论