重庆邮电大学C++实验报告

合集下载

c 实验报告总结

c 实验报告总结

c 实验报告总结实验报告总结本次实验主要围绕着C语言编程展开,通过实际操作和调试,加深理解C语言的基本语法和程序设计方法,并学习了如何分析和解决实际问题。

首先,在实验过程中,我们了解了C语言的基本语法,包括数据类型、变量和常量的定义、运算符、表达式、控制语句、函数等。

通过实际编写和调试代码,我们加深了对这些概念的理解,并能够灵活运用。

同时,我们还学习了如何使用C语言的标准库函数,提高了编程效率。

其次,我们在实验中学习了如何分析和解决问题。

在实验过程中,我们遇到了不少bug和错误,例如程序崩溃、逻辑错误、编译错误等。

通过仔细观察错误信息、查找错误原因、逐步调试和修改代码,最终解决了这些问题。

这个过程不仅帮助我们提高了调试技巧,还培养了我们发现问题、解决问题的能力。

在实验中,我们还学习了如何进行程序测试。

我们采用了多种测试方法,包括正常值测试、边界值测试、异常值测试等。

通过对程序不同情况下的输入和输出进行验证,我们可以判断程序的正确性,并找出可能存在的问题。

这种测试方法有助于我们提高程序的健壮性和可靠性。

此外,在实验过程中,我们还学习了如何进行程序优化。

我们通过不断改进算法、减少冗余代码、提高代码执行效率等方式,对程序进行了优化。

通过测试和比较运行结果,我们可以评估优化效果,并根据需要调整算法和代码结构。

这种优化过程对我们提高编程技巧和效率具有重要意义。

总体来说,通过本次实验,我对C语言的基本语法和程序设计有了更深入的了解,掌握了一些常用的编程技巧和方法。

通过实际动手编程和调试,我提高了自己的实践能力和解决问题的能力。

在今后的学习和工作中,我会继续加强对C语言的学习,并不断提高自己的编程水平和技术能力。

重邮电装实习实验报告

重邮电装实习实验报告

一、实习目的通过本次电装实习,使学生了解和掌握电子装接的基本工艺、技术和方法,提高学生的动手操作能力,培养学生在实际工作中分析问题和解决问题的能力。

同时,通过实习使学生熟悉电子设备的组装、调试过程,为今后从事电子设备的生产、维护和研发工作打下基础。

二、实习时间及地点实习时间:2021年X月X日至2021年X月X日实习地点:重邮电院电子实验室三、实习内容1. 电子装接工艺(1)熟悉电子装接工具、设备的使用方法,如电烙铁、焊锡丝、剪线钳、螺丝刀等。

(2)掌握焊接工艺,包括焊接前的准备、焊接过程中的注意事项、焊接后的检查等。

(3)了解焊接质量的要求,掌握焊接缺陷的识别和预防方法。

2. 电路板组装(1)熟悉电路板的结构、元件布局和装配要求。

(2)掌握电路板元件的焊接、安装、固定方法。

(3)了解电路板焊接过程中常见的故障和解决方法。

3. 电路板调试(1)熟悉调试仪器的使用方法,如示波器、万用表等。

(2)掌握电路板调试的基本步骤,包括电源电压、信号波形、电路功能等方面的调试。

(3)了解调试过程中常见的故障和解决方法。

四、实习过程1. 焊接练习在实习过程中,我们首先进行了焊接练习。

通过实际操作,我们掌握了焊接的基本步骤,包括焊接前的准备、焊接过程中的注意事项、焊接后的检查等。

在焊接过程中,我们学会了如何正确使用电烙铁、焊锡丝等工具,并了解了焊接质量的要求。

2. 电路板组装在组装电路板的过程中,我们学习了电路板的结构、元件布局和装配要求。

我们掌握了电路板元件的焊接、安装、固定方法,并了解了一些焊接过程中常见的故障和解决方法。

3. 电路板调试在调试电路板的过程中,我们熟悉了调试仪器的使用方法,掌握了电路板调试的基本步骤。

通过调试,我们验证了电路板的功能是否正常,并解决了一些调试过程中遇到的问题。

五、实习总结通过本次电装实习,我们不仅掌握了电子装接的基本工艺、技术和方法,还提高了自己的动手操作能力。

以下是我们在实习过程中的一些心得体会:1. 熟练掌握焊接工艺是电子装接的基础,只有掌握了焊接技术,才能保证电路板的质量。

算法分析 重庆邮电大学第一次实验

算法分析 重庆邮电大学第一次实验

实验四贪心算法求解最短路径问题实验目的:1)以解决最短路径问题为例,掌握贪心算法的基本设计策略;2)掌握Dijkstra贪心法求解单源点最短路径问题并实现;3)分析实验结果。

实验环境计算机、C语言程序设计环境实验学时2学时实验内容与步骤1.准备实验数据假设算法要处理下图,需要把图数据组织存放到相应的数据结构中,如:权值矩阵float graph[maxsize][maxsize]。

2.实现Dijkstra算法代码:#include <iostream>#include <fstream>#include <string>using namespace std;const int N = 6;const int M = 1000;ifstream fin("e://4d5.txt");ofstream fout("e://dijkstra-output1.txt");template<class Type>void Dijkstra(int n,int v,Type dist[],int prev[],Type c[][N+1]);void Traceback(int v,int i,int prev[]);//输出最短路径v源点,i终点int main(){int v = 1;//源点为1int dist[N+1],prev[N+1],c[N+1][N+1];cout<<"有向图权的矩阵为:"<<endl;for(int i=1; i<=N; i++){for(int j=1; j<=N; j++){fin>>c[i][j];cout<<c[i][j]<<" ";}cout<<endl;}Dijkstra(N,v,dist,prev,c);for(int i1=2; i1<=N; i1++){fout<<"源点1到点"<<i1<<"的最短路径长度为:"<<dist[i1]<<",其路径为";cout<<"源点1到点"<<i1<<"的最短路径长度为:"<<dist[i1]<<",其路径为";Traceback(1,i1,prev);cout<<endl;fout<<endl;}return 0;}template<class Type>void Dijkstra(int n,int v,Type dist[],int prev[],Type c[][N+1]){bool s[N+1];for(int i=1; i<=n; i++){dist[i] = c[v][i];//dist[i]表示当前从源到顶点i的最短特殊路径长度s[i] = false;if(dist[i] == M){prev[i] = 0;//记录从源到顶点i的最短路径i的前一个顶点}else{prev[i] = v;}}dist[v] = 0;s[v] = true;for(int i1=1; i1<n; i1++){int temp = M;int u = v;//上一顶点//取出V-S中具有最短特殊路径长度的顶点ufor(int j=1; j<=n; j++){if((!s[j]) && (dist[j]<temp)){u = j ;temp = dist[j];}}s[u] = true;//根据作出的贪心选择更新Dist值for(int j1=1; j1<=n; j1++){if((!s[j1]) && (c[u][j1]<M)){Type newdist = dist[u] + c[u][j1];if(newdist < dist[j1]){dist[j1] = newdist;prev[j1] = u;}}}}}//输出最短路径v源点,i终点void Traceback(int v,int i,int prev[]){if(v == i){cout<<i;fout<<i;return;}Traceback(v,prev[i],prev);cout<<"->"<<i;fout<<"->"<<i;}结果:#include <iostream>#include <limits>#include <fstream>#include <string>using namespace std;ofstream fout("e://dijkstra-output2.txt");struct Node { //定义表结点int adjvex; //该边所指向的顶点的位置int weight;// 边的权值Node *next; //下一条边的指针};struct HeadNode{ // 定义头结点int nodeName; // 顶点信息int inDegree; // 入度int d; //表示当前情况下起始顶点至该顶点的最短路径,初始化为无穷大bool isKnown; //表示起始顶点至该顶点的最短路径是否已知,true表示已知,false表示未知int parent; //表示最短路径的上一个顶点Node *link; //指向第一条依附该顶点的边的指针};//G表示指向头结点数组的第一个结点的指针//nodeNum表示结点个数//arcNum表示边的个数void createGraph(HeadNode *G, int nodeNum, int arcNum) {cout << "开始创建图(" << nodeNum << ", " << arcNum << ")" << endl; //初始化头结点for (int i = 0; i < nodeNum; i++) {G[i].nodeName = i+1; //位置0上面存储的是结点v1,依次类推G[i].inDegree = 0; //入度为0G[i].link = NULL;}inta[6][6]={{0,999,15,999,999,999},{2,999,999,999,10,30},{999,4,0,999,99 9,10},{999,999,999,0,999,999},{999,999,999,15,0,999},{999,999,999,4,1 0,0}};for (int j = 0;j<6;j++) {for(int k=0;k<6;k++){int begin, end, weight;begin = j+1;end=k+1;weight= a[j][k];// 创建新的结点插入链接表Node *node = new Node;node->adjvex = end - 1;node->weight = weight;++G[end-1].inDegree; //入度加1//插入链接表的第一个位置node->next = G[begin-1].link;G[begin-1].link = node;}}}void printGraph(HeadNode *G, int nodeNum) {for (int i = 0; i < nodeNum; i++) {cout << "结点v" << G[i].nodeName << "的入度为";cout << G[i].inDegree << ", 以它为起始顶点的边为: ";Node *node = G[i].link;while (node != NULL) {cout << "v" << G[node->adjvex].nodeName << "(权:" << node->weight << ")" << " ";node = node->next;}cout << endl;}}//得到begin->end权重int getWeight(HeadNode *G, int begin, int end) {Node *node = G[begin-1].link;while (node) {if (node->adjvex == end - 1) {return node->weight;}node = node->next;}}//从start开始,计算其到每一个顶点的最短路径void Dijkstra(HeadNode *G, int nodeNum, int start) {//初始化所有结点for (int i = 0; i < nodeNum; i++) {G[i].d = INT_MAX; //到每一个顶点的距离初始化为无穷大G[i].isKnown = false; // 到每一个顶点的距离为未知数}G[start-1].d = 0; //到其本身的距离为0G[start-1].parent = -1; //表示该结点是起始结点while(true) {//==== 如果所有的结点的最短距离都已知, 那么就跳出循环int k;bool ok = true; //表示是否全部okfor (k = 0; k < nodeNum; k++) {//只要有一个顶点的最短路径未知,ok就设置为falseif (!G[k].isKnown) {ok = false;break;}}if (ok) return;//==========================================//==== 搜索未知结点中d最小的,将其变为known//==== 这里其实可以用最小堆来实现int i;int minIndex = -1;for (i = 0; i < nodeNum; i++) {if (!G[i].isKnown) {if (minIndex == -1)minIndex = i;else if (G[minIndex].d > G[i].d)minIndex = i;}}//===========================================cout << "当前选中的结点为: v" << (minIndex+1) << endl;G[minIndex].isKnown = true; //将其加入最短路径已知的顶点集// 将以minIndex为起始顶点的所有的d更新Node *node = G[minIndex].link;while (node != NULL) {int begin = minIndex + 1;int end = node->adjvex + 1;int weight = getWeight(G, begin, end);if (G[minIndex].d + weight < G[end-1].d) {G[end-1].d = G[minIndex].d + weight;G[end-1].parent = minIndex; //记录最短路径的上一个结点}node = node->next;}}}//打印到end-1的最短路径void printPath(HeadNode *G, int end) {if (G[end-1].parent == -1) {cout << "v" << end;fout << "v" << end;} else if (end != 0) {printPath(G, G[end-1].parent + 1); // 因为这里的parent表示的是下标,从0开始,所以要加1cout << " -> v" << end;fout << " -> v" << end;}}int main() {HeadNode *G;int nodeNum, arcNum;nodeNum=6;arcNum=36;G = new HeadNode[nodeNum];createGraph(G, nodeNum, arcNum);cout << "=============================" << endl;cout << "下面开始打印图信息..." << endl;printGraph(G, nodeNum);cout << "=============================" << endl;cout << "下面开始运行dijkstra算法..." << endl;for (int i=1;i<=6;i++){Dijkstra(G, nodeNum, i);cout << "=============================" << endl;cout << "打印从v"<<i<<"开始所有的最短路径" << endl;fout << "打印从v"<<i<<"开始所有的最短路径" << endl;for (int k = 1; k <= nodeNum; k++) {if(k!=i){if(G[k-1].d>=150){cout<<"v"<<i<<"到v" << k << "无法到达!";fout<<"v"<<i<<"到v" << k << "无法到达!";}else{cout << "v"<<i<<"到v" << k << "的最短路径为" << G[k-1].d << ": "; fout << "v"<<i<<"到v" << k << "的最短路径为" << G[k-1].d << ": "; printPath(G, k);}cout << endl;fout << endl;}}}}算法分析:图中应用Dijkstra算法更好地实现最短路问题,效率提高很多。

重庆邮电大学计算机网络第七次实验报告

重庆邮电大学计算机网络第七次实验报告

计算机网络第七次实验报告
一、实验目的:
掌握标准IP访问列表规则及配置。

二、实验前的准备:
①.按照实验指导书上的步骤进行路由器的基本配置。

②.按要求对各CP机IP进行设置。

③.按要求配置标准IP访问控制列表。

④.按要求把访问控制列表在接口下应用。

三、实验过程:
实验一、标准IP访问列表
按照实验指导书上的过程,配置路由器1、2,并且通过几个语句查看几个ip地址和连通的情况,分别如下图:
查看是否能ping通:
设置哪些ip能通过,哪些ip不能通过:
配置完了之后,观察是否能ping通:
实验二、扩展IP访问列表根据实验指导书,配置路由器,结果如下图:
测试PC机是否能ping通,先能ping通,设置后就ping不通了:
四、心得体会:
通过这次的实验,知道了如何控制ip的访问,这个技术还是相当必要的,以后设置网络都会经常用到。

在做实验中,有些地方对配置的语句不太懂,查阅资料后基本都了解得清楚了,不过如果让我自己去做一个虚拟网络,来配置,可能还是不行,没有学到精髓,只有在下来的学习中更加努力。

(完整版)c实验报告

(完整版)c实验报告

(完整版)c实验报告实验名称: C语言实验报告实验内容:本次实验主要针对C语言编程进行实验。

通过实验的设计和完成,检验和加深对C语言的理解和应用能力。

实验步骤:1. 实验准备在开始实验之前,需要准备好以下必要的工具和材料:- 计算机- C语言编译器(比如GCC、Clang等)- 文本编辑器(比如Notepad++、Sublime Text等)2. 实验环境搭建在计算机上安装C语言编译器,并配置好相应的环境变量。

这样可以在终端或命令提示符中执行相关的C程序。

3. 编写实验代码根据实验要求,使用文本编辑器编写C语言代码。

根据实验的要求和功能需求,合理设计和组织代码结构,包括头文件的引用、变量的定义、函数的声明和定义等。

4. 编译和运行代码在命令行或终端中使用编译器对编写好的C语言代码进行编译,并生成可执行文件。

编译命令的具体格式根据不同的编译器而有所差异,但一般形式如下:```gcc -o output_file input_file.c```其中,"output_file"表示生成的可执行文件名,"input_file.c"表示待编译的C源代码文件名。

编译成功后,通过命令行或终端执行生成的可执行文件,检查程序的运行结果是否符合预期。

5. 实验结果分析根据实际运行结果,对实验数据进行分析和归纳。

可以通过输出结果、打印特定信息或观察程序的行为来判断程序是否正确地实现了预期的功能。

6. 实验总结在实验报告中对本次实验的过程、方法、结果进行总结,并提出实验中遇到的问题和解决方法。

同时,对所学习的C语言相关知识点进行总结和归纳,以加深对相关知识的理解和记忆。

实验结果:通过本次实验的设计和实现,我成功完成了对C语言编程的实验,达到了预期的目标。

通过编写实际的代码,我巩固了对C语言语法和基本概念的理解。

在实验过程中,我遇到了一些问题,通过查阅资料和与同学的讨论,我成功解决了这些问题。

重邮,王利,c语言实验课

重邮,王利,c语言实验课

C语言程序设计实验报告学号:姓名:班级:0801406任课教师:王利学期:2014-2015(2)第一次实验日志实验题目:1.改正错误,并让程序正确运行#include<stdio.h>void main(){printf(“these values are:\n”);int x=y=2.5;printf(“x=%d\n”,x);printf(“x=%d\n”,y);pri ntf(“x=%d\n”,z);}2.在屏幕上输出如下图形:*********3.已知三角形的底和高,求三角形的面积。

实验目的:掌握C程序的建立,和使用。

实验要求:独立完成实验题目实验主要步骤:1.打开C++;2.建立工作区和文件;3.根据题目要求,完成作业。

实验结果:#include <stdio.h>void main(){float x,y,z;x=y=z=2.5;printf("x=%f\n",x);printf("y=%f\n",y);printf("z=%f\n",z);printf("these values are:\n");printf(" *\n ***\n*****\n");float a,b,s;scanf("%f,%f",&a,&b);s=1/2*a*b;printf("三角形的面积:%f\n",(float)s);}心得体会:注意变量的精度问题,高精度不能赋值给低精度,可以通过(float)+变量名的方式改变变量精度。

第二次实验日志实验题目:1)某航空公司规定:在旅游旺季7~9月份,如果订票20张及其以上,优惠票价的10%;20张以下,优惠5%;在旅游淡季1~6月份、10~12月份,订票20张及其以上,优惠20%,20张以下,优惠10%。

重邮C语言实验报告

重邮C语言实验报告

成绩:--------------------- 实验名称:集中上机-----C语言程序设计学生姓名:侯卫涛学生学号:2011212913学生专业:自动化与电气工程类学生班级:0891102指导老师:李敏老师、张开碧老师实习时间:------------------------------------------------------------------------实验一实验名称C语言运行过程、简单的C语言程序设计专业班级0891102 学号2011212913 姓名侯卫涛第5周,星期日第9-12节实验日期:2012、03、25一实验目的了解vc软件的窗口界面,熟悉掌握vc的菜单命令及相应的键命令,并在vc环境下掌握如何编辑、编译、连接、运行一个c程序并如何保存和修改C语言的源程序。

通过运行一个C程序过程,逐步了解C程序的基本结构及特点。

掌握C语言的基本数据类型,熟悉它们的使用方法和定义方式,了解几种类型数据输出时所用的格式转换符,熟悉各种运算和表达式的使用特点。

熟悉掌握C中赋值运算的使用。

二实验内容1.使用TC。

2.运行简单的C程序。

三实验结果1,输入并运行例题中程序,熟悉调试C程序的方法与步骤。

#include <stdio.h>void main(){int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d\n",c);}int max(int x,int y){int z;if(x>y)z=x;elsez=y;return(z);}2,编写一个C程序,输入a,b,c三个数,输出其中最大者。

#include<stdio.h>void main(){int a,b,c,max;scanf("%d %d %d",&a,&b,&c);if(a>b){if(a>c)max=a;elsemax=c;}else{if(b>c)max=b;elsemax=c;}printf("max=%d\n",max); }实验二实验名称:数据类型、运算符和表达式专业班级:自动化与电气工程0891102 学号:20112129213 姓名:侯卫涛第5周,星期日第9-12节实验日期:2012 、03 、25 一实验目的:1.掌握C语言数据类型,熟悉如何定义一个整形、字符型、实型变量,以及对它们赋值的方法,了解以上雷翔数据输出时所用的格式转换符。

1、重庆邮电大学实验报告册(定板)-内页

1、重庆邮电大学实验报告册(定板)-内页

二、实验原理(或设计方案)
电阻丝在外力作用下发生机械变形时,其电阻值发生变化,这就是电阻应变效应,描述电阻应变效应的关系式为
式中为电阻丝电阻相对变化;
k为应变系数;
为电阻丝长度相对变化。

金属箔式应变片就是通过光刻、腐蚀等工艺制成的应变敏感元件。

如图1-1所示,将四个金属箔应变片(R1、R2、R3、R4)分别贴在双杆式悬臂梁弹性体的上下两侧,弹性体受到压力发生形变,应变片随悬臂梁形变被拉伸或被压缩。

通过这些应变片转换悬臂梁被测部位受力状态变化,可将应变片串联或并联组成电桥。

如图1-2信号调理电路所示,R5=R6=R7=R为固定电阻,与应变片一起构成一个单臂电桥,其输出电压
为电阻丝长度相对变化;
为电阻丝电阻相对变化;。

重庆邮电大学实验报告(内页)[5篇范文]

重庆邮电大学实验报告(内页)[5篇范文]

重庆邮电大学实验报告(内页)[5篇范文]第一篇:重庆邮电大学实验报告(内页)课程名称课程编号实验地点实验时间校外指导教师校内指导教师实验名称评阅人签字成绩一、实验目的二、实验原理三、使用仪器、材料四、实验步骤五、实验过程原始记录((数据、图表、计算等))六、实验结果及分析七、实验心得体会第二篇:重庆邮电大学实验报告(内页),,副本课程名称操作系统课程编号A2130330实验地点综合实验楼 A511/A A 512实验时间2019--06--10校外指导教师校内指导教师常光辉实验名称实验 X X实验名称评阅人签字成绩一、实验目的二、实验原理三、使用仪器、材料四、实验步骤五、实验过程原始记录((数据、图表、计算等))六、实验结果及分析七、实验心得体会第三篇:重庆邮电大学实验报告(内页),,副本,,副本课程名称操作系统课程编号A2130330实验地点综合实验楼 A511/A A 512实验时间2019--06--10校外指导教师校内指导教师常光辉实验名称实验一进程控制描述与控制评阅人签字成绩一、实验目的通过在Windows 任务管理器中对程序进程进行响应的管理操作,熟悉操作系统进程管理的概念,学习观察操作系统运行的动态性能。

二、工具/ / 准备工作1.回顾教材相关内容;2.在Vmware WorkStation Pro 中安装Windows Server 2016。

三、实验环境操作系统:Windows Server 2016(虚拟机)编程语言:C++ 集成开发环境:Visual Studio 2019 四、实验步骤与实验过程五、实验结果与分析六、实验心得体会第四篇:重庆邮电大学计算机网络实验报告实验一网络命令与使用实验要求:1、在窗口中显示网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关2、向一台电脑无限制的发送数据包,此数据包大小为60000byte3、查看本地计算机或另一台计算机的ARP高速缓存中的当前内容4、从一台ftp服务器上下载一份文件实验过程:1、在窗口中显示网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关在命令行输入:ipconfig 命令2、向一台电脑无限制的发送数据包,此数据包大小为60000byte 在命令行格式:ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-lis其中-t表示ping指定计算机直到中断,-l定义发送数据包的长度。

重庆邮电大学自动化电气与工程类 工程实训实验报告单片机最小系统实验报告

重庆邮电大学自动化电气与工程类 工程实训实验报告单片机最小系统实验报告

自动化电气与工程类工程实训实验报告——单片机最小系统实验报告基于PROTEUS仿真平台的51系列单片机最小系统的设计、应用实验一、实验目的和性能指标1、实验目的学习掌握PROTEUS仿真软件的基本使用,熟悉KEIL软件的使用。

并且对单片机最小系统进行仿真设计,实现1.在电路上实现秒表计时、暂停、清零功能。

2.同时实现计时器功能,显示时、分、秒,能够修改时、分、秒。

3.用单片机及外围接口电路实现对键盘的扫描,并用八位数码管显示结果。

2、性能指标秒表计时要求能精确至0.01秒,计时器要求能循环显示,格式为时—分—秒,并能实现时间的调整,包括时间的增加和减小,对键盘的扫描实现4*4矩阵键盘的扫描,并能循环显示。

二、硬件系统设计STC89c51单片机的硬件资源包含:一个8位CPU、振荡器和时钟电路、至少128字节的内部数据存储器,可寻址外部程序存储器和数据存储器个64k字节,21个特殊功能寄存器,4个并行I/O接口,2个16位定时/计数器,至少5个中断源,提供两级中断优先级,可实现两级中断服务程序嵌套。

具有有位寻址功能,有较强的布尔处理能力。

各功能单元(包括IO端口和定时器/计数器等)都由特殊功能寄存器(SFR)集中管理。

中央处理器、ROM、RAM、定时/计数器和I/O口等,各个功能由内部的总线连接起来,从而实现数据通信。

单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成。

1、单片机最小系统单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。

主控芯片选取AT89C52芯片,因其具有良好的性能及稳定性,价格便宜应用方便。

晶振选取12MHz,晶振旁电容选取30pF。

采用按键复位电路,电阻分别选取10KΩ,电容选取10μF。

2、键盘接口电路共计16个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行采用端口P3.0~P3.3,四列采用端口P3.4~P3.7,通过8个端口的的高低电平完成对矩阵键盘的控制和扫描。

C语言集中上机实验报告

C语言集中上机实验报告

C语言集中上机实验报告学生:学号:班级:专业:重庆邮电大学移通学院年月目录第一章循环 (3)1.1 实验目的 (3)1.2 实验要求 (3)1.3 实验基本内容 (3)1.3.1 题目一 (3)1.3.2 题目二 (3)第二章数组 (4)2.1 实验目的 (4)2.2 实验要求 (4)2.3 实验基本内容 (4)第三章函数 (5)3.1 实验目的 (5)3.2 实验要求 (5)3.3 实验基本内容 (5)第四章指针 (6)4.1 实验目的 (6)4.2 实验要求 (6)4.3 实验基本内容 (6)第五章综合练习 (7)5.1 实验目的 (7)5.2 实验要求 (7)5.3 实验基本内容 (7)集中上机总结 (8)第一章循环1.1 实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法(2)掌握字符数组和字符串函数的使用;(3)掌握与数组有关的算法。

1.2 实验要求(1)在报告中记录建立、保存C程序实习过程。

(2)完成典型题目,分析遇到的困难和实验中的收获。

1.3 实验基本内容1.3.1 题目一(1)题目分析:(2)程序:(3)运行结果:1.3.2 题目二(1)题目分析:(2)程序:(3)运行结果:第二章数组2.1 实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法(2)掌握字符数组和字符串函数的使用;(3)掌握与数组有关的算法。

2.2 实验要求(1)在报告中记录建立、保存C程序实习过程。

(2)完成典型题目,分析遇到的困难和实验中的收获。

2.3 实验基本内容2.3.1 题目一(1)题目分析:(2)程序:(3)运行结果:2.3.2 题目二(1)题目分析:(2)程序:(3)运行结果:第三章函数3.1 实验目的(1)掌握定义函数的方法;(2)掌握函数实参与形参的对应关系以及“值传递”的方式;(3)掌握函数的嵌套调用和递归调用的方法;(4)掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。

c#实验报告_简易计算器

c#实验报告_简易计算器

重庆邮电大学移通学院C#课程设计一、实验目的:构造一个类似Windows自带的计算器一样的简易计算器,能够连续进行加、减、乘、除四则整数运算,并能随时清除计算结果进行下一次计算。

二、具体实验步骤:1、添加编辑框对应的变量m_Display2、添加运算符类型变量char CompuType; //用于存储运算符类型CString FirstInput; //用于保存运算符前面的输入值三、实验内容设计的基本要求:能正确输入数据,能实现加,减,乘,除等算术运算,能实现简单的三角运算,运行结果能正确显示,可以清除数据等。

1、要点分析:这是一个简单的对话窗体设计,涉及button,editbox,static text,radio button,group box等控件,主要影响事件为BN_CLICKED2、程序源代码:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Study{public partial class Form1 : Form{public Form1(){InitializeComponent();}private int opMain = 0; // 运算类型,其中1(加法) 2(减法) 3(乘法) 4(除法)private double mainNum1 = 0; // 存储第一个数private double mainNum2 = 0; // 存储第二个数private bool isSecond = false; // 用来判断输入的是第一个还是第二个数private bool isDone = false; // 用来判断是否按了等于按钮private bool isDecimal = false; // 用来判断是否有小数private bool isNokeydown = false;// 用来判断是否没输入第二个数而按了"="号键private bool isKeyupclear = true;//用来判断是否按了clear键,程序开始前默认按了;public void setText(string textest) //设置文本框的值{if (textest.Equals("clear")){textBox1.Text = "0.";isSecond = false;isDone = false;isDecimal = false;isKeyupclear = true;}else{if (isSecond){textBox1.Text = textest;isSecond = false;isDecimal = false;}else{if (isDone){textBox1.Text = textest;isDone = false;}else{if (isKeyupclear) //对是否按下clear键的判断{textBox1.Text = textest;isKeyupclear = false;}elsetextBox1.Text += textest;}}}btnEqual.Select(); //设置"="号的焦点}public void Calc(double num1, double num2, int op){double answer = 0;switch (op) //判断所进行的运算{case 1:answer = num1 + num2;break;case 2:answer = num1 - num2;break;case 3:answer = num1 * num2;break;case 4:answer = num1 / num2;break;case 5:answer = num1 % num2;break;}setText(answer.ToString()); //显示结果}//执行运算private void doEquals(){if (isNokeydown) //判断已经输入第二个数后按了"="号键{mainNum2 = double.Parse(textBox1.Text);setText("clear");Calc(mainNum1, mainNum2, opMain);isDone = true;isNokeydown = false;}}//切换正负private void changeSign(){double storNum;if (textBox1.Text.Length > 0){storNum = double.Parse(textBox1.Text); storNum *= -1;textBox1.Text = storNum.ToString();}btnEqual.Select(); //设置"="号的焦点}//设置运算类型private void setOperator(int operation){if (textBox1.Text.Length > 0){opMain = operation;mainNum1 = double.Parse(textBox1.Text); isSecond = true;isDone = false;isNokeydown = true;btnEqual.Select(); //设置"="号的焦点}}//设置小数点private void setDecimal(){if (!isDecimal){setText(".");isDecimal = true;}btnEqual.Select(); //设置"="号的焦点}//开平方private void doSquart(){double storNum;storNum = double.Parse(textBox1.Text);if (storNum > 0){storNum = Math.Sqrt(storNum);textBox1.Text = storNum.ToString();}elsetextBox1.Text = "负数不能开平方。

重庆邮电大学计算机学院C++上机试验报告

重庆邮电大学计算机学院C++上机试验报告

C++集中上机实验日志实验6—1一、问题描述定义一个字符串类String,其数据成员有指向字符串的指针elems,成员函数包括构造函数、析构函数、判断字符串是否为空的operator!()。

编程测试类String的功能。

二、实验输出如图所示:三、实验思路以及方法判断字符串是否为空即是对字符串进行非运算,即重载operator!()。

逻辑非运算是单目运算符,按照运算符重载方针,应该重载为类的成员函数。

由于逻辑非运算结果只有两种:真、假,因此operator!()的返回值类型为bool型。

四心得体会开始没有判断elems的空指针问题,遇到一点麻烦,改过之后就ok了,本实验让我们学习了“运算符重载类的成员函数”,对以后的学习C++有了很大了帮助。

代码实现#include<iostream>#include<string>using namespace std;class String{public:String(const char *e=NULL);~String();bool operator!()const;private:char *elems;};String::String (const char *e){if(e==NULL){elems=NULL;return;}else{elems=new char[strlen(e)];strcpy(elems,e);return;}}bool String::operator !()const{if(elems==NULL)return true;else return false;}String::~String (){if(elems!=NULL)delete[]elems;}int main(){String str;if(!str)cout<<"这是一个空字符串!"<<endl;return 0;}实验6-3一、问题重述对于具有相同行列数的矩阵进行加、减、乘、转置、赋值运算。

【2018最新】C++程序设计实验报告模板 (500字)-范文模板 (4页)

【2018最新】C++程序设计实验报告模板 (500字)-范文模板 (4页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==C++程序设计实验报告模板 (500字)重庆邮电大学(201X-201X学年第一学期)C++程序设计随课实验报告指导教师:姓名:学号: 201X210127 班级: 0101404 电话:第一部分:实验内容(包括实验题目、对应的源程序及程序运行截图)1:.输入一个年份,判断该年份是否闰年,如果是就输出YES,否则输出NO。

#include<iostream.h>void main(){int year,k;cin>>year;if((year%4==0&&year%100!=0)||(year%400==0))cout<<year<<"是闰年。

"<<endl;elsecout<<year<<"不是闰年。

"<<endl;cout<<"关闭,请按任意数字再按enter."<<endl;cin>>k;}2.输入3个数a,b,c,要求按由小到大的顺序输出。

#include<iostream.h>void main(){ int a,b,c,max,m;cin>>a>>b>>c;max=a;if(a<b)max=b;if(b<c)max=c;cout<<"亲!最大值是"<<max<<"哦。

"<<"按任意字母或数字再enter离开。

"<<endl; cin>>m;}3.输入两个数,进行四则运算,输出其和·差·积·商。

重庆邮电大学 c语言实验报告

重庆邮电大学 c语言实验报告

C语言上机实验报告教师:李盘林班级:0201102学号:2011210743姓名:郑振华实验1熟悉c语言编程环境实验日志指导教师李盘林实验时间2012 年3月13日学院光电工程专业电子工程类班级 0201102 学号 2011210743 姓名郑振华实验室 s311实验题目:1.在屏幕上显示一个短句“Hello Word!”。

2.在屏幕上显示一个图形。

3.改正错误程序,在屏幕上显示“Welcome to you!”。

4.改正错误程序,在屏幕上显示如下图形:***************Welcome***************实验目的:1.熟悉c程序设计编程环境创天中文版v c++,掌握运行一个c程序设计的基本步骤,包括编辑、编译、连接和运行。

2.掌握c语言程序设计的基本框架,能够编写简单的c程序。

3.理解程序调试的思想,能找出并改正c程序中的语法错误。

实验要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。

上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。

实验主要步骤:1.在“我的电脑”上新建一个文件夹,用于存放c程序,文件夹名字可以是学号姓名。

2.调试示例,在屏幕上显示一个短句“Hello World!”。

源程序#include <stdio.h>void main(){prin tf(“Hello World!\n”);}运行结果:Hello World!基本步骤:(要求熟练掌握)1)启动VC++“开始”->“程序”->“Microsoft Visual Studio 6.0”->“Microsoft Visual C++6.0”进入VC++编程环境。

2)新建文件(*.cpp)“文件”->“新建”,单击“文件”选项卡,选择“C++Source Files”,修改文件保存“目录”和“文件”(文件名),单击“确定”。

重邮模电实验报告

重邮模电实验报告


计算数据
RW (kΩ) 20
信号类型 正弦波
f(kHz) 2
u i (mV) 5
R(kΩ) 0 10
u o 1 (mV) 495 ─
u o 2 (mV) ─ 104
Ri(kΩ) 2.66
4/6
模拟电子电路实验资料
5.测量输出电阻 Ro (1) 按表 1.5 的要求调整电路;
模拟电子电路实验资料
重庆邮电大学实验报告
实验课程: 电工电子(2)模电
实验名称: 单级低频放大器
实验时间: 第 10 周星期三 9-12 节
学 院:
自动化
专 业: 电气工程及其自动化类
班 级:
0801313
学 号:
2013212807
姓 名:
黄添林
指导老师:
刘双临
2015 年 5 月 11 日
1/6
1.5 中;
(3) 完成测试后按图 1.1 恢复电路。
测试条件
表 1.5 测量输出电阻 Ro 测试数据
计算数据
RW (kΩ) 20
信号类型 正弦波
f(kHz) 2
u i (mV) 5
R L (kΩ) ∞
3
u o (mV) 1020 ─
uoL (mV) ─ 495
R o (kΩ) 3.18
6. 测 量 幅频特性
测试条件
表 1.1 观察 RW 的变化对静态工作点的影响
测试数据
计算数据
工作状
RW (kΩ) 0
VCC(V) 11.82
VBQ (V) 3.93
VE Q (V) 3.21
VCQ (V) 3.23
VBE Q (V) 1.72
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cin>>x>>y>>z;
c.setData(x,y,z);
while(c.left>0){
c.print();
}
return 0;}
三、
四、
进一步了解类的设计,提高抽象问题的能力,积累更多的类设计的技巧和编程经验,对面向对象程序设计有更清晰的理解。
实验四 类的设计和对象的创建
【实验2-3】积分返券
{
int z; //max函数中的声明部分,定义本函数中用到的变量z为整型
if(x>y) z=x;
else z=y;
return(z); //将z的值返回,通过max带回调用处
}
三、实验代码
1、#include <iostream.h>
void main()
{
cout<<"This is a C++ program.\n";
void tick();
void printU();
void printS();
int getH(){return hour;}
int getM(){return minute;}
int getS(){return second;}
void setTime(int h,int m,int s){hour=h;minute=m;second=s;}
card m("10239965","刘明",3211);
cout<<"***********返券前***********"<<endl;
m.print();
m.reward();
cout<<"\n***********返券后***********"<<endl;
m.print();
}
三、实验输出:
二、程序代码:
三、Fraction类:
class Fraction{
public:
Fraction(int n,int d);
int getNum(){return numerator;}
int getDenom(){return denominator;}
private:
int numerator; //分子
cout<<"请输入横、纵坐标:";
cin>>x>>y;
p2.setxy(x,y);
x=poit::juli(p1,p2);
cout<<"两点间距离为:"<<x<<endl;
return 0;
}
四、
【实验2-2】计算房贷
(见《C++面向对象程序设计习题解析与实验教程》第38页。)
一、
已知银行住房贷款有两种还款方式:等额本息法和等额本金法,其中后一种方法还款方式的计算公式为:
int max(int,int); //声明自定义函数
void main() //主函数
{
int a,b,c;
cout<<"input two number:\n";
cin>>a>>b;
c=max(a,b); //调用max函数,将得到的值赋给C
cout<<"max="<<c<<endl;
}
int max(int x,int y) //定义max函数,函数值为整型,形式参数x,y为整型
(见《C++面向对象程序设计习题解析与实验教程》第39页。)
一、问题描述:
某商场年终举行“积分返券”活动,其规则为:每张会员卡积满1000分返礼券10元,积满3000分返礼券30元,积满5000分返礼券100元,返券的同时,消除礼券对应的积分。编程帮助商场实现返券活动。
二、程序代码:
(1)类的声明:
int i, kind[5]={0,0,0,0,0};
for(i=0;i<=count;i++){
sum+=item[i]->getV();
if(item[i]->getV()==0.1)kind[0]++;
else if(item[i]->getV()==0.5)kind[1]++;
else if(item[i]->getV()==1)kind[2]++;
(见《C++面向对象程序设计习题解析与实验教程》第37页。)
一、
若以屏幕左上角为原点,可将屏幕视为坐标系。从键盘输入任意两点,P1、P2的坐标值,求两点间的距离。
二、
面向对象程序设计的一般方法是:(1)确定问题中涉及到的类;(2)找出每个类的静态特征(数据成员)和动态特征(成员方法),并将其实现。
本题涉及的核心类是屏幕上的点Point类。该类的数据成员显然是横坐标和纵坐标。围绕这两个数据成员进行操作的成员函数应该有:设置横(纵)坐标、读取横(纵)坐标。
}
int max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return(z);
}
四、实验结果
五、实验心得
由于有C语言的基础,之前也一直是Visual C++ 6.0,所以调试出这两个程序并不困难。只是对IDE需要进一步熟悉,才能提高编码的效率。
实验二
【实验2-1】计算屏幕上两点间的距离
三、
(1)Point类的声明及成员函数的实现:
class poit{
double x,y;
public:
poit(double a=0,double b=0):x(a),y(b){}
void setxy(double a,double b){
x=a;y=b;
}
static double juli(const poit &p1,const poit &p2);{//计算距离
void card::reward(){
if(s>=1000 &&s<3000){r=10;s-=1000;}
else if(s>=3000 &&s<5000){r=30;s-=3000;}
else if(s>=5000){r=100;s-=5000;}
}
(3)主函数main()的实现:
void main(){
void setH(int h){hour=h;}
void setM(int m){minute=m;}
void setS(int s){second=s;}
};
(2)缺省构造函数
Time::Time(){
const time_t now=time(NULL);
tm local=*localtime(&now);
if(hour/24){
setTime(0,0,0);
}
}
}
}
(4)主函数main()的实现
void main(){
Time now;
long t1=time(NULL),t2;
now.printU();
while(!-kbhit()){
t2=time(NULL);
if(t2-t1==1){
system("cls");
int f2d=f2.getDenom();
int com=f1n*f2d-f2n*f1d;
if(com>0)
return 1;
else if(com<0)
return -1;
else
return 0;
}
【实验3-2】模拟存钱罐
(见《C++面向对象程序设计习题解析与实验教程》第70页。)
一、问题描述:
else if(item[i]->getV()==5)kind[3]++;
else if(item[i]->getV()==10)kind[4]++;
public:
Money();
double getV() {return value;}
};
(2)Savebox类的声明
class Savebox{
Money * item[100];
static int count;
public:
//Savebox();
~Savebox();
void putinotM(Money * mon);
面向对象设计_C++上机实验报告
指导教师:
学号:
姓名:
班级:
时间:
实验一 熟悉Visual C++开发环境及C++程序的上机过程
一、实验目的
1、了解和使用VC集成开发环境;
2、熟悉VC环境的基本命令和功能键;
3、熟悉常用的功能菜单命令 ;
4、学习使用VC++环境的帮助 ;
5、学习完整的C++程序开发过程 ;
class carຫໍສະໝຸດ {char *id;char *name;
double s,r;
public:
card(char* pid,char* pname,double ps):id(pid),name(pname),s(ps),r(0){}
void reward();
void print();
相关文档
最新文档