西南交大C++ 实验五.doc
西南交通大学戴克俭c 第五章 ppt课件
来输出变量a的值。
(3) 有时使用变量名不够方便或者根本没有变量可 用,这时就需要直接用地址来访问内存单元。 例如,在不同的函数之间传送大量数据时,如 果不是传递变量值,而是只传递变量的地址, 2就020/1会1/29 减小开销,提高效率。如果是动态分配的10
§5.1 指针的概述
1.如何通过地址来操作呢?
在C++中专门用一种数据类型,称为“指 针”数据类型来表示“地址”,指针实际上是 某个内存单元的首地址。一个变量在内存空间 中占用的地址就称为该变量的“指针”。
2.程序中定义的任何变量、数组或函数等, 在编译时都会在内存中分配一个确定的地址单 元,即都有地址。
§5.1 指针的概述
[例5.1.1]阅读如下程序: 源程序清单:
#include<iostream>
using namespace std;
void main( )
{
int a;
int *p;
a=10;
2020/11/29
4
§5.1 指针的概述
cout<<"a的值表示方法1:"<<a<<endl; cout<<"a的值表示方法2:"<<*p<<endl; cout<<"a的地址表示方法1:"<<&a<<endl; cout<<"a的地址表示方法2:"<<p<<endl; } 编程技巧: 在源程序清单中,我们可以看到在操作变 量a时,用了不同的两种方法,一种就是用我 2们020/11很/29 习惯的变量名的方式操作,另一种就是本5
西南交大·计算机实验作业:word,excel,PPT操作手册
项目一:windows操作1、在D盘下新建文件夹“练习”。
2、打开记事本,输入文字。
3、以本人学号为文件名另存。
4、打开写字板输入本机的完整计算机名称。
5、另存。
6、在“练习”文件夹下新建子文件夹“text”,将其设置为共享文件夹。
7、复制文件至“text”文件夹,并更名为“背影”,修改为只读属性。
8、用画图工具画一幅春天的图画,文件名问“20093449-春天.bmp ”保存在“text ”文件夹下面。
9、设置主页,不播放动画和视频,设置网页在管理记录中保持20天。
10、将“练习”文件夹添加压缩文件。
项目二:word项目一、限定性项目1、从网络上下载一个word文件,完成操作。
(1)将标题设置为楷体、二号、红色、空心、加粗、居中,字符间距为加宽。
(2)设置正文第一段首字下沉2行(及正文0米)。
(3)设置正文第二段落左缩进1字符,首行缩进2字符,行距为1.5倍行距。
(4)设置正文第三段段前间距0.5行,段后间距1行,悬挂缩进2字符。
(5)为正文第四段添加蓝色、阴影边框,宽度为1磅(应用于文字)。
(6)将正文第五段添加图案样式为25%,图案颜色为黄色的底纹,应用于段落。
(7)插入页眉,以自己的学号和姓名为页眉内容,设置为右对齐。
(8)插入页脚,在居中位置输入“西南交大”,并添加页码。
(9)设置页面上边距为3厘米,页面纸张大小为“16开”。
(10)在正文第二段之后另起一段,插入一张图片,设为图片大小为高5厘米,宽4厘米,设置图片版式为“四周型”。
项默认。
(12)在文档最后,另起一行,插入艺术字“书法艺术”。
(13)将文档以“20093449-MyWord-1.doc”为名另存。
2、新建一个word文档,完成下列操作。
(1)输入一个数学公式。
(2)输入一个物理公式。
(3)输入y=x2,并将2设置为上标。
(4)根据课程制作课程表。
设置表格行高为0.7厘米,列宽为2.4厘米。
(5)在表格中插入斜线表头,并根据课程表需要,有拆分、合并操作。
(精选)西南交大数电实验报告
实验二、三:quartusⅡ原理图设计1.实验原理图2.实验仿真波形实验四:Verilog描述组合逻辑电路1.一位数值比较器1.1源代码module compare(a_gt,a_eq,a_lt,a,b);input a,b;output a_gt,a_eq,a_lt;assign a_gt=a&~b;assign a_eq=a&b|~a&~b;assign a_lt=~a&b;endmodule1.2代码生成原理图2.七段译码器2.1源代码module decode4_7(codeout,indec);input[3:0] indec;output[6:0] codeout;reg[6:0] codeout;always@(indec)begincase(indec)4'd0:codeout=7'b1111110;4'd1:codeout=7'b0110000;4'd2:codeout=7'b1101101;4'd3:codeout=7'b1111001;4'd4:codeout=7'b0110011;4'd5:codeout=7'b1011011;4'd6:codeout=7'b1011111;4'd7:codeout=7'b1110000;4'd8:codeout=7'b1111111;4'd9:codeout=7'b1111011;default: codeout=7'b1001111;endcaseendendmodule2.2代码生成原理图3.总原理图4.实验仿真波形图实验五:集成触发器的应用1.原理图2.实验仿真波形图实验六:移位寄存器实验1.原理图2.实验仿真波形图实验七:十进制可逆计数器1.十进制可逆计数器1.1 十进制可逆计数器源代码module s2014111909(clk,ud,q,co);input clk,ud;output reg [3:0] q;output co;assign co=((q==9)&&ud)||((q==0)&&(!ud));always @(posedge clk)beginif(ud)beginif(q>8) q<=0;else q<=q+1'd1;endelsebeginif(q==0) q<=4'd9;else q<=q-1'd1;endendendmodule1.2 代码生成原理图1.3 实验仿真波形图2.总原理图3.波形图实验八:脉冲宽度调制(PMW)实验1.实验代码module s1909(clk,h,l,out);input clk;input[3:0] h,l;output reg out;reg[6:0]pwmcnt;reg[11:0]fcnt;wire [6:0] z;reg clk1;assign z=h*10+l;always@(posedge clk)beginif(fcnt>=12'd2499)begin clk1<=~clk1; fcnt<=0;endelsebegin fcnt<=fcnt+1;endendalways@(posedge clk1)beginif(pwmcnt<z)begin out=1;endelse if(pwmcnt>=7'd99)begin pwmcnt=0;out=0;endelse begin out=0;endpwmcnt=pwmcnt+1;endendmodule2.波形图(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。
西南交大操作系统实验总报告
操作系统实验报告指导教师:胡晓鹏实验报告一实验名称:Linux操作系统下的C语言编程实验目的:1.认识Linux系统,熟悉Linux操作系统的基本操作;2.了解vi命令的基本用法,能够使用vi命令对文件进行基础的操作与编辑;3.能够在Linux环境下编写C语言程序,生成.out文件,并成功执行;4.体会Linux环境下编程与Windows环境下编程的异同,加深对Linux操作系统的理解。
实验内容:熟悉Linux环境,编写简单C语言程序。
实验结果:实验结论:在Linux操作系统下的编程环境不同于Windows,编译器进行命令编译。
操作环境简洁,大多以键盘操作。
实验报告二实验名称:基于进程与线程的并发实验目的:1.了解进程与线程工作原理,掌握并发机制,学会编写简单的并发程序。
2.充分理解并掌握基于进程与线程的并发。
实验内容:在Linux环境进行基于进程与线程编写实验程序。
试验核心代码:int main(){ pthread_t tid[N];pid_t pid;pid=fork();if(pid<0){ printf("fail to fork\n");exit(1);}else if(pid==0){ printf("the child process:\n");}else{ sleep(10);printf("the parent process:\n");}void *res;int err[3];err[0]=pthread_create(&tid[0],NULL,fn1,NULL);err[1]=pthread_create(&tid[1],NULL,fn2,NULL); err[2]=pthread_create(&tid[2],NULL,fn3,NULL); int i;for(i=0;i<N;i++){if(err[i]= pthread_join(tid[i],&res)!=0){ printf("cannot join the thread %d\n",i);exit(1);}}return 0;}void *fn1(void *arg){printf("the first thread is done\n");return (void *)1;}void *fn2(void *arg){printf("the second thread is done\n");.\n");}printf("ener some text:");fgets(buffer,BUFSIZ,stdin);strncpy(shared_stuff->some_text,buffer,TEXT_SZ);shared_stuff->written_by_you=1;if(strncmp(buffer,"end",3)==0){running=0;ime=0;}while(i<m){ ime++;if(p[j].pro == proc[i]) ime=1;}}if(exit==0&&(flag<n)) ro=proc[i];p[flag].time=1;flag++;}elseif(exit==0) ime;for(j=1;j<n;j++)if(maxtime<p[j].time){ maxtime=p[j].time;key=j;}p[key].pro=proc[i];p[key].time=1;}ro);}cout<<endl;i++;}}void clock_p(int n,int m,int proc[]){cout<<"------------------------------------------"<<endl; cout<<"这是clock:"<<endl;struct page{int flag;int pro;};struct page *p=(struct page*)malloc(m*sizeof(page));lag=0;int i=0;int next;int j=0; ro==proc[i]){next=0;}}if(next){if(!p[j].flag){p[j].pro=proc[i];p[j].flag=1;next=0;if(mart<n)mart++;}else{p[j].flag=0; next=1;if(mart<n)mart++;}j++;j=j%n;}}ro);cout<<endl;}}void main(){ int pages;cout <<"输入页面数:";cin>>pages;cout<<"输入你的进程个数:";int m;cin>>m;cout<<"输入你的进程ID:";int *proc=new int[m];for(int i=0;i<m;i++)cin>>proc[i];lru_p(pages,m,proc);clock_p(pages,m,proc);}实验结果:实验结论:替换策略是计算机高效工作,充分利用资源,而不同的替换算法都有自己的利弊,不同的场景应充分权衡利弊进行选择。
C程序设计实验五实验报告
同组者
离开实验室时间
实验项目名称
09:50
无
11:30
实验五循环结构程序设计
实验目的:
1、熟悉掌握用while语句、do…while语句和for语句实现循环的方法;
2、掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、地推等);
3、进一步学习调试程序。
实验内容
编程序并上机调试运行。
printf("The quantities of circulation is %f\n",i);
return 0;
}
2输出结果如下:
不同初值对迭代次数有影响。
实验总结:
老师批语:
return 0;
}
②运行结果如下:
在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。
1输入程序如下:
#include<stdio.h>
int main()
{
char c;
int bigletters=0,smallletters=0,space=0,digit=0,other=0;
①输入程序如下:
#include<stdio.h>
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;
x2=x1;
day--;
}
printf("total=%d\n",x1);
return 0;
}
②程序运行结果如下:
在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。
西南交通大学C++上机实验问题详解
实验1教学班级:学生学号:学生:实验日期:2014年3月1日实验地点:(机房)指导教师签名:__________ 实验成绩:___________ 一、实验目的1.熟悉C++程序的集成开发环境;2.学习新建和打开控制台应用程序的方法;3.掌握简单数据运算,以及输入与输出方法。
二、实验任务1.输入一摄氏温度,输出显示所转换的华氏温度。
(提示:摄氏温度=(华氏温度-32)×5/9)2.画出一头威武雄壮的雄狮。
,%%%%%%,%%/\%%%%/\%,%%%\c "" J/%%%%. %%%%/ o o \%%%`%%. %%%% _ |%%`%% `%%%%(__Y__)%// ;%%%%`\-/%%%'(( / `%%%%%%%'\\ .' |\\ / \ | |\\/ ) | |\ /_ | |__(___________)))))))三、实验结果(源程序+ 注释)1.源程序#include<iostream>using namespace std;void main(){double a,b;cout<<"请输入一摄氏温度:"<<endl;cin>>a;b=a*9/5+32;cout<<"转换的华氏温度为:"<<b<<endl;}2.源程序#include<iostream>using namespace std;void main(){cout<<" ,%%%%%% "<<endl;cout<<" ,%%/\%%%%/\% "<<endl; cout<<" ,%%%\c "" J/%%% "<<endl;cout<<"%. %%%%/ o o \%%% "<<endl;cout<<"`%%. %%%% _ |%% "<<endl;cout<<" `%% `%%%%(__Y__)% "<<endl;cout<<" // ;%%%%`\-/%%%' "<<endl;cout<<"(( / `%%%%%%%' "<<endl;cout<<" \\ .' | "<<endl;cout<<" \\ / \ | | "<<endl;cout<<" \\/ ) | | "<<endl;cout<<" \ /_ | |__ "<<endl;cout<<" (___________))))))) "<<endl;}实验2教学班级:学生学号:学生:实验日期:2014年3月1日实验地点:(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.掌握对一般数据的输入和输出格式控制方法;2.掌握对实型数据输出形式的设置和小数位数的控制方法;3.了解数据输入的相关注意事项。
c#实习5报告
publicdelegatevoidBoilHandler(intpargam);
publiceventBoilHandlerBoilEvent;
publicvoidBoilWater()
{
for(inti = 0; i <= 100; i++)
{
temperature = i;
(2)在PC中定义委托类型Run(运行),定义Run型的事件RunEvent(运行事件),定义方法Run_pc(运行PC)产生事件RunEvent;
(3)在主函数中新建Voice类的实例MyVoice和PC类的实例MyPc,并为MyPc的事件RunEvent订阅MyVoice.makevoice动态方法和Show.CanShow静态方法;
请在实验数据记录及分析中写出相应的源程序代码。
实验数据记录及分析(或程序及运行结果)
第一题:
①基本步骤:1.声明提供事件数据的类2.声明事件处理委托3.声明事件生产类
4.在生产类中生命事件5.在生产类中实现产生事件的代码6.声明事件消费类
7.在事件消费类中声明事件处理方法8.在消费类中订阅或取消事件。
(4)调用MyPc.Run_pc;
请在实验数据记录及分析中写出相应的源程序代码。
3.假设有个高档的热水器,我们给它通上电,液晶屏会显示水温;当水温超过95度的时候,扬声器会开始发出语音,告诉你水的温度,提示水已经快烧开了。编写一个程序用来模拟该热水器。
(1)定义Heater(热水器)、Alarm(警报器)、Display(显示器)三个类;
MyPc.RunEvent += MyVoice.makevoice;
西南交通大学C实验报告
计算机程序设计基础(C++)实验报告软件学院二O一O年三月11实验__1__实验报告教学班级: 6 学生学号:学生姓名:指导教师签名:王健金焕实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务.输出下面图形:12.输入一摄氏温度,输出显示所转换的华氏温度。
(提示:摄氏温度=(华氏温度-32)×5/9)三、实验结果(源程序+ 注释)#include<iostream>using namespace std;void main(){cout<<" * "<<endl;cout<<" * * * * "<<endl;cout<<" * * * * "<<endl;cout<<" * "<<endl;}2233#include<iostream>using namespace std;void main(){double a,b;cout<<"请输入一摄氏温度:"<<endl;cin>>a;b=a*9/5+32;cout<<"对应的华氏温度是:"<<b<<endl;}4 455实验__2__实验报告一、实验目的1.掌握对一般数据的输入和输出格式控制方法;2.掌握对实型数据输出形式的设置和小数位数的控制方法;3.了解数据输入的相关注意事项。
二、实验任务1. 输入一台计算机的编号和该计算机的价格,并输出这些信息。
(如编号为10987654321,价格为5 998.00元,注意此处计算机的编号作为一个整数而言超出了int 所定义的变量的存储范围,因此只能用double 型变量来存储,但输出时要求看见的是整数形式的编号)2. 输入三个同学的学号,计算机和英语课程的考试成绩,并输出这些信息。
西安交大C++5
#include<iostream> //没有动态存储分配的求解 using namespace std; void print(double a[],int n) { if (a[0]>0) cout<<a[0]; if (a[0]<0) cout<<"("<<a[0]<<")"; for (int i=1;i<=n;i++) { if (a[i]>0) cout<<"+"<<a[i]<<"x^"<<i; if (a[i]<0) cout<<"+("<<a[i]<<")"<<"x^"<<i; } cout<<endl; } void fun1(double a[],int k,int n) { for(int j=1;j<=k;j++) for (int i=1;i<=n;i++) a[i-1]=a[i]*i; n--; } double fun(double a[],double x,int n) { double sum=0; for(int i=n;i>0;i--) sum=(sum+a[i])*x; sum=sum+a[0]; return sum; } int main() { double a[100],a1[100]; double x; int n,k; cout<<“请输入多项式的次数(不能超过99):"; cin>>n; cout<<"请依次输入"<<n<<"次多项式的系数(”<<n+1<<“个):"<<endl; for (int i=0;i<=n;i++) { cin>>a[i]; a1[i]=a[i]; } cout<<"输入的多项式为:"; print(a,n); cout<<"请输入求导的阶数:"; cin>>k; if (k>=n) cout<<"多项式的"<<k<<"阶导数的表达式为:"<<endl; else { fun1(a1,k,n); cout<<"多项式的"<<k<<"阶导数的表达式为:"; print(a1,n-k); } cout<<"请输入x:"<<endl; cin>>x; cout<<"多项式的值为:"<<fun(a,x,n)<<endl; if(k>=n) cout<<"多项式的"<<k<<"阶导数的值为:"<<endl; else cout<<"多项式的"<<k<<"阶导数的值为:"<<fun(a1,x,n-k)<<endl; return 0; }//如何用动态存储分配方法求解?
西南交大c实验报告
西南交大c实验报告
《西南交大C实验报告》
在西南交通大学C实验室进行了一项关于C语言编程的实验,旨在帮助学生掌握C语言的基本语法和编程技巧,提高他们的编程能力。
实验内容包括基本的C语言程序设计、数据类型、运算符、控制结构、函数、数组、指针等内容。
在实验过程中,学生们通过实际操作,掌握了C语言的基本语法和编程技巧。
他们学会了如何编写简单的C语言程序,如何使用不同的数据类型和运算符进行计算,如何使用控制结构进行流程控制,如何定义和调用函数,如何使用数组和指针等。
通过实验,学生们不仅掌握了C语言的基本知识,还培养了他们的动手能力和解决问题的能力。
他们在实验中遇到了各种问题,通过自己的努力和老师的指导,逐渐解决了这些问题,取得了丰硕的成果。
通过这次实验,学生们对C语言有了更深入的了解,提高了他们的编程能力,为以后的学习和工作打下了坚实的基础。
同时,实验也让学生们感受到了编程的乐趣,激发了他们对计算机编程的兴趣,为他们的未来发展打开了一扇新的大门。
在未来的学习和工作中,学生们将继续努力,不断提高自己的编程能力,为科技创新和社会发展做出更大的贡献。
西南交通大学将继续为学生提供更多的实践机会和发展平台,帮助他们实现自己的梦想,成为优秀的计算机专业人才。
西南交大c++实验五.doc
实验__5__实验报告教学班级:______ 学生学号:________ 学生姓名:___________实验日期:__2018/4/17_________ 实验地点:_指导教师签名:__________ 实验成绩:___________一、实验目的1.理解“处理某一或某些操作需要被有条件地重复执行”的编程思路和方法;2.掌握循环结构的程序设计,以及while、do-while和for循环语句的使用方法。
二、实验任务1.一只猴子摘了N个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的一半又多吃了一个,到第十天的时候发现还有一个。
2. 编程实现十进制整数和八进制整数之间的转换(即将10进制数转换为8进制数,或将8进制数转换为10进制数)。
3.计算由键盘输入的两个数的最大公约数和最小公倍数。
4.计算正弦的近似值。
sin(x)=x-x^3/3!+x^5/5!-x^7/7!+……5.由键盘输入若干职工的工资收入(以负数结束),输出每个职工的工资收入、计算并输出每个职工的缴税额,统计并输出职工总人数和总缴税额。
三、实验结果(源程序+ 注释)1.#include<iostream>using namespace std;void main(){cout<<"学号:****** 姓名:***"<<endl;int i,s,sum;s=1;i=9;sum=1;while (i>=1){ s=(s+1)*2;i=i-1;sum=sum+s;}cout<<"总共有"<<sum<<"个桃子"<<endl;}2.include<iostream>using namespace std;void main(){cout<<"学号:****** 姓名:***"<<endl;int number;double income,tax,sumtax;number=1,sumtax=0;cout<<"请输入第"<<number<<"个职工的工资收入:"<<endl;cin>>income;do { if(income<=3500)tax=0;else if(income<=5000)tax=(income-3500)*;else if(income<=8000)tax=(income-3500)*;else if(income<=12500)tax=(income-3500)*;sumtax=sumtax+tax;income=income-tax;cout<<"第"<<number<<"个职工的工资收入为"<<income<<"元"<<endl;cout<<"第"<<number<<"个职工的缴税额为"<<tax<<"元"<<endl;number=number+1;cout<<"请输入第"<<number<<"个职工的工资收入:"<<endl;cin>>income;}while(income>=0);number=number-1;cout<<"职工总人数为"<<number<<"人"<<endl;cout<<"总缴税额为"<<sumtax<<"元"<<endl; }。
西南交大大学计算机基础实验报告
大学计算机基础实验报告教学班级:_______ 学号:__________ 姓名:___________课程教师:______________ 实验辅导教师:_____________西南交通大学2011年9月实验一微机基本操作与上网冲浪教学班级:_______ 学号:__________ 姓名:___________实验日期:___________ 实验地点:_________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.掌握计算机系统的启动与关闭;2.掌握常用输入设备、输出设备、存储设备的用法。
3.掌握搜索引擎的使用;4.掌握下载与解压缩的方法;5.掌握软件安装的方法。
二、实验任务1.启动与关闭计算机。
2.利用“键盘盲打练习”软件进行键盘的指法练习。
3.硬盘信息查询。
4.利用搜索引擎搜索成都商报,阅读当日报纸新闻。
5.利用下载工具FlashGet在网上下载“NetAnts”软件压缩包,利用压缩工具winRar解压缩该包,并安装该软件。
三、实验检查内容[ ] 1.能否热启动计算机[ ] 2.能否下载打字软件(辅导老师可协助将软件下载到教师机上,学生通过网上邻居获取)[ ] 3.能否安装打字软件[ ] 4.打字速度 /分钟[ ] 5.查看C区总容量[ ] 6.查看磁盘整理程序对C区的分析报告,看是否需要整理[ ] 7.写出当日成都商报的头版头条标题[ ] 8.是否将NetAnts软件安装在D区实验二文件资源的管理与操作教学班级:_______ 学号:__________ 姓名:___________实验日期:___________ 实验地点:_________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.掌握文件的复制、移动、删除;2.掌握文件的重命名、属性的设置;3.掌握文件的查找;4.掌握文件夹选项操作。
【最新】西南交大,数字电路,实验报告-word范文 (8页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==西南交大,数字电路,实验报告篇一:数字电子技术实验报告数字电子技术实验报告姓名:尚朝武学号:201X0123400044 实验时间:201X-12-24实验一(一) 1、实验内容:(1用静态法测试74LS00与非门电路的逻辑功能 2、实验原理图如图1.113、实验步骤:1) 用万用表测量双路跟踪稳压电源中的+5V电源电压; 2) 检查无误后引用通用接插板;3) 在芯片盒中找到74LS00芯片并插入通用接插板上; 4) 测试与非门的逻辑功能A. 按图1.1接线,检查接线无误后通电;;B. 设置输入变量A、B的高(H)、低(L)电平,并分别测量与非门的输出电压U;(U>3.6V时,则Y=H(1);反之,Y=L(0))。
5)用万用表测量输出电压,并将结果填入表1.1.1中 4、实验结果见表1.1.1表1.1.1(二 1、实验内容用动态测试法验证图(a)、(b)、(c)的输入输出波形。
2、实验原理图图图图(表)d74ls86管脚图和引脚图及真值表3、实验步骤1)利用实验一——(一)的双路跟踪稳压电源中的+5V电源电压; 2)检查无误后引用通用接插板;3)在芯片盒中分别找到74LS86、74LS60芯片并分别插入通用接插板上; 4)分次按图a、b、c、d接线,检查接线无误后通电;设置输入变量A的信号为100kHz 5)分别记下数字显示器显示的波形。
4、实验结果见下图图a的输入(图上)、输出(图下)波形图b的输入(图上)、输出(图下)波形三)图c的输入(图上)、输出(图下)波形1、实验内容:(1用静态法测试74LS139静态译码器的逻辑功能 2、实验原理图如图A、B 3、实验步骤:1) 利用实验一——(一)的双路跟踪稳压电源中的+5V电源电压; 2) 检查无误后引用通用接插板;3) 在芯片盒中找到74LS139芯片并插入通用接插板上; 4) 测试74LS139译码器的逻辑功能a) 按图1.1接线,检查接线无误后通电;;b) 设置输入变量A、B及E的高(H)、低(L)电平,并分别测量74LS139的输出电压U;(U>3.6V时,则Y=H(1);反之,Y=L(0)); 5)用万用表测量输出电压,并将结果填入表1.2中 4、实验结果见表1.2图A 74LS139的管脚图篇二:201X-201X西南交大数字电路第1次作业(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。
西南交通大学计算机组成原理课程设计报告材料
《计算机组成实验 C》课程设计适用专业:电子信息类专业专业:软件工程班级:软件一班学号:姓名:某某某指导教师:陈红梅实验学期:2014-2015 第 1 学期西南交通大学信息科学与技术学院目录简化计算机系统的设计 (2)一、实验目的 (2)二.、实验内容 (2)三.、预习要求 (2)四、实验报告 (2)1. BLOCK图 (3)2. 程序设计(纸质的版本我用手抄) (4)3. 仿真波形图 (11)4、仿真中遇到的问题: (14)五、实验感想 (15)简化计算机系统的设计一、实验目的通过学习简单的指令系统及其各指令的操作流程,用VHDL 语言实现简单的处理器模块,并通过调用存储器模块,将处理器模块和存储器模块连接形成简化的计算机系统。
二.、实验内容1. 用VHDL语言实现简单的处理器模块。
2. 调用存储器模块设计64×8的存储器模块。
3. 将简单的处理器模块和存储器模块连接形成简单的计算机系统。
4. 将指令序列存入存储器,然后分析指令执行流程。
三.、预习要求1、学习简单指令集。
2、学习各指令的操作流程。
四、实验报告1. BLOCK图2. 程序设计(纸质的版本我用手抄)CPU的设计:LIBRARY ieee;USE ieee.std_logic_1164.ALL;PACKAGE mypack ISCONSTANT idle : std_logic_vector(3 DOWNTO 0) :="0000";CONSTANT load : std_logic_vector(3 DOWNTO 0) :="0001";CONSTANT move : std_logic_vector(3 DOWNTO 0) :="0010";CONSTANT addx : std_logic_vector(3 DOWNTO 0) :="0011";CONSTANT subp : std_logic_vector(3 DOWNTO 0) :="0100";CONSTANT andp : std_logic_vector(3 DOWNTO 0) :="0101";CONSTANT orp : std_logic_vector(3 DOWNTO 0) :="0110";CONSTANT xorp : std_logic_vector(3 DOWNTO 0) :="0111";CONSTANT shrp : std_logic_vector(3 DOWNTO 0) :="1000";CONSTANT shlp : std_logic_vector(3 DOWNTO 0) :="1001";CONSTANT swap : std_logic_vector(3 DOWNTO 0) :="1010";CONSTANT jmp : std_logic_vector(3 DOWNTO 0) :="1011";CONSTANT jz : std_logic_vector(3 DOWNTO 0) :="1100";CONSTANT read : std_logic_vector(3 DOWNTO 0) :="1101";CONSTANT write : std_logic_vector(3 DOWNTO 0) :="1110";CONSTANT stop : std_logic_vector(3 DOWNTO 0) :="1111";END mypack;LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;USE WORK.mypack.ALL;------------------------cpu实体声明--------------------------------- ENTITY cpu ISPORT(reset : IN std_logic; --清零信号低有效clock : IN std_logic; --时钟信号Write_Read: OUT std_logic; --读写信号,'1'为写 M_address: OUT std_logic_vector(11 DOWNTO 0); --地址线M_data_in: IN std_logic_vector(7 DOWNTO 0); --数据输入线M_data_out: OUT std_logic_vector(7 DOWNTO 0); --数据输出线 overflow: OUT std_logic); --溢出标志END cpu;------------------------cpuRTL级行为描述-------------------------------- ARCHITECTURE RTL of cpu ISSIGNAL IR: std_logic_vector(15 DOWNTO 0); --指令寄存器 SIGNAL MDR: std_logic_vector(7 DOWNTO 0); --数据寄存器 SIGNAL MAR: std_logic_vector(11 DOWNTO 0); --地址寄存器 SIGNAL status: integer RANGE 0 TO 6; --状态寄存器BEGINstatus_change: PROCESS(reset, clock, status )BEGINIF reset = '0' THEN status <= 0 ;ELSIF clock'EVENT AND clock = '0' THENCASE status ISWHEN 0 =>status <= 1;WHEN 1 =>IF IR(15 DOWNTO 12) = Stop THENstatus <= 1;ELSEstatus <= 2;END IF;WHEN 2 =>CASE IR(15 DOWNTO 12) ISWHEN Read|Write|Jmp|Jz|Swap =>status <= 3;WHEN OTHERS =>status <= 0;END CASE;WHEN 3 =>IF IR(15 DOWNTO 12)= Swap THENstatus <= 0;ELSEstatus <= 4;END IF;WHEN 4 =>status <= 5;WHEN 5 =>CASE IR(15 DOWNTO 12) ISWHEN Read|Write =>status <= 6;WHEN OTHERS =>status <= 0;END CASE;WHEN OTHERS =>status <= 0;END CASE;ELSENULL;END IF;END PROCESS status_change;seq: PROCESS(reset,clock)VARIABLE PC:std_logic_vector(11 DOWNTO 0); --程序计数器 VARIABLE R0,R1,R2,R3: std_logic_vector(7 DOWNTO 0); --通用寄存器VARIABLE A: std_logic_vector(7 DOWNTO 0); --临时寄存器VARIABLE temp: std_logic_vector(8 DOWNTO 0); --临时变量BEGINIF(reset='0') THEN -- 清零IR <= (OTHERS=>'0');PC := (OTHERS=>'0');R0 := (OTHERS=>'0');R1 := (OTHERS=>'0');R2 := (OTHERS=>'0');R3 := (OTHERS=>'0');A := (OTHERS=>'0');MAR <= (OTHERS=>'0');MDR <= (OTHERS=>'0');ELSIF(clock'event AND clock='1') THENoverflow <= '0';CASE status ISWHEN 0=> --状态0IR <= M_data_in & "00000000"; --取指令PC := PC+1; --程序计数器加1WHEN 1=> --状态1IF (IR(15 DOWNTO 12) /= stop) THENMAR <= PC;END IF;CASE IR(15 DOWNTO 12) ISWHEN load =>R0:= "0000" & IR(11 DOWNTO 8);WHEN shlp|shrp =>CASE IR(11 DOWNTO 10) IS -- Rx to AWHEN "00"=> A:= R0;WHEN "01"=> A:= R1;WHEN "10"=> A:= R2;WHEN OTHERS => A:= R3;END CASE;WHEN Move|addx|subp|andp|orp|xorp|Swap=> CASE IR(9 DOWNTO 8) IS -- Ry to AWHEN "00"=> A:=R0;WHEN "01"=> A:=R1;WHEN "10"=> A:=R2;WHEN OTHERS=> A:=R3;END CASE;WHEN OTHERS => NULL;END CASE;WHEN 2=> --状态2CASE IR(15 DOWNTO 12) ISWHEN addx => -- Rx:= Rx + A;CASE IR(11 DOWNTO 10) ISWHEN "00"=>temp := (R0(7) & R0(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));R0:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN "01"=>temp :=(R1(7) & R1(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));R1:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN "10"=>temp :=(R2(7) & R2(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));R2:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN OTHERS=>temp :=(R3(7) & R3(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));R3:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);END CASE;WHEN subp => -- Rx:= Rx - A;CASE IR(11 DOWNTO 10) ISWHEN "00"=>temp :=(R0(7) & R0(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;R0:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN "01"=>temp :=(R1(7) & R1(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;R1:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);WHEN "10"=>temp :=(R2(7) & R2(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;R2:=temp(7 DOWNTO 0);overflow <= temp(8) xor temp(7);WHEN OTHERS=>temp :=(R3(7) & R3(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;R3:=temp(7 DOWNTO 0);overflow <= temp(8) XOR temp(7);END CASE;WHEN move =>CASE IR(11 DOWNTO 10) ISWHEN "00"=> R0:= A;WHEN "01"=> R1:= A;WHEN "10"=> R2:= A;WHEN OTHERS=> R3:= A;END CASE;WHEN shrp =>CASE IR(11 DOWNTO 10) ISWHEN "00"=> R0:= '0' & A( 7 DOWNTO 1 );WHEN "01"=> R1:= '0' & A( 7 DOWNTO 1 );WHEN "10"=> R2:= '0' & A( 7 DOWNTO 1 );WHEN OTHERS=> R3:= '0' & A( 7 DOWNTO 1 );END CASE;WHEN shlp =>CASE IR(11 DOWNTO 10) ISWHEN "00"=> R0:= A( 6 DOWNTO 0 ) & '0';WHEN "01"=> R1:= A( 6 DOWNTO 0 ) & '0';WHEN "10"=> R2:= A( 6 DOWNTO 0 ) & '0';WHEN OTHERS=> R3:= A( 6 DOWNTO 0 ) & '0';END CASE;WHEN andp => --Rx:= Rx AND A; CASE IR(11 DOWNTO 10) ISWHEN "00"=> R0:=R0 AND A;WHEN "01"=> R1:=R1 AND A;WHEN "10"=> R2:=R2 AND A;WHEN OTHERS=> R3:=R3 AND A;END CASE;WHEN orp => --Rx:= Rx OR A;CASE IR(11 DOWNTO 10) ISWHEN "00"=> R0:=R0 OR A;WHEN "01"=> R1:=R1 OR A;WHEN "10"=> R2:=R2 OR A;WHEN OTHERS=> R3:=R3 OR A;END CASE;WHEN xorp => --Rx:= Rx XOR A; CASE IR(11 DOWNTO 10) ISWHEN "00"=> R0:=R0 XOR A;WHEN "01"=> R1:=R1 XOR A;WHEN "10"=> R2:=R2 XOR A;WHEN OTHERS=> R3:=R3 XOR A;END CASE;WHEN Swap => --Swap: Rx to Ry; CASE IR(11 DOWNTO 8) ISWHEN "0100"=> R0:=R1;WHEN "1000"=> R0:=R2;WHEN "1100"=> R0:=R3;WHEN "0001"=> R1:=R0;WHEN "1001"=> R1:=R2;WHEN "1101"=> R1:=R3;WHEN "0010"=> R2:=R0;WHEN "0110"=> R2:=R1;WHEN "1110"=> R2:=R3;WHEN "0111"=> R3:=R1;WHEN "1011"=> R3:=R2;WHEN "0011"=> R3:=R0;WHEN OTHERS=> NULL;END CASE;WHEN OTHERS => NULL;END CASE;WHEN 3=> --状态3CASE IR(15 DOWNTO 12) ISWHEN Swap=> -- Swap: A to RxCASE IR(11 DOWNTO 10) ISWHEN "00"=> R0:=A;WHEN "01"=> R1:=A;WHEN "10"=> R2:=A;WHEN OTHERS=> R3:=A;END CASE;WHEN jmp|Jz|Read|Write =>IR(7 DOWNTO 0)<= M_data_in; -- 取双字节指令的后半部分 PC := PC+1;WHEN OTHERS => NULL;END CASE;WHEN 4=> --状态4CASE IR(15 DOWNTO 12) ISWHEN jmp => -- 无条件转移指令PC := IR(11 DOWNTO 0);MAR <= IR(11 DOWNTO 0);WHEN Jz => -- 条件转移指令IF(R0="00000000") thenPC := IR(11 DOWNTO 0);MAR <= IR(11 DOWNTO 0);elseMAR <= PC;END IF;WHEN Read =>MAR <= IR(11 DOWNTO 0);WHEN Write =>MAR <= IR(11 DOWNTO 0);MDR <= R0;WHEN OTHERS => NULL;END CASE;WHEN 5 => --状态5MAR <= PC;WHEN 6 => --状态6CASE IR(15 DOWNTO 12) ISWHEN Read => R0 := M_data_in;WHEN OTHERS=> NULL;END CASE;END CASE;END IF;END process seq;comb: PROCESS (reset, status)BEGINIF (reset = '1' AND status = 5 AND IR(15 DOWNTO 12)= Write ) THEN Write_Read <= '1';ELSEWrite_Read <= '0';END IF;END PROCESS comb;M_address <= MAR;M_data_out <= MDR;END RTL;3. 仿真波形图3.1总体的仿真波形图1、我们可以看到CPU有6种工作模式,并且在不同的工作模式下实现了不同的功能。
【2018-2019】C ++ 实验报告5-推荐word版 (10页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==C ++ 实验报告5西安交通大学实验报告课程计算机程序设计实验名称C++集成开发环境的使用第 1 页共 10 页系别_______电气学院___________ 实验日期 201X 年3 月 24 日专业班级____钱学森02____组别_____________ 实验报告日期 201X 年 3 月24日姓名____杨帆_______学号__201X045052报告退发 ( 订正、重做 ) 同组人_________________________________ 教师审批签字一. 实验目的二. (1)掌握集成开发环境的使用方法;三. (2)了解C++程序的基本特点。
二.实验内容(-)实验题目一:编写字符串反转函数mystrrev( ).1.要点分析略2.程序源代码#include <iostream>#include <string>#include <cstring>using namespace std;void mystrrev(char string[]){int i,n;char p;n=strlen(string);for (i=0; i<=int(n/2-1); i++){p=string[i]; string[i]=string[n-1-i]; }} string[n-1-i]=p;main (){char s[20];int i,n;cout<<"请输入一个字符串: ";cin.get(s,20);n=strlen(s);cout<<"改变之前的字符串为:";for (i=0; i<=n-1; i++)cout<<s[i];mystrrev(s);cout<<endl<<"改变之后的字符串为:"; for (i=0; i<=n-1; i++)cout<<s[i];cout<<endl;return 0;}3.实验结果(二)实验题目二:编写一组求数组中最大最小元素的函数,同时写出主函数来检验之。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验__5__实验报告
教学班级:______ 学生学号:________ 学生姓名:___________
实验日期:__2018/4/17_________ 实验地点:_
指导教师签名:__________ 实验成绩:___________
一、实验目的
1.理解“处理某一或某些操作需要被有条件地重复执行”的编程思路和方法;
2.掌握循环结构的程序设计,以及while、do-while和for循环语句的使用方法。
二、实验任务
1.一只猴子摘了N个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的一半又多吃了一个,到第十天的时候发现还有一个。
2. 编程实现十进制整数和八进制整数之间的转换(即将10进制数转换为8进制数,或将8进制数转换为10进制数)。
3.计算由键盘输入的两个数的最大公约数和最小公倍数。
4.计算正弦的近似值。
sin(x)=x-x^3/3!+x^5/5!-x^7/7!+……
5.由键盘输入若干职工的工资收入(以负数结束),输出每个职工的工资收入、计算并输出每个职工的缴税额,统计并输出职工总人数和总缴税额。
三、实验结果(源程序+ 注释)
1.#include<iostream>
using namespace std;
void main()
{
cout<<"学号:****** 姓名:***"<<endl;
int i,s,sum;
s=1;
i=9;
sum=1;
while (i>=1)
{s=(s+1)*2;
i=i-1;
sum=sum+s;}
cout<<"总共有"<<sum<<"个桃子"<<endl;
}
2.//编程实现十进制整数和八进制整数之间的转换#include<iostream>
using namespace std;
void main()
{
cout<<"学号:****** 姓名:***"<<endl;
int i,x,n,j;
cout<<"请输入一个十进制整数:"<<endl;
cin>>i;
x=0,n=0;
while (i>0)
{j=i%8;
i=i/8;
x=x+j*pow(10.0,n);
n=n+1;}
cout<<"该十进制数对应的八进制数为:"<<x<<endl; cout<<"请输入一个八进制整数:"<<endl;
cin>>x;
i=0,n=0;
while(x>0)
{j=x%10;
x=x/10;
i=i+j*pow(8.0,n);
n=n+1;}
cout<<"该八进制数对应的十进制数为:"<<i<<endl; }
3. // 计算由键盘输入的两个数的最大公约数和最小公倍数。
#include<iostream>
using namespace std;
void main()
{
cout<<"学号:****** 姓名:******"<<endl;
int m,n,q,a,b;
cout<<"输入两个数:";
cin>>m>>n;
if(m>n){a=m;b=n;}
else {a=n;b=m;}
do {q=a%b;
a=b;
b=q;}
while(q!=0);
cout<<"\n"<<m<<"与"<<n<<"的最大公约数是"<<a<<endl;
cout<<m<<"与"<<n<<"的最小公倍数是"<<m*n/a<<endl; }
4.// 计算正弦的近似值
#include<iostream>
using namespace std;
void main()
{
cout<<"学号:****** 姓名:***"<<endl;
int n;
float x,y,sum,a,b;
char s;
cout<<"请输入角度:"<<endl;
cin>>y;
x=y*3.14/180;
s=1;
sum=0;
a=x;
b=1;
n=1;
do{s um=sum+s*a/b;
n=n+2;
a=a*x*x;
b=b*n*(n-1);
s=-1*s;}while(a/b<1.0e-7);
cout<<"sin"<<y<<"="<<sum<<endl;
}
5.#include<iostream>
using namespace std;
void main()
{
cout<<"学号:****** 姓名:***"<<endl;
int number;
double income,tax,sumtax;
number=1,sumtax=0;
cout<<"请输入第"<<number<<"个职工的工资收入:"<<endl;
cin>>income;
do {if(income<=3500)
tax=0;
else if(income<=5000)
tax=(income-3500)*0.03;
else if(income<=8000)
tax=(income-3500)*0.1;
else if(income<=12500)
tax=(income-3500)*0.2;
sumtax=sumtax+tax;
income=income-tax;
cout<<"第"<<number<<"个职工的工资收入为"<<income<<"元"<<endl;
cout<<"第"<<number<<"个职工的缴税额为"<<tax<<"元"<<endl;
number=number+1;
cout<<"请输入第"<<number<<"个职工的工资收入:"<<endl;
cin>>income;}
while(income>=0);
number=number-1;
cout<<"职工总人数为"<<number<<"人"<<endl;
cout<<"总缴税额为"<<sumtax<<"元"<<endl;
}。