c 语言编程基础答案张晓如,c程序设计实践报告.doc

c程序设计实践报告.doc

江苏科技大学课程实践报告设计题目 程序设计VC实践 设计时间 2014-3-1 至 2014-4-1 学院系 船舶与海洋工程 专业班级 船海一班 学生姓名 程尉 学号 1240101108 指导老师 张晓如 实践任务一第1题一、程序设计基本题试建立一个类PP,求出下列多项式的前n项的值。1 n0Pnx x n1 2n-1xPn-1x-n-1P n-2 x n1具体要求如下(1) 私有数据成员l int n前若干项的项数。l double x存放x的值。l double *p根据n的大小动态申请存放Pnx前n项的数组空间。(2) 共有成员函数l PPint num,double x1构造函数,初始化数据成员n和x,使p指向动态申请的数据空间。l PP 析构函数,释放p指向的动态内存空间。l double funint n1,double x递归函数,用于求多项式Pnx的第n1项。注意将递归公式中的n用作函数参数。本函数供process函数调用。l void process 完成求前n项的工作,并将它们存放发到p指向的动态数组中。l void show 输出n和x,并将前n项以每行4个数的形式输出到屏幕上。(3) 在主函数中完成对该类的测试。先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,并输出多项式前num项的值。二、系统设计1、概要设计 通过类PP的成员函数process 来求多项式Pnx的前n项的值,其中用fun 函数来求第n项的值,根据n的大小来给数据成员p分配动态空间,程序结束前释放为items分配的动态空间。2、详细设计类的定义如下class PPint n;double x;double *p;publicPPint num,double x1void process void show ;类的主要成员函数的设计double funint n1,double x 设计函数来求Pnxifn10 return 1;else ifn11return x; return 2*n1-1*x*funn1-1,x-n1-1*funn1-2,x/n1;三、系统测试用以测试的数据为3 4预期的输出结果为n3 x41 4 23.5 154四、实践小结这道题主要是把题目看懂,其实只是一些简单的函数定义而已。五、参考文献1潘克勤,华伟,Visual C程序设计 北京中国铁道出版社 2008六、源程序清单include iostream.hclass PPint n;double x;double *p;publicPPint num,double x1nnum;xx1;pnew doublen1;PPifpdeletep;double funint n1,double xifn10return 1;else ifn11return x; return 2*n1-1*x*funn1-1,x-n1-1*funn1-2,x/n1;void processforint i0;in1;ipifuni,x;void showcoutnntxxnin1;icoutpitnvoid mainint num; double x1;cinnumx1;PP itemsnum,x1;items.funnum,x1;items.process;items.show;实践任务二(第2题)一、程序设计基本题试建立一个类SP,求fn,k1k 2k3knk ,另有辅助函数powerm,n用于求mn 。 具体要求如下 (1)私有成员函数。l int n,k存放公式中n和k的值; (2)公有成员函数。l SPint n1,int k1构造函数,初始化成员数据n和k。l int powerint m,int n求mn 。l int fun 求公式的累加和。l void show 输出求得的结果。 (3)在主程序中定义对象s,对该类进行测试。二、系统设计1、概要设计通过类SP的成员函数power()求出m的n次方的值,再通过成员函数fun 调用power 函数求出fn,k的值。2、详细设计类的定义如下class SP int n,k;public SPint n1,int k1 int powerint m,int n int fun void show ;类的主要成员函数的设计int powerint m,int nint p1; 用for循环语句来实现求mn的值forint i1;in1;ipp*m;return p;int funint n,int ks0; 用for循环语句来实现公式的累加和forint j1;jn;jspowerj,k;return s;三、系统测试用以测试的数据为2 3预期的输出结果为9四、实践小结这道题值得注意的是在成员函数fun 中调用了函数power ,还有对for循环语句的熟练运用。五、参考文献 1张晓如,王芳,Visual C程序设计解析与实训 北京中国铁道出版社 2008六、源程序清单includeiostream.hclass SPint n,k,s;publicSPint n1,int k1nn1;kk1;int powerint m,int nint p1;forint i1;in1;ipp*m;return p;int funint n,int ks0;forint j1;jn;jspowerj,k;return s;void showcout和为sendlvoid main int n,k;cinnk;SP sn,k;s.powern,k;s.funn,k;s.show;实践任务三(第3题)1、 程序设计基本题建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。 具体要求如下 (1)私有成员函数l int *array一维整型数组。l int n数组中元素的个数。 (2)公有成员函数l MOVE(int b ,int m)构造函数,初始化成员数据。l void exchange()输出平均值,并将数组中的元素按要求重新放置。l void print()输出一维数组。l MOVE析构函数。 (3)在主程序中用数据21,65,43,87,12,84,44,97,32,55对 该类进行测试。二、系统设计1、概要设计根据数组中元素的个数开辟一个动态数组空间array,通过类MOVE的成员函数exchange()输出一维数组的平均值,并把数组中最大元素和最小元素的位置相互交换,并把新的数组放在开辟的动态数组空间中。程序结束前释放为array分配的动态空间。2、详细设计类的定义如下class MOVEint *array;int n;publicMOVEint b ,int mvoid exchange void print MOVE ;类的主要成员函数的设计void exchangefloat p,s0;forint i0;in;isarrayi;ps/n; 求数组中所有元素之和的平均值 int a,b,minarray0,maxarray0;cout平均值pnin;i ifmaxarrayi maxarrayi; ai; 求所有元素中的最大值fori0;in;iifminarrayiminarrayi; bi; 求所有元素中的最小值 arrayamin; arraybmax;三、系统测试用以测试的数据为21 65 43 87 12 84 44 97 32 55预期的输出结果为平均值5421 65 43 87 97 84 44 12 32 55四、实践小结这道题主要是求数组中所有元素的平均值以及元素中的最大值和最小值,同时还要注意析构函数的运用。五、参考文献1潘克勤,华伟,Visual C程序设计 北京中国铁道出版社 2008六、源程序清单includeiostream.hclass MOVEint *array;int n;publicMOVEint b,int mnm;arraynew intn;forint i0;in;iarrayibi;void exchangefloat p,s0;forint i0;in;isarrayi;ps/n; int a,b,minarray0,maxarray0;cout平均值pnin;i ifmaxarrayi maxarrayi; ai; fori0;in;iifminarrayiminarrayi; bi; arrayamin; arraybmax;void printforint i0;in;icoutarrayitnMOVE moves,10;move.exchange;move.print;实践任务四(第6题)1、 程序设计基本题 定义一个字符串类String,实现判断该字符串是否为回文字符串。所谓回文 字符串,是指该字符串左右对称。例如字符串“123321”是回文字符串。 具体要求如下 (1)私有成员函数l char*str;l int y标记是否为回文字符串。 (2)公有成员函数l String(char*s)构造函数,用给定的参数s初始化数据成员str。 Y初始化为0。l void huiwen()判断str所指向的字符串是否为回文字符串。l void show()在屏幕上显示字符串。 (3)在主程序中定义字符串char s“ababcedbaba”作为原始字符串。定 义一个String类对象test,用s初始化test,完成对该类的测试。二、系统设计1、概要设计通过回文函数来进行判断,然后将函数判断结果进行输出。2、详细设计类的定义如下class Stringchar *str;int b;publicStringchar *svoid huiwen void show String ;类的主要成员函数的设计void huiwenchar *p1str,*p2str;while*p2p2;p2;for;p1p2;p1,p2 判断str所指向的字符串是否为if*p1*p2 回文字符串b1;break;三、系统测试用以测试的字符串为ababcedbaba预期的输出结果为ababcedbaba不是回文字符串四、实践小结这道题困难在于用指针来操作字符串,定义了两个指针,分别指向字符串的首尾,通过比较两个指针所指的字符是否相等来判断是否为回文字符串。五、参考文献 1张晓如,王芳,Visual C程序设计解析与实训 北京中国铁道出版社 2008六、源程序清单includeiostream.hincludestring.hclass Stringchar *str;int b;publicStringchar *sstrnew charstrlens1;strcpystr,s;b0;void huiwenchar *p1str,*p2str;while*p2p2;p2;for;p1p2;p1,p2if*p1*p2b1;break;void showifbcoutstr不是回文字符串nstr是回文字符串nababcedbabatest.huiwen;test.show;实践任务五(第4题)一、程序设计基本题建立一个类MOVE,实现将数组中大写字母元素放在小写字母元素的左边。具体要求如下 1私有数据成员 char*array一维字符数组。 int n数据中元素的个数。 2公有成员函数 MOVEchar b ,int m 构造函数,初始化成员数据。 void change 进行排序换位。 void print 输出一维数组。 MOVE 析构函数。 3在主程序中用数据“fdsUFfsTjfsKFEkWC”对该类进行测试。二、系统设计1、概要设计为array开辟一个动态数组空间,通过类MOVE的成员函数change 来实现将数组中的大写字母元素放在小写字母元素的左边的功能。程序结束前释放为array分配的动态空间。2、详细设计类的定义如下class MOVE char *array; int n;public MOVEchar ,int ; void change ; void print ; MOVE ; ;三、系统测试用以测试的数据为 FdsUFfsTjfsKFEkWC 预期输出结果为 UFTKFEWCfdsfsjfsk4、 实践小结这道题和之前的一道题有点类似,五、参考文献1潘克勤,华伟,Visual C程序设计 北京中国铁道出版社 20082张晓如,王芳,Visual C程序设计解析与实训 北京中国铁道出版社 2008六、源程序清单includeiostream.hclass MOVEchar*array;int n;publicMOVEchar b,int mnm;arraynew charn;forint i0;in;iarrayibi;void changechar a;forint i1;in/2;iifarrayi-1aarrayi-1zaarrayi-1;forint ji-1;jn;jarrayjarrayj1;arrayn-1a;i;void printforint i0;in;icoutarrayi;coutendl;MOVEifarraydeletearrayvoid mainchar*arrfdsUFfsTjfsKFEkWCtest.change;test.print; 实践任务六(第19题)一、程序设计基本题定义一个方阵类Array,实现对方阵进行顺时针90度旋转。如图所示1 2 3 4 13 9 5 15 6 7 8 14 10 6 29 10 11 12 15 11 7 313 14 15 16 16 12 8 4具体要求如下 (1)私有成员函数。l int a44用于存放方阵。 (2)公有成员函数。l Arrayint a14,int n构造函数,用给定的参数a1初始化数据成员a。l void xuanzhuan实现对方阵a进行顺时针90度的旋转。l int fun 求公式的累加和。l void show在屏幕上显示数组元素。 (3)在主程序中定义数组int b 41,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作为原始数组。定义一个Array类对象test,用b初始化test,完成对该类的测试。在主程序中定义对象s,对该类进行测试。二、系统设计1、概要设计 通过类的成员函数xuanzhuan 来实现对方阵a进行顺时针90度的旋转,旋转后再放入二维数组中。2、详细设计类的定义如下class Arrayint a44;publicArrayint a1 4,int nvoid xuanzhuan void show ;类的主要成员函数的设计void xuanzhuan int b44; 定义一个临时数组来存放a数组 forint i0;i4;iforint j0;j4;jbijaij;forint x0;x4;x 旋转后的数组行等于3减去之前的 列,列为之前的行forint y0;y4;yaxyb3-yx;三、系统测试用以测试的数组为1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16预期的输出结果为13 9 5 114 10 6 215 11 7 316 12 8 4四、实践小结这道题可以举一反三,通过这道题的运算可以方便以后旋转类的基本设计。五、参考文献1潘克勤,华伟,Visual C程序设计 北京中国铁道出版社 20082张晓如,王芳,Visual C程序设计解析与实训 北京中国铁道出版社 2008六、源程序清单includeiostream.hclass Arrayint a44;publicArrayint a14,int nforint i0;in;iforint j0;j4;jaija1ij;void xuanzhuanint b44; forint i0;i4;iforint j0;j4;jbijaij;forint x0;x4;xforint y0;y4;yaxyb3-yx;void showforint i0;i4;iforint j0;j4;jcoutaijtnvoid mainint b 41,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;Array testb,4;test.xuanzhuan ;test.show ; 实践任务七(改错第7题)一、改错基本题以下程序统计一个字符串中包含某个字符的单词所出现的次数。这里假设单词之间由一个或多个空格分隔,且在判断字符是否相等时不区分大小字母。请改正其中的错误。程序正确的运行结果为字符串“I am a student.My name is Tony.I am twenty.”中包含字符T的单词有3个。含有错误的源程序如下。includeiostream.hchar convertchar cifcAcZreturn ca-Aint searchchar *str,char chint count0,flag0;for;*str;strifflag*str flag1;while*str ;str;forchar *str1str;*str *str;str1if convert*strconvertchcount;return count;return count;void mainchar str50I am a student.My name is Tony.I am twenty.,chT字符串str中包含字符ch的单词有searchstr,ch个endl;二、系统测试运行结果字符串“I am a student.My name is Tony.I am twenty.”中包含字符T的单词有3个。三、实践小结运行结果这题十分简单四、参考文献1潘克勤,华伟,Visual C程序设计 北京中国铁道出版社 20082张晓如,王芳,Visual C程序设计解析与实训 北京中国铁道出版社 2008五、源程序清单include iostream.hchar convertchar c ifcAcZ return ca-Aint searchchar *str,char ch int count0,flag0; for;*str;str while*str ; str; for;*str *str;str ifconvert*strconvertch flag1; if flag1 flag0; count; return count;void main char str44I am a student.My name is Tony.I am twenty.,chT字符串str中包含字符ch的单词有searchstr,ch个endl; 实践任务八(改错第1题)一、改错基本题以下程序中函数fun(int a,int N)的功能是删除数组中a的前N个元素中重复的元素,并返回所删除元素的总数。请改正其中的错误。 程序正确的运行结果为 处理前的数组为4 1 3 3 1 2 4 3 4 4 处理后的数组为4 1 3 2二、系统测试运行结果为 处理前的数组为4 1 3 3 1 2 4 3 4 4 处理后的数组为4 1 3 2三、实践小结较为简单四、参考文献1潘克勤,华伟,Visual C程序设计 北京中国铁道出版社 20082张晓如,王芳,Visual C程序设计解析与实训 北京中国铁道出版社 2008五、源程序清单includeiostream.hint funint *a,int Nint c,n0;forint i0;iN-n;icai;forint ji1;jN-n;j ifajcforint kj;kN-n;kakak1; n; j; return n;void printint a,int nforint i0;in;icoutaitendl;void mainint a104,1,3,3,1,2,4,3,4,4,b61,2,1,3,2,1;int nfuna,10;cout数组a处理后的数组为nfunb,6;cout数组b处理后的数组为

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
旅游社交小程序功能有管理员和用户。管理员有个人中心,用户管理,每日签到管理,景点推荐管理,景点分类管理,防疫查询管理,美食推荐管理,酒店推荐管理,周边推荐管理,分享圈管理,我的收藏管理,系统管理。用户可以在微信小程序上注册登录,进行每日签到,防疫查询,可以在分享圈里面进行分享自己想要分享的内容,查看和收藏景点以及美食的推荐等操作。因而具有一定的实用性。 本站后台采用Java的SSM框架进行后台管理开发,可以在浏览器上登录进行后台数据方面的管理,MySQL作为本地数据库,微信小程序用到了微信开发者工具,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得旅游社交小程序管理工作系统化、规范化。 管理员可以管理用户信息,可以对用户信息添加修改删除。管理员可以对景点推荐信息进行添加修改删除操作。管理员可以对分享圈信息进行添加,修改,删除操作。管理员可以对美食推荐信息进行添加,修改,删除操作。管理员可以对酒店推荐信息进行添加,修改,删除操作。管理员可以对周边推荐信息进行添加,修改,删除操作。 小程序用户是需要注册才可以进行登录的,登录后在首页可以查看相关信息,并且下面导航可以点击到其他功能模块。在小程序里点击我的,会出现关于我的界面,在这里可以修改个人信息,以及可以点击其他功能模块。用户想要把一些信息分享到分享圈的时候,可以点击新增,然后输入自己想要分享的信息就可以进行分享圈的操作。用户可以在景点推荐里面进行收藏和评论等操作。用户可以在美食推荐模块搜索和查看美食推荐的相关信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值