c++程序设计实验四

合集下载

c程序设计 实验报告

c程序设计 实验报告

c程序设计实验报告C程序设计实验报告引言:C程序设计是计算机科学中一门重要的编程语言,广泛应用于软件开发、系统编程等领域。

本实验报告旨在总结并分析我在C程序设计实验中的学习经验和成果。

实验一:基本语法和数据类型C语言作为一门结构化的编程语言,具有丰富的语法和数据类型。

在本实验中,我学习了C语言的基本语法,包括变量的声明和赋值、运算符的使用以及条件语句和循环语句的控制流程。

通过编写简单的程序,我熟悉了C语言的基本语法和数据类型的使用。

实验二:函数和指针函数是C语言中的重要概念,通过函数的封装和调用,可以实现程序的模块化和复用。

在本实验中,我学习了函数的定义和调用,了解了函数的参数传递和返回值的使用。

同时,我还学习了指针的概念和用法,掌握了指针变量的声明和指针运算的基本操作。

通过实验练习,我对函数和指针的使用有了更深入的理解。

实验三:数组和字符串数组和字符串是C语言中常用的数据结构,对于处理大量数据和字符操作非常重要。

在本实验中,我学习了数组的定义和使用,了解了数组的下标和内存分配的原理。

同时,我还学习了字符串的表示和处理方法,掌握了字符串的输入输出和常见操作函数的使用。

通过实验练习,我对数组和字符串的应用有了更深入的认识。

实验四:结构体和文件操作结构体是C语言中用于组织和管理复杂数据的一种方式,文件操作则是处理外部文件的重要技术。

在本实验中,我学习了结构体的定义和使用,了解了结构体成员的访问和结构体数组的操作。

同时,我还学习了文件的打开、读写和关闭操作,掌握了文件指针的使用和文件读写的基本流程。

通过实验练习,我对结构体和文件操作的应用有了更深入的了解。

实验五:动态内存分配和链表动态内存分配和链表是C语言中高级的数据结构和算法,对于处理动态数据和实现复杂逻辑非常重要。

在本实验中,我学习了动态内存分配的方法和使用,了解了malloc和free函数的原理和使用。

同时,我还学习了链表的定义和操作,掌握了链表的插入、删除和遍历等基本操作。

《C语言程序设计》实验四

《C语言程序设计》实验四

电子科技大学计算机学院标准实验报告(实验)课程名称C语言程序设计电子科技大学教务处制表电子科技大学实验报告四学生姓名:学号:指导教师:王瑞锦实验地点:实验日期:年月日一、实验室名称:软件实验室二、实验项目名称:函数的应用及预处理三、实验学时:2四、实验原理:使用Turbo C软件(简称TC),在微型计算机上,对其程序进行编辑、编译、连接与运行。

Turbo C是一个集成环境,它具有方便、直观、易用的界面和丰富的库函数。

通过上机练习掌握在TC环境下编辑、编译、连接、和运行C程序的方法和过程。

五、实验目的1.掌握C语言中定义函数的方法;2.掌握函数传值调用的方法;3.掌握函数传址调用的方法;4.掌握递归函数的设计方法;5.掌握命令行参数的使用方法;6.掌握函数在不同文件中的编译、链接方法。

六、实验内容编程实验,完成以下上机内容,调试运行程序并完成报告1)、教材第七章习题7.4;2)、编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出;3)、教材第七章习题7.11;4)、教材第七章习题7.15;5)、教材第七章习题7.24;6)、求解汉渃塔(tower of Hanoi)问题。

在一块平板上立有3根立柱,从左到右分别标记为A,B,C。

最初在A柱上放有6个大小不等的圆盘,并且大盘在下面,小盘在上面。

要求将这些盘从A移到C(可以借助B柱)。

条件是:每次只能移动一个盘,并且不允许把大盘放在小盘的上面。

(提示:利用函数的递归调用);七、实验器材(设备、元器件):pc硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。

软件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。

八、实验步骤:实验编程与运行结果⑴编写一个求两个整数的最小公倍数的函数,两个整数由键盘输入,用主函数调用这个函数,并输出结果。

程序文件名为7_4.c,源程序清单如下:#include<stdio.h>lcd(int a,int b){int temp,num1,num2;num1=a;num2=b;while(num2!=0){temp=num1%num2;num1=num2;num2=temp;}return(a*b/num1);}main(){int t,x,y;printf("Please input two integers:");scanf("%d,%d",&x,&y);if(x>y){t=x;x=y;y=t;}printf("lcd(%d,%d)=%d\n",x,y,lcd(x,y));}运行结果:⑵编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出。

c语言程序设计实验总结

c语言程序设计实验总结

C语言程序设计实验总结摘要该文档总结了我在C语言程序设计实验中的经验和教训。

通过这些实验,我对C语言编程的基本概念和技巧有了更深入的理解和掌握。

本文将综合分析每个实验的目标、方法和结果,并总结了我在实验中遇到的问题以及解决方法。

引言C语言是一种通用的高级程序设计语言,广泛应用于各个领域。

通过进行C语言程序设计实验,我们可以更好地了解C语言的语法和用法,提高我们的编程能力和问题解决能力。

本文将基于我在实验中的经验,对每个实验进行详细描述和总结。

实验一:基本输入输出程序设计实验一旨在加深对C语言程序设计的理解,熟悉基本的输入输出操作。

我们需要编写程序,实现基本的数据输入和输出,并进行简单的运算。

这个实验让我对C语言中的输入输出和基本数据类型有了更深入的理解。

实验二:条件语句和循环语句的应用实验二要求我们掌握条件语句和循环语句的使用方法,并能够通过这些语句解决实际问题。

我学会了使用if语句进行条件判断,以及使用for和while循环进行迭代操作。

通过这个实验,我可以更好地掌握程序流程控制和代码逻辑。

实验三:一维数组的应用实验三着重让我们学会使用一维数组来存储和处理大量的数据。

在这个实验中,我学会了声明和初始化数组,以及使用循环结构遍历数组元素。

这个实验对我后续的数据处理有了很大的帮助。

实验四:字符串处理实验四主要教我们如何处理字符串和字符数组。

在实验中,我学会了使用字符数组来存储和操作字符串,同时,了解了一些常见的字符串处理函数,如strlen、strcpy等。

这个实验让我更加熟悉字符串的处理方法。

实验五:结构体的应用实验五要求我们学会使用结构体类型来定义自定义数据类型,并通过结构体变量来访问结构体成员。

在实验中,我学会了如何定义和使用结构体类型,并能够通过结构体变量操作结构体成员。

结构体的灵活性和可扩展性让我在实际编程中受益匪浅。

实验六:指针的应用实验六是C语言程序设计实验中最重要的一部分。

通过实验,我对指针的概念和用法有了更深入的理解。

C#程序设计实验4

C#程序设计实验4

实验4: Windows应用程序开发(3)
一、实验目标:
(1)熟练掌握控件的生成,了解对控件的调整和布局的方法
(2)能够熟练创建常用标准控件,掌握控件的一般属性和特有属性,掌握常用标准控件的使用方法
二、实验习题
1、设计一个应用程序,通过单击按钮改变标签显示内容的颜色为“紫色”、“深蓝”,背景颜色为“粉红”、“橙色”,标签的位置上下移动。

可参考以下界面。

2、编写一个程序,要求将一个人的姓名和密码作为输入项,单击“提交”按钮后,如果用户名和密码都为“admin”时,在文本框显示“欢迎您的光临,XXX”,否则显示“用户名或者密码错误”。

3、创建一个列表框程序,要求包括2个列表框控件,以第1个列表框作为默认的添加和删除选项,并利用按钮控件实现2个列表框中项目的移动。

提示:列表框内项目的增加可用add方法,项的移除可用remove 方法,列表框的清除可用clear方法。

C程序设计实验四实验报告

C程序设计实验四实验报告

实验报告工学院土木工程专业09级2011 至2012 学年度第 1 学期实验目的:1、了解C语言表示逻辑量的方法(以0代表“假”, 以非0代表“真”);2.学会正确使用逻辑运算符和逻辑表达式;3.熟练掌握if语句的使用(包括if语句的嵌套);4.熟练掌握多分支选择语句——switch语句;5.结合程序掌握一些简单的算法;6.进一步学习调试程序的方法。

实验内容(1)本实验要求事先编好解决下面问题的程序, 然后上机输入程序并调试运行程序。

有一函数: x (x<1)y=﹛2x-1 (1<=x<10)3x-11 (x>=10)①写程序, 输入x的值, 输出y相应的值。

用scanf函数输入x的值, 求y值。

输入程序如下:#include<stdio.h>int main(){int x,y;printf("Please input x:");scanf("%d",&x);if (x<1){y=x;printf("x=%d y=%d",x,y);}else if (x<10){y=2*x-1;printf("x=%d y=%d",x,y);}else{y=3*x-11;printf("x=%d y=%d",x,y);}return 0;}运行结果如下: (分别输入-6,5,15)①从键盘输入一个小于1000的正数, 要求输出它的平方根(如果平方根不是正数,则输出其整数部分)。

要求在输入数据后先对其进行检查是否小于1000。

若不是, 则要求重新输入。

输入数据如下:#include<stdio.h>#include<math.h>int main(){int x,y;printf("Please input x:");scanf("%d",&x);while (x>1000){printf("Please input x(<1000):");scanf("%d",&x);}y=sqrt(x);printf("x=%d y=%d",x,y);return 0;}②运行结果如下①给出一个百分制成绩, 要求输出成绩等级A,B,C,D,E。

C程序设计实验报告四

C程序设计实验报告四

C程序设计课程实验报告四班级:软工151 姓名:周敏磊学号:15477133一、实验目的掌握结构体与文件输入输出的基础语法与基本编程方法二、实验内容将实验报告三中成绩管理系统的各项功能,用结构体实现并增加文件输入输出功能。

三、实验过程与相关代码#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct student {char name[20];/*姓名*/int score;/*成绩*/struct student *next;}STU;int n;/*全局变量n用于统计链表的结点数*/STU *creat(){STU *head,*p1,*p2;FILE *fp;if((fp=fopen("d:\\ZML.txt","w"))==NULL) /*以写的方式打开文件*/{printf("cannot open file");getch();exit(1);}n=0;head=NULL;/*链表头赋初值NULL*/p1=p2=(STU *)malloc(sizeof(STU));/*动态申请一个新结点*/printf("请输入学生的姓名成绩并以*结束\n");scanf("%s%d",p1->name,&p1->score);fprintf(fp,"%s\t%d\n",p1->name,p1->score);/*在文件中写入数据*/while(strcmp(p1->name,"*")!=0)/*如果学号不为*时*/{n=n+1;/*结点数加1*/if(n==1) head=p1;/*链表头指向链表第一个结点*/else p2->next=p1;/*将原链表中最后一个结点和新建立的结点链接起来*/p2=p1;p1=(STU *)malloc(sizeof(STU));/*重新动态申请一个新结点*/scanf("%s%d",p1->name,&p1->score);fprintf(fp,"%s\t%d\n",p1->name,p1->score);}p2->next=NULL;/*令链尾结点的指针域为空指针*/free(p1);/*释放p1结点内存*/fclose(fp);return(head);}STU *InsertSort(STU *head){STU *first, *t, *p,*q;first = head->next; /*原链表剩下用于直接插入排序的节点链表*/head->next = NULL; /*只含有一个节点的链表的有序链表*/while (first != NULL) /*遍历剩下无序的链表*/{for (t = first, q = head; (q!= NULL) && (q->score < t->score); p = q, q = q->next); /*无序节点在有序链表中找插入的位置,退出for循环,就是找到了插入的位置*/ first = first->next; /*无序链表中的节点离开,以便它插入到有序链表中。

C语言程序设计实验及代码

C语言程序设计实验及代码

C语言程序设计实验及代码随着计算机技术的快速发展,C语言作为一种高效且强大的编程语言,被广泛应用于软件开发、嵌入式系统以及科学计算等领域。

在学习C语言编程的过程中,进行实验并编写相应的代码是非常重要的一部分,可以帮助我们巩固所学的知识并提高编程能力。

本文将介绍几个常见的C语言程序设计实验,并给出相应的代码示例。

一、实验一:Hello, World!实验目的:熟悉C语言编程环境,掌握简单的编译和运行操作。

实验内容:编写一个简单的程序,在屏幕上输出"Hello, World!"。

代码示例:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```二、实验二:求两个整数的和与差实验目的:学习C语言中的基本数据类型和算术运算符的使用。

实验内容:编写一个程序,输入两个整数并计算它们的和与差,然后输出结果。

代码示例:```c#include <stdio.h>int main() {int num1, num2, sum, diff;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;diff = num1 - num2;printf("两数之和:%d\n", sum);printf("两数之差:%d\n", diff);return 0;}```三、实验三:判断一个数是奇数还是偶数实验目的:学习C语言中的分支语句的使用。

实验内容:编写一个程序,输入一个整数,并判断它是奇数还是偶数,然后输出结果。

代码示例:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。

c程序设计的实验报告

c程序设计的实验报告

c程序设计的实验报告C程序设计的实验报告介绍:C程序设计是计算机科学与技术专业中最基础、最重要的一门课程之一。

通过学习C语言,我们可以理解计算机底层的工作原理,培养编程思维和解决问题的能力。

本篇实验报告将介绍我在C程序设计实验中所进行的实验内容、过程和结果。

实验一:基本语法和数据类型在第一次实验中,我们学习了C语言的基本语法和数据类型。

通过编写简单的程序,我了解了C语言中的变量声明、赋值和运算符的使用。

同时,我还学习了整型、浮点型、字符型等不同的数据类型,以及它们在内存中的存储方式。

实验二:控制语句和循环结构在第二次实验中,我们学习了C语言中的控制语句和循环结构。

通过编写条件语句和循环语句,我可以实现程序的分支和循环执行。

这让我能够更好地控制程序的流程,实现不同的功能。

实验三:函数和指针在第三次实验中,我们学习了C语言中的函数和指针。

函数是C语言中的重要概念,通过函数的封装和调用,我们可以提高代码的复用性和可读性。

指针则是C语言中的难点,通过指针的使用,我们可以直接操作内存,实现高效的数据处理。

实验四:数组和字符串在第四次实验中,我们学习了C语言中的数组和字符串。

数组是一种存储相同类型数据的集合,通过数组,我们可以方便地存储和访问大量数据。

字符串则是字符数组的特殊形式,通过字符串的操作,我们可以实现对文本数据的处理。

实验五:文件操作和结构体在第五次实验中,我们学习了C语言中的文件操作和结构体。

通过文件操作,我们可以读写外部文件,实现数据的持久化存储。

结构体则是一种自定义的数据类型,通过结构体,我们可以将不同类型的数据组合在一起,形成更复杂的数据结构。

实验六:动态内存分配和链表在第六次实验中,我们学习了C语言中的动态内存分配和链表。

动态内存分配通过malloc和free函数,我们可以在程序运行过程中动态地申请和释放内存。

链表则是一种非常重要的数据结构,通过链表,我们可以实现高效的数据存储和操作。

实验七:综合实验在最后一次实验中,我们进行了一次综合实验,将之前学习的知识综合运用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四
(1)某班第1组有10个学生,进行了C++考试,编写程序将考试成绩输入一维数组,并求出C++的平均成绩及优(90~100)、良(80~89)、中(70~79)、及格(60~69)与不及格(0~59)学生的人数。

实验数据:90、85、80、75、70、65、60、55、50、45
(2)某班第1组有10个学生,进行了C++考试,编写程序将考试成绩输入一维数组,并将C++成绩用冒泡法、选择法两种排序算法,由低到高的顺序排序后输出。

实验数据:90、85、80、75、70、65、60、55、50、45
(3)输入一个5行5列的二维数组,编程实现:
求出其中的最大值和最小值及其对应的行列位置;
求出对角线上各元素之和。

实验数据:
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
(4)设A、B、C为m行n列矩阵。

设计矩阵加法程序,能完成C=A+B的操作。

并输
出C
定义为常量,取值3、3。

A、B矩阵的元素值如下:
4
(1)
#include <iostream.h>
#include <iomanip.h>
#define N 10
void main(void)
{ float sum=0.0;
int i,b[]={0,0,0,0,0},a[N];
cout<<"Input 10 score:\n";
for (i=0;i<=N-1;i++)
cin>>a[i];
for (i=0;i<=N-1;i++)
{ sum=sum+a[i];
switch (a[i]/10)
{ case 10:
case 9: b[0]++;break;
case 8: b[1]++;break;
case 7: b[2]++;break;
case 6: b[3]++;break;
default: b[4]++;
}
}
cout<<"优: "<<b[0]<<'\n';
cout<<"良: "<<b[1]<<'\n';
cout<<"中: "<<b[2]<<'\n';
cout<<"及格: "<<b[3]<<'\n';
cout<<"不及格: "<<b[4]<<'\n';
cout<<"平均分: "<<sum/N;
cout<<endl;
}
运行结果:
Input 10 score:
90 85 80 75 70 65 60 55 50 45
优: 1
良: 2
中: 2
及格:2
不及格: 3
平均分: 67.5
(2)算法分析:排序是指将一组无序的数据按从小到大(升序)或从大到小(降序)的次序重新排列。

下面算法采用的是冒泡法排序。

#include <iostream.h>
#include <iomanip.h>
#define N 10
void main(void)
{ float a[N],temp;
int i,j;
cout<<"Input score:";
for (i=0;i<=N-1;i++)
cin>>a[i];
for (i=1;i<=N-1;i++)
for (j=0;j<=N-i-1;j++)
if (a[j]>a[j+1])
{ temp=a[j];
a[j] =a[j+1];
a[j+1]=temp;
}
for (i=0;i<=N-1;i++)
cout<<setw(7)<<a[i];
cout<<endl;
}
下面算法采用的是选择法排序。

#include <iostream.h>
#include <iomanip.h>
图5.1 冒泡法排序流程图
#define N 10
void main(void)
{ float a[N],temp;
int i,j;
cout<<"Input score:";
for (i=0;i<=N-1;i++)
cin>>a[i];
for(i=0;i<N-1;i++)
{ for(j=i+1; j<N;j++)
if (a[i]<a[j])
{ temp=a[i]; a[i]=a[j]; a[j]=temp;}
}
for (i=0;i<=N-1;i++)
cout<<setw(7)<<a[i];
cout<<endl;
}
运行结果:
Input score:90 78 68 96 88 75 67 85 92 84 6875 78 84 85 88 90 92 96
(3)
#include <iostream.h>
#include <iomanip.h>
#define N 5
void main(void)
{ float a[N][N],max,min,sum;
int i,j,r1=0,r2=0,c1=0,c2=0;
cout<<"Input a[5][5]:"<<endl;
for(i=0; i<N;i++)
for(j=0; j<N;j++)
cin>>a[i][j];
max=min=a[0][0];
sum=0;
for(i=0; i<N;i++)
for(j=0; j<N;j++)
{ if (a[i][j]>max)
{ max= a[i][j];
r1=i;c1=j;
}
else if (a[i][j]<min)
{ min= a[i][j];
r2=i;c2=j;
}
if (i==j || i+j==N-1) sum+=a[i][j];
}
cout<<"max="<<max<<'\t'<<"row1="<<r1<<'\t'<<"col1="<<c1<<endl;
cout<<"min="<<min<<'\t'<<"row2="<<r2<<'\t'<<"col2="<<c2<<endl;
cout<<"sum="<<sum<<endl;
}
运行结果:
Input a[5][5]:
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
max=9 row1=4 col1=4
min=1 row2=0 col2=0
sum=45
(4)
#include <iostream>
#include <iomanip.h>
#define M 3
#define N 3
void main(void)
{ int a[M][N],b[M][N],c[M][N],i,j;
cout<<"Input a[M][N]:"<<endl;
for (i=0;i<M;i++)
for (j=0;j<N;j++)
cin>>a[i][j];
cout<<"Input b[M][N]:"<<endl;
for (i=0;i<M;i++)
for (j=0;j<N;j++)
cin>>b[i][j];
for (i=0;i<M;i++)
for (j=0;j<N;j++)
c[i][j]= a[i][j]+b[i][j];
for (i=0;i<M;i++)
{ for (j=0;j<N;j++)
cout<<setw(4)<<c[i][j];
cout<<endl;
}
}
运行结果:
Input a[M][N]:
1 2 3
4 5 6
7 8 9
Input b[M][N]:
3 2 1
6 5 4
9 8 7
4 4 4 10 10 10 16 16 16。

相关文档
最新文档