1、 课程设计报告课程设计报告 实验内容: 课程设计 相关课程: 信息系统开发语言(二) 学 期: 2011-2012 学年第 2 学期 学时学分: 64 学时 4 学分 专业班级: 学 号: 姓 名: 指导老师: 提交日期: 2012 年 6 月 23 日 湖南商学院信息系统开发语言(二)课程设计 信息系统开发语言课程设计信息系统开发语言课程设计 一、课程设计目的一、课程设计目的 C+是实践性很强的课程。课程设计是加强我们实践能力的一个强有力手段, 要求我们在完成程序设计的同时能够写出比较规范的设计报告。通过课程设计要 达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力,对于我们 基本
2、程序设计素养的培养和软件工作者工作作风的训练, 将起到显著的促进作用。 课程设计主要是 C+语言程序设计的实现。通过该课程设计,可以将学生课 堂上掌握的理论知识与处理数据的业务相结合,以检验我们同学们掌握知识的宽 度、深度及对知识的综合运用能力,同时提高和加强自己的计算机应用与软件开 发能力,培养自己独立分析问题、解决问题、查阅资料以及自学能力,以适应计算 机产业日新月异发展的形势。 学习和掌握 C+程序设计方法以及上机调试技巧,为今后学习其它专业课程 打好坚实的基础,检测自己在这一学期对 C+的学习及掌握情况。知道自己的不 足,及时的弥补。为以后的学习打下一定的基础,也为自己以后如何制定学习
3、计划 做一铺垫。 二、问题描述二、问题描述 题号 8 乘积最大 总体需求:编写一个实现将一个的数字串,分成 K+1 个部分,使得这 K+1 个 部分的乘积能够为最大。 功能需求:设有一个长度为 N 的数字串,要求使用 K 个乘号将它分成 K+1 个 部分,找出一种分法,使得这 K+1 个部分的乘积能够为最大。如:有一个数字串: 312,当 N=3 时,K=1 时会有以下两种分法: 1)312 = 36 2)312 = 62 此时,符合题意的结果是 312 = 62 用户界面 输入: 湖南商学院信息系统开发语言(二)课程设计 1)程序正常运行后,提示用户输入一行共有 2 个自然数 N,K(2N4
4、0,1 K6) 。 2)第二行是一个长度为 N 的数字串。 输出: 相对于输入,应输出所求得的最大乘积(一个自然数) 。 提示与参考 输入样例: 4 2 1231 输出样例: 62 三、三、 问题分析问题分析 此程序要求实现将长度为 N 的数字串,用 K 个乘号分成 K+1 个部分,使得这 K+1 个部分的乘积能够为最大。 由题,数字串的顺序固定不变,乘号在不同的位置插入,使得数字乘积发生 变化,并取其最大值输出。设 num=3456,n=4,k=3,这表示要将 4 位的十进制整 数 3456 分为 3 段。划分方法为:3456=672,3456=810,3456=1020, 而第 3 种划分才是最佳划分。本问题属于求最优值的一类问题。 假设第 k 个乘号插入的位置为 p,取出由后 n-q 个数字组成的数字串,可能 包含任意个(不