C语言课程设计报告
C C语言程序设计报告语言程序设计报告 题 目 CC语言程序设计语言程序设计 学生姓名 指导教师 学 院 专业班级 学生学号 2008 年 07 月 08 日 C C语言程序设计报告语言程序设计报告 一.前言一.前言 随着计算机技术的普及与提高,C 语言程序设计已经是大学生必须掌握的计 算机基本知识,也是大学生以后必备的计算机技术技能。在大一第二学期,我们 就开始学习 C程序设计课程即面向对象的程序设计方法,它是兼容了 C 语言的 功能强、效率高、风格简洁、满足包括系统程序设计方法和应用程序设计的大多 数任务的特点,又扩充了面向对象部分,即支持类、继承、派生、多态性等,解 决了代码的重用问题, 实际上是既支持面向过程的结构化程序设计又支持面向对 象的程序化设计的语言。 在大一第二学期末,我们又进行了 C课程设计,这就更加巩固了我的 C 基础知识,也提供一个能让我们自己动手编程的平台。这次 C程序设计老师一 共出七个题目第一道必做题,关于稀疏矩阵压缩成三远组的;第二道是两题选 做一题, ; 第三道是两题选做一题,猴子分桃与小孩分糖果;第四道也是两题选 做一题,同色珠与自动提款模拟系统;这些题目覆盖内容很广,每道题都有不同 解答猜数字游戏与彩票开奖游戏。 这些题包括的内容很广, 每道题都有不同解答, 涉及到程序结构很多, 这就需要我们要结合课本基础知识, 掌握各种语句的作用, 通过语句与语句间的“配合”来达到目的。但学习 C只一个学期,上机次数不 多,真正掌握到手的知识还不是很多,只是懂看不懂编,大家考试虽然不错,但 是真正的上机会编程的不是很多。这次 C课程设计提供了我们锻炼编程能力的 机会,也培养了我编程的兴趣。幸亏自己在学习 C程序设计时,把基础知识都 掌握的很好,编程时能很快的编出来,在老师讲题目时,自己已经有小思路了, 甚至简单已经出来了,之后用了三天完成了全部题目,但不急去写报告,还有很 多需要很多和老师一起探讨来完善,做到尽善尽美。同时,也感谢老师的帮助, 给我们好的建议。 二.正文二.正文 题目题目 11、根据以下描述编写一个程序,使其能完成对稀疏矩阵的压缩与还 原,即给定稀疏矩阵可以压缩存储一个三元组,并且能根据这个三元组能还原这 个稀疏矩阵。 一个矩阵含有非零元素比较少,而零元素相对较多,这样的矩阵称为稀疏矩 阵,对稀疏矩阵的存储我们不用完全的二维数组来存储,可以用一个三元组,即 任意一个稀疏矩阵可以用一个只有三列的二维数组来存放,如 其中 Compress[][3]称为三元组,这是一个含有多行的只有三列的矩阵,其中第 0 行数据分别表示该稀疏矩阵的行数,列数和非零元素个数。以后每行表示一个 非零元素的行数,列数和非零元素值,如第 3 行中的 2,4,4 代表稀疏矩阵中 的非零元素 4 在第 2 行,第 4 列,其值是 4。 算法分析算法分析三元组的列是定的为三列,首行是由稀疏矩阵的行列和非零个数而 定,而其他行的值是由非零数值的下标和值来确定,所以先逐个检查稀疏矩阵的 值,如有非零数记下它的下标和非零数值,再分别赋予给压缩矩阵即三元组,同 时记非零个数。还原时,从三元组的首行就可以知道稀疏矩阵的行列数和非零个 数,其他行是非零数在稀疏矩阵的行列下标和非零数值,譬如第一行为 2 3 5 则 2 为 5 的行标,3 为 5 的列标,这样压缩矩阵 reply[2][3]5,同理其他也是。 程序程序 include define A 3 ////压缩时宏定义稀疏矩阵的行列 define B 5 define C 3 ////还原时宏定义三元组的首行 各值 1 0 0 0 0 2 0 0 0 0 0 0 0 0 4 0 0 0 5 0 Compress[ ][3] {{4, 5 ,4} {0, 0, 1} {1, 0, 2} {2, 4, 4} {3, 3, 5}} 还原 压缩 define D 5 define E 3 void yasuo ////函数yashuo进行压缩矩阵功能 { int reply[A][B],i,j,k0; coutreply[i][j]; } int compress[100][3],c; c0; fori0;icompress[i][j]; fori0;ix; ifx0 ////选择还原还是压缩功能 yasuo; ////调用函数 else huanyuan