C++程序设计实践报告
程序设计实践报告总结

程序设计实践报告总结
一、实践总结
1、本次实践对象是一个基于C语言的学生成绩管理系统。
2、实践过程中,我们首先熟悉了系统的框架结构和功能,然后进行相应的测试,确定程序的功能要求,并将具体的功能要求针对性分解为各种函数,再慎重地进行程序的设计和编程。
3、在实践过程中,我们使用了结构体、置换排序、字符串操作等基本C语言编程技术,并且在抽象的思维上理清了程序的各个函数之间的联系,从而实现正确的程序设计。
4、通过本次实践,我们深深地体会到程序设计的复杂性,了解到程序设计中逻辑思维和计算机思维的重要性,也提高了程序设计能力。
二、总结与体会
1、本次实践让我们更加深刻地体会到计算机程序设计的重要性。
程序设计是实现软件功能的关键,也是软件开发的核心,程序设计的过程要求我们有良好的抽象思维和计算机思维,在程序设计中,我们要拆分问题,确定程序功能,并将功能要求分解为各种函数,从而使程序更加清晰,更具可操作性。
2、实践过程中,我们还学习了一些C语言的基本编程技术,比如结构体、置换排序、字符串操作等,这些技术在今后的程序设计中可以灵活地运用。
3、本次实践让我们更加清楚地认识到,程序设计是一门艺术,
需要充分发挥自己的创造性,要求我们思考问题,针对性分析问题,并且积极参与程序设计的实践,把知识积累起来,从而提高自己的能力。
程序设计实践报告

程序设计实践报告程序设计实践报告随着个人的素质不断提高,报告十分的重要,报告具有语言陈述性的特点。
那么大家知道标准正式的报告格式吗?以下是小编为大家收集的程序设计实践报告,欢迎大家借鉴与参考,希望对大家有所帮助。
通过c语言实践,让我加深了对c语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实践,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实践有很大的收获,让我对c语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对c语言有了浓厚的兴趣和更深层的认识。
c语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实践我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。
通过实践,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。
其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,c语言还是很有意思的课程。
自己亲自动手编写程序让我增加了对c语言程序开发环境的.了解,在上课的时候老师就讲,学习c语言最重要的是学习c语言的逻辑思维,不管以后从事什么行业,学习c语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用c语言,但是拥有扎实的c语言基础是对工作很有用的。
c语言程序设计_实验一实验报告

实验项目名称:实验一C 语言的运行环境的使用实验目的及要求:1. 了解 Windows 系统下 C 语言的运行环境,熟悉 C 程序编辑、调试、运行的基本操作方法。
2. 熟练掌握编辑、编译、连接和运行 C 程序的方法。
3. 通过运行简单的 C 程序,初步了解 C 源程序的特点。
4. 初步理解 C 语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运行结果的基本输出方法。
实验内容(方法和步骤):1、编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for程序代码:#include <stdio.h>int main(){printf("Hello,World!\n");printf("Welcome to the C language world!\n");printf(Everyone has been waiting for.\n");return 0;}运行结果:2、编写程序,将两个整数相加,并输出结果。
程序代码:#include <stdio.h>int main(){int a,b,c;a=12;b=26;c=a+b;printf("c=%d\n",c);return 0";}运行结果:3. 编写程序,要求从键盘输入2 个整数,输出其中较大的数程序代码:#include <stdio.h>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);pintf("max=%d",c);return 0;}int max(int x,int y){ int z;if (x>y) z=x;else z=y;return(z);}运行结果:4.输入并运行下程序,观察运行结果。
C语言程序设计课程设计报告

C语言程序设计课程设计实验报告一、设计名称:学生成绩治理查询系统实验项目性质:综合性所涉及课程:C语言程序设计打算学时:实验学时12二、设计目的:1.通过本课程设计,培育上机动手能力,使学生巩固《C语言程序设计》课程学习的内容,把握工程软件设计的大体方式,强化上机动手能力,闯过编程关;2.为后续各门运算机课程的学习打下坚实基础。
3.明白得程序设计的思路,把握结构化程序设计的方式,综合利用C语言进行程序编写,巩固常常利用的C语言概念,如数组、指针、结构体、链表、文件操作等,注意良好的程序设计风格的培育。
提高编写程序解决实际问题的能力、调试程序的技术。
三、设计环境(软件、硬件及条件)1.硬件:PC机2.软件:Turbo C++四、设计说明:程序系统的结构:用一系列图表列出本程序系统内的每一个程序(包括每一个模块和子程序)的名称、标识符和它们之间的层次结构关系。
主程序:新建:输入记录(遇#号时停止输入)。
插入:在指定位置插入记录。
显示:列出所有记录。
查询:一、按学号查询;二、按名字排序。
删除:一、按学号删除;二、按名字删除;3、删除所有记录。
排序:一、按语文成绩排序;二、按英语成绩排序;3、按数学成绩排序。
保留:保留为任意名字,系统自动加后缀名为.txt。
读取:读取程序目录下的后缀名为.txt的文件。
退出:退出程序。
五、各功能模块的具体实现,用图表表示。
输入记录显示开始:输入学号输入的学号是否为#Y N 结束,返回主菜单输入记录循环输入结束开始p=hp!=NULL输出学生信息;p=p->next结束按学号(姓名)查询信息Y N读取文件六、各模块(函数)的功能介绍,数据结构设计描述,参数说明等。
STUDENT *init(); /*初始化链表*/STUDENT *create(); /*新建链表*/STUDENT *del_no(STUDENT *h);/*按学号删除信息*/STUDENT *del_name(STUDENT *h); /*按姓名删除信息*/void print(STUDENT *h); /*显示信息函数*/void search_no(STUDENT *h); /*按学号搜索*/void search_name(STUDENT *h); /*按姓名搜索*/STUDENT *insert(STUDENT *h); /*插入信息函数*/void sort(STUDENT *h);/* 排序函数*/void save(STUDENT *h);/*保留数据到文件*/void load(STUDENT *h); /*从文件读取数据*/int menu_main(); /*菜单函数*/void inputs(char *prompt,char *s,int count);/*输出信息*/七、程序代码:Enter records\n");printf(" 2. Add records\n");printf(" 3. List records\n");printf(" 4. Search records\n");printf(" 5. Delete records\n");printf(" 6. Sort records\n");printf(" 9. Quit\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~9):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>9); /*选择项不在1~9之间重输*/return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Search records on number\n");printf(" 2. Search records on name\n");printf(" 3. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~3):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>3);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Chinese\n");printf(" 2. English\n");printf(" 3. Math\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Delete records on number\n");printf(" 2. Delete records on name\n");printf(" 3. Delete all records\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}.");/*提示*/getch(); /*读入任意字符*/}.\n");getch(); /*读入任意字符*/if(p==h)h=p->next;elseq->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s); }printf("\nPress any key to continue..."); getch(); /*读入任意字符*/return h;}.\n");getch();if(p==h)h=p->next;else q->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s);}printf("\nPress any key to continue...");getch(); /*读入任意字符*/return h;}.");getch(); /*读入任意字符*/}.");getch(); /*读入任意字符*/}xt"};STUDENT *p;FILE *fp; /*指向文件的指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"wb"))==NULL) /*打开文件,并判定打开是不是正常*/ {printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;while(p!=NULL){if(fwrite(p,sizeof(STUDENT)-sizeof(p->next),1,fp)!=1){printf("Error!\n");exit(1);} /*写入*/p=p->next;}fclose(fp); /*关闭文件*/printf("\n------OK------\n");printf("Press any key to continue...");getch(); /*读入任意字符*/}xt"};STUDENT *p,*a1=NULL,*a2=NULL;FILE *fp;/*概念文件指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"rb"))==NULL)/*打开文件*/{printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;a1=a2=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp); while(!feof(fp)){n++;if(n==1)h=a1;else a2->next=a1;a1=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp);}a2->next=NULL;printf("\n------OK------\n");printf("Press any key to continue...");getch(p); /*读入任意字符*/}///////////////////////////////////////////void sort(STUDENT *h) /*排序函数*/{int i=0,j;STUDENT *p,*q,*t,*h1,*z;clrscr(); /*清屏*/printf("Enter you choice :\n");scanf("%d",&j);z=h;h1=h->next;h->next=NULL;while(h1!=NULL){t=h1;h1=h1->next;q=h;while(t->score[--j]<p->score[--j]&&p!=NULL){q=p;p=p->next;}if(p==q){t->next=p;h=t;}else{t->next=p;q->next=t;}}p=h;while(p!=NULL){i++;p=p->next;}h=z;printf("------OK------\n");}//////////////////////////////////////////////////九、体会、总结本课程设计完成了设计一个学生成绩治理系统,学生的学习成绩进行治理,具有查询和检索功能,而且能够对指定文件操作。
7月C语言学习社会实践报告

7月C语言学习社会实践报告【标题】7月C语言学习社会实践报告【引言】在本次暑假期间,我参加了一项社会实践活动,进行了C语言的学习。
通过这次实践,我深入了解了C语言的基本知识和应用场景,并运用所学知识完成了一些小项目。
本报告旨在总结我在实践中的收获和体会,对于其他学习者进行参考和借鉴。
【目标】通过参加社会实践,系统学习C语言,并应用所学知识完成小项目。
【具体内容】1. 学习过程1.1 制定学习计划:根据C语言的基本教材和实践项目要求,制定了一个详细的学习计划,包括每天的学习时间和学习内容。
1.2 学习基本语法:通过阅读教材及相关教程,掌握了C语言的基本语法规则,理解了变量、数据类型、运算符等概念。
1.3 编写简单程序:通过编写一些简单的程序来巩固所学知识,如计算器、猜数字等小项目。
2. 实践项目2.1 学生成绩管理系统:根据实际需求,编写了一个简单的学生成绩管理系统,能够实现学生信息的录入、查询和修改。
2.2 游戏开发:参考教材中的案例,实现了一个简单的小游戏,玩家需要通过键盘操作控制角色完成任务。
2.3 文件处理:利用C语言的文件处理功能,实现了一个文件复制程序,能够将指定文件复制到指定目录。
3. 收获与体会3.1 掌握了C语言的基本语法和编程思想,能够独立编写简单的程序。
3.2 了解了C语言的应用场景,如系统开发、游戏开发等,对于今后的学习和就业有了更清晰的目标。
3.3 实践中遇到的问题,如编译错误、逻辑错误等,锻炼了我的问题解决能力和调试技巧。
【结论】通过本次社会实践,我对C语言的基础知识和应用有了深入了解,并成功应用所学知识完成了一些小项目。
在今后的学习和工作中,我将继续深化对C语言的学习,并希望能够进一步掌握其高级特性和应用。
程序设计实训报告(9篇)

程序设计实训报告(9篇)【导语】程序设计实训报告怎么写出亮点?整理了9篇优秀的《程序设计实训报告》通用版范文,有规范的开头结尾写法和标准的书写格式。
是您写出深受大家欢迎的综合报告抱负参考模板,盼望对您有所关心。
【第1篇】程序设计实训报告程序设计实训报告1一,实训目的:加深对可视化编程技术基本学问的理解,把握运用vb开发应用程序的基本方法及基本技巧。
二,实训时间:20xx年10月20xx年11月三,实训方式:上机操作四,实训类容:这次在杨立雄老师的带领下,利用vb开发工具与数据库sql开发一个使用的小型管理信息系统。
我选择了学籍管理系统。
它的功能要求如下:1,学籍信息输入:实现同学基本状况的输入。
包括各个同学的状况,姓名,家庭号码,家庭住址,学号等各个信息。
2,学籍信息管理:本模块实现了信息的修改,删除,查询。
还有个人信息。
把信息统计这个繁琐的工作简洁化,为同学信息的管理方面提高工作效率。
3,学籍信息查询:通过输入学号便可以查询到这个同学的全部信息,包括姓名,性别,诞生年月,班级,入学日期,联系电话,嘉奖和成果表都一目了然,很大的便利了教工们查询同学信息的过程。
4,统计查询:实现查询全班人数,男女生比例等。
五,实训体会:这次实训,感觉既好玩又有些辛苦。
这还是老师担忧我们适应不了所以没教那么多学问,即使这样我们仍学到了比以前上学时更多的学问,而且这些学问有好多都是我们自己去领悟的到的。
我也知道有人比我们更累,所以我自觉得还是挺好的。
经过这次的实训,我真真实切的感受到了计算机在我们生活中工作中的运用,这些软件,程序能让我们提高工作的效率,更直观更便捷切入主题。
这次我们学习的是数据源的原理及应用的各方面学问,由老师带着我们不断操作。
vb能有效的组织,管理和共享数据库信息,能把数据库信息与ado结合在一起,实现数据库信息的共享。
同时,vb概念清楚,简洁易学,使用。
是适合企业管理人员,数据库管理员使用的首选。
程序设计实训报告心得(8篇)

程序设计实训报告心得(8篇)程序设计实训报告心得(8篇)报告,“适用于报告工作、反映情况、提出建议或答复询问等”。
程序设计实训报告如何写?下面是小编为大家整理的程序设计实训报告,仅供参考,喜欢可以收藏分享一下哟!程序设计实训报告心得篇1以前在校很少自己做程序,对软件工程更是一无所知。
来到公司,开始接触大规模(其实现在看来实习的项目其实还是很小的)软件开发,一时真的有些迷茫。
比起VSS,MVC,QA,CMMI,我对JAVA,JSP,XML的一窍不通根本不值一提。
大家都不想输在起点,所以都默契地在加班,这样一直持续了实习的两个月。
刚来的时候始业教育显得慢吞吞,我们还经常盘算去哪哪玩之类的。
我和FLYSKY(20个新生里唯一一个南区的兄弟,软件学院的)还经常出去吃各种小吃,每到一处都尝尝本地的风味,这是他的习惯。
之后开始的培训还不是很难过,JAVA,C++,ORACLE,老师们讲的很好,可以说是非常好,好得我们没有几个人能听懂。
大家开始发愁,我也是每天晚上都基本看书到10点。
我心说得亏哥们我还练过,来之前的2月份我就自己买了一本THINKING IN JAVA,看懂看不懂怎么说也算是准备了一下JAVA。
C++虽说没去上过课,但凭我的直觉我就一下看中这东西很有用,自己也看过一阵。
至于ORACLE,虽然不了解,但毕竟因为佩服云飞扬的性格和敬业精神,咱SQL选修也不是白混的。
专业倒还有点基础,再加上咱这自学能力也不是吹的,基本维持。
可等到后来的日语课就全迷糊了:本就没有语言天赋,再加上记忆严重欠缺,总是特别害怕去上日语课。
不过特别喜欢那个老师说话的感觉,加上她一直对我都很好,所以还是很用心的学着。
随着培训的收尾,我们开始正式进入项目。
从需求分析,概要设计到详细设计,我们一步一步的开始接触软件开发的每个细节。
最受不了的就是每天都要记周报,填写自己的劳动成果。
因为这个我还被QA通报了好几次呢,真的很郁闷。
其实现在我很感谢这种制度化的东西,某些情况下好习惯的养成是要靠强制来确保的。
(面向对象程序设计C)实践考核报告书

九江学院信息科学与技术学院《面向对象程序设计(C++)》课程设计(实训)报告书题目:C++类与对象的设计专业:应用电子技术班级:B1321班姓名:缪谢非学号:21311100136同组人员:指导老师:设计时间:年月日1.课程设计(实训)计划完成银行贷记卡模拟系统,具体要求如下:●客户余额的输出采用“5元5角5分”●允许客户存款、取款,并允许客户取款透支●设计一个主程序进行基本情况的演示2.功能分析与设计(根据课题的要求进行简单的分析,设计相应的类图和基本流程)(1)、需求与功能分析随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。
现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。
近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。
随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。
如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程实践报告设计题目: 程序设计(VC++)实践设计时间2013-1- 至2013-1-学院(系): 计算机科学与工程学院2013年1月一.实践任务选择题目,创新性题目可只选择1 题,仅选提高题应不少于3 题,仅选基础题应不少于6 题,也可组合选题,还可自行选择感兴趣的题目(须经指导老师审定)。
对于提高题、创新题及游戏题可组成团队开发,但应制定详细的项目分工说明。
二.实验步骤及记录(题目,源程序代码及运行结果)1.与学号对应的题(必做题):基础题 12题目:建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串不等长)。
例如将字符串“abcde”交叉插入字符串“ABCDEFG”的结果为“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。
具体要求如下:(1)私有数据成员char str1[60] :存放被插入的字符串。
char str2[40] :存放待插入的字符串。
char str3[100] :存放插入后的字符串。
(2)公有成员函数STRING (char *s1, char *s2 ):构造函数,用s1 和s2 初始化str1 和str2。
void process():将str2 中的字符串插入到str1 中,存放到str3 中。
void print():输出插入后的字符串。
(3)在主程序中定义STRING 类的对象test 对该类进行测试。
源程序代码:#include<iostream.h>#include<string.h>class STRING{char str1[60];char str2[40];char str3[100];public:STRING(char *s1,char *s2){strcpy(str1,s1);strcpy(str2,s2);}void process(){char *p1=str1,*p2=str2;for(int i=0;*p2;i=i+2){for(int k=strlen(str1);k>=i;k--){str1[k+1]=str1[k];}*p1=*p2;p1=p1+2;p2++;}}void print(){strcpy(str3,str1);cout<<str3<<endl;}};void main(){char s1[60]="ABCDEFG";char s2[40]="abcde";cout<<"原字符串:"<<s1<<" "<<s2<<endl;cout<<"交叉插入后的字符串:";STRING test(s1,s2);test.process();test.print();}运行结果:2-6为选做题,其中2,3,4为基础题;5,6为提高题。
2.基础题 4题目:建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。
具体要求如下:(1)私有数据成员int *array:一维整型数组。
int n:数组中元素的个数。
(2)公有成员函数MOVE(int b[],int m):构造函数,初始化成员数据。
void exchange():输出平均值,并将数组中的元素按要求重新放置。
void print():输出一维数组。
~MOVE():析构函数。
(3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。
源程序代码:#include<iostream.h>class MOVE{int *array;int n;public:MOVE(int b[],int m){n=m;array=new int[m];for(int i=0;i<n;i++)array[i]=b[i];}void exchange(){int b[10];for(int k=0;k<n;k++)b[k]=array[k];for(int i=0;i<n;i++)for(int j=i+1;j<n;j++)if(b[j]>=b[i]){int temp=b[i];b[i]=b[j];b[j]=temp;}int max=b[0],min=b[n-1];for(int p=0;p<n;p++){if(array[p]==max)array[p]=min;else if(array[p]==min)array[p]=max;}}void print(){for(int i=0;i<n;i++)cout<<array[i]<<'\t';cout<<endl;}~MOVE(){delete [n]array;}};void main(){int a[10]={21,65,43,87,12,84,44,97,32,55};cout<<"原数组:"<<endl;for(int i=0;i<10;i++)cout<<a[i]<<'\t';cout<<endl;cout<<"交换最大值和最小值后的数组:"<<endl;MOVE a1(a,10);a1.exchange();a1.print();}运行结果:3.基础题16题目:定义一个方阵类CMatrix,并根据给定算法实现方阵的线性变换。
方阵的变换形式为:F=W*f Tf 为原始矩阵,f T 为原始矩阵的转置,w 为变换矩阵,这里设定为10 0 10 1 1 00 1 1 010 0 1具体要求如下:(1)私有数据成员int (*a)[4]:a 指向方阵数组。
int w[4][4]:w 为变换矩阵。
int m:m 表示方阵的行和列数。
(2)公有成员函数CMatrix (int a[][4],int m) :用给定的参数a 和m 初始化数据成员a 和m;对变换矩阵w 进行初始化,要求必须用循环实现。
void Transform () :根据上述变换算法,求出变换后的数组形式,存放在原始数组内。
void show( ) :在屏幕上显示数组元素。
l~ CMatrix () :释放动态分配的空间。
(3)在主程序中定义数组int arr[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作为原始数组。
定义一个CMatrix 类对象test,用arr 初始化test,完成对该类的测试。
源程序代码:#include<iostream.h>class CMatrix{int (*a)[4];int w[4][4];int m;public:CMatrix(int a[][4],int m){this->m=m;this->a=new int[this->m][4];for(int i=0;i<this->m;i++)for(int j=0;j<this->m;j++)this->a[i][j]=a[i][j];for(i=0;i<4;i++){for( int j=0;j<4;j++)if(i+j==3||i==j)w[i][j]=1;else w[i][j]=0;}}void Transform(){int b[4][4];for(int i=0;i<m;i++){for(int j=0;j<m;j++)b[i][j]=a[j][i];}for(int p=0;p<4;p++){for(int q=0;q<4;q++)a[p][q]=w[p][0]*b[0][q]+w[p][1]*b[1][q]+w[p][2]*b[2][q]+w[p][3]*b[3][q];}}void show(){for(int i=0;i<4;i++){for(int j=0;j<4;j++)cout<<a[i][j]<<'\t';cout<<endl;}}~CMatrix(){delete [m]a;}};void main(){int arr[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};cout<<"原始方阵:"<<endl;for(int i=0;i<4;i++){for(int j=0;j<4;j++)cout<<arr[i][j]<<'\t';cout<<endl;}cout<<"变换后的方阵:"<<endl;CMatrix test(arr,4);test.Transform();test.show();}运行结果4.基础题 17题目:17.定义一个类SIN,求sin(x) = x /1- x3 / 3!+x5 / 5!-x7 / 7!+....+ (-1) n+1 x(2n-1) /(2n -1)! 具体要求如下:(1)私有成员数据。
int x:输入公式中x 的值,求sin(x)。
int n:输入公式中n 的值。
(2)公有成员函数。
SIN(int x, int n ):构造函数,用于初始化x 和n 的值。
int power( int q):求q!的值。
l int mi( int m,int n):求m n的值。
l int fun( ):用于求SIN(X)的值。
l void show( ):输出求得的结果。
(3)在主程序中定义对象test,对该类进行测试源程序代码:#include<iostream.h>class SIN{private: int x; int n;public:SIN(int x, int n){this->x=x;this->n=n;}int power(int q){int s=1;if(q<=1)return 1;while(q>1){s=s*q;q--;}return s;}int mi(int m, int n){int temp=1;for(int i=1;i<=n;i++){temp*=m;}return temp;}int fun(){int result=0;for(int i=0;i<=n;i++){result+=mi(-1,i)*mi(x,2*i+1)/power(2*i+1);}return result;}void show(){cout<<"sin("<<x<<")的结果为:"<<fun()<<endl;}};void main(){int x, n;cout<<"输入一个整数 x"<<endl;cin>>x;cout<<"输入一个整数 n"<<endl;cin>>n;SIN test(x,n);test.show();}运行结果:5.提高题 9题目:设计一个程序通过虚函数求长方形的面积和长方体的表面积,具体要求如下:(1)定义长方形类Rectangle保护的数据成员int l,w; //表示长方形的长和宽int s; //表示长方形的面积公有的构造函数Rectangle(int x,int y):初始化长方形的长和宽;公有的虚函数virtual void fun():求长方形的面积;virtual void show():输出长方形的长、宽和面积。