程序设计基础实验报告汇总
- 格式:doc
- 大小:969.00 KB
- 文档页数:49
程序设计实训实验报告(热门20篇)c语言是在国内外广泛使用的一种计算机语言。
其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。
其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,unix,linux,mac,os/2,无一例外,哪一个不是c 语言写的?很多新型的语言如,c++,java,c,j,perl...都是衍生自c语言。
掌握了c语言,可以说你就掌握了很多门语言。
学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。
所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。
同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。
在学习一年c语言的过程中我也在慢慢探索怎样才能学好c语言,并总结了一点经验:要了解c语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。
在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。
这些都是语法基础也是c语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。
比如说ifelse和switchcase这两种条件语句都是用来判断执行功能的,那我要什么时侯用if什么时侯用switch呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选switch而不会选if。
c程序设计实验报告C程序设计实验报告引言:C程序设计是计算机科学中一门重要的编程语言,广泛应用于软件开发、系统编程等领域。
本实验报告旨在总结并分析我在C程序设计实验中的学习经验和成果。
实验一:基本语法和数据类型C语言作为一门结构化的编程语言,具有丰富的语法和数据类型。
在本实验中,我学习了C语言的基本语法,包括变量的声明和赋值、运算符的使用以及条件语句和循环语句的控制流程。
通过编写简单的程序,我熟悉了C语言的基本语法和数据类型的使用。
实验二:函数和指针函数是C语言中的重要概念,通过函数的封装和调用,可以实现程序的模块化和复用。
在本实验中,我学习了函数的定义和调用,了解了函数的参数传递和返回值的使用。
同时,我还学习了指针的概念和用法,掌握了指针变量的声明和指针运算的基本操作。
通过实验练习,我对函数和指针的使用有了更深入的理解。
实验三:数组和字符串数组和字符串是C语言中常用的数据结构,对于处理大量数据和字符操作非常重要。
在本实验中,我学习了数组的定义和使用,了解了数组的下标和内存分配的原理。
同时,我还学习了字符串的表示和处理方法,掌握了字符串的输入输出和常见操作函数的使用。
通过实验练习,我对数组和字符串的应用有了更深入的认识。
实验四:结构体和文件操作结构体是C语言中用于组织和管理复杂数据的一种方式,文件操作则是处理外部文件的重要技术。
在本实验中,我学习了结构体的定义和使用,了解了结构体成员的访问和结构体数组的操作。
同时,我还学习了文件的打开、读写和关闭操作,掌握了文件指针的使用和文件读写的基本流程。
通过实验练习,我对结构体和文件操作的应用有了更深入的了解。
实验五:动态内存分配和链表动态内存分配和链表是C语言中高级的数据结构和算法,对于处理动态数据和实现复杂逻辑非常重要。
在本实验中,我学习了动态内存分配的方法和使用,了解了malloc和free函数的原理和使用。
同时,我还学习了链表的定义和操作,掌握了链表的插入、删除和遍历等基本操作。
实验名称:程序设计基础实验实验目的:1. 理解程序设计的基本概念和原理。
2. 掌握编程语言的基本语法和编程技巧。
3. 提高程序调试和问题解决能力。
实验时间:2023年X月X日实验地点:计算机实验室实验器材:1. 计算机2. 编程软件(如Visual Studio、Eclipse等)3. 实验指导书实验内容:一、实验一:基本语法学习1. 实验目的了解编程语言的基本语法,包括变量声明、数据类型、运算符、控制结构等。
2. 实验步骤(1)编写一个简单的C程序,实现变量声明、赋值、打印输出。
(2)使用if语句实现一个简单的判断功能。
(3)使用for循环实现1到10的累加和。
(4)使用while循环实现计算两个数的最大公约数。
3. 实验结果(1)变量声明、赋值、打印输出:```c#include <stdio.h>int main() {int a = 10, b = 20;printf("a = %d, b = %d\n", a, b); return 0;}```(2)if语句实现判断功能:```c#include <stdio.h>int main() {int a = 5, b = 10;if (a > b) {printf("a > b\n");} else {printf("a <= b\n");}return 0;}```(3)for循环实现累加和:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 10; i++) {sum += i;}printf("1到10的累加和为:%d\n", sum); return 0;}```(4)while循环计算最大公约数:```c#include <stdio.h>int main() {int a = 48, b = 18, temp;while (b != 0) {temp = b;b = a % b;a = temp;}printf("最大公约数为:%d\n", a);return 0;}```二、实验二:函数使用1. 实验目的了解函数的概念和作用,掌握函数的声明、定义和调用。
程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。
实验内容:运用Matlab进行简单的程序设计。
实验方法:基于Matlab环境下的简单程序设计。
实验结果:成功掌握简单的程序设计和Matlab基本编程语法。
实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。
实验内容:在Matlab环境下进行多项式拟合和插值的计算。
实验方法:结合Matlab的插值工具箱,进行相关的计算。
实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。
实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。
实验内容:利用Matlab进行最小二乘法计算。
实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。
实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。
实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。
实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。
实验方法:基于Matlab的ODE工具箱,进行ODE求解。
实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。
总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。
通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。
这些知识和技能对我未来的学习和工作都将有着重要的帮助。
实验一 用C 语言编写简单程序一、实验目的1. 熟悉VC6.0的编程环境,掌握运行C 程序的基本步骤。
2. 了解C 程序的基本框架,模仿例题编写简单的C 语言程序。
3. 正确书写算术表达式、赋值表达式和关系表达式。
4. 掌握基本输入输出函数的使用,正确调用C 语言提供的数学库函数。
5. 掌握简单的单步调试方法。
二、实验环境Windows XP ;Visual C++ 6.0。
三、实验内容1.在屏幕上显示一个句子“What is a computer?”。
2.求华氏温度150F 对应的摄氏温度。
计算公式如下:其中,c 表示摄氏温度;f 表示华氏温度。
3.输入x ,计算下列分段函数的值(保留2位小数),请调用sqrt 函数求平方根,调用pow 函数求幂。
4. 输入一个正整数m (0100)m ≤≤,求100i m i =∑。
四、实验要求1. 将上机验证正确的源代码写到实验报告上。
2.根据自己的真实感受,认真填写实验分析和实验心得以及问题和建议。
3.按时提交实验报告。
553299c f =⨯-⨯21(1)2 x<02()0x x f x ⎧+++⎪=≥一、实验目的1.熟练掌握关系表达式的使用。
2.熟练掌握使用else-if 语句实现多分支结构程序设计。
二、实验环境Windows XP ;Visual C++ 6.0。
三、实验内容1.输入x ,计算并输出下列分段函数sign(x)的值。
2.输入月薪salary ,输出应交的个人所得税tax (保留2位小数)。
按照2011年开始实行的新的个人所得税法,计算公式为:tax = rate*(salary-3500)-deduction 。
当salary≤3500时,rate=0、deduction=0当3500<salary≤5000时,rate=3%、deduction=0当5000<salary≤8000时,rate=10%、deduction=105当8000<salary≤12500时,rate=20%、deduction=555当12500<salary≤38500时,rate=25%、deduction=1005当38500<salary≤58500时,rate=30%、deduction=2775当83500<salary 时,rate=45%、deduction=135053.输入一个正整数n ,再输入n 个学生的百分制成绩,统计各等级成绩的个数。
一、实验目的1. 掌握程序设计的基本概念和编程语言的基本语法。
2. 熟悉编程环境的使用,学会编写、调试和运行简单的程序。
3. 培养逻辑思维能力和问题解决能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容1. 简单计算器(1)功能描述编写一个简单的计算器程序,能够实现加、减、乘、除四种基本运算。
(2)实现步骤1)定义一个函数,用于获取用户输入的两个数和一个运算符。
2)根据运算符进行相应的运算,并返回运算结果。
3)在主函数中调用该函数,打印运算结果。
(3)代码实现```pythondef calculator(num1, num2, operator):if operator == '+':return num1 + num2elif operator == '-':return num1 - num2elif operator == '':return num1 num2elif operator == '/':return num1 / num2else:return "无效的运算符"def main():num1 = float(input("请输入第一个数:"))num2 = float(input("请输入第二个数:"))operator = input("请输入运算符(+、-、、/):")result = calculator(num1, num2, operator)print("结果是:", result)if __name__ == "__main__":main()```2. 循环结构(1)功能描述编写一个程序,实现计算1到100之间所有奇数的和。
周信东主编版C语言程序设计基础实验一实验报告实验报告:C语言程序设计基础实验一一、实验目的本实验的主要目的是让学生熟悉C语言的基本语法和数据类型,培养运用C语言进行编程的能力。
通过实验,学生将深入理解C语言的程序结构、变量的定义和赋值、数据类型的转换、运算符的使用等基本知识点,并能够独立编写简单的C程序。
二、实验内容本实验主要包括以下三个部分:1.简单的输入与输出程序:要求用户输入姓名和年龄,然后输出用户的个人信息。
2.简单的数值运算程序:用户输入两个整数,程序计算并输出这两个整数的和。
3.三个整数排序程序:用户输入三个整数,程序对这三个整数进行排序,并输出结果。
三、实验过程与结果1.简单的输入与输出程序:实验过程:首先,我们使用`scanf(`函数从用户输入中获取姓名和年龄,然后使用`printf(`函数输出用户的个人信息。
实验结果:例如,用户输入姓名为“张三”,年龄为18,则程序输出“姓名:张三,年龄:18”。
2.简单的数值运算程序:实验过程:首先,我们使用`scanf(`函数从用户输入中获取两个整数,然后使用`+`运算符将这两个整数相加,并将结果保存在一个变量中。
最后,使用`printf(`函数输出这两个整数的和。
实验结果:例如,用户输入整数1和整数2分别为3和5,则程序输出“整数1+整数2的和:8”。
3.三个整数排序程序:实验过程:首先,我们使用`scanf(`函数从用户输入中获取三个整数,然后使用条件语句和循环语句对这三个整数进行排序。
最后,使用`printf(`函数输出排序后的结果。
实验结果:例如,用户输入的三个整数为2、1和3,则程序输出“排序后的结果为:1、2、3”。
四、实验总结通过本实验,我进一步熟悉了C语言的基本语法和数据类型,并通过实际编写程序来加深对这些知识的理解。
在实验过程中,我遇到了一些问题,例如如何正确使用`scanf(`函数从用户输入中获取数据,如何使用条件语句和循环语句对数据进行处理等。
程序设计基础(C语言)实验报告课程名称:程序设计基础(C语言)姓名:学号:年级:专业:指导教师:实验地点:目录实验一顺序结构程序设计实验二选择结构程序设计实验三循环结构程序设计实验四数组及其应用实验五函数及其应用实验六指针及其应用实验(一)顺序结构程序设计一、实验目的1.掌握顺序结构程序的设计思想,领会顺序结构的程序执行时顺次执行的特点。
2.掌握赋值语句的特点、功能。
3.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
4.掌握编写程序和调试程序的方法。
二、实验内容及要求1.用下面的scanf函数输入数据使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
#include <stdio.h>int main(){int a,b;float x,y;char c1,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%.1f,y=%.2f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);return 0;}运行时分别按以下方式输入数据,观察输出结果,分析原因(□表示空格,↙表示回车)。
(1)a=3,b=7,x=8.5,y=71.82,A,a↙(2)a=3□b=7□x=8.5□y=71.82□A□a↙(3)a=3□b=7□8.5□71.82□A□a↙(4)a=3□b=7□8.5□71.82Aa↙(5)3□7□8.5□71.82Aa↙(6)a=3□b=7↙8.5□71.82↙A↙a↙(7)a=3□b=7↙8.5□71.82↙Aa↙(8)a=3□b=7↙8.5□71.82Aa↙通过此题,总结输入数据的规律和容易出错的地方。
实验一 面向过程的简单程序设计(1)1111+++x x#include<iostream.h> #include<math.h> void main() {int x; double y; cin>>x;y=sqrt(1+1/(x+1/(x+1))); cout<<y<<endl; }(2) log10(1+21x +)#include<iostream.h> #include<math.h> void main() {int x; double y; cin>>x;y=log10(1+sqrt(1+x^2)); cout<<y<<endl; }<3>阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。
#include <iostream.h> // 由用户输入一个整形数字n ,输出n+1. void main() {int n; cin >> n ;if ( n ++ < 10 ) //判断用户输入的n 是否<10cout << n << endl ; //若n <10,输出n ,此时的n 已经加一elsecout << n -- << endl ; //若n>=10,输出n ,此时的n 已经加一} //输出n 后,n 再自减一若输入10,则输出11.<3> 对任意输入的四位整数,分别求出其各位数字,并按从后到前的顺序依次输出。
例如,输入为1234时,输出结果为4,3,2,1。
#include "iostream.h" void main() { int a,b,c,d,x; cin>>x; a=x/1000;b=x/100-x/1000*10;c=x/10-x/100*10;d=x-x/10*10;cout<<d<<” ”<<c <<” ”<<b <<” ”<<a<<endl;}实验二 控制结构程序设计阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。
程序设计基础实验报告嘿,朋友们!今天来跟你们唠唠这个程序设计基础实验报告,那可真是一场像穿越魔法森林一样的奇特经历啊。
你想啊,程序设计就像是在盖房子。
那些代码就是一块一块的砖头,而我们程序员呢,就像是一群有点强迫症的建筑工人。
一开始面对那空落落的代码页面,就像站在一片荒芜的土地上,满脑子都是“从哪儿开始盖这奇怪的大楼啊”。
我在做这个实验的时候,就像是在黑暗里摸索着找宝藏。
那些语法规则就像是守护宝藏的小怪兽,一个不小心就把我给绊倒了。
比如说,那个分号就像是个调皮的小精灵,少一个就像蛋糕少了颗樱桃,整个程序就“歪楼”了,根本没法运行,就像汽车没了轮子,只能干瞪眼。
调试代码的时候更是像一场激烈的辩论赛。
我在心里跟那些错误信息争论:“你说我这儿错了,我怎么就不觉得呢,你肯定是看错了!”结果往往是被事实打脸,错误就像藏在暗处的小老鼠,不把它揪出来,程序就没法安宁。
变量的定义呢,感觉像是给一群调皮的小孩取名字。
得取个好记又独特的名字,不然到后面就像在人群里找一个叫“小明”的人一样,根本分不清谁是谁。
而且这些变量还像一个个小盒子,你得把合适的数据放进合适的盒子里,要是放错了,那可就乱套了,就像把鞋子当成帽子戴在头上一样滑稽。
函数就像是一个个魔法咒语。
你得准确无误地念出来,差一点都不行。
有时候一个函数调用错了,整个程序就像被施了混乱魔法,到处都是乱转的。
不过呢,当最后程序成功运行起来的时候,那种感觉就像是登上了世界之巅。
就像一个大厨看到自己精心制作的满汉全席被完美呈现出来一样,那叫一个自豪。
那些代码不再是一堆杂乱无章的字符,而是像一群训练有素的士兵,整齐划一地完成着任务。
这个程序设计基础实验报告啊,就像是我在代码世界里的冒险日记。
记录着我的迷茫、我的抓狂,还有最后的胜利。
它让我知道,在程序的世界里,每一个小细节都像一颗星星,少了一颗,这片天空就不那么璀璨了。
虽然过程像坐过山车一样起起伏伏,但这也正是它的魅力所在呀,就像生活一样,充满了惊喜和意外。
《程序设计基础课程设计》实验报告班级:1303011:洪礼翔学号:所选题目:1_1, 1_2,2_4,3_2,3_4,4_2,5_1程序设计语言:c++程序设计平台:visual c++ 6.0日期:2014-4-5签名:第1_1题算法描述:比较两个文本文件并打印出它们第一个不相同的行(文件每行字符数不多于80)。
源程序:no1_1.cpp#include<iostream.h>#include<fstream.h>#include<stdlib.h>#include<string.h>void main(){fstream infile1,infile2;infile1.open("f1.txt",ios::in);infile2.open("f2.txt",ios::in);if(!infile1){cout<<"f1.txt can't open";abort();}if(!infile2){cout<<"f2.txt can't open";abort();}char s1[80],s2[80];while(!infile1.eof()&&!infile2.eof()){infile1.getline(s1,sizeof(s1));infile2.getline(s2,sizeof(s2));if(strcmp(s1,s2)){cout<<s1<<endl;cout<<s2<<endl;}}infile1.close();infile2.close();}测试数据(输入、输出):第1_2题算法描述:文本文件num1.txt和num2.txt中各有一组用空格分隔的整数,将num1.txt和num2.txt联合排序,并将结果保存在num3.txt中源程序:no1_2.cpp#include<fstream.h>#include<iostream.h>#include<stdlib.h>#include<strstrea.h>int cmp(const void *m,const void *n);void main(){fstream inf1,inf2,outf;inf1.open("num1.txt",ios::in);if(!inf1){cout<<"num1.txt can't open.\n";abort();}inf2.open("num2.txt",ios::in);if(!inf2){cout<<"num2.txt can't open.\n";abort();}outf.open("num3.txt",ios::out);if(!outf){cout<<"num3.txt can't open.\n";abort();}int array[40]={0};int i=0;while(!inf1.eof()){inf1>>array[i++];}while(!inf2.eof()){inf2>>array[i++];}qsort(array,i,sizeof(int),cmp);int j(0);while(i){outf<<array[j++];if(i!=1) outf<<' ';i--;}cout<<"Sort correctlly!\n";}int cmp(const void *m,const void *n) {return *(int *)m-*(int *)n;}测试数据(输入、输出):第2_4题算法描述:编写程序XMLtoTXT自动将XML文件email.xml转换为文本文件email.txt。
命令行格式:XMLtoTXT email.xml email.txt。
源程序:No2_4.cpp#include<iostream.h>#include<fstream.h>#include<string.h>#include<stdlib.h>void main(){fstream infile,outfile;infile.open("email.xml",ios::in);if(!infile){cout<<"email.xml can't open.\n";abort();}outfile.open("email.txt",ios::out);if(!outfile){cout<<"email.txt can't open.\n";abort();}char ch=0;int state=0;cout<<"Progressing......"<<endl;while((ch=infile.get())!=EOF){char str[10]={0};if(ch=='<'){for(int i(0);infile.peek()!='>';i++){str[i]=infile.get();}if(!strcmp(str,"from")) state=-1;if(state==-1&&!strcmp(str,"address")) state=1;if(!strcmp(str,"to")) state=-2;if(state==-2&&!strcmp(str,"address")) state=2;if(!strcmp(str,"subject")) state=3;if(!strcmp(str,"body")) state=4;if(state>0){switch(state){case 1:outfile<<"from:";break;case 2:outfile<<"to:";break;case 3:outfile<<"subject:";break;case 4:outfile<<"body:";break;default:cout<<"error!\n";exit(0);}state=0;infile.get();while(infile.peek()!='<'){infile.get(ch);outfile.put(ch);}outfile<<endl;}}}cout<<"Convert correctly!"<<endl;}测试数据(输入、输出)第3_2题算法描述:设计一个复数类型,输入实部和虚部生成一个复数,可进行两个复数求和、两个复数求差、两个复数求积运算。
源程序:No3_2.cpp#include<iostream.h>class complex{public:complex(){set(0.0,0.0);}complex(double real, double imag){set(real,imag);}void set(double r, double i){real=r;imag=i;}friend complex operator +(const complex &c1,const complex &c2);friend complex operator -(const complex &c1,const complex &c2);friend complex operator *(const complex &c1,const complex &c2);void print();private:double real, imag;};void complex::print(){if(imag<0)cout<<real<<imag<<"i"<<endl;elsecout<<real<<"+"<<imag<<"i"<<endl;}complex operator +(const complex &c1,const complex &c2) {return complex(c1.real+c2.real,c1.imag+c2.imag);}complex operator -(const complex &c1,const complex &c2) {return complex(c1.real-c2.real,c1.imag-c2.imag);}complex operator *(const complex &c1,const complex &c2) {return complex(c1.real*c2.real-c1.imag*c2.imag,c1.real*c2.imag+c1.imag*c2.real);}void main(){complex a,b,c;double r,i;cout<<"Complex a:\n";cout<<"Input real part:";cin>>r;cout<<"Input imaginary part:";cin>>i;a.set(r,i);cout<<"a=";a.print();cout<<"Complex b:\n";cout<<"Input real part:";cin>>r;cout<<"Input imaginary part:";cin>>i;b.set(r,i);cout<<"b=";b.print();int s;cout<<"Function:\n\n";cout<<"1.c=a+b 2.c=a-b 3.c=a*b\n"<<"Please enter a number:"; Input:cin>>s;switch(s){case 1: c=a+b;break;case 2: c=a-b;break;case 3: c=a*b;break;default:cout<<"Please enter '1','2'or'3'!\n";goto Input;}cout<<"\nc=";c.print();}测试数据(输入、输出)第3_4题算法描述:根据输入的数字N,计算N以(包括N)数据链并统计数据链末尾数字是1的数据个数。