当前位置:文档之家› 语言课程设计实验报告

语言课程设计实验报告

语言课程设计实验报告
语言课程设计实验报告

实验报告

学生姓名:

学生学号:

实验起至日期:

指导教师:

科学计算器实验报告内容

一.实验目的与要求

1、要求实现具有加,减,乘,除基本四则运算功能

2、要求能包含操作数(整形、浮点数)、操作符、优先级,实现基于括号的优先级控制

3、设计基于MFC框架的,具有友好界面的Windows应用程序

4、科学计算器要求具有科学函数计算功能,主要包括三角函数,根号等,如算式有错误提示和处理算式越复杂,得分越高。

二.设计思路(包括算法基本流程设计,程序接口设计)

1、获取用户通过键盘或者界面输入的表达式,记为总表达式

2、将总表达式中的所有常数符号代换为相应的字数字串

3、判断总表达式中括号是否匹配,如不匹配,反馈信息并则退出,否则进入步骤4)

4、找到处在总表达式最内部的括号对(按从里到外,从左到右的顺序),提取括号内的表达式,记为子表达式

5、计算子表达式中的所有单目运算符,结果正确则将计算结果转换为字符串放回子表达式,否则输出错误信息并退出

6、计算子表达式中的所有双目运算符,结果正确则将计算结果转换为字符串放回子表达式,否则输出错误信息并退出

7、将子表达式的计算结果转换为字符串插入总表达式

8、判断当前总表达式是否为纯数值,如果不是纯数值则返回步骤4),否则将结果转换为字符串

9、输出字符串结果

另:本计算器可以算多个括号,但是不能算括号里嵌套括号的算式。在开方sqrt,倒数1/x和三角函数sin,cos,tan,cot计算时,如果需要计算一个算式的这些值,要加括号来实现。除了AC清除以外,还加了一个Backspace来删除前面一个输入的值,方便操作。

三.实验中遇到的问题现象与具体解决步骤

问题1:不知道如何实现小数点的功能

解决方法:在拆开运算符和操作数的时候,增加一个变量,就可以同时完成进位和小数,网上可以搜到很多类似的代码,可以借鉴。

问题2:原本想以自然的方式来实现开方,三角函数的功能,就是按这些按钮,然后就可以读入跟在他后面的数字,写好代码以后没有反应。

解决方法:参考windows自带的计算器,发现要先输入要计算的算式或者数字,再点函数的按键,传给这些函数参数,就修改了代码,实现变的容易多了。

问题3:一开始接触MFC计算器,根本无从下手,没有任何头绪,很多借来的书也看不懂。

解决方法:先建好界面,然后逐个按钮添加代码,有些代码通过看书上的例子以及上网搜索都可以得到。然后再与同学一起交流讨论,逐渐理清自己的思路,才开始做得比较顺利。

四.基本界面与操作方法说明

1.数字,小数点,括号,+,-,*,/,按键只要按下,就会直接显示在编辑框里,按下等于,就可在编辑框里得到的结果。

2.Backspace用来删除输入错误的单个字符,AC清空整个对话框为0。

3.计算开方,三角函数、倒数的时候,先输入要进行开方,自然对数,三角函数的数值或者算式(算式前后一定要加括号),然后再按相应按键,不需要按等于,即可得到结果,如果后面还有要算的式子,可以在得到结果后继续输入。

4.该计算器还实现了报错功能,比如输入式子不正确,会弹出提示报错消息框,还考虑到了除数为0等情况。

5.在做完后为了独特美观,还自己做了图标。

五.参考书目

1、《Visual C++.NET编程实例》苏峰黄金双汤蕾编著清华大学出版社

2、《C++技术内幕第四版》潘爱民译清华大学出版社

3、https://www.doczj.com/doc/b58846584.html,

4、微软计算器

模板实现矩阵基本运算实验报告内容

一.实验目的与要求

1.实现矩阵的“加”、“减”、“乘”、“转置”;

2.内存动态分配并用随机数填充;

3.注意“加”、“减”、“乘”要进行条件的判断;

4.进行int,double的选择;

二.设计思路(包括算法基本流程设计,程序接口设计)

1、用户输入行列数,并进行类型选择。

2、随机生成矩阵。

3、选择操作类型,转置只需要一个矩阵即可。其他操作需再生成一个矩阵。

4、如果矩阵不能进行运算(行列数不等等情况),利用try-catch语句弹出“Error!”的提示消息框。

三.实验中遇到的问题现象与具体解决步骤

问题1:没有想到合适的变量保存矩阵

解决方法:类模板成员变量中声明T **matrix,即指向指针的指针,可以动态的保存矩阵。

问题2:用随机数产生矩阵的时候用rand(),发现每次运行程序产生的矩阵是相同的,就是产生的伪随机数。

解决方法:利用srand()函数,向里面传参数time(0),得到真正的随机矩阵。

问题3:不知道如何通过一个按钮产生矩阵到edit框里。

解决方法:直接在操作符的那些按钮上加代码,使得点击之后直接在result那个框里显示,减少麻烦。

问题4:矩阵输出的时候不是按行和列,只是一长串空格间隔的数字。

解决方法:老师上课演示时讲到“\r\n”语句可以换行,并且把edit框的属性需要设置成多行显示。

问题5:后来发现最简单的可以用类模板实现一系列加减乘等操作,但当时矩阵已经做完,于是又做了一个简单的,体验一下类模板。发现确实用类模板比较方便

解决方法:先建立一个矩阵的模板类,里面重载运算符+,-,*,实现矩阵的加减乘基本运算并判断加减乘的条件把自己定义的模板类Myjz.h加到juzhengDlg中,就可以运用这个模板类。以下以加法为例展示一下

四.基本界面与操作方法说明

该程序共分成三个功能框,矩阵1,矩阵2和最后的运算结果。

在矩阵1下面的框内输入行数row和列数column以及点击要产生的矩阵类型,再点击“随机矩阵生成”即可,矩阵2操作方法类似。

要进行的运算都在中间的功能框中,计算加减乘时,输入矩阵1和2,然后点

要进行的运算即可在上面的编辑框中得到结果。转置只针对矩阵1。计算转置只需点击TransPose即可获得。

五.参考书目

1、《Visual C++.NET编程实例》苏峰黄金双汤蕾编著清华大学出版社

2、《Visual C++.NET实例入门》彭海河李忠琪姜志辉编著海洋出版社

3、https://www.doczj.com/doc/b58846584.html,

六.关键代码

#if !defined(AFX_MYJZ_H__7843512B_344B_464F_8ED3_1F409F25035E__INCLUDED_)

#define AFX_MYJZ_H__7843512B_344B_464F_8ED3_1F409F25035E__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

template

class CMyjz

{

public:

CMyjz();

virtual ~CMyjz();

void set(const int,const int);

void myrand();

CMyjz plus(const CMyjz &);

CMyjz minus(const CMyjz &);

CMyjz mul(const CMyjz &);

CString print();

private:

int row;

int col;

T **p;

};

#endif // !defined(AFX_MYJZ_H__7843512B_344B_464F_8ED3_1F409F25035E__INCLUDED_)

职工信息管理系统实验报告内容

一.实验目的与要求

该系统在磁盘上存贮某单位所有职工的基本信息,对于每一个职工存贮:职工编号、姓名、性别、出生年月、职称、最后学历,工资和婚否。

系统功能要求如下:

1.创建存贮该单位职工信息的存贮系统。(第一次输入职工基本信息时);

2.增加职工信息,增加新职工时辖人新职工的基本信息;

3.删除某职工的基本信息。(如,死亡或离职);

4.修改某职工(指定职工编号)的某些信息(如,加工资、获得新学位、晋升职称、结婚或离婚)。

5. 可以输出符合某种特征的职工信息列表:

*全体职工信息列表;

*某职称的职工信息列表;

*某年月以后出生的职工信息列表;

*某年月以前出生的职工信息列表;

*未婚职工信息列表。

二.设计思路(包括算法基本流程设计,程序接口设计)

1.设计一个CStaff的员工类,包含变量工编号、姓名、性别、出生年月、职称、最后学历,工资和婚姻状况,派生自CObject类,并实现序列化操作。

2.

3.设计七个对话框,并相应的建七个类,CAddstaffDlg,CChangeDlg,CDeletestaffDlg,

C SelectzhichengDlg,CHunyinchaDlg,CDateDlg,CDate2Dlg分别实现添加员工,修改职工信息,删除职工信息,根据职称查找职工信息,根据婚姻状况查找职工信息,根据日期分别看该日期前以及该日期后的功能。

3.在主菜单“操作”中的添加,修改,删除均为对文档数据的更改,所以三个函数都写在CP09013309_6Doc这个类里。在P0*******_6Doc这个类中,用到了MFC集合类,并定义了一个CStaff类型的指针,十分方便的对存入的数据进行添加,修改,删除的操作。

4.所以与显示相关的,指定编号员工工资信息输出,和其他查询的所有信息的输出,都写在CP09013309_6View里。定义存储信息的链表数据结构,始终显示各项信息的项目名称,并添加OnUpdate函数,实时的显示更新信息。

三.实验中遇到的问题现象与具体解决步骤

问题1:不知道怎么点菜单,就可以弹出一个对话框

解决方法:最开始一直试着把对话框的ID和菜单上项目的ID连在一起,后来发现根

本不需要这样麻烦。给菜单上ID添加一个Command函数,在里面定义这个对话框类型的对象,这个对象再调用DoModal函数,就会自动弹出一个对话框。

问题:2:不能显示出各项项目名称

解决方法:看老师传的课件里面,在CP09013309_6View这个类的PreCreateWindow这个函数中加一条语句“cs.style |= LVS_SHOWSELALWAYS | LVS_REPORT;”问题就解决了,通过上网查,知道这条语句的作用是设计输出的风格。

问题3:明明OnUpdate这个函数都加了,但还是不能实时更新数据

解决方法:在CP09013309_6Doc这个类里,在那些操作函数的末尾加一句UpdateAllViews(NULL),问题就解决了。在我的实践中,试图在一个ID上添加两个不同类的函数,似乎是不可行的。

问题4:不能定义MFC集合类

解决方法:定义声明的时候不断报错,在StdAfx.h这个文件里include头文件,才能够成功定义。

问题5:ComboBox怎样添加下拉条目

解决方法:看似复杂,实际上很简单。一开始是根据老师所提供的课件里面的操作步骤做的,但后来通过上网搜查,发现了一种更简单的方法:只要把ComboBox拉长,加数据加在属性的Data里,需要换行时用到Ctrl+Enter,最后即可显示。并且在我的实践中,同时用这两种办法也可以,但允许的时候下拉条里面每个数据都会显示两个,因为重复加了。

另外,有很重要的一点是下拉条会根据输入中文的首字母自动排序,一开始我忽略了这一点,运行的时候发现输入的信息都错位了,只能在到switch语句里面把几个case 调整一下顺序,根据首字母排序就可以了。

问题6:在我的程序中,职工可修改的信息既有CString类型的,也有int类型的,但我设置修改的那个edit框是CString类型的,int类型的无法修改

解决方法:由于没有想到合适的方法,于是就那个唯一的一个int类型的单独放在外面,给用户提示,若要修改此信息,请输入XXXX。虽然有点不美观,但却是最简单的一种修改办法。

问题7:在题目的要求中,要显示“某年月以后出生的职工信息列表”以及“某年月以前出生的职工信息列表”,但我在一开始创建的时候就将出生年月那个edit框输

入的数据设为CString类型,没有办法直接比较。

解决办法:通过上网查找和不断尝试,终于发现可以先把CString类型转化成COleDateTime类。先加头文件#include ,然后在函数每次循环查找职工下面加入代码“COleDateTime temp;temp.ParseDateTime(m_date);”这两行代码就可以把CString类型转化成COleDateTime类。然后再通过COleDateTimeSpan设置一个a来比较输入日期与员工出生年月:“COleDateTimeSpan datecha=pstaff->m_date-m_change;double a= datecha.GetTotalDays()”,这样只要将a与0比较,即可知道是在输入的日期前还是在输入的日期后了。

四.基本界面与操作方法说明

1、这是打开运行以后的界面

2、点击“操作”下面的添加员工信息,就跳出添加员工信息的框

3、逐个输入并保存文档

4、再重新运行打开文档

5、进行修改以及删除操作

6、查询(查询可按照职称,婚姻状况,以及根据你所选择的显示出“某年月以后出生的职工信息列表”以及“某年月以前出生的职工信息列表”)

五.参考书目

2、《Visual C++.NET编程实例》苏峰黄金双汤蕾编著清华大学出版社

六.关键代码

七.MFC心得体会

其实在大一下半学期一开始的时候,真的是一头雾水,完全没有头绪。每次弄完一个对话框的界面以后就开始发愣,不知道代码要加在哪边。但之后的半个学期加上短学期对MFC的学习,我对基于对话框和单文档的MFC程序都有了一定程度的了解。虽然在短学期开学一周以后我就住院开刀了,但在家里的时候也经常看相关书籍并且咨询同学,同学们的指导建议都十分中肯,等到我回来的时候编写第三个职工信息管理系统就感觉相对比较顺利,并且MFC本身带有很多封装好的类,调用十分方便,很少几行代码就可以展示出成熟的界面。如果不想让编写的出的程序界面古板单调,还可以在网上搜到把界面变的更美观舒适的办法。

而且,有了老师之前操作sportman的演示以及提供的课件,我们的工作量大大的减少了。但不得不说mfc很神奇,有时却又让人摸不到头脑,不知道为什么在一个意想不到的地方添加一条语句,原本运行不了的程序就成功运行了。特别是在编最后一个职工信息管理系统的时候。很多类库和宏都不明所以,想真正学通MFC,要深入浅出,看似容易的表面操作,深入的源代码是很复杂的,只有读懂源代码,才能真正清楚各个类之间是怎样相互联系的。并且我们做的只是基于对话框和单文本的,这还相对比较简单,很多实现的方式都大同小异,所以只要理解了一个,那么其他对话框也就可以举一反三,做起来就比较顺手了。

现在我的程度是可以上网上CSDN论坛,找到我想要实现内容的方法,然后照做。内容可以实现,但是只是表面,要学的理解的东西还有很多。如果以后有兴趣还想钻研一下MFC编程,一定要认真读更多的相关书籍,并且进行更多的练习。同时,多与同学交流讨论也是一种极好的破解难题的办法。

汇编语言课程设计

沈阳大学

2.3 MASM的介绍 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发,历经二三十年的发展,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4等指令系统。 2.4总体设计功能 本次课程设计的内容是采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示 程序,由$及*字符相间,从两侧向中间螺旋汇聚直至形成一个矩形,这就要求该霓虹灯能够动态地进行变化;霓虹灯模拟显示程序主要是进行程序循环调用,可以通过CMP、JMP、JZ、RET等命令进行跳转。由于是霓虹灯的模拟显示,因此在进行程序循环调用前需要进行数据段定义,以使子程序在进行调用时能够根据数据段的定义来执行,最后显示结果。 定时器中断处理程序:计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。 视频显示程序设计:一般由DOS 或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT 10H中断即可建立某种显示方式。用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用。 键盘扫描程序设计:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器,以及检测键盘状态,有无输入,并检测输入各值。 2.5详细功能设计 2.5.1主程序功能 主程序通过调用各个子程序来实现清屏,改变图形等功能,具体调用过程如图1所示。 沈阳大学

汇编语言程序设计报告

实验一: 一、实验目的: 1. 学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2. 了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3. 掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4. 掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上 三、实验内容及算法流程、源程序清单 实验内容:编写程序,从键盘输入一个字符并回显到视频显示器上。 源程序清单: 实验1.asm 实验1.obj 实验1.exe code segment assume cs:code start: mov ah,1 int 21h mov ah,4ch int 21h code ends end start 实验二:编写程序,显示一个字符Q 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的02h号功能显示输出一个字符Y。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,显示输出一个字符Q。 源程序清单: 实验2.asm 实验2.obj 实验2.exe code segment assume cs:code start: mov ah,02 mov dl,'Q' int 21h mov ah,4ch int 21h code ends end start 实验三:编写程序,在屏幕上显示输出“I love DOTA” 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 考察通过调用(INT 21H)表中的0ah号功能显示输出字符串 三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,在屏幕上显示输出‘I love DOTA。 源程序清单: 实验3.asm 实验3.obj 实验3.exe data segment buf db 'I love DOTA.$'

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

高级语言程序设计课程设计报告

高级语言程序设计课程 设计报告 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

2013-2014学年第二学期 《高级语言程序设计》 课程设计报告 题目:班级档案管理系统 专业:网络工程 班级:二 姓名:朱和芳 指导教 师:孙妍姑 成绩: 计算机与信息工程系 2014年5月11日 班级档案管理系统 设计总说明 一、设计目的 运用计算机语言设计班级档案管理,通过此次课程设计,加深对此课程基本知识的理解,提高综合运用知识的能力;掌握本课程的主要内容、课程设计或撰

写小论文的步骤和方法;以提高独立分析问题、解决问题的能力,逐步增强实际工程训练。 二、设计内容 对一个有N个学生的班级,通过该系统实现对该班级学生基本信息进行录入、显示、修改、删除、保存等操作的管理。 三、设计方法 结合C语言的有关知识,查阅资料,对班级档案管理系统的内容进行构思和设计,在MicrosoftVisualC++平台上完成设计,并进行调试。

目录 第一章绪论 (5) 第二章需求分析 问题描述 (6) 功能要求 (6) 算法提示 (6) 项目开发的目的 (7) 第三章概要设计 程序模块的组成 (8) 班级档案管理系统 (8) 各个程序的功能介绍 (9) 系统结构图 (9) 第四章模块设计分析 程序的模块组成 (10) 各个函数的主要功能 (10) 系统的功能模块的划分 (10) 总流程图 (12) 功能流程图 (13) 第五章测试 存在的问题 (14) 测试方案 (14) 第六章使用说明书 (15)

第七章总结 (17) 附录 A参考文献 (18) B源程代码 (20)

《C语言课程设计》实验报告

《C语言课程设计》报告 学院:信息工程学院 专业:信息管理与信息系统设计题目:通讯录程序设计班级:2016级一班 学号:201601510138 姓名:张进步 指导教师:杨菲菲 时间:12.24

学生通讯管理系统 1.1 设计目的 学习如何实现一个复杂的信息管理系统——学生通讯管理系统,能够实现老师对学生基本信息的记录、查询、修改。 通过本次学习,读者能够掌握: (1)如何设计主菜单和子菜单,以及各级菜单的响应与返回操作; (2)如何合理设计不同的结构体对系统中多个实体进行封装; (3)如何合理设计多个结构体数组管理不同实体对应的数据; (4)如何对复杂的函数过程进行拆分,用多个子函数进行封装; (5)进一步熟悉文件读取的相关操作。 1.2需求分析 本章的学生信息管理系统的主要功能面向老师,能够实现对学生信息进行录入、修改、查询。 学生信息方面的功能需求如下。 (1)新增学生信息,包括姓名、籍贯、电话号码(2)、电子邮箱。 (2)修改学生信息,可以选择对某个学生的某个属性值进行修改。 (3)查找学生信息,即输入要查找的学生学号,实现学生信息查询。 (4)显示所有学生信息,并以列表的形式清晰呈现。 1.3总体设计 系统功能结构图如图所示;学生信息管理系统 学生信息管理模块:包括4个子模块,分别是学生信息的录入,学生信息的修改,学生信息的查询,学生信息的浏览。

1.4详细设计与实现 1.4.1 预处理及数据结构 1.头文件 本项目涉及4个头文件,其中#include使用字符串的函数的时候需要添加此头文件,#include #include /*system使用的函数*/ #include /*getchar、getch函数使用的头文件*/ #include /*strcmp比较2个字符串是否一样*/ 2.宏定义 LEN sizeof(struct student)表示struct student的长度。DATA是按格式输出结构体的各项数据,能够方便输出操作,减少代码量。 #define_CRT_SECURE_NO_W ARNINGS #include #include #include #include #define LEN sizeof(struct student) #define FORMAT "%-8d%-15s%-15s%-15d%-15d%-15s\n" #define DATA stu[i].numb,stu[i].name,stu[i].nat,stu[i].num1,stu[i].num2,stu[i].mail 3.结构体 利用一个结构体struct student struct student/*定义学生信息结构体*/ { int numb;/*学号*/ char name[15];/*姓名*/ char nat[16];/*籍贯*/ int num1;/*电话号码1*/ int num2;/*电话号码2*/ char mail[40];/*邮箱*/ }; 4.全局变量 分别利用全局变量结构体数组struct student stu[50];来记录所有学生的基本信息,避免程序运行过程中多次初始化,方便各个式子函数调用。 struct student stu[50];

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

【报告】汇编语言程序设计报告

【关键字】报告 汇编语言程序设计报告 计算机学院 2011/6/7 题目要求 分支程序设计: 1、编写程序,键入学生成绩(百分制),按A、B、C、D显示在屏幕上。 子程序设计: 2、给定一个数组存放5个小写字母,用地址表传递方法编写子程序,将其 转换成大写字母,并显示在屏幕上。 循环程序设计: 3、设有一段文字,编写一段程序查找字母a出现的次数,并显示在屏幕上。 DOS功能调用: 4、在图形方式下,在屏幕中央绘制一个用“*”表示的等腰三角形。 5、编写一个生成ASCII码表的程序,并显示在屏幕上。 6、根据提示输入任意年份,编写判断闰年的程序,如果是闰年, 则在屏幕上显示“Y”,否则显示“N”。 7、显示杨辉三角形。要求: (1)从键盘接收正整数n; (2)屏幕显示杨辉三角形,显示n行信息; 编程思路: 1. 在数据段设置提示信息,成绩ABCD的显示信息,并预留空间。 利用DOS中断,取得输入的字符,输入字符的ASCII值在30H-39H之间为‘0-9’,不是则报错,值存入SCORE中,将SCORE的高位分别与9,8,7,6相比, 跳转到设置好的代码区,输出对应成绩(A,B,C,D).若为3位数,则跳到A区,输出A. 2. 在数据段设置ADDRESS存放数据偏移量和COUNT计数器 利用DOS中断,取得输入的字符串存入DX中,偏移量存入STRING,并存入ADDRESS中。COUNT存入ADDRESS+2地址中,调用子程序TURN,利用SI指针与ADDRESS配合将每个字母由大写转为小写。 3. 在数据段设置STRING用于存放键盘输入字符,COUNT存放字符个数,利用DOS中断,输入字符串存入STRING.编写CHECK模块用于检查输入的字符是否为a,循环执行CHECK模块,为a 则BL+1,不为a,SI+1继续检查,直至CX=0,最后输出结果。 4. 堆栈段预留128字节空间存放*.设置SI控制空格数,BX为输出*个数.设置3层循环,分别输出空格数,*数,回车.首先将保护CX行数,将其压入栈中,外层循环按CX列数,输出每行之前的空格数,之后根据BX输出*,此时一行输入完,输出回车换行后,BX+2即*数+2, CX出栈,加入外循环,输出下一行信息。 5. 初始化时设置行列数,第一个字符的ASCII值,设置两层循环,首先CX入栈保护输出行数,外层循环控制输出行数,内循环输出列个数对应的字符数,将要输入的字符存入DL,每输出完一次DL+1,SI值即列数给CX,当CX=0时,输出回车换行,CX出栈,加入外循环准备下

微机原理与汇编语言课程设计报告

西北师范大学 计算机科学与工程学院 微机原理与汇编语言 课程设计报告 设计题目:中断控制点阵显示与音乐模块姓名: 学号: 专业班级: 系所中心: 指导老师: 起讫时间: 设计地点: 2016年8月20日

摘要 使用8086汇编语言,在唐都TD-PITE实验箱上进行硬件连线,在计算机上采用与该实验箱配套的软件进行输入,观察实验结果。设计思路是利用在实验箱上i386内集成的两片8259芯片分别进行中断,通过实验箱上的两个脉冲开关发送信号到总线上开放的两个中断口,送入CPU内部的8259中。此时按下脉冲开关kk1+,第一个中断发生,在16*16点阵上循环滚动显示“西北师大汇编设计李泓毅”,若按下kk2+则第二个中断发生,执行音乐模块子程序,利用8254芯片开始响应预先编排好的音乐。 【关键词】级联中断;8259芯片;16*16点阵;8254芯片;SPK音乐模块;脉冲信号

目录 摘要 (2) 第一章课程设计 (2) 1.1 目的和任务 (2) 1.2 设计环境、设备与器材 (2) 第二章设计内容和方案 (3) 2.1 设计内容 (3) 2.2 设计方案 (3) 第三章课程设计相关原理简述 (3) 第四章设计实现 (4) 4.1 系统设计框架结构 (4) 4.2 系统硬件设计 (4) 4.3 系统软件设计 (6) 4.4 程序流程图 (6) 4.5 核心数据结构 (8) 4.6 关键代码片段分析 (10) 第五章设计验证 (10) 5.1 验证步骤及结果 (10) 5.2 数据分析 (10) 5.3 遇到的问题及解决 (11) 5.4 需要讨论的其它问题 (11) 5.5 结论 (11) 第六章设计总结 (12) 第七章本课程教学建议 (13) 第八章参考文献 (13) 第九章附录:源代码 (13) 第一章课程设计 1.1 目的和任务 使用8259芯片进行中断程序设计,在第一个中断中响应字模显示模块,在第二个中断中响应音乐发声模块。

华中科技大学计算机学院C语言课设实验报告

华中科技大学计算机科学与技术学院 《C语言程序设计》课程设计 实验报告 题目:科研项目信息管理系统 专业:计算机 班级: 学号: 姓名: 成绩: 指导教师:李开 完成日期:2009年10 月20 日

科研项目信息管理系统一、系统功能结构模块图 二、数据结构设计及其用法说明 typedef struct lakey{ char name[30];/*团队名称*/ int total;/*自然科学基金的科研项目数*/ float dudu;/*经费数*/ struct lakey *next; }*plakey;/*统计3中用到的数据结构*/ typedef struct emmey{ char name[30];/*团队名称*/ int teacher;/*老师人数*/ int harden;/*项目数*/ float bizhi;/*比值*/ struct emmey *next; }*pemmey;/*统计4中用到的数据结构*/ typedef struct kPro{ char code[15];/*项目编号*/ char sort;/*项目种类*/ int aking1; char time[8];/*项目时间*/ float dudu;/*项目经费*/ int aking2;

char beiler[15];/*负责人*/ int aking3; char keynoName[30];/*所在团队名称*/ struct kPro *next; }harden,*pHarden; typedef struct Komo{ int teacher;/*老师人数*/ char name[20];/*院系名称*/ int student;/*学生人数*/ float bizhi;/*二者比值*/ struct Komo *next; }*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/ typedef struct kTea{ char name[30];/*团队名称*/ char beiler[15];/*负责人*/ int stuNum;/*学生人数*/ int aking2; int coco;/*老师人数*/ char colName[20];/*所在院系的名称*/ int aking1; struct kTea *next; pHarden child; }keyno,*pKeyno; typedef struct edward{ char name[20];/*院系名称*/ int totalnum;/*项目总数*/ int num973;/*973项目数*/ int num863;/*863项目数*/ float amount;/*经费数*/ struct edward *next; }*pedward;/*统计2中用到的数据结构*/ typedef struct kCol{ char name[20];/*院系名称*/ int aking; char beiler[15];/*院系负责人*/ struct kCol *next; char call[15];/*负责人电话号码*/ pKeyno child; }kekey,*pKekey;

汇编课程设计

燕山大学 汇编语言课程设计说明书 题目:计算机钢琴程序 交通灯控制系统 学院(系):信息科学与工程学院 年级专业: 10级计算机科学2班 学号: 100104010113 学生姓名:马强 学号: 100104010116 学生姓名:夏洋 指导教师:何海涛、邹晓红 完成日期: 2013年7月3日

目录 1.课程设计的目的和意义........................................................................................................... - 2 - 1.1课程设计目的................................................................................................................ - 2 - 1.2课程设计的意义............................................................................................................ - 2 - 2.题目一:计算机钢琴程序....................................................................................................... - 2 - 2.1系统的主要功能............................................................................................................ - 2 - 2.2总体设计方案................................................................................................................ - 2 - 2.2.1扬声器驱动方式................................................................................................. - 2 - 2.2.2延时原理............................................................................................................. - 3 - 2.2.3键盘控制发声程序............................................................................................. - 4 - 2.2.4设计总结............................................................................................................. - 5 - 2.3作品使用说明................................................................................................................ - 6 - 3.题目二:交通灯控制系统....................................................................................................... - 6 - 3.1系统的主要功能............................................................................................................ - 6 - 3.2 系统工作原理............................................................................................................... - 6 - 3.2.1 8259的工作原理................................................................................................ - 6 - 3.2.2 8255A的工作原理:...................................................................................... - 7 - 3.2.3 8253的工作原理:............................................................................................ - 7 - 3.3总体设计方案................................................................................................................ - 7 - 3.3.1程序流程图......................................................................................................... - 8 - 3.3.2接口电路图....................................................................................................... - 11 - 3.4交通灯的设计总结...................................................................................................... - 11 - 4.课程设计心得体会................................................................................................................. - 12 - 5.参考文献................................................................................................................................. - 12 - 6.附录:程序代码..................................................................................................................... - 12 - 6.1计算机钢琴程序代码.................................................................................................. - 12 - 6.2交通灯控制系统代码.................................................................................................. - 14 -

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学 号 指导教师 完成日期

目录 目录 (2) 1概述 (1) 1.1 设计目的 (1) 1.2 设计内容 (1) 2系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (1) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4系统详细设计 (3) 5测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6小结 (5) 参考文献 (6) 附录 (7) 附录源程序清单 (7)

实现加减乘除四则运算的计算器 1 概述 1.1 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 1.2 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 2.1 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 2.2 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 2.3 开发环境 TASM5.0集成环境

《高级语言程序设计》课程设计报告及示例

《高级语言程序设计》课程设计报告(2014――2015年度第二学期) 题目通讯录管理 专业计算机科学与技术 班级2014级B班 小组成员李丽丽2009022899 班级2009级计本四班

《高级语言程序设计》课程设计 成绩评定 指导教师:

摘要:通过本课程设计,对程序控制结构、数组、结构体、函数、文件等的应用进行综合训练,并初步接触软件设计的基本步骤。本设计实现关键词:控制结构,数组,结构体,函数,文件 一、课程设计的目的与要求 通过实践训练,进一步掌握C语言程序控制结构、数组、结构体、函数、文件的使用方法,提高程序编写调试的实际能力,培养初步的工程设计能力和综合分析、解决问题的能力。 具体如下: 1.学习和实践在分析和设计计算机应用系统所需要的知识,包括功能分析和模块划分、函数设计、 数据的结构分析、设计和存取操作; 2.熟悉Visual C++的代码编制和调试过程; 3.初步培养文档的编写能力; 4.培养协作能力和团队精神。 二、设计正文 1.概述 1.1课题题目:通讯录管理 1.2系统的主要目标: 本系统目标是实现通讯录管理的功能,对姓名、群组、住宅电话、手机、Email、地址和备注信息进行输入、删除、查找和修改,数据存储于二进制文件。 1.3系统的开发环境及运行环境: 操作系统:Win dows XP Pro SP2 开发工具:Visual C++ 6.0 2.系统分析 1.输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据 作为一个记录。?该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。 2.显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。 3.修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。 4?查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。 5.删除记录:可删除数据文件中的任一记录。 6?恢复记录:能恢复被删除的任一记录。 7.统计:(A)计算各项工资平均工资及总工资,(B)?统计符合指定条件(如职工工资前三项之和在2000元以上、2000~1500元、1500~1000元)以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资(?包括各项总的平均工资)。 8 保存数据文件功能。 9.打开数据文件功能。 3.系统设计

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

汇编课程设计报告

汇编课程设计报告

学 号: 课程设计 题目打印水仙花数 学院计算机科学与技术 专业计算机科学与技术 班级 姓名 指导教师

武汉理工大学《汇编语言程序设计》课程设计 2012 年 6 月28 日 课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 打印水仙花数 初始条件: 理论:完成了《汇编语言程序设计》课程, 对微机系统结构和80系列指令系 统有了较深入的理解,已掌握了汇 编语言程序设计的基本方法和技 巧。 实践:完成了《汇编语言程序设计》的4 个实验,熟悉了汇编语言程序的设 计环境并掌握了汇编语言程序的 调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握较复杂程序的设计方 法,掌握子程序结构的设计和友好用户界 3

2.1简要分析 2.1.1原理说明 可以用标签来接收三位数,标签的好处在于可以限制输入的位数,并且通过实际输入位数可以直接进行一部分的异常处理。 将数存到标签后,因为是以ASCII码的形式存的,所以需要进行转换,将其变成十六进制数,转换后将数字存到申请的内存字中。在转换成十六进制数的过程中,可以对输入的数进行异常处理,判断是否输入有误。 在输出水仙花数时,设置一个计数器,从100开始循环判断,直到等于用户输入的数为止,依次判断是否为水仙花数,决定是否输出该数。 在输出时,分别取出水仙花数的个、十、百位数,转换成ASCII码再输出。 系统提示是否继续后,程序对用户输入的信息进行判断,若为y或Y则系统回到初始状态,若为n或N则退出系统,若为其他则提示输入错误并重新输入。 2.1.2程序流程图

高级语言课程设计报告格式朱立刚

西安郵電學院 高级语言课程设计报告书 系部名称通信工程学院 学生姓名朱立刚 专业名称电子信息科学与技术班级电科0901班 学号04092013 指导教师夏虹 2010年11月22日至 时间 2010年12月03日

实验题目电话簿管理系统 一、实验目的 1.利用静态数组实现电话簿管理,数组中每一个元素是结构体类型; 2.通过这个例子了解数据管理的基本功能; 3.通过实验掌握数组元素为结构体的应用,数组作函数参数,文件读写等知识。 二、实验内容 1.用c语言编写一个简单、但操作齐全的电话簿管理系统; 2.编程时采用结构体、数组(链表)、文件等数据结构存储组织数据。实现: 数据的录入、数据读写和数据存储;数据的添加、修改、删除、查询操作; 数据的统计、排序及报表打印。 三、需求分析 要实现对电话簿进行操作,必须先定义主函数。对于一个合格的电话簿系统,首先必须考虑信息安全问题,我先写了一个密码保护函数,运行前先进行密码输入,有三次出错机会;正确,进入菜单选项,否则,跳出。 对于电话簿,必须能进行信息录入,于是设计了信息录入选项;信息录入后还必须进行显示,又设计了显示记录选项;对于通讯录的一个基本功能——查找,我设计了按姓名查找和按序号查找选项。 对于电话簿的添加、修改、删除问题,还必须有添加修改选项、删除选项。 为方便查找,我设计了按姓名字母字典顺序的排序方法;并进行了文件的保存与备份。对于一个刚打开的新程序,只有进行了文件读入才能对信息进行操作,否则就必须进行信息输入,为避免这种有违设计理念的问题,我加入了读取信息选项。 四、概要设计 1、方案设计 基本功能模块结构图

(新)汇编语言课程设计四则运算

计算机与信息工程学院《汇编语言》课程设计四则运算器的设计 专业:计算机科学与技术 班级:控制11-2班 姓名: 倪天天 学号:2011025745 指导教师:郝维来 2013年6月28日

摘要 计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块。当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。 关键词:计算器,汇编语言,四则运算,功能模块

Abstract Calculator is the easiest calculation tools, a simple calculator with addition, subtraction, multiplication, division four arithmetic functions. Want to use assembly language to achieve a simple calculator, you must pass on the data storage, register usage, addition, subtraction, and related instructions such as assembly language module calls the use of knowledge in order to achieve a basic functional, user-friendly, easy to operate easy calculator. Using assembly language to achieve a simple calculator also involves the design of input and output modules, the judgment of arithmetic operations and exit the program to judge design. Through the rational use of various commands, design various functional modules. When implementing various program modules, through a call to the ultimate realization of the program a simple calculator. Keyword:Calculator, assembly language, four arithmetic, functional modules

相关主题
文本预览
相关文档 最新文档