1、河北工业大学计算机软件技术基础(VC)课程设计报告学院_班级_姓名_学号_成绩_一、题目:投入产出问题 2(矩阵求差、矩阵与数乘)(30)二、设计思路1、总体设计1) 分析程序的功能利用数组操作,根据总投入=总产出的原则计算投入产出问题。2) 系统总体结构:设计程序的组成模块,简述各模块功能。输入函数,提供已知数组的数据;求 A(i,j)=B(i,j)*X(j)的函数;函数求 sum(A),它表示 A 矩阵各列的和,要求将结果存入数组 A1 中;计算 Z=XA1-D 的函数;函数计算 A2=sum(A)。A代表 A 矩阵的转置阵,sum(A)表示计算 A的各列和.计算 Y1=X-A2 的函数;
2、函数求 Y=Y1 ,Y1代表 Y1 阵的转置阵。输出函数,选择适当的形式输出计算出的各个矩阵。主函数调用上述函数,完成计算任务。2、各功能模块的设计:说明各功能模块的实现方法通过调用多个输入函数,实现数据的输入;通过调用 mul 函数计算各部门中间产品矩阵 A;通过调用 sum1 函数计算 A 矩阵各列和;通过调用 sub1 函数计算各部门新创造价值 Z 矩阵;通过调用 sum2 函数计算 A 矩阵各行和,等同于 A 转置阵的各列和,即 A2;通过调用 sub2 函数计算 Y1;通过调用 tra 函数实现 Y1 的转置,得各部门最终产品 Y 矩阵;通过调用多个输出函数实现各矩阵的输出.3、设计
3、中的主要困难及解决方案在这部分论述设计中遇到的主要困难及解决方案。1) 困难 1数组脚标错误,造成程序运行错误,后发现,及实更正4、你所设计的程序最终完成的功能1) 说明你编制的程序能完成的功能通过矩阵求和,转置和求列和的操作,解决计算产出的实际问题。2) 准备的测试数据及运行结果测试数据:直接消耗系数矩阵 B:0 0.15 0.55 00.25 0.05 0.1 0.250.15 0 0.05 0.350.1 0.15 0.15 0.1总投入 X:360 240 180 300固定资产折旧 D:5 15 10 20运行结果:三、程序清单本程序包含first.cpp、second.cpp、th
4、ird.cpp、third.cpp、fifth.cpp、sixth.cpp、seventh.cpp 和 all.h 四个文件1、first.cpp 文件清单#include#include“all.h“void main()double A44,A14,A24,B44,D4,X4,Z4,Y14,Y41;coutvoid enter1(double a4,int n)/输入函数 1,功能是输入直接消耗系数矩阵 Bfor(int i=0;iaij;coutai;3、third.cpp 文件清单#includevoid mul(double a4,double b4,double c4,int n)
5、/用于求中间产品矩阵A(i,j)=B(i,j)*X(j)for(int i=0;ivoid sum1(double a4,double b,int n)/用于求 A1=sum(A), 即 A 矩阵各列的和for(int i=0;ivoid sub1(double a,double b,double c,double d,int n)/用于求 Z=X-A1-Dfor(int i=0;ivoid tra(double a41,double b4)/用于求 Y=Y1for(int i=0;ivoid output1(double a4,int n)/输出函数一,用于输出函数 Z 和 Afor(int
6、 i=0;in;i+)for(int j=0;j4;j+)coutaij“t“;coutendl;void output2(double a,int n)for(int i=0;i4;i+)coutai“t“;coutendl;void output3(double a41)/输出函数二,用于输出函数 Afor(int i=0;i4;i+)coutai0endl;all.h 文件清单void enter1(double a4,int n);void enter2(double a,int n);void mul(double a4,double bp4,double c,int n);void
7、 sum1(double a4,double b,int n);void sub1(double a,double b,double c,double d,int n);void sum2(double a4,double b,int n);void sub2(double a,double b,double c,int n);void tra(double a41,double b4);void output1(double a4,int n);void output2(double a,int n);void output3(double a41);四、对该设计题目有何更完善的方案1、对自
8、己完成程序进行自我评价。基本实现使用模块化设计和 C+的思想来完成程序设计,并且通过矩阵求和、转置和求列和的操作解决了投入产出的实际问题。2、对课题提出更完善的方案应设法实现同种函数多次调用。五、收获及心得体会1、通过本次课程设计,自己在哪些方面的能力有所提高。在处理书组叫表问题方面以及多文件的生成和使用上有所提高。2、 收获和心得体会。设计程序,一定要细心,同时还要注意程序的简洁性和强壮性等。本次计算机软件课程设计使我更加系统地理解和掌握了 C+语言的函数间参数传递方法、数组等的运用,学会了函数的调用、运行,一、二维数组的操作,提升了我归纳、总结、创新等能力。日期:2009 年 6 月 21 日