数学与计算机学院1303班实验报告

数学与计算机学院1303班实验报告
数学与计算机学院1303班实验报告

武汉轻工大学数计学院

C语言课程设计报告

班级:计算机类1303班

学号:1305110050

姓名:刘文斌

指导教师:丁月华

日期:2014 年 6 月

一、实验目的

1.在编辑应用程序过程中,逐步加深对C语言编程的理解;

2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固;

3.培养初步编程的能力,为以后的学习奠定基础。

二、实验内容

运用所学的C语言知识编辑应用程序:班级成绩管理系统以及运动的时钟

三.系统软件环境:

本程序主要运行在: Visual C++ 6.0

四.课程设计题目:

1.必做题:班级成绩管理系统

对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存、查询等操作的管理。功能要求:

(1)本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。

(2)本系统显示这样的菜单:请选择系统功能项:

a、成绩录入

b、成绩显示

c、成绩保存

d、成绩排序

e、成绩修改(要求先输入密码)

f、成绩统计

1)显示每门课程成绩最高的学生的基本信息。

2)显示每门课程的平均成绩,柱状图显示。

3)显示超过某门课程平均成绩的学生人数。

4)显示某门课程每个分数段区间的人数,用饼状图显示。

g、退出系统

(3)执行一个具体的功能之后,程序将重新显示菜单。

(4)将学生成绩保存到文件中。

2.选做题:运动的时钟

目的与要求:

目的是让读者掌握调用系统函数及在程序中运用数学原理来制作运动物体的方法,同时学会使用声音函数,以制作出绘声绘色的动画效果。

基本要求:运用模块化的设计思想完成各功能模块的设计;程序运行界面美观,运行时伴有声音;写出详细设计说明书。

创新要求:在基本要求达到后,进行创新设计,如增加整点报时功能,定时功能等。

设计方法与基本原理:

1 问题描述

利用Turbo C提供的图形库,来制作运动的时钟效果,同时要伴有时钟的滴答声。

2 基本原理

利用dos.h中的gettime和getdate得到系统的时间和日期,然后利用graphics.h中的绘图函数显示在屏幕上。

3 程序总体结构设计

主函数由屏幕初始化函数(画出时钟外貌)和时钟运行函数(画出运行的时钟指针及发出滴答声)两部分构成。其主要部分如下:

#include

#include

#include

void main()

{

屏幕初始化函数;

时钟运行函数;

}

五.数据结构设计描述: (一)班级成绩管理系统

(二)运动的时钟

六、源程序代码

(一)班级成绩管理系统

#include

#define MaxSize 50

struct student //声明结构体类型struct student

{

int num; //学号

char name[8]; //姓名

float chinese,math,english,politics;//语文、数学、英语、政治四门课

float sum; //四门课总分

};

void input_student(); //成绩输入函数申明

void show_student(); //成绩显示函数申明

void sort_student(); //成绩修改函数申明

void update_student(); //成绩排序函数申明

void statistics_student(); //成绩统计函数申明

int count=0; //记录当前录入信息的学生人数

struct student stu[MaxSize]; //定义结构体数组

//显示主菜单

void print_menu()

{

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf(" *****您好,欢迎使用班级成绩管理

系统******\n");

printf(" # #\n");

printf(" # 1.成绩录入

#\n");

printf(" # 2.成绩显示

#\n");

printf(" # 3.成绩排序

#\n");

printf(" # 4.成绩修改

#\n");

printf(" # 5.成绩统计

#\n");

printf(" # 0.退出系统

#\n");

printf(" # #\n");

printf("

*****************************************\n");

}

int main()

{

int mima;

int yonghu;

print_menu();

printf(" 请输入用户名:");

scanf("%d",&yonghu);

if(yonghu==1305110050)

printf(" 请输入密码:");

scanf("%d",&mima);

if(mima==123456);

int choice;

do

{

print_menu();

scanf("%d",&choice);

switch(choice){

case 1:input_student();break; //调用input_student 函数

case 2:show_student();break; //调用show_student 函数

case 3:sort_student();break; //调用sort_student 函数

case 4:update_student();break; //调用update_student函数

case 5:statistics_student();break;//调用statistics_student函数

case 0:break;

}

}while(choice!=0);

printf("END!\n"); //非法输入则跳

出菜单

return 0;

}

//录入学生成绩

void input_student()

{

struct student s; //定义结构体变量

if(count==MaxSize)

{

printf("内存已满!\n");

return ;

}

printf("学号\t\t姓名\t语文\t数学\t英语\t政治四门课的成绩\n");

scanf("%d %s %f %f %f %f",&s.num,&https://www.360docs.net/doc/329888861.html,,&s.chinese,&s.m ath,&s.english,&s.politics);

s.sum=s.chinese+s.math+s.english+s.politics; //计算当

前每个学生的总分

stu[count]=s;

count++; //当前录入信息的学生人数

}

//显示学生成绩

void show_student()

{

int i;

if(count==0)

{

printf("没有信息可供查询!\n");

return ;

}

printf("学号\t\t姓名\t语文\t数学\t英语\t政治\n");

for(i=0;i

{

printf("%d\t%s\t%2.2f\t%2.2f\t%2.2f\t%2.2f",stu[i].num,s tu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i]

.politics);

//输出相应的信息

printf("\n");

}

}

//将学生成绩排序

void sort_student()

{

int i,j;

struct student s;

float grade[50]; //定义新数组

if(count==0)

{

printf("没有存储信息,无法进行排序,请返回主菜单录入信息!\n");

return ;

}

for(i=0;i

grade[i]=stu[i].sum; //提取结构体数组里的信息

for(i=0;i

{

for(j=0;j

if(grade[j+1]>grade[j])

{

s=stu[j+1];

stu[j+1]=stu[j];

stu[j]=s;

}

}

printf("学号\t姓名\t总分\n");

for(i=0;i

printf("%d\t%s\t%3.2f\n",stu[i].num,stu[i].name,stu[i].s um);

printf("\n");

return ;

}

//修改学生成绩

void update_student()

{

int course,i;

char num;

float score;

printf("请输入学号进行修改:");

scanf("%d",&num);

for(i=0;i

if(stu[i].num==num) break;

if(i

{

do

{

printf("请选择课程:1.语文\t2.数学\t3.英语\t4.政治\t0.退出:");

scanf("%d",&course);

if(course==0) break;

printf("请输入新成绩:");

scanf("%f",&score);

switch(course)

{

case 1:stu[i].chinese=score;break; //把输入

的分数赋值给结构体数组里的成员

case 2:stu[i].math=score;break;

case 3:stu[i].english=score;break;

case 4:stu[i].politics=score;break;

}

}while(1);

printf("修改后的成绩为:\n");

printf("num\tchinese\tmath\tenglish\tpolitics\n"); //输出科目

printf("%d\t%6.2f\t%6.2f\t%6.2f\t%6.2f\n",stu[i].num,stu [i].chinese,stu[i].math,stu[i].english,stu[i].politics);

} //输出成绩

else printf("没有找到要修改的学号\n");

}

//统计学生成绩

void statistics_student()

{

int i;

float

sum1=0,sum2=0,sum3=0,sum4=0,aver1,aver2,aver3,aver4;

for(i=0;i

sum1=sum1+stu[i].chinese;

aver1=sum1/count;

for(i=0;i

sum2=sum2+stu[i].math;

aver2=sum2/count;

for(i=0;i

sum3=sum3+stu[i].english;

aver3=sum3/count;

for(i=0;i

sum4=sum4+stu[i].politics;

aver4=sum4/count; //计算当前每个学生的平均成绩

printf("课程\t平均分\n");

printf("chinese\t%6.2f\n" ,aver1); //输出当前每个学生的各科平均分(以下同是)

printf("math\t%6.2f\n",aver2);

printf("english\t%6.2f\n",aver3);

printf("politics%6.2f\n",aver4);

return ;

}

(二)运动的时钟

说明:在运行程序前,先将文件夹中名字为ud.jpg的文件存入D盘,因为在程序运行时会调用。

#include

#include

#include

#include

#define PI 3.1415926 //定义pi

/* 出时钟的表盘 */

void Drawbiaopan() //画表盘

{

setwritemode(TRANSPARENT);

int i;

int x1, y1, x2, y2, x3, y3, x4, y4, x5, y5;

//表心坐标系坐标

char rome[][3]= {"12","1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11" } ; //表盘数字

setcolor(GREEN); //画四个圆

circle(350, 350, 300);

circle(350, 350, 30);

circle(350, 350, 280);

circle(350, 350, 270);

for(i = 0; i < 59; i++) // 画60条短线

{

setcolor(RED);

x1 = (int)(350 + (sin(i * PI / 30) * 250));

y1 = (int)(350 - (cos(i * PI / 30) * 250));

x2 = (int)(350 + (sin(i * PI / 30) * 260));

y2 = (int)(350 - (cos(i * PI / 30) * 260));

line(x1, y1, x2, y2);

setfillstyle(BLACK); //设置当前填充模式画12个三角形

if(i % 5 == 0)

{

x3 = (int)(x1 + sin((i + 5) * PI / 30) * 12 );

y3 = (int)(y1 - cos((i + 5) * PI / 30) * 12 );

x4 = (int)(x1 + sin((i - 5) * PI / 30) * 12 );

y4 = (int)(y1 - cos((i - 5) * PI / 30) * 12 );

x5 = (int)(340 + (sin((i - 0.2) * PI / 30) * 220));

y5 = (int)(340 - (cos((i - 0.2) * PI / 30) * 220));

int triangle[6] = {x1, y1, x3, y3, x4, y4};

setcolor(BLACK);

fillpoly(3, triangle); //画填充的多边形

setbkmode(TRANSPARENT); // 设置背景混合模式

setcolor(RED); //写表盘数字

setfont(24, 0,"");

outtextxy(x5 , y5, rome[i / 5]);

}

}

}

/*画出时针、分针、秒针(以直线来表示)*/

void Drawzhizheng(int hour, int minute, int second) //画指针{

int xhour, yhour, xminute, yminute, xsecond, ysecond; //表心坐标系指针坐标

// 对时针、分针、秒针的位置进行计算

xhour = (int)(130 * sin( hour * PI / 6 + minute * PI / 360 + second * PI / 1800));

yhour = (int)(130 * cos( hour * PI / 6 + minute * PI / 360

计算机图形学实验报告

《计算机图形学》实验报告姓名:郭子玉 学号:2012211632 班级:计算机12-2班 实验地点:逸夫楼507 实验时间:15.04.10 15.04.17

实验一 1 实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析实验数据的能力; 编程实现DDA 算法、Bresenham 中点算法;对于给定起点和终点的直线,分别调用DDA 算法和Bresenham 中点算法进行批量绘制,并记录两种算法的绘制时间;利用excel 等数据分析软件,将试验结果编制成表格,并绘制折线图比较两种算法的性能。 2 实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One (自制平台) 3 实验结果 3.1 程序流程图 (1)DDA 算法 是 否 否 是 是 开始 计算k ,b K<=1 x=x+1;y=y+k; 绘点 x<=X1 y<=Y1 绘点 y=y+1;x=x+1/k; 结束

(2)Mid_Bresenham 算法 是 否 否 是 是 是 否 是 否 开始 计算dx,dy dx>dy D=dx-2*dy 绘点 D<0 y=y+1;D = D + 2*dx - 2*dy; x=x+1; D = D - 2*dy; x=x+1; x

3.2程序代码 //-------------------------算法实现------------------------------// //绘制像素的函数DrawPixel(x, y); (1)DDA算法 void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) { //----------请实现DDA算法------------// float k, b; float d; k = float(Y1 - Y0)/float(X1 - X0); b = float(X1*Y0 - X0*Y1)/float(X1 - X0); if(fabs(k)<= 1) { if(X0 > X1) { int temp = X0; X0 = X1; X1 = temp; }

计算机组成原理实验2实验报告

课程名称计算机组成原理 课程代码6013749 实验时间2013 年12 月15 日 指导单位 指导教师 学生姓名年级 学号专业 成绩 实验名称 实验地点 6A-417 实验二通用寄存器单元实验 实验类型验证实验学时8 实验日期 实验目的和要求: 目的:1.了解通用寄存器的组成和硬件电路; 2 .利用通用寄存器实现数据的置数、左移、右移等功能 要求:按照实验步骤完成实验项目,实现通用寄存器移位操作。了解通用寄存器的工作原理运用。实验环境(实验设备) :CPT实验机,连线

实验原理及内容 1.实验原理 <1>通用寄存器单元的工作原理: 通用寄存器的核心部件为2片GAL,它具有锁存、左移、右移、保存等功能。各个功能都由X1、X2信号和工作脉冲RACK来决定。当置ERA=0、X0=1、X1=1,RACK有上升沿时,把总线上的数据打入通用寄存器。可通过设置X1、X0来指定通用寄存器工作方式,通用寄存器的输出端Q0~Q7接入判零电路。LED(ZD)亮时,表示当前通用寄存器内数据为0。 输出缓冲器采用74LS244,当控制信号RA-O为低时,74LS244开通,把通用寄存器内容输出到总线;当控制信号RA-O为高时,74LS244的输出为高阻。 图1 通用寄存器原理图 <2>寄存器实验构成 1.通用寄存器由2片GAL构成8位字长的寄存器单元。8 芯插座RA-IN作为数据输入端,可通过端8芯扁平电缆, 把数据数据输入端连接到数据总线上。 2.数据输出由一片74LS244(输出缓冲器)来控制。用8 芯插座RA-OUT作为数据输出端,可通过端8芯扁平电 缆,把数据数据输出端连接到数据总线上。 3.判零和进位电路由1片GAL、1片7474和一些常规芯片 组成,用2个LED(ZD、CY)发光管分别显示其状态。

计算机仿真与建模实验报告

中南大学 计算机仿真与建模 实验报告 题目:理发店的服务过程仿真 姓名:XXXX 班级:计科XXXX班 学号:0909XXXX 日期:2013XXXX

理发店的服务过程仿真 1 实验案例 (2) 1.1 案例:理发店系统研究 (2) 1.1.1 问题分析 (3) 1.1.2 模型假设 (3) 1.1.3 变量说明 (3) 1.1.4 模型建立 (3) 1.1.5 系统模拟 (4) 1.1.6 计算机模拟算法设计 (5) 1.1.7 计算机模拟程序 (6) 1实验案例 1.1 案例:理发店模拟 一个理发店有两位服务员A和B顾客随机地到达该理发店,每分钟有一个顾客到达和没有顾客到达的概率均是1/2 , 其中60%的顾客理发仅用5分钟,另外40%的顾客用8分钟. 试对前10分钟的情况进行仿真。 (“排队论”,“系统模拟”,“离散系统模拟”,“事件调度法”)

1.1.1 问题分析 理发店系统包含诸多随机因素,为了对其进行评判就是要研究其运行效率, 从理发店自身利益来说,要看服务员工作负荷是否合理,是否需要增加员工等考 虑。从顾客角度讲,还要看顾客的等待时间,顾客的等待队长,如等待时间过长 或者等待的人过多,则顾客会离开。理发店系统是一个典型的排队系统,可以用 排队论有关知识来研究。 1.1.2 模型假设 1. 60%的顾客只需剪发,40%的顾客既要剪发,又要洗发; 2. 每个服务员剪发需要的时间均为5分钟,既剪发又洗发则花8分钟; 3. 顾客的到达间隔时间服从指数分布; 4. 服务中服务员不休息。 1.1.3 变量说明 u :剪发时间(单位:分钟),u=5m ; v: 既剪发又理发花的时间(单位:分钟),v=8m ; T : 顾客到达的间隔时间,是随机变量,服从参数为λ的指数分布,(单位: 分钟) T 0:顾客到达的平均间隔时间(单位:秒),T 0=λ 1; 1.1.4 模型建立 由于该系统包含诸多随机因素,很难给出解析的结果,因此可以借助计算机 模拟对该系统进行模拟。 考虑一般理发店的工作模式,一般是上午9:00开始营业,晚上10:00左 右结束,且一般是连续工作的,因此一般营业时间为13小时左右。 这里以每天运行12小时为例,进行模拟。 这里假定顾客到达的平均间隔时间T 0服从均值3分钟的指数分布, 则有 3小时到达人数约为603 603=?人, 6小时到达人数约为1203 606=?人, 10小时到达人数约为2003 6010=?人, 这里模拟顾客到达数为60人的情况。 (如何选择模拟的总人数或模拟总时间)

计算机图形学实验报告 (2)

中南大学信息科学与工程学院 实验报告实验名称 实验地点科技楼四楼 实验日期2014年6月 指导教师 学生班级 学生姓名 学生学号 提交日期2014年6月

实验一Window图形编程基础 一、实验类型:验证型实验 二、实验目的 1、熟练使用实验主要开发平台VC6.0; 2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows图形应用程序; 3、掌握Window图形编程的基本方法; 4、学会使用基本绘图函数和Window GDI对象; 三、实验内容 创建基于MFC的Single Document应用程序(Win32应用程序也可,同学们可根据自己的喜好决定),程序可以实现以下要求: 1、用户可以通过菜单选择绘图颜色; 2、用户点击菜单选择绘图形状时,能在视图中绘制指定形状的图形; 四、实验要求与指导 1、建立名为“颜色”的菜单,该菜单下有四个菜单项:红、绿、蓝、黄。用户通过点击不同的菜单项,可以选择不同的颜色进行绘图。 2、建立名为“绘图”的菜单,该菜单下有三个菜单项:直线、曲线、矩形 其中“曲线”项有级联菜单,包括:圆、椭圆。 3、用户通过点击“绘图”中不同的菜单项,弹出对话框,让用户输入绘图位置,在指定位置进行绘图。

五、实验结果: 六、实验主要代码 1、画直线:CClientDC *m_pDC;再在OnDraw函数里给变量初始化m_pDC=new CClientDC(this); 在OnDraw函数中添加: m_pDC=new CClientDC(this); m_pDC->MoveTo(10,10); m_pDC->LineTo(100,100); m_pDC->SetPixel(100,200,RGB(0,0,0)); m_pDC->TextOut(100,100); 2、画圆: void CMyCG::LineDDA2(int xa, int ya, int xb, int yb, CDC *pDC) { int dx = xb - xa; int dy = yb - ya; int Steps, k; float xIncrement,yIncrement; float x = xa,y= ya; if(abs(dx)>abs(dy))

计算机组成实验报告汇总

计算机组成与体系结构 实验报告

实验项目一 一、实验目的 通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解高级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。 二、实验要求: 在VC6.0中创建下列源程序 #include void main() { inti=100; int j=-1; int k; k=i+j; printf("%d",k); } 然后对该程序进行编译、链接,最终生成可执行目标代码。 三、实验报告 1.给出做实验的过程. 关键代码如下:

2.给出源程序(文本文件)的内容(用十六进制形式表示)。 3.给出可执行目标文件(二进制文件)的内容(用十六进制形式表示)。

4.VC6.0调试环境:设置断点、单步运行、变量的值(十进制、十六进制)、变量的地址、变量的存储。 断点设置如下:

变量的值十进制: 变量的值十六进制: 变量的地址:

5.VC 6.0反汇编:查看源程序对应的汇编程序、可执行目标程序的二进制编码、了解如何给变量分配内存、系统函数程序段的调用。 6.分析或回答下列问题。 (1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。 不相同。因为不同的机器硬件的组成不同,因此同一个源程序在不同的机器上生成的目标文件不同。 (2)你能在可执行目标文件中找出函数printf()对应的机器代码段吗?能的话,请标示出来。 不能。因为源程序中的printf函数在可执行文件中已转换为机器语言。被翻译的机器语言中有printf函数,但是不知道是从哪一段开始翻译的。 (3)为什么源程序文件的内容和可执行目标文件的内容完全不

计算机仿真实验-基于Simulink的简单电力系统仿真

实验七 基于Simulink 的简单电力系统仿真实验 一. 实验目的 1) 熟悉Simulink 的工作环境及SimPowerSystems 功能模块库; 2) 掌握Simulink 的的powergui 模块的应用; 3) 掌握发电机的工作原理及稳态电力系统的计算方法; 4)掌握开关电源的工作原理及其工作特点; 5)掌握PID 控制对系统输出特性的影响。 二.实验内容与要求 单机无穷大电力系统如图7-1所示。平衡节点电压0 44030 V V =∠? 。负荷功率10L P kW =。线路参数:电阻1l R =Ω;电感0.01l L H =。发电机额定参数:额定功率100n P kW =;额定电压440 3 n V V =;额定励磁电流 70 fn i A =;额定频率50n f Hz =。发电机定子侧参数:0.26s R =Ω, 1 1.14 L mH =,13.7 md L mH =,11 mq L mH =。发电机转子侧参数:0.13f R =Ω,1 2.1 fd L mH =。发电机阻尼绕组参数:0.0224kd R =Ω, 1 1.4 kd L mH =,10.02kq R =Ω,11 1 kq L mH =。发电机转动惯量和极对数分别 为224.9 J kgm =和2p =。发电机输出功率050 e P kW =时,系统运行达到稳态状态。在发电机输出电磁功率分别为170 e P kW =和2100 e P kW =时,分析发电机、平衡节点电源和负载的电流、电磁功率变化曲线,以及发电机转速和功率角的变化曲线。

G 发电机节点 V 负 荷 l R l L L P 图 7.1 单机无穷大系统结构图 输电线路 三.实验步骤 1. 建立系统仿真模型 同步电机模块有2个输入端子、1个输出端子和3个电气连接端子。模块的第1个输入端子(Pm)为电机的机械功率。当机械功率为正时,表示同步电机运行方式为发电机模式;当机械功率为负时,表示同步电机运行方式为电动机模式。在发电机模式下,输入可以是一个正的常数,也可以是一个函数或者是原动机模块的输出;在电动机模式下,输入通常是一个负的常数或者是函数。模块的第2个输入端子(Vf)是励磁电压,在发电机模式下可以由励磁模块提供,在电动机模式下为一个常数。 在Simulink仿真环境中打开Simulink库,找出相应的单元部件模型,构造仿真模型,三相电压源幅值为4403,频率为50Hz。按图连接好线路,设置参数,建立其仿真模型,仿真时间为5s,仿真方法为ode23tb,并对各个单元部件模型的参数进行修改,如图所示。

计算机图形学实验报告

目录

实验一直线的DDA算法 一、【实验目的】 1.掌握DDA算法的基本原理。 2.掌握DDA直线扫描转换算法。 3.深入了解直线扫描转换的编程思想。 二、【实验内容】 1.利用DDA的算法原理,编程实现对直线的扫描转换。 2.加强对DDA算法的理解和掌握。 三、【测试数据及其结果】 四、【实验源代码】 #include

#include #include #include GLsizei winWidth=500; GLsizei winHeight=500; void Initial(void) { glClearColor(1.0f,1.0f,1.0f,1.0f); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0); } void DDALine(int x0,int y0,int x1,int y1) { glColor3f(1.0,0.0,0.0); int dx,dy,epsl,k; float x,y,xIncre,yIncre; dx=x1-x0; dy=y1-y0; x=x0; y=y0; if(abs(dx)>abs(dy)) epsl=abs(dx); else epsl=abs(dy); xIncre=(float)dx/(float)epsl; yIncre=(float)dy/(float)epsl; for(k=0;k<=epsl;k++) { glPointSize(3); glBegin(GL_POINTS); glV ertex2i(int(x+0.5),(int)(y+0.5)); glEnd(); x+=xIncre; y+=yIncre; } } void Display(void) { glClear(GL_COLOR_BUFFER_BIT); DDALine(100,100,200,180); glFlush(); }

计算机组成原理实验报告二

实验二存储器实验 一、实验目的 熟悉和了解存储器组织与总线组成的数据通路。 二、实验原理 存储器是计算机的存储部件,用于存放程序和数据。存储器是计算机信息存储的核心,是计算机必不可少的部件之一,计算机就是按存放在存储器中的程序自动有序不间断地进行工作。本系统从提高存储器存储信息效率的角度设计数据通路,按现代计算机中最为典型的分段存储理念把存储器组织划分为程序段、数据段等,由此派生了数据总线(DBUS)、指令总线(IBUS)、微总线( BUS)等与现代计算机设计规范相吻合的实验环境。该存储器组织由二片6116构成具有奇偶概念的十六位信息存储体系,该存储体系AddBus由PC指针和AR 指针分时提供,E/M控位为“0”时选通PC,反之选通AR。该存储体系可随机定义总线宽度,动态变更总线结构,把我们的教学实验提高到能与现代计算机设计规范相匹配与接轨的层面。 连线信号孔接入孔作用有效电平 1 DRCK CLOCK 单元手动实验状态的时钟来源下降沿打入 2 W K6(M6) 总线字长:1=16位字操作,0=8位字节操作 3 XP K7(M7) 源部件奇偶标志:1=偶寻址,0=奇寻址 4 X2 K10(M10) 源部件定义译码端X2 三八译码 八中选一5 X1 K9(M9) 源部件定义译码端X1

四、实验过程 1. 存储器数据段读写操作 (1) 数据段写操作(字) 在进行数据存储器字操作时,地址线A0必须为0(偶地址)。向数据段的0000~0005h 存储单元写入11 22 33 44 55 66一串数据,以0000h 地址单元写入数据1122h 为例表述操作流程。 置地址I/O=0000h AR 地址写入(0000h)置数据I/O=1122h 存储器写入(1122h)关存储器写X2 X1 X0=011XP W=11 LDAR(K17)=0 MWR(K21)=1按[单拍] E/M(K23)=1LDAR(K17)=1按[单拍] MWR(K21)=0 (2) 数据段读操作(字) 依次读出数据段0~0005h 单元的内容,这里以0000h 地址单元读出为例阐述操作流程。 置地址I/O=0000h AR 地址写入(0000h)关AR 写使能存储器读出(1122h)数据总线显示存储器值 X2 X1 X0=011XP W=11 LDAR(K17)=0 E/M(K23)=1LDAR(K17)=1按 [单拍] X2 X1 X0=100W=1 2. 存储器程序段读写操作 (1) 程序段字节写操作 计算机规范的取指操作均以字节为单位。所以本实验以字节操作方式展开。程序段写入必须从定义地址入手,然后再进入程序存储器的写入。 PC 指针是带预置加法计数器,因此在输入起始地址后一旦后续地址为PC+1的话就不需重装PC ,用PC+1指令完成下续地址的读写操作。 PC 地址装载写入与PC+1写入流程 置地址I/O=0000h PC 地址写入(0000h)I/O=1234h 12h →[PC]地址增量PC+1关存储器写X2 X1 X0=011XP W=11 E/M(K23)=0LDPC(K22)=0MWR(K21)=1W=0,按[单拍] LDPC(K22)=1MWR(K21)=0 E/M(K23)=1LDPC(K22)=1按[单拍] LDPC(K22)=0MWR(K21)=1XP=0,按[单拍] (2) 程序段字节读操作 PC 地址装载读出及PC+1读出流程 X2 X1 X0=011XP W=11 E/M(K23)=0LDPC(K22)=0X2 X1 X0=100XP=1, W=0 LDPC(K22)=1按[单拍] E/M(K23)=1LDPC(K22)=1按[单拍] 按[单拍] 五、结果分析

计算机仿真实验

计算机仿真实验报告 专业:电气工程及其自动化班级:09电牵一班学号:22 姓名:饶坚指导老师:叶满园实验日期:2012年4月30日 一、实验名称 三相桥式SPWM逆变电路仿真 二、目的及要求 1.了解并掌握三相逆变电路的工作原理; 2.进一步熟悉MA TLAB中对Simulink的使用及构建模块; 3.掌握SPWM原理及构建调制电路模块; 4.复习在Figure中显示图形的程序编写和对图形的修改。 三、实验原理与步骤、电路图 1、实验原理图

2、电路原理(采用双极性控制方式) U、V和W三相的PWM控制通常公用一个三角波载波Uc,三相的调制信号Uru、Urv和Urw依次相差120°。 电路工作过程(U相为例):当Uru>Uc时,上桥臂V1导通,下桥臂V4关断,则U相相对于直流电源假想中点N’的输出电压Uun’=Ud/2。当Uru

对电路模型进行封装如下图示:

其中Subsystem1为主电路,Subsystem2为负载,Subsystem3为检测电路,Subsystem4为输入信号,Subsystem5为调制电路,Scope 为示波器,Repeating Sequence为三角载波。 各子系统电路分别如下所示: Subsystem1 Subsystem2 Subsystem3

大学计算机实验报告

《大学计算机基础Ⅰ》课程 实验报告 (以上由学生填写) 西南大学计算机与信息科学学院 计算机基础教育系 2017年12月8日 实验成绩记载 课程Array实验报告一 一、实验题目:Win7得基本操作、文件管理与控制面板得使用 二、实验目得: 1.掌握“计算机"(资源管理器)得使用。 2.掌握文件与文件夹得基本操作。 3.了解显示属性得相关内容,掌握显示属性得设置。 4.掌握鼠标、键盘得属性设置。 5.掌握应用程序得添加/删除功能。 6.掌握输入法得设置方法.

7.掌握系统属性得设置方法。 8.掌握计算机名或域得查瞧及更改方法。 三、实验主要内容及过程(实验主要内容得介绍、主要得操作步骤) (列出实验主要内容通过截屏显示出操作过程以及实验结果) (一)文件与文件夹得管理 1、双击桌面上“计算机"→选择D盘→空白处右击选择“新建”重命名 文件夹→改名为“windows练习”→双击“windows练习"→右击空白处分别新建三个文件夹为“LX1”、“LX2”、“LX3”. 2、双击“C盘”打开→搜索框搜索“*、wmf”单击搜索按钮→选择任 意三个图片文件→右击→选择“复制”→粘贴至“LX1"文件夹中→并对三个文件分别重命名为“图片1、wmf”、“图片2、wmf”、“图片3、wmf”。 3、打开“LX1”文件夹→右击图片“1、wmf”→剪切→打开“LX2” 文件夹→右击空白处点击“粘贴”→选中剩下得两个文件→复制→打开“LX3”文件夹→右击选择“粘贴”→右击“LX2”选择“剪切” →打开“LX1”文件夹→右击选择“粘贴”

4、右击“LX3”文件夹→选择“属性”→选择“常规”属性卡→勾选“隐 藏”→右击“LX2"文件夹→选择“常规"属性卡→勾选“已读"

计算机仿真实验报告7

山东工商学院计算机仿真及应用实验报告 实验七 MATLAB的基本应用(二)及Simulink仿真 (验证性实验) 学院: 专业班级: 实验时间: 学号: 姓名:

一、实验目的 1、掌握连续信号的仿真和傅里叶分析方法 2、掌握连续系统的分析方法(时域分析法,拉氏变换法和傅里叶分析法); 3、掌握离散信号的仿真和分析运算方法 4、掌握离散系统的分析方法(时域分析法); 5、掌握符号运算方法; 6、掌握Simulink仿真工具; 二、实验原理 1、连续信号的仿真和分析法,参考教材第6.1节,重点: 单位冲激信号的仿真方法;单位阶跃信号的仿真方法;复指数信号的仿真方法 2、连续系统的分析方法,参考教材第6.1节,重点: 例6.2,LTI系统的零输入响应的求解方法; 例6.3,LTI系统的冲激响应的求解方法 例6.5,LTI系统的零状态响应的求解方法 例6.6,系统中有重极点时的计算 3、系统的频域分析方法,参考教材第6.2节,重点: 例6.7,方波分解为多次正弦波之和 例6.8:全波整流电压的频谱 例6.10:调幅信号通过带通滤波器 例6.12:用傅里叶变换计算滤波器的响应和输出 4、离散信号的仿真和分析法,参考教材第6.3节,7.1节,重点: 单位脉冲序列impseq,单位阶跃序列stepseq 例7.1:序列的相加和相乘 例7.2:序列的合成与截取 例7.3:序列的移位和周期延拓运算 三、实验内容(包括内容,程序,结果) 以自我编程练习实验为主,熟悉各种方法和设计,结合课堂讲授,实验练习程序代码。 1、根据教材第6.1节的内容,练习连续信号和系统的时域分析和拉氏变换方法。 q602 clear,clc a=input('输入分母系数向量a=[a1,a2,...]= '); n=length(a)-1; Y0=input('输入初始条件向量Y0=[y0,Dy0,D2y0,...]= '); p=roots(a);V=rot90(vander(p));c=V\Y0'; dt=input('dt= ');tf=input('tf= '); t=0:dt:tf;y=zeros(1,length(t));

大学计算机实验报告2

《大学计算机基础Ⅰ》课程 实验报告手册 \ 实验教师(签字) 西南大学计算机与信息科学学院 计算机基础教育系 年月日

一、实验说明 本课程实验分为一般性实验(验证和简单设计)和综合性实验(课程设计)两部分。从第3周开始参考实验任务书(本报告中的五部分)完成每周规定的实验,并根据进度按要求认真填写本实验报告中的六、七部分,此实验报告将作为实验成绩评定的依据之一。 本课程实验从开课学期第3周开始实习,每周2学时,16周结束,共28学时。除统一安排的时间外,学生还可根据自己的实际适当安排课余时间上机。上机内容参见本报告中的“五、实验任务书”部分。 二、实验目的 通过本实验,让学生掌握计算机的基本操作和基本技能,能够学会知识的运用与积累,能够举一反三,具备一定的独立解决问题的能力和信心,培养学生熟练地使用常用软件的能力及严肃认真的科学作风,为今后的学习和工作打下良好的基础。 三、实验要求 1、每次实验课将考勤,并作为实验成绩的重要依据。 2、每次实验前学生必须充分准备每次的实验内容,以保证每次上机实验的效果。实验过程中必须独立完成。 3、学期结束时,每位同学应将自己的《实验报告》交各专业班长或学习委员,由班长或学习委员以专业为单位、按学号从小到大排列好统一交给实验指导老师,否则无实验成绩。 四、实验报告要求 一共要求填写3个阶段性实验报告、1个综合性实验报告和1份学期总结,与每份实验报告对应产生的电子文档交由实验老师指定的位置,该电子文档也将作为实验成绩评定的依据之一。 五、实验任务书 教材:《大学计算机基础》第五版高等教育出版社 实验参考书:《大学计算机基础实践教程》高等教育出版社 实验一:指法练习、汉字录入 实验目的: 1.掌握鼠标和键盘的使用及正确的操作指法。 2.掌握微型计算机的打开和关闭操作 3.熟悉键盘指法和文字录入 4.了解中英文切换,全半角的切换 实验任务: 1.参见实验参考书中的实验1-1-1中的[任务1](7页) 2.参见实验参考书中的实验1-1-1中的[任务3](7页) 实验二:Windows的基本操作和文件管理操作 实验目的: 1.掌握Windows的基本知识和基本操作 2.掌握“Windows资源管理器”和“我的电脑”的使用 实验任务: 1.参见实验参考书中的实验1-2-1中的全部任务(14页) 2.参见实验参考书中的实验1-2-2中的全部任务(18页)

计算机图形学实验报告

计算机图形学 实验报告 姓名:谢云飞 学号:20112497 班级:计算机科学与技术11-2班实验地点:逸夫楼507 实验时间:2014.03

实验1直线的生成 1实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析 实验数据的能力; 编程实现DDA算法、Bresenham中点算法;对于给定起点和终点的 直线,分别调用DDA算法和Bresenham中点算法进行批量绘制,并记 录两种算法的绘制时间;利用excel等数据分析软件,将试验结果编 制成表格,并绘制折线图比较两种算法的性能。 2实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One(自制平台)。 本实验提供名为 Experiment_Frame_One的平台,该平台提供基本 绘制、设置、输入功能,学生在此基础上实现DDA算法和Mid_Bresenham 算法,并进行分析。 ?平台界面:如错误!未找到引用源。所示 ?设置:通过view->setting菜单进入,如错误!未找到引 用源。所示 ?输入:通过view->input…菜单进入.如错误!未找到引用 源。所示 ?实现算法: ◆DDA算法:void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) Mid_Bresenham法:void CExperiment_Frame_OneView::Mid_Bresenham(int X0, int Y0, int X1, int Y1)

3实验结果 3.1程序流程图 1)DDA算法流程图:开始 定义两点坐标差dx,dy,以及epsl,计数k=0,描绘点坐标x,y,x增 量xIncre,y增量yIncre ↓ 输入两点坐标x1,y1,x0,y0 ↓ dx=x1-x0,dy=y1-y0; _________↓_________ ↓↓ 若|dx|>|dy| 反之 epsl=|dx| epsl=|dy| ↓________...________↓ ↓ xIncre=dx/epsl; yIncre=dy/epsl ↓ 填充(强制整形)(x+0.5,y+0.5); ↓←←←← 横坐标x+xIncre; 纵坐标y+yIncre; ↓↑ 若k<=epsl →→→k++ ↓ 结束 2)Mid_Bresenham算法流程图开始 ↓ 定义整形dx,dy,判断值d,以及UpIncre,DownIncre,填充点x,y ↓ 输入x0,y0,x1,y1 ______↓______ ↓↓ 若x0>x1 反之 x=x1;x1=x0;x0=x; x=x0;

电路计算机仿真实验报告

电路计算机仿真分析 实验报告

实验一直流电路工作点分析和直流扫描分析 一、实验目的 1、学习使用Pspice软件,熟悉它的工作流程,即绘制电路图、元件类别的选择及其参数的赋值、分析类型的建立及其参数的设置、Probe窗口的设置和分析的运行过程等。 2、学习使用Pspice进行直流工作点分析和直流扫描分析的操作步骤。 二、原理与说明 对于电阻电路,可以用直观法(支路电流法、节点电压法、回路电流法)列写电路方程,求解电路中各个电压和电流。PSPICE软件是采用节点电压法对电路进行分析的。 使用PSPICE软件进行电路的计算机辅助分析时,首先在capture环境下编辑电路,用PSPICE 的元件符号库绘制电路图并进行编辑、存盘。然后调用分析模块、选择分析类型,就可以“自 动”进行电路分析了。需要强调的是,PSPICE软件是采用节点电压法“自动”列写节点电 压方程的,因此,在绘制电路图时,一定要有参考节点(即接地点)。此外,一个元件为一 条“支路”(branch),要注意支路(也就是元件)的参考方向。对于二端元件的参考方向定 义为正端子指向负端子。 三、示例实验 应用PSPICE求解图1-1所示电路个节点电压和各支路电流。 图1-1 直流电路分析电路图

4.000V R2 1 2.000A 0V Idc2 4Adc 4.000A 6.000V R1 1 4.000A Idc1 2Adc 2.000A R3 3 2.000A 图1-2 仿真结果 四、选做实验 1、实验电路图 (1)直流工作点分析,即求各节点电压和各元件电压和电流。 (2)直流扫描分析,即当电压源Us1的电压在0-12V之间变化时,求负载电阻R L中电流I RL随电压源Us1的变化曲线。 R4 3 Is3 2Adc 0Vs2 10Vdc RL 1 Is1 1Adc Is2 1Adc R1 4 I Is5 3Adc R2 2 12Vdc IPRINT Vs3 5Vdc Vs4 7Vdc 图1-3 选做实验电路图 2、仿真结果

计算机仿真实训实验报告实验1-4

实验一 熟悉MATLAB 工作环境 16电气5班 周树楠 20160500529 一、实验目的 1.熟悉启动和退出MATLAB 软件的方法。 2.熟悉MATLAB 软件的运行环境。 3.熟悉MATLAB 的基本操作。 二、实验设备及条件 计算机一台(带有MATLAB6.0以上的软件境)。 三、实验内容 1.练习下面指令: cd,clear,dir,path,help,who,whos,save,load 。 2.建立自己的工作目录MYBIN 和MYDATA ,并将它们分别加到搜索路径的前面或者后面。 3.求23)]47(*212[÷-+的算术运算结果。 4.M 文件的建立,建立M 文件,求出下列表达式的值: ?? ????-+=++=+= 545.0212),1ln(21 185sin 2222 1i x x x z e z o 其中

5.利用MATLAB的帮助功能分别查询inv、plot、max、round函数的功能和用法。 四、运行环境介绍及注意事项 1.运行环境介绍 打开Matlab软件运行环境有图1-1所示的界面

图1-1 MATLAB的用户界面 操作界面主要的介绍如下: 指令窗( Command Window ),在该窗可键入各种送给 MATLAB 运作的指令、函数、表达式,并显示除图形外的所以运算结果。 历史指令窗( Command History ),该窗记录已经运行过的指令、函数、表达式;允许用户对它们进行选择复制、重运行,以及产生 M 文件。 工作空间浏览器( Workspace Browser ),该窗口罗列出 MATLAB 工作空间中所有的变量名、大小、字节数;并且在该窗中,可对变量进行观察、编辑、提取和保存。 其它还有当前目录浏览器( Current Directory Browser )、 M 文件编辑 / 调试器(Editor/Debugger )以及帮助导航/ 浏览器(Help Navigator/Browser )等,但通常不随操作界面的出现而启动。 利用 File 菜单可方便对文件或窗口进行管理。其中 File | New 的各子菜单, M-file ( M 文件)、 Figure (图形窗口)、或 Model ( Simulink 编辑界面)分别可创建对应文件或模块。 Edit 菜单允许用户和 Windows 的剪切板交互信息。 2.在指令窗操作时应特别注意以下几点 1)所有输入的指令、公式或数值必须按下回车键以后才能执行。例如: >>(10*19+2/4-34)/2*3 (回车) ans= 234.7500 2)所有的指令、变量名称都要区分字母的大小写。 3)%作为MATLAB注释的开始标志,以后的文字不影响计算的过程。 4)应该指定输出变量名称,否则MATLAB会将运算结果直接存入默认的输出变量名ans。 5)MATLAB可以将计算结果以不同的精确度的数字格式显示,可以直接在指令视窗键入不同的数字显示格式指令。例如:>>format short (这是默认的) 6)MATLAB利用了↑↓二个游标键可以将所输过的指令叫回来重复使用。按下↑则前一次输入的指令重新出现,之后再按Enter键,即再执行前一次的指令。

大学生计算机实验报告(完整版)

《大学计算机基础》实验3.1 文件和文件夹的管理 实验报告 专业班级:经贸1103 姓名——- 学号201118910315 指导教师:———完成时间:2011.10 一、实验题目 文件和文件夹的管理 二、实验目的 1.熟悉Windows XP的文件系统。 2.掌握资源管理器的使用方法。 3.熟练掌握在Windows XP资源管理器下,对文件(夹)的选择、新建、移动、复制、删除、重命名的操作方法。 三、实验内容 1.启动资源管理器并利用资源管理器浏览文件。 2.在D盘创建文件夹 3.在所创建文件夹中创建Word文件。 4.对所创建文件或文件夹执行复制、移动、重命名、删除、恢复、创建快捷方式及设置共享等操作。 四、实验步骤 (一)文件与文件夹管理 1.展开与折叠文件夹。右击开始,打开资源管理器,在左窗格中点击“+”展开,点击“—”折叠 2.改变文件显示方式。打开资源管理器/查看,选择缩略、列表,排列图标等

3.建立树状目录。在D盘空白处右击,选择新建/文件夹,输入经济贸易学院,依次在新建文件夹中建立经济类1103班/王帅、王鹏 4..创建Word并保存。打开开始/程序/word,输入内容。选择文件/另存为,查找D盘/经济贸易学院/1103班/王帅,单击保存 5.复制、移动文件夹 6.重命名、删除、恢复。右击文件夹,选择重命名,输入新名字;选择删除,删除文件 7.创建文件的快捷方式。右击王帅文件夹,选择发送到/桌面快捷方式

8.设置共享文件。右击王帅,选择属性/共享/在网络上共享这个文件/确定 9.显示扩展名。打开资源管理器/工具/文件夹选项/查看/高级设置,撤销隐藏已知文件的扩展名 (二)控制面板的设置。 1.设置显示属性。右击打开显示属性/桌面、屏幕保护程序 2.设置鼠标。打开控制面板/鼠标/按钮(调整滑块,感受速度)、指针 3.设置键盘。打开控制面板/键盘/速度(调整滑块,感受速度)、硬件 4.设置日期和时间打开控制面板/日期和时间 5.设置输入法。打开控制面板/区域与语言选项/详细信息/文字服务与输入语言

控制系统计算机仿真实验报告

计算机仿真试验报告 自动化1201 ** 3120502007 [实验目的] (1).掌握采样控制系统数字仿真的特点。 (2).了解数字控制器对系统动态性能的影响。 (3).学会编制双重循环法的仿真程序。 (1). 复习采样控制系统的仿真原理及特点。 (2).根据理论分析,初步估计系统在给定条件下可能出现的动态过程。

(1).按实验目的、要求和已知条件,建立系统的Simulink模型,并且编制双重循环法的仿真程序。 1) Simulink模型建立: 根据题目给出的条件,数字控制系统的结构图如下图所示: 其中的其中数字控制器为: 根据上面结构图,所建立 2) 编制双重循环法的仿真程序 根据数字控制系统的结构图与条件(1)式,我们可以得到得到被控对象的状态空间模型:

[]112212()()0010()() ()110()()01()x t x t u t x t x t x t y t x t ?????????=+?????????-? ????????? ?? ?=??? ??? (2) 按连续系统离散相似算法将(2)式离散化。为了保证精度,其离散化时的步长h (虚 拟采样周期)应比数字控制器的实际采样周期T (=1s)小得多。为简化起见,取h=T/N=T/100=0.01T=0.01s 。 利用MATLAB 控制系统工具箱提供的将连续系统转换成离散系统的函数c2d ,把连续状态空间模型(2)变换为离散状态空间模型。 离散程序如下(程序1): clear; h=0.01; A=[0 0;1 -1]; B=[10;0]; [G,H]=c2d(A,B,h) 运行后的结果为: 即: 1 0(())0.010.99T ??==???? G Φ (3) 0.1(())0.0005T ?? ==? ? ?? H Γ (4) 故连续系统被控对象(2)的等价离散化状态方程为: []112212(1)()100.1()(1)()0.010.990.0005()()01()x k x k u k x k x k x k y k x k ?+???????? =+????????? +???? ?????? ?? ?=??? ??? (5)

《大学计算机基础》上机实验报告

《大学计算机基础》 上机实验报告 班级: 姓名: 学号: 授课教师: 日期:年月日

目录 一、Windows操作系统基本操作 ............................. - 1 - 二、Word文字处理基本操作 ................................ - 4 - 三、Excel电子表格基本操作 ............................... - 6 - 四、PowerPoint幻灯片基本操作 ............................ - 8 - 五、网页设计基本操作..................................... - 9 - 六、Access数据库基本操作 ............................... - 10 - 上机实验作业要求: ○1在实验报告纸上手写并粘贴实验结果; ○2每人将所有作业装订在一起(要包封面); ○3全部上机实验结束后全班统一上交; ○4作业内容不得重复、输入的数据需要有差别。

实验名称一、Windows操作系统基本操作 实验目的1、掌握Windows的基本操作方法。 2、学会使用“画图”和PrntScr快捷键。 3、学会使用“计算器”和Word基本操作。 实验内容 1、日历标注 利用“画图”和Word软件,截取计算机上日历的图片并用文字、颜色、图框等标注出近期的节假日及其名称,并将结果显示保存在下面(参考下面样图)。 运行结果是: 主要操作步骤是: 2、科学计算 利用“计算器”和Word软件,计算下列题目,并将结果截图保存在下面(参考样图)。 ○1使用科学型计算器,求8!、sin(8)、90、74、20、67、39、400、50.23、ln(785)的平均值、和值,并用科学计数法显示。 运行结果是: ②将以下十、八、十六进制数转换为二进制数:(894.8125)10、(37.5)8、(2C.4B)16 运行结果是:(需要下载使用“唯美计算器”) ○3计算下列二进制数的加法与乘法:101.1+11.11;1101*1011 运行结果是:(参考样图) 写出主要操作步骤: 3、实验心得体会

计算机图形学实验报告

计算机图形学 实验报告 学号:20072115 姓名: 班级:计算机 2班 指导老师:何太军 2010.6.19

实验一、Windows 图形程序设计基础 1、实验目的 1)学习理解Win32 应用程序设计的基本知识(SDK 编程); 2)掌握Win32 应用程序的基本结构(消息循环与消息处理等); 3)学习使用VC++编写Win32 Application 的方法。 4)学习MFC 类库的概念与结构; 5)学习使用VC++编写Win32 应用的方法(单文档、多文档、对话框); 6)学习使用MFC 的图形编程。 2、实验内容 1)使用WindowsAPI 编写一个简单的Win32 程序,调用绘图API 函数绘制若干图形。(可选任务) 2 )使用MFC AppWizard 建立一个SDI 程序,窗口内显示"Hello,This is my first SDI Application"。(必选任务) 3)利用MFC AppWizard(exe)建立一个SDI 程序,在文档视口内绘制基本图形(直线、圆、椭圆、矩形、多边形、曲线、圆弧、椭圆弧、填充、文字等),练习图形属性的编程(修改线型、线宽、颜色、填充样式、文字样式等)。定义图形数据结构Point\Line\Circle 等保存一些简单图形数据(在文档类中),并在视图类OnDraw 中绘制。 3、实验过程

1)使用MFC AppWizard(exe)建立一个SDI 程序,选择单文档; 2)在View类的OnDraw()函数中添加图形绘制代码,说出字符串“Hello,This is my first SDI Application”,另外实现各种颜色、各种边框的线、圆、方形、多边形以及圆弧的绘制; 3)在类视图中添加图形数据point_pp,pp_circle的类,保存简单图形数据,通过在OnDraw()函数中调用,实现线、圆的绘制。 4、实验结果 正确地在指定位置显示了"Hello,This is my first SDI Application"字符串,成功绘制了圆,椭圆,方形,多边形以及曲线圆弧、椭圆弧,同时按指定属性改绘了圆、方形和直线。成功地完成了实验。 结果截图: 5、实验体会 通过实验一,了解了如用使用基本的SDI编程函数绘制简单的图

相关文档
最新文档