第一篇:C语言上机实验心得
C语言上机实验心得
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。
说到这,上机实验当然就是一个必不可少的环节了,C语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。
通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。
我主要存在以下的这些缺点:
1、学习耐心与细心不足,如scanf(“%d”,&n);中的“&”有时候会忘了。而在最后输出时又错写成printf(“%d”,&n);从而错误得输出了地址而不是我原来想要的答案。
2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解题了。
3、4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够深刻。
5、6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。
英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在一点问题。
为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。
实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更多。由此可看出上机实践的重要性。
通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。编程的时候有因为顺利编出程序而开心过、有因为做得比人家慢而郁闷过、有因为不知从何入手而无奈过、有因为不知错出在哪而彷徨过„„但随着练习的增多,我对C语言比以前熟了很多,不再只是纸上谈兵,我都有能力独立做出一些程序,可能对于一些“高手来说这不算什么,或者他们早就会了,但我依然觉得很开心,因为我跟我自己比是进步了。
当然,我还得感谢老师的指导与帮助,如果没有老师和其他同学的指点,我可能对C语言还是一筹莫展,在实验中遇到的大大少少的问题与所犯过的错误将是我以后的要加以注意的地方与认真审查的部分,为我奠定坚固的基石。伴随着学习的深入,我发现高深的东西还有很多很多,不懂不熟的知识还有很多,所以我不能停步,对C语言,我以后会更加努力学习的。
第二篇:erp上机实验心得
ERP上机实验心得
通过该实验,对所学的知识有了进一步的了解。在实验的过程中,出现了一些问题,不过最后都得以解决。然而通过这些错误,使我对这些知识点更加印象深刻。
ERP是一门十分有用的学科,通过对其认真学习,可以学习不少先进的管理思想。ERP是一门综合性的学科,通过对其学习我感觉是对有些科目的一些回顾和综合,像会计学、管理学等。
之所以对ERP的操作会遇到这样或那样的关卡,最大的问题在于缺乏经验。通过对ERP的学习尤其是上机实验我更发觉了自己的不足之处,动手操作能力比较弱,虽然理论上头头是道,可真正做到电脑跟前时,头脑反应速度似乎很慢很慢,即便对里面的相关知识点都有相当的了解,操作起来感觉也是力不从心,这可能是与自己平时不注意锻炼动手能力有着直接的联系,另外经验不足也是一个原因。
通过对ERP系统的学习,我已经对其管理理念与具体操作流程有了一定的了解,上机课上我们重点学习了采购系统和生产系统。
首先介绍ERP系统的有关概念:ERP是英文enterprise resources planning(企业资源计划)的简称。
ERP系统是建立在信息技术基础上的,以系统化的管理思想,为企业的决策层及员工提供决策运行手段的管理平台.他是从MRP(物料需求计划)发展而来的新一代集成化管理信息系统,他扩展了MRP的功能,其核心思想是供应链管理,他跳出了传统企业边界,从供应链范围去优化企业资源,ERP技术集中信息技术和先进的管理系统与一身,成为现代企业的运行模式,反应时代对企业合理调配资源,最大化的创造财富的要求,成为企业在信息时代生存和发展的的基石,他对于改善企业业务流程,提高企业核心竞争力作用是显而易见的。
ERP是将企业所有资源进行整合集成管理,简单的说是将企业的三大流,物流,资金流,信息流进行全面一体化管理的管理信息系统,他不仅可以用于生产企业管理,而且许多其他类型的企业也可导入ERP系统进行资源计划和管理.ERP系统具有集成性,先进性,统一性,完整性和开发性。
ERP系统的特点有:
1.企业内部管理所需的业务应用系统,主要是指财务、物流、人力资源等核心模块。
2.物流管理系统采用了制造业的MRP管理思想;FMIS有效地实现了预算管理、业务评估、管理会计、ABC成本归集方法等现代基本财务管理方法;人力资源管理系统在组织机构设计、岗位管理、薪酬体系以及人力资源开发等方面同样集成了先进的理念。
3.ERP系统是一个在全公司范围内应用的、高度集成的系统。数据在各业务系统之间高度共享,所有源数据只需在某一个系统中输入一次,保证了数据的一致性。
4.对公司内部业务流程和管理过程进行了优化,主要的业务流程实现了自动化。
5.采用了计算机最新的主流技术和体系结构:B/S、INTERNET体系结构,WINDOWS界面。在能通信的地方都可以方便地接入到系统中来。
6.集成性、先进性、统一性、完整性、开放性。
在企业中,ERP管理主要包括三方面的内容:生产控制(计划、制造)、物流管理(分销、采购、库存管理)和财务管理(会计核算、财务管理)。这三大系统本身就是集成 体,它们互相之间有相应的接口,能够很好的整合在一起来对企业进行管理。另外,要特别一提的是,随着企业对人力资源管理重视的加强,已经有越来越多的ERP厂商将人力资源管理纳入了ERP系统的一个重要组成部分,对这一功能,我们也会进行一下简要的介绍。这里我们将仍然以典型的生产企业为例子来介绍ERP的功能模块,就针对我们专业需求而言,主要还是物流管理。物流管理包括分销、采购、库存管理。下面对ERP系统进行简单描述:
(一)分销管理
销售的管理是从产品的销售计划开始,对其销售产品、销售地区、销售客户各种信息的管理和统计,并可对销售数量、金额、利润、绩效、客户服务做出全面的分析,这样在分销管理模块中大致有三方面的功能。
1、对于客户信息的管理和服务
它能建立一个客户信息档案,对其进行分类管理,进而对其进行针对性的客户服务,以达到最高效率的保留老客户、争取新客户。在这里,要特别提到的就是最近新出现的CRM软件,即客户关系管理,ERP与它的结合必将大大增加企业的效益。
2、对于销售订单的管理
销售订单是ERP的入口,所有的生产计划都是根据它下达并进行排产的。而销售订单的管理是贯穿了产品生产的整个流程。它包括:
a.客户信用审核及查询(客户信用分级,来审核订单交易)。
b.产品库存查询(决定是否要延期交货、分批发货或用代用品发货等)。c.产品报价(为客户作不同产品的报价)。
d.订单输入、变更及跟踪(订单输入后,变更的修正,及订单的跟踪分析)。e.交货期的确认及交货处理(决定交货期和发货事物安排)。
3、对于销售的统计与分析
这时系统根据销售订单的完成情况,依据各种指标做出统计,比如客户分类统计,销售代理分类统计等等,再就这些统计结果来对企业实际销售效果进行评价:
a.销售统计(根据销售形式、产品、代理商、地区、销售人员、金额、数量来分别进行统计)。
b.销售分析(包括对比目标、同期比较和订货发货分析,来从数量、金额、利润及绩效等方面作相应的分析)。
c.客户服务(客户投诉纪录,原因分析)。
(二)库存控制
用来控制存储物料的数量,以保证稳定的物流支持正常的生产,但又最小限度的占用资本。它是一种相关的、动态的、及真实的库存控制系统。它能够结合、满足相关部门的需求,随时间变化动态地调整库存,精确的反映库存现状。这一系统的功能又涉及:
a.为所有的物料建立库存,决定何时定货采购,同时作为交与采购部门采购、生产部门作生产计划的依据。
b.收到订购物料,经过质量检验入库,生产的产品也同样要经过检验入库。c.收发料的日常业务处理工作。
(三)采购管理
确定合理的定货量、优秀的供应商和保持最佳的安全储备。能够随时提供定购、验收的信息,跟踪和催促对外购或委外加工的物料,保证货物及时到达。建立供应商的档案,用最新的成本信息来调整库存的成本。具体有:
a.供应商信息查询(查询供应商的能力、信誉等)。
b.催货(对外购或委外加工的物料进行跟催)。
c.采购与委外加工统计(统计、建立档案,计算成本)。
d.价格分析(对原料价格分析,调整库存成本)。
总而言之,作为一名物流管理专业的学生,在扎实的专业理论知识的基础上,如果结合上机实验,熟悉ERP系统的话。这对我们以后参加工作是十分重要的。
第三篇:会计上机实验心得
在这学期的会计模拟综合实验的学习中,让我对其有了更深的认识和见解。从这次会计实验中,我学到了不少的知识。通过本次实验,让我对会计整个流程的操作有了较好的认识,我学会了会计中各个环节的操作,以及更加懂得了细心、谨慎和责任对于一个会计来说是那么的重要。
在这次会计模拟实验中,我们首先学习的是制作手工帐,这个手续相对繁琐,从编制分录、填制原始凭证和记账凭证、登记明细账、编写T型账户和科目汇总表、填写总账,再到最后编制资产负债表利润表。在课堂上,老师讲授了每一个会计资料的填写方法,然后我们根据实验的企业—宏远机械设备公司在2007年12月的业务进行编制。
在手工帐的实验中我除了对会计工作有了进一步的认识,在取得实效的同时在实习过程中发现了自身的一些不足。比如自己不够细心,经常抄错数字或借贷写反,导致核算结果出错,引起不必要的麻烦;还有就是我自身的严谨性不够,错帐更正有时候做得相当的不规范,而且数字和文字的大小我经常忘了书写占行距的一半,为错帐更正带来不必要的麻烦;在编制分录方面还不够熟练,今后还得加强练习,熟悉课本知识。还有,基础的知识非常的重要,其实这一次实验我清楚的了解到自己还有很多基础知识不牢固特别是一些计算问题,基础、中级财务会计的知识模糊不清楚。在实际操作的过程中,在发现有很多问题自己不知如何下手,没有办法解决问题。只有通过学习和实验功过了,在课堂上认真的学习理论知识,在实践的过程中把学到的理论知识应用到实践中,才能够更好更快地解决问题。
在手工记帐过程中,由于种种原因遇到了很多问题,但是通过对症下药,采用错帐更正方法,一般有划线更正法、补充登记法、红字更正法三种,而不是填补、挖改。这是我在作帐时要注意的一点。在实验中我也学会了原始凭证与证帐凭证、各明细帐与总帐核对等。这是非常繁琐,也是非常重要的,否则会功亏一篑,徒劳无功。
手工帐完成后,我们就开始做会计的电子帐,这个过程相对手工帐来说会简单很多。首先是建立帐套,建立核算单位、输入核算单位基本信息,确定有关代码级次及长度。之后再进入实验软件定义明细会计科目、输入期初余额,在这里我就犯了错,输入期初余额时,把所有的贷方数字前都加了个“-”号,导致试
算不平衡,后来还是在同学的帮助下找出了错误。录完期初余额后,就进入了实验的重点——输入记账凭证,这是一个比较麻烦的过程,不过由于之前手工帐已经把凭证做好了,在这里就只用直接输入就行。输完记账凭证后,要换人审核。最后生成报表,确定报表结构、定义运算公式,就出现了资产负债表和利润表。
在手工实验中最能体会的是计算辛苦,填写麻烦,容易出错!而电子实验中会感觉轻松很多,只需要输入凭证就行,总账明细账和报表都可以直接生成,大大减少了工作量和出错的概率。另外,会计实验软件中对于凭证、账簿、报表的收集汇总、归类查询都是很方便。我不由得感叹会计电子化,有助于提高会计工作质量,减轻会计人员的负担,提高了会计工作的效率,促进了会计工作的规范化。总之,这次上机实验给我的印象就是电子化的会计操作能省时间、省人力、方便易行。
通过这学期的模拟实验使我加强了对基础会计各方面知识的记忆也让我发现了自己在哪些方面的不足,发现问题及时补救是这一次实验一大收获。在实验我学习到了许多在书本上不能学到的知识。这次实验,让我不仅经历了对企业发生的业务审核并亲自填写记账凭证,登记明细账、编制科目汇总表、登总账等一系统的操作,更明白作为一名会计所必须具备的优秀的品质,诸如细心和耐心。在实验的过程中遇到问题除了问老师自己也意识到只有把书本上学到的会计理论知识应用于实际的会计实务操作中去,才能够真正掌握这门知识。
会计学科是一门实践操作性很强的学科,所以会计理论教学与会计模拟培验如同车之两轮、鸟之两翼,两者有机衔接、紧密配合,才能显著提高我们掌握所学内容的质量。这次实验中我非常感谢两位老师的耐心指导和帮助,也感谢学校为我们提供了这样一次会计的实验课程,让我充分参与到会计活动的每个过程,学习到了编制手工帐和电子帐,从而对企业的会计活动有了更深的了解和认识,这对于我们未来从事会计职业有着非常大的帮助。
第四篇:c语言上机实验指导
第三部分 上机实验指导
实验一 C语言的运行环境和运行过程
一、实验实训目的及要求
1、C++语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2、了解在该系统上如何编辑、编译、连接和运行一个C++程序。
3、通过运行简单的C++程序,初步了解C++源程序的特点。
二、实验内容
1、C++的启动以及工作环境介绍。
2、在Visual C++环境中运行C++语言源程序
三、实验实训指导
Visual C++提供了一个集源程序编辑、代码编译与调试于一体的开发环境,这个环境称为集成开发环境,对于集成开发环境的熟悉程度直接影响程序设计的效率。开发环境是程序员同Visual C++的交互界面,通过它程序员可以访问C++源代码编辑器、资源编辑器,使用内部调试器,并且可以创建工程文件。Microsoft Visual C++是多个产品的集成。Visual C++从本质上讲是一个windows应用程序。Visual C++有两个版本,对于每一个版本,都有对应的文档:
(1)专业版本,它包括一个更高级的优化编译器,更广泛的文档,并能设计基于DOS的应用程序。
(2)标准版本,其费用较低,没有那么高级的编译器,文档较少,且不能设计基于DOS的应用程序。
用鼠标单击“开始”、“程序”、“Microsoft Visual Studio 6.0”、“Microsoft Visual C++ 6.0”,然后打开一个工程文件,就会显示如图1.5.1所示的窗口,图中标出了窗口中各组成部分的名称,而且显示了已装入Graph工程文件的Visual C++ 6.0的开发环境,这是在建立了工程文件之后的结果。
菜单栏
1.File菜单 2.Edit菜单 3.View菜单 4.Insert菜单 5.Project菜单 6.Build菜单 7.Tools菜单
如下图 编辑C++源程序
[例]一个C++源程序。#include
int a,b;
a=5;
b=7;
int c=add(a,b);
cout<<”a+b=”< return x+y;} 四、实验实训思考题 1、输入并运行例题中程序,熟悉调试C程序的的方法与步骤。 2、写出一个C程序的构成。 实验二 C语言的基础知识 一、实验实训目的及要求 1、掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。 2、学会使用C++的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 3、进一步熟悉C++程序的编辑、编译、连接和运行的过程。 二、实验实训内容 1、输入程序,运行出结果。 mian(){ char c1 , c2; c1=97;c2=98; cout< 2、分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。 main(){ int i , j , m , n;i=8;j=10; m=++i;n=j++; cout< 三、实验实训指导 1、在此基础上 1)将第二行改为: int c1, c2; 再使之运行。 3)再将第三行改为: c1=300;c2=400; 再使之运行,分析其运行结果。 在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。 2、此程序主要考查自加、自减运算符以及复合运算符的用法。 四、实验实训思考题 1、“=”和“==”有什么区别? 2、“&”和“&&”、“|”和“||”有什么区别? 实验三 简单的C++程序设计 一、实验实训目的及要求 1.理解C++语言程序的顺序结构 2.掌握常用的C++语言语句,熟练应用赋值、输入、输出语句。 二、实验实训内容 1、按格式要求输入/输出数据 #include “iostream.h” main(){ int a,b;flost x,y;char c1,c2;cin>>a>>b;cin>>x>>y;cin>>c1>>&c2; cout< 2、输入三角形三边长,求三角形面积。 #include “math.h” main(){ float a,b,c,s,area;cin>>a>>b>>c;s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c));cout< 3、已知圆半径,圆柱高,求圆周长,圆柱体积。 main(){ float r,h,l,v,pi;pi=3.1415926;cin>>r>>h;l=2*pi*r;v=pi*r*r*h;cout< 4、输入一个摄氏温度,要求输出华氏温度。公式为f=5/9*c+32.main(){ float c,f;cin>>c; f=5.0/9*c+32;cout< 三、实验实训指导 1、第一题运行程序,必须按如下方式在键盘上输入数据 a=3,b=7 ↙ 8.5,71.82 ↙ a A ↙ 2、修改输出格式控制符,观察输出结果的变化。 四、实验实训思考题 1、已知圆半径r=1.5,圆柱高h=3, 求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32)。 实验四 选择结构程序设计 一、实验实训目的及要求 1、了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”); 2、学会正确使用逻辑运算符和逻辑表达式; 3、熟练掌握if语句和switch语句。 二、实验实训内容 编写程序完成下列题目: 1、已知三个数a,b,c,找出最大值放于max中。 2、输入某学生的成绩,经处理后给出学生的等级,等级分类如下: 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下:E 3、有一函数: x1x 1x10 y=2x-1 3x-11 x10 用scanf函数输入x的值(分别为x<1,1~10,10三种情况),求y值。 三、实验实训指导 1、分析:由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中if——else 形式。第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。Max即为a,b,c中的最大值。 #include “iostream.h” main(){ int a,b,c,max; /*定义四个整型变量*/ cin>>a>>b>>c;if(a>=b) max=a; /*a>=b*/ else max=b; /*amax) max=c; /*c是最大值*/ cout<<“max=”< 若输入下列数据,分析程序的执行顺序并写出运行结果 (1)a=1,b=2,c=3 (2)a=2,b=1,c=3 (3)a=3,b=2,c=1 (4)a=3,b=1,c=2 (5)a=3,b=3,c=2 (6)a=2,b=1,c=2 2、方法一:(用if嵌套`)分析: 由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。 #include“iostream.h” main(){ int score; char grade; cout<<“nplease input a student score:”; cin>>score; if(score>100||score<0) cout<<“ninput error!”; else { if(score>=90) grade='A'; else { if(score>=80) grade='B'; else {if(score>=70) grade='C'; else { if(score>=60)grade='D';else grade='E'; } } } cout<<“nthe student grade:”< } } 输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。方法二:用switch语句 分析: switch 语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。 #include“iostream.h” main(){ int g,s;char ch; cout<<“ninput a student grade:”;cin>>g;s=g/10; if(s<0||s>10) cout<<“ninput error!”;else { switch(s) { case 10: case 9: ch='A';break; case 8: ch='B';break; case 7: ch='C';break; case 6: ch='D';break; default: ch='E'; } cout<<“nthe student scort:”< } } 输入测试数据,同方法一一样调试程序并写出结果。 3、分析:y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用If语句。 main(){ int x,y; cout<<”please input x :”;cin>>x;if(x<1){ y=x; cout<< “y=”< else if(x<10){ y=2*x-1; cout<<“y=”< else { y=3*x-11; cout<<“y=”< } 四、实验实训思考题 c语言如何表示“真”与“假”?系统如何判断一个量的“真”与“假”? 实验五 循环结构程序设计 一、实验实训目的及要求 熟练掌握while、do—while和for三种循环语句的应用。 二、实验实训内容 编写程序,完成下列题目: 1、求5! 2、求和s=1!+2!+3! 3、求和s=1!+3!+5! 4、求和s= 3+33+333 5、有一数列:2/1,3/2,5/3,8/5,„求出这个数列的前10项之和。 6、打印500以内的“水仙花数”。“水仙花数”是一个三位数,其各位数立方和等于该数本身。 7、一个数如果恰好等于它的因子之和,这个数就称为完数。求100之内的所有完数。 三、实验实训指导 1、程序清单: main(){ int n,t;n=1;t=1; while(t<=5){ n=n*t;t=t+1;} cout< 2、程序清单: main(){ int n,s=0,t=1; for(n=1;n<=3;n++){ t=t*n;s=s+t;} cout< 3、程序清单: main(){ int s=0,t,i,j; for(i=1;i<=3;i++){ t=1; for(j=1;j<=2*i-1;j++)t=t*j;s=s+t;} cout< 4、程序清单: main(){ int s=0,t=3,i;for(i=1;i<=3;i++){ s=s+t;t=10*t+3;} cout< 5、程序清单: main(){ int n,t,; float a=2,b=1,s=0;for(n=1;n<=10;n++){ s=s+a/b;t=a;a=a+b;b=t;} cout< 6、程序清单: main(){ int i,j,k,n; for(n=100;n<=500;n++){ i=n/100;j=n/10-i*10;k=n%10; if(n= =i*i*i+j*j*j+k*k*k)cout< 7、程序清单: main(){ int n,s,j; for(n=1;n<=100;n++){ s=0; for(j=1;j 四、实验实训思考题 求Sn=a+aa+aaa+„+aa„a 之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5), n由键盘输入(分别用while和for编程)。 实验六 函数 一、实验实训目的及要求 1、掌握C语言函数的定义方法、函数的声明及函数的调用方法。 2、了解主调函数和被调函数之间的参数传递方式。 二、实验实训内容 1、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。 2、写一函数,是给定的一个二位数组(4×4)转置,即行列互换。 3、写两个函数,分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个正数由键盘输入。 4、写一函数,用“起泡法”对输入的10个字符按由小到大顺序排序。 三、实验实训指导 1、程序清单: mian(){ int number; cout<< “请输入一个正整数:n”;cin>>number;if(prime(number)) cout<< “n %d是素数.”< cout<<“n %d不是素数.”< int prime(number)/*此函数用于判别素数*/ int number;{ int flag=1,n; for(n=2;n 判断素数的算法,我们在以前学习循环的时候已经学过了,在这里只是把这个算法用函数的形式表示出来。这里我们要注意函数的 定义、声明的方法和格式。 2、程序清单: /*矩阵的转置*/ #define N 4 int array[N][N];convert(array)int array[4][4];{ int i,j,t; for(i=0;i t=array[i][j]; array[i][j]=array[j][i];array[j][i]=t;} } main(){ int i,j; cout<< “输入数组元素:n”;for(i=0;i for(j=0;j cout< conver(array); cout<< “转置数组是:n”;for(i=0;i for(j=0;j cout< 本例题用数组作为函数参数,大家要注意数组作为函数参数时的用法。 3、程序清单: #include “stdio.h” hcf(u,v)int u,v;{ int a,b,t,r;if(u>v){ t=u;u=v;v=t;} a=u;b=v; while((r=b%a)!=0){ b=a;a=r;} return(a);} lcd(u,v,h)int u,v,h;{ return(u*v/h);} main(){ int u,v,h,l;cin>>u>>v;h=hcf(u,v); cout<<“H.C.F=%dn”< cout<<“L.C.D=%dn”< 这是一个十分典型的算法,同学们一定要认真分析、学习。 4、程序清单: /*起泡法排序*/ #define N 10 char str[N];main(){ int i,flag; for(flag=1;flag = =1;){ cout<< “n输入字符串,长度为10:n”;cin>>str; if(strlen(str)>N) cout<<“超过长度,请重输!”;else flag = 0;} sort(str); cout<< “n排序结果:”;for(i=0;i sort(str)char str[N];{ int i,j;char t; for(j=1;j for(i=0;(i t=str[i]; str[i]=str[i+1];str[i+1]=t;} } 四、实验实训思考题 编写一个程序,包括主函数和如下子函数。 (1)输入10个无序的整数; (2)用起泡方法从大到小排序;(3)要求输入一个整数,用折半查找法找出该数,若存在,在主函数中输出其所处的位置,否则,插入适当位置。 分析:input函数完成10个整数的录入。sort函数完成起泡法排序,search函数完成输入数的查找。 实验七 指针 一、实验实训目的及要求 1.掌握指针变量的定义与引用。 2.熟练使用函数指针、数组指针、字符串指针编写应用程序。 二、实验实训内容 1、写一函数,求一个字符串的长度。 2、编写一个函数,将数组中n个数按反序存放。 3、设一个函数,调用它时,每次实现不同的功能:(1)求两个数之和;(2)求两个数之差;(3)求两个数之积。 三、实验实训指导 1、分析: (1)本部分习题要求全部用指针完成; (2)在main函数中输入字符串,并输出其长度; (3)本题不能使用strlen()函数; 方法说明: 在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenth(char*p),得到字符串的长度。在函数strlenth(char *p)中,判断*p是否为’ 0’,如果不为’ 0’,则进行len++的操作,直到遇到’ 0’ 为止。然后返回len值。 求字符串长度的函数strlenth(char *p)算法如下: (1)定义int len=0; (2)当*p!=’ 0’ 时,重复执行(2.1)(2.2),否则算法终止。 len=len+1 p++(3)return(len) 2、分析: (1)在主函数中输入10个数,并输出排好序的数。 (2)编写函数invert()将10个数按反序存放。 3、分析: (1)在主函数中输入2个数a,b,并输出a,b的和、差和乘积。 (2)分别编写函数add()、sub()、mul()计算两个数的和、差、积。(3)编写函数process(),分别调用函数add()、sub()、mul()。 四、实验实训思考题 实现指针移动的几种方法。 实验八 一维数组 一、实验实训目的及要求 1、掌握一维数组的定义、赋值和输入输出的方法; 2、掌握字符数组的使用; 3、掌握与数组有关的算法(例如排序算法)。 二、实验实训内容 1、在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序排列。 2、青年歌手参加歌曲大奖赛,有10个评委对她的进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。 3、输入一串字符,计算其中空格的个数。 三、实验实训指导 1、分析:C++中数组长度必须是确定大小,即指定N的值。排序的方法有多种,我们取出其中两种作为参考。 方法一:起泡排序 从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比 较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。 源程序如下: #define N 10 #include“iostream.h” main(){ int a[N],i,j,temp; cout<<“please input %d numbersn”< for(i=0;i if(a[j]>a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } cout<<“the array after sort:n”;for(i=0;i 方法二:选择排序 首先找出值最小的数,然后把这个数与第一个数交换,这样值最小的数就放到了第一个位置;然后,在从剩下的数中找值最小的,把它和第二个数互换,使得第二小的数放在第二个位置上。以此类推,直到所有的值从小到大的顺序排列为止。 #include“iostream.h” #define N 10 main(){ int a[N],i,j,r,temp; cout<<“please input %d numbersn”< for(i=0;i for(j=i+1;j r=j;if(r!=i){ temp=a[r];a[r]=a[i];a[i]=temp;} } cout<<“the array after sort:n”;for(i=0;i 2、分析:这道题的核心是排序。将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外 的数的平均分,其中排序部分这里用选择法实现。 main(){int i,j,min; float temp,ave=0;float a[11]; cout<<“n输入评委所打的分数:n”;for(i=1;i<=10;i++) cin>>a[i];for(i=1;i<=9;i++){ min=i; for(j=i+1;j<=10;j++)if(a[min]>a[j]){ min=j;temp=a[i];a[i]=a[min];a[min]=temp;} } for(i=2;i<=9;i++)/*注意i值的变化范围*/ ave=ave+a[i]; cout<<“选手所得最后分数:”< 3、程序清单: #include for(i=0;i cout<<“空格数为:”< 四、实验实训思考题 已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。 实验九 二维数组 一、实验实训目的及要求 1、掌握二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组的使用; 3、掌握与数组有关的算法(例如排序算法)。 二、实验实训内容 1、有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。 2、打印以下图案: * * * * * * * * * * * * * * * * * * * * * * * * * 3、求矩阵下三角形元素之和。 三、实验实训指导 1、程序清单: #define M 3 #define N 4 main(){ int max,i,j,r,c; static int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};max=a[0][0];for(i=0;i cout<< “max=”<< max<<” row =”< 2、程序清单: main(){ char a[5]={' * ' , ' * ' , ' * ' , ' * ' , ' * '};int i,j,k; char space=' '; for(i=0;i<5;i++)/*输出5行*/ { cout<<“n”;/* 输出每行前先换行* / cout<<“ ”;/* 每行前面留5个空格 */ for(j=1;j<=i;j++) cout< cout< 3、程序清单: #define N 6 main(){ int i,j,sum=0;int a[N][N]={0};cout<<“input 5×5 data:n”;for(i=1;i for(i=1;i cout< 四、实验实训思考题 求一个3×3矩阵对角线元素之和。 实验十 结构体和共用体程序设计 一、实验实训目的及要求 1、掌握结构体类型和结构体变量的定义。 2、掌握结构类型变量的定义和使用; 3、掌握链表的概念,初步学会对链表进行操作; 4、掌握共用体的概念和使用。 二、实验实训内容 1、有五个学生,每个学生的数据包括学号,姓名,三门课的成绩,从键盘输入五个学生的数据,要求打印出每个学生的平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平均分数)。 2、三个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到“ 3” 者退出圈子,找出最后流在圈子中的人原来的序号。 3、建立一个链表,每个结点包括:学号,姓名,性别,年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此 结点删去。 三、实验实训指导 用一个函数输入五个学生的数据;用一个函数求总平均分;用函数找出最高分学生数据,总平均分和最高分的学生的数据都在主函 数中输出。 四、实验实训思考题 用链表实现排序。 实验一 简单的C程序设计和基本数据处理 实验目的: 1.掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。 2.通过编程进一步理解和掌握运算符的确切含义和功能。3.理解和掌握运算符与运算对象的关系,优先级和结合方向。 1.通过编程,掌握C语言的几种基本数据类型,int、char、flloat、double,以及由这些基本数据类型构成的常量和变量的使用方法。 2.掌握基本输入/输出函数的使用方法,包括printf()、scanf()、getchar()、putchar()。3.掌握简单的C程序的查错方法。实验内容: 一、输入程序,观察输出结果,并对语句做必要的注释。1./* e1.c */ #include int x; x=27 printf(“%4d,%o,%Xn”,x,x,x);} 输出结果: 解释: 2./* e2.c */ #include char ch; int k; ch=’a’;k=10; printf(“%d,%x,%o,%c”,ch,ch,ch,ch,k); printf(“k=%%dn”,k); } 输出结果: 解释: 3./* e4.c */ #include float x=5/2,y=5.0/2; printf(“x=%f,y=%fn”,x,y);} 输出结果: 解释: 二、编写程序。 1. 编程(c1.c)任意输入3个整型变量x,y,z和一个实型变量avg,计算并输出3个整数的平均值avg,从键盘输入数据并验证结果。观察运行结果。源程序: 输出结果: 解释: 2. 输入两个个整数给a,b,然后交换它们的值,源程序: 输出结果: 实验报告要求 将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 实验二 选择结构程序设计与循环结构程序设计 实验目的 1、了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”); 2、学会正确使用逻辑运算符和逻辑表达式;理解循环条件和循环体 3、熟练掌握if语句和switch语句;熟练使用while、do-while语句实现循环程序设计 4、熟练掌握switch语句中break语句的作用。实验内容 编程,输入一个整数,求它的各位数字之和及位数。例如123的各位数字之和是6,位数是3.输入输出示例: 输入一个整数:12345 12345有5位数,各位数字之和是15 提示:n表示一个整数,则n%10取个位数,n=n/10去掉个位数,组成一个新数。思考:如果要把每位数字转换为字符输出,如何编程。 3. 改错,输入2个正整数,分别将其逆向输出。输入输出示例: 123的逆向是321 321的逆向是123 void main(){ int n,m=0; scanf(“%d”,n); while(n>0) { m=m+n%10; m=m*10; n=n/10;} printf(“%d的逆向是%dt”,n,m);} 4. 编程,找出200以内的所有完数,并输出其因子。一个数如恰好等于它的因子之和,这个数称为完数,如6=1+2+3,其中1、2、3为因子,6为因子和。输入输出示例: 1=1 6=1+2+3 28=1+2+4+7+14 main(){ int i,j n;printf();} 实验报告要求 将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 实验三 数组 实验目的 1.熟练掌握数组的定义和初始化 2.熟练掌握使用数组元素的引用 3.继续掌握排序算法 实验内容 2.编程,输入1个正整数n(1 输入输出示例: 输入整数个数:5 输入5个整数:5 2 1 10 9 2 5 9 10 提示:注意下标的变化。 思考:如果输入的是实数,要求将绝对值最小的数与第1个数交换,绝对值最大的数与最后1个数交换,然后输出交换后的n个数,如何编程。 3.编程,输入1个正整数n(1 输入输出示例: 输入整数个数:10 输入10个整数:-11 2 8 5-3-16 9 7 6 10 排序后:2-3 5 6 7 8 9 10-11-16 5.编程,输入一个n行m列(n<=4,m<=4)的数组,先以n行m列的格式输出该数组,然后找出该数组中值最小的元素,输出该元素及其行下标和列下标。 输入输出示例: 输入数组行和列数n、m:2 3 输入2行3列的数组元素: 12-7 15-18 9 11 12.00-7.00 15.00-18.00 9.00 11.00 a[1][0]=-18.00 思考: 1)如果不从键盘输入数组元素,而是用初始化的方式给数组赋值,运行结果一样吗? 2)如何修改程序,求绝对值最大的元素? 3)将数组a的每一行均除以该行的主对角元素,然后最大值,试编制程序。 实验报告要求 将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。第五篇:VC6.0上机指导--- C语言实验讲义