文档库 最新最全的文档下载
当前位置:文档库 › 实验六模块化设计

实验六模块化设计

实验六模块化设计
实验六模块化设计

实验六模块化设计

实验目的

(1)体验结构化程序设计方法要点,理解模块化设计的思想,划分子模块的原则

(2)掌握is函数的定义和调用

实验内容

任务一改错求PI值error02_02.cpp

打开程序文件error02_02.cpp改正程序中的错误。根据下式求PI值,直到某一项小于10-6 PI/2=1+1!/3 +2!/(3*5)+…… +n!/(3*5*…*(2n-1))

正确运行结果

PI=3.14159

#include

#include

double fact(int n);

double multi(int n);

int main(void)

{

int i;

double sum, item, eps;

eps =1e-6;

sum = 1.0;

item = 1.0;

for(i = 1;item>=1e-6;i++)

{

item = fact(i) / multi(2*i + 1);

sum = sum + item;

} /* 调试时设置断点*/

printf("PI=%0.5lf\n", sum * 2);

system("pause");

return 0;

}

double fact(int n)

{

int i;

double res;

res = 1;

for(i = 1; i <= n; i++)

{

res = res * i;

}

return res; /* 调试时设置断点*/

}

double multi(int n)

{

int i;

double res;

res = 1;

for(i = 3; i <= n; i = i+2)

{

res = res * i;

}

return res; /* 调试时设置断点*/

}

任务二改错输出逆序数error02_03.cpp

打开程序文件error02_03.cpp改正程序中的错误。输入2个整数,分别将其逆向输出,要求定义并调用函数fun(n),它的功能是返回n的逆向值

正确运行结果

123 -910

123的逆向是321

-910的逆向是-19

#include

#include

int fun(int n);

int main(void )

{

int m1,m2;

scanf("%d%d", &m1, &m2);

printf("%d的逆向是%d\t", m1, fun(m1));

printf("%d的逆向是%d\n", m2, fun(m2));

system("pause");

return 0;

}

int fun(int n)

{

int m,y;

y = 0;

if(n<0)

{

m =-n;

}

else

{

m=n;

}

while(m!=0)

{

y = y* 10 + m%10;

m =(m-m%10)/10;

}

if(n>=0)

return y;

else

return -y;

}

任务三改写输出m-n之间所有的素数(ex6_1.cpp)

改写(sample02_07.cpp )保存为ex6_1.cpp:输出m-n之间所有的素数,调用int isprime(int n)函数,每行输出10个素数。

1.源程序清单:ex6_1.cpp

#include

#include

#include

int isprime(int n);

int main(void)

{

int count, a, b,m,n;

printf("输入m=");

scanf("%d",&m);

printf("输入n=");

scanf("%d",&n);

count = 0; /* count记录素数的个数,用于控制输出格式*/

for(a =m; a <=n; a++)

{

b=isprime(a) ;

if(b==1) /* 如果是素数*/

{

printf("%6d", a); /* 输出*/

count++; /* 累加已经输出的素数个数*/

if(count % 10 == 0) /* 如果是10的倍数换行*/

printf("\n");

}

}

printf("\n");

system("pause");

return 0;

}

int isprime(int n)

{

int i;

for(i =2; i <= n-1; i++)

if(n % i == 0) break;

if (i

else {return 1;}

}

2。实现算法(自然语言描述)

1.输入m,n

2.调用函数判断a是否为素数

若a是素数:输出a,累加已经输出的素数个数

若a不是素数:不做处理

3.每输出10个素数换行

任务四改写打印表格ex6_2.cpp

改写实验五任务四ex5_3.cpp,保存为ex02_07.cpp

(1)增加函数void PrtLine(int bottom,int height),已知底长和高,输出一行表格数据。

(2)增加函数void PrtBody(void) 打印表格除表头和标题以外的主体内容部分,调用PrtLine实现。

(3)在main函数中输出表头和标题,调用PrtBody打印表格主体。

源程序清单:ex6_2.cpp

#include

#include

void PrtLine(double bottom,double height);

void PrtBody(void);

void main()

{int i,j ;

double F,K,h,l,S;

printf("木材尺寸横截面积惯性力矩截面系数\n");

PrtBody();

system("pause");

}

void PrtBody(void)

{

int i,j ;

double h,l;

for(i=1;i<=5;i++)

{

l=i*2;

for(j=1;j<=6;j++)

{

h=j*2;

PrtLine(l,h);

}

}

}

void PrtLine(double bottom,double height)

{

double F,K,S;

S=bottom*height;

F=height*height*height*bottom/12;

K=bottom*height*height/6;

printf("%2.f*%4.f %5.f %8.2f %8.2f\n",bottom,height,S,F,K);

}

任务五编程给小学生出加法考试题ex6_3.cpp

编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程。

程序1 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! T ry again!”,程序结束。(ex6_3_1.cpp)

程序2 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! T ry again!”,直到做对为止。(ex6_3_2.cpp)

程序3 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! T ry again!”,最多给三次机会,如果三次仍未做对,则显示“Not correct! Y ou have tried three times! T est over!”,程序结束。(ex6_3_3.cpp)

程序4 连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题数。(ex6_3_4.cpp) 程序5 通过计算机随机产生10道四则运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数。(ex6_3_5.cpp)

【思考题】如果要求将整数之间的四则运算题改为实数之间的四则运算题,那么程序该如何修改呢?请修改程序,并上机测试程序运行结果。

1、将int型修改为double型

2、在整数的后面再随机的取2个数!!!!!!!

源程序清单:(ex6_3_5.cpp)

程序一

#include

#include

int main()

{

int m,n,y;

printf("输入m,n:");

scanf("%d,%d",&m,&n);

printf("m+n=");

scanf("%d",&y);

if(y==m+n)

{

printf("Right!");

}

else

{

printf("Not correct! Try again!");

}

system("pause");

return 0;

}

程序二:

#include

#include

void correct(int m,int n );

int main()

{

int m,n;

printf("输o?入¨?m,n:");

scanf("%d,%d",&m,&n);

correct(m,n);

system("pause");

return 0;

}

void correct(int m,int n)

{

int y;

printf("m+n=");

scanf("%d",&y);

if(y==m+n)

{

printf("Right!");

}

else

{

printf("Not correct! Try again!\n");

while(y!=m+n)

{

correct(m,n);

}

}

}

程序三:

#include

#include

int main()

{

int m,n,sum,i=0;

printf("输入m,n:");

scanf("%d,%d",&m,&n);

printf("m+n=");

scanf("%d",&sum);

for(i=0;i<3;i++)

{

if(sum==m+n)

{

printf("right");

break;

}

else

{

printf("input again:m+n=");

scanf("%d",&sum);

}

}

if(i>=3)

{

printf("Not correct! You have tried three times! Test over!");

}

system("pause");

return 0;

}

程序四:

#include

#include

#include

void main()

{

int m,n,x,i,k;

k=0;

for(i=1;i<=10;i++)

{ srand(time(0));

m=rand()%10+1;

n=rand()%10+1;

printf("%d+%d=",m,n);

scanf("%d",&x);

if(x==m+n)

{

printf("Righr!\n");

k=k+1;

}

else

{

printf("Not corret!\n");

}

}

printf("总分=%d\n总共10题,做对%d题,做错%d题",k*10,k,10-k);

system("pause");

}

任务五:

#include

#include

#include

void add(void);

void red(void);

void mul(void);

void di(void);

void main()

{

int i,m

m=10;

srand(time(NULL));

for(i=0;i<10;i++)

for(j=0;j<2;j++)

{

b[i][j]=1+10*rand()/(RAND_MAX+1);

}

while(m)

{

srand(time(NULL));

t=1+rand()%3+1;

switch(t)

{

case 1:add();n++;break;

case 2:red();n++;break;

case 3:mul();n++;break;

case 4:di();n++;break;

}

m=m-1;

}

printf("总分:%d\n做对%d题\n做错%d题\n",10*k,k,10-k);

system("pause");

}

void add(void)

{

int j,s,x;

s=0;

for(j=0;j<2;j++)

printf("%d+",b[n][j]);

printf("\b \n");

printf("请输入答案:");

scanf("%d",&x);

for(j=0;j<2;j++)

s+=b[n][j];

if(x==s)

{

printf("正确!\n");

k=k+1;

}

else

printf("不正确!\n");

}

void red(void)

{

int j,s,x;

s=0;

for(j=0;j<2;j++)

printf("%d-",b[n][j]);

printf("\b \n");

printf("请输入答案:");

scanf("%d",&x);

s=b[n][0]-b[n][1];

if(x==s)

{

printf("正确!\n");

k=k+1;

}

else

printf("不正确!\n");

void mul(void)

{

int j,s,x;

s=0;

for(j=0;j<2;j++)

{

printf("%d*",b[n][j]);

}

printf("\b \n");

printf("请输入答案:");

scanf("%d",&x);

s=b[n][0]*b[n][1];

if(x==s)

{

printf("正确!\n");

k=k+1;

}

else

printf("不正确!\n");

}

void di(void)

{

int j,x,s;

s=0;

for(j=0;j<2;j++)

printf("%d/",b[n][j]);

printf("\b \n");

printf("请输入答案(整数):");

scanf("%d",&x);

s=b[n][0]/b[n][1];

if(x==s)

{

printf("正确!\n");

k=k+1;

}

else

printf("不正确!\n");

}

或者:

#include

#include

#include

void main()

{

int i,m,n,sum,y,x;

sum=0;

for(i=0;i<10;i++)

{

srand(time(0));

m=rand()%10+1;

n=rand()%10+1;

x=rand()%4;

if(x==0)

{

printf("%d+%d=",m,n);

scanf("%d",&y);

if(y==m+n)

{

printf("Right!\n");

sum=sum+1;

}

else

{

printf("Not corret!\n");

}

}

if(x==1)

{

printf("%d-%d=",m,n);

scanf("%d",&y);

if(y==m-n)

{

printf("Right!\n");

sum=sum+1;

}

else

{

printf("Not corret!\n");

}

}

if(x==2)

{

printf("%d*%d=",m,n);

scanf("%d",&y);

if(y==m*n)

{

printf("Right!\n");

sum=sum+1;

}

else

{

printf("Not corret!\n");

}

}

if(x==3)

{

printf("%d/%d(整数)=",m,n);

scanf("%d",&y);

if(y==m/n)

{

printf("Right!\n");

sum=sum+1;

}

else

{

printf("Not corret!\n");

}

}

}

printf("总分:%d\n做对%d题\n做错%d题\n",10*m,m,10-m);

system("pause");

}

任务六编程菜单程序(ex6_4.cpp)

1.运行程序,了解程序功能

(1)在cmd窗口运行程序graph.exe,在菜单程序中分别输入1、2、3、4、5、6,观察程序的运行结果,输入0程序结束。

(2)下图为graph.exe的程序模块图,打开ex6_4.cpp,文件给出了程序的框架结构,

2.编写函数,完整程序ex02_10.cpp并上交源程序

打开ex02_10.cpp,文件中已给出了函数displayMenu和processChoice的代码。请编写6个打印图案的程序,要求输入n,打印n行如graph.exe运行所示的图形,并在main函数中调用函数displayMenu和processChoice完成菜单程序。

2.

#include

#include

#include

using namespace std;

void processChoice(int index);

void displayMenu();

void printStar_1();

void printStar_2();

void printStar_3();

void printStar_4();

void printStar_5();

void printStar_6();

void main()

{

int choice;

while(1)

{

system("cls");

displayMenu();

scanf("%d",&choice);

if(!choice)

break;

else

processChoice(choice);

}

}

void displayMenu()

{

getch();

cout<<"**************************"<

cout<<"* 1.pattern one *"<

cout<<"* 2.pattern two *"<

cout<<"* 3.pattern three *"<

cout<<"* 4.pattern four *"<

cout<<"* 5.pattern five *"<

cout<<"* 6.pattern six *"<

cout<<"* 0.exit *"<

cout<<"**************************"<

void processChoice(int index)

{switch(index)

{ case 1:printStar_1();break;

case 2:printStar_2();break;

case 3:printStar_3();break;

case 4:printStar_4();break;

case 5:printStar_5();break;

case 6:printStar_6();break;

}

}

void printStar_1()

{ int i,j;

int number;

cout<<"pattern one"<

printf("number=");

scanf("%d",&number);

for(i=number;i>0;i--)

{

for(j=number;j>=i;j--)

cout<<"*";

cout<

}

getch();

}

void printStar_2()

{ int i,j;

int number;

cout<<"pattern two"<

printf("number=");

scanf("%d",&number);

for(i=1;i<=number;i++)

{

for(j=i;j<=number;j++)

cout<<"*";

cout<

}

getch();

}

void printStar_3()

int i,j;

int number;

cout<<"pattern three"<

for( i=1;i<=number;i++)

{

for( j=1;j

{

printf(" ");

}

for( j=1;j<=number-i+1;j++)

{

printf("*");

}

printf("\n");

}

getch();

}

void printStar_4()

{

int i,j;

int number,x;

cout<<"pattern four"<

for(x=1;x<=number;x++)

{

for(i=number-x;i>0;i--)

{

printf(" ");

}

for(j=1;j<=x;j++)

{

printf("*");

}

printf("\n");

}

getch();

}

void printStar_5()

int i,j;

int number;

cout<<"pattern five"<

for(i=1;i<=number;i++)

{

for(j=1;j<=i;j++)

{

printf("*");

}

for(j=1;j<=number-i;j++)

{

printf(" ");

}

printf(" ");

for(j=1;j<=number-i+1;j++)

{

printf("*");

}

for(j=1;j<=i-1;j++)

{

printf(" ");

}

printf(" ");

for(j=1;j<=i-1;j++)

{

printf(" ");

}

for(j=1;j<=number-i+1;j++)

{

printf("*");

}

printf(" ");

for(j=1;j<=number-i;j++)

{

printf(" ");

}

for(j=1;j<=i;j++)

{

printf("*");

}

printf("\n");

getch();

}

void printStar_6()

{

int i,j;

int number;

cout<<"pattern six"<

printf("number=");

scanf("%d",&number);

for(i=1;i<=number/2;i++)

{

for(j=1;j<=number/2-i;j++)

{

printf(" ");

}

for(j=1;j<=2*i-1;j++)

{

printf("*");

}

printf("\n");

}

for(i=1;i

{

for(j=1;j<=i;j++)

{

printf(" ");

}

for(j=1;j<=2*(number/2-i)-1;j++)

{

printf("*");

}

printf("\n");

}

getch();

}

3.写出函数printStar_1,printStar_2,printStar_3,printStar_4,printStar_5,printStar_6的算法。

printStar_1

一、当i大于等于1,小于等于10,step1,循环

1、当j大于等于1,小于等于i,step1,循环

输出“*”

2、换行

二、清屏

printStar_2

一、当i等于10,大于0,i--,循环

1、当j大于等于1,小于等于i,step1,循环

输出“*”

2、换行

二、清屏

void printStar_3

一、当i大于等于1,小于等于10,step1,循环

1、当j大于等于1,小于i,step1,循环

输出空格

2、当j大于等于1,小于等于10-i+1,step1,循环

输出“*”

3、换行

三、清屏

printStar_4

一、当i小于等于10,大于0,i——,循环;

1、当j大于等于1,小于i,j++,循环;

输出空格

2、当j大于等于i,小于等于10,step1,循环;

输出“*“

3、换行

二、清屏

printStar_5

一、当i大于等于1,小于等于10,step1,循环;

1、当j大于等于1,小于等于i,step1,循环;

输出“*“

2、当j大于i,小于等于10,step1,循环;

输出空格

3、输出两个空格

4、当j大于等于1,小于等于10-i+1,step1,循环

输出“*”

5、当j大于等于i,小于等于10,step1,循环

输出空格

6、输出两个空格

7、当j大于等于1,小于i,step1,循环

输出空格

8、当j大于等于i,小于等于10,step1,循环

输出“*”

9、输出两个空格

10、当j大于等于1,小于等于10-i,step1,循环

输出空格

11、当j大于等于i,小于等于10,step1,循环

输出“*”

12、换行

二、清屏

void printStar_6()

一、当i大于等于1,小于等于5,step1,循环

1、当j大于等于1,小于等于5-i,step1,循环

输出空格

2、当j大于等于1,小于等于2*i-1,step1,循环

输出“*”

3、换行

二、当i大于等于1,小于5,step1,循环

1、当j大于等于1,小于等于i,step1,循环

输出空格

2、当j大于等于2,小于等于2*(5-i)—1;step1,循环

输出“*”

4、换行

三、清屏

任务七补充(选做)编程计算折线映射面积ex6_5.cpp

一对实数可以表示平面上的一个点的坐标,一系列的实数对,当这些数对里的第一个数为递增时,把它们表示的平面点连接起来,可以得到一条与x轴同方向的折线。由一条这种折线、该折线两端引向x轴的垂线,以及x轴本身,能够形成一个封闭区域的边界。请写一个程序,它接受一系列由标准输入得到的数对,最后计算这些数对所确定的区域的面积。规定用一对零(0.0,0.0)表示输入的结束。可先假定输入的数对中x的值总是递增的,y值均不为负。进一步说,(1)输入的数对中x的值不是递增的,也可视为输入结束。

(2)如果y值可以为负,如何修改程序。G

创建程序ex02_11.cpp,设计程序的合理模块结构,编写函数,完成程序并上交源程序

问题分析:

一、输入n组数对(分别输入x、y)

1、如果有一组数对为(0,0)(即x=0,y=0)

则结束输入;

2、如果x为递减的

则结束输入

二、将该区域分别化为规则的四边形求解面积,将面积汇总

三、输出面积之和

程序结构模块图:

AD教案实验6单片机最小系统原理图设计

实验六单片机最小系统原理图设计 1 实验目的及要求 ?熟悉Altium designer的操作 ?能够画库原件中没有的库以及封装,并能加载到库,在原理图中熟练调用 ?能够设计较为复杂的电路原理图,并输出元件清单表 2 实验设备 装有Altium designer的电脑一台 3 实验步骤 新建设计工作区:文件-新建-设计工作区 新建PCB工程:文件-新建-工程-PCB工程 新建原理图,PCB图,原理图库以及PCB图库:文件-新建-原理图/PCB/库-原理图库/PCB图库 保存PCB工程文件到以自己名字新建的文件夹里面,保存文件名为51DPJ,文件类型为默认。(实验五已经新建完的可以直接打开,不用再新建一遍了。) 然后在新建完的原理图的里面把本次实验的原理图设计出来。本次实验注重在原理图的编辑以及PCB的制作,以51单片机最小系统为例,大家做的时候可以不完全按照所给原理图画,然后很多元器件可以在网上找到PDF的文档资料,资料中会比较详细介绍元器件的信息,封装,电路图,实物图,以及检测的效果图,电路中的封装基本按照上面来做。

图3 实验原理图 输出元件清单表BOM BOM表对一个项目来说非常重要,因为这张表不仅包含了原理图上的所有元件,同事也是生成部分和采购部门的重要参考文件,因为生成部要利用BOM知道元件的位置及型号,二采购部要知道元件完整型号以及精度等级等参数从而去进行选购,因此,工程师一定要保证BOM单不能出错,否则造成的麻烦可能影响你的产品设计周期。 完整BOM单输出: ?进入BOM单输出对话框:单机菜单Reports---bill of Materials进入BOM单输出对 话框 ?设置BOM单格式并输出:All columns 表格内用于选择 BOM单要添加的栏;从 all columns 栏选中某关键字拖拽到 Grouped Columns 栏用于设置以前关键字进行整行合并;Export 区域内用于设置 BOM 单输出格式;最后单击 EXPORT 按钮导出BOM 单。 ?变量BOM单输出:按照第二部设置好BOM格式后,如果要以变量形式输出 BOM单,课单机Menu按钮,从中选择Change Variant 变量,再到处BOM单既可以变量形式输出。

《管理信息系统》课程设计实验报告

《管理信息系统》课程设计实验报告 课程名称:管理信息系统 指导老师: ******* 院系:商学院 专业班级: ******** 姓名: ******** 学号: ******** 实验日期: 2011.7.11 实验地点:一机房

《管理信息系统》课程设计任务书 一.课程设计目的及意义: 《管理信息系统》课程设计是在完成《管理信息系统》课程学习之后的一次实践性教 学,是本课程理论知识的一次综合运用。通过本课程设计,能够进一步加深对信息、信息系 统、管理信息系统等基础理论知识的理解,能初步掌握结构化的生命周期法、面向对象法等 系统工程方法,进一步加强熟练应用管理信息系统的操作技能,并能够借助于管理信息系统 解决实际问题。 二.课程设计要求: 1.本课程设计时间为一周。 2.本课程设计以教学班为单位进行上机操作及实验。 3.按照任务要求完成课程设计内容。 三.课程设计任务要求: 1.任务内容:进入山东轻工业学院主页,在“网络资源”区域进入“网络教学平台”,输入各自的用户名和密码(学生学号及密码),进入本网络教学平台系统,在充分熟悉本系统 的前提下,完成下列任务要求。 2.任务要求: ①按照课程讲解的系统分析步骤和理论对本系统进行系统分析。 ②绘制不少于 3 个的主要业务流程图。 ③描述上述主要业务流程图的逻辑处理功能。 ④分析本系统的优缺点,提出改进意见,并描述改进的逻辑处理功能,绘制业务流 程图。 四.课程设计评分标准: 按照《管理信息系统课程设计大纲》的要求,本课程 1 学分,采用百分制计分,其中 任务要求②占30 分,任务要求③占30 分,任务要求④占30 分,考勤及实践表现占10 分。五.本课程设计自2011 年 6 月 27 日至 2011 年 7 月 1 日。

C语言用函数实现模块化程序设计

第7章用函数实现模块化程序设计 习题与思考 2.在C语言中,函数的隐含存储类别是_____A_____. A)auto B)static C)extern D)无存储类别 要点分析:本习题考察变量的存储类别。C语言规定,如不指定变量的存储类别,系统默认为自动类型的,即auto型。 3.以下所列的各函数首部中,正确的是_____C_____. A)void play(var:Integer,var b:Integer) B)void play(int a,b) C)void play(int a,int b) D)Sub play(a as integer,b as integer) 要点分析:本习题考察函数的定义。要求函数首部的各个形式参数应分别指出其数据类型。 4.以下程序的输出结果是_____C_____. fun(int x,int y,int z) { z=x*x+y*y;} void main( ) { int a=31; fun(5,2,a); printf("%d",a);} A)0 B)29 C)31 D)无定值要点分析:本习题考察形参和实参的关系。函数一旦发生传值调用,把实参的值传递给形参后,实参的值仍保留原值。 5.以下程序的输出结果是_____A_____. f( int b[ ],int m, int n ) { int i,s=0; for(i=m;i

return s; } void main( ) { int x,a[ ]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d\n",x); } A) 10 B) 18 C) 8 D) 15 要点分析:本习题考察数组做函数的参数,此时实参为数组名,形参数组不再重新分配存储空间,形参数组共占实参数组所在的存储空间。数组做函数参数是学生出错误比较多的知识点。 7.以下程序的输出结果是_____D_____. int f( ) { static int i=0; int s=1; s+=i;i++; return s;} void main( ) { int i,a=0; for(i=0;i<5;i++)a+=f(); printf("%d\n",a); } A) 20 B) 24 C) 25 D) 15 要点分析:本习题考察静态局部变量。静态局部变量的值在调用结束后仍保持结束后的值。静态局部变量是变量的存储类别的重点,学生应该掌握并应用。 8. 以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。 int fun( int n) { int m=0,f=1,i; for(i=1; i<=n; i++) { m+=i*f; f= _____-f_____ ; } return m; } void main( ) { printf("m=%d\n", _____fun(10)_____ ); } 要点分析:本习题考察函数的调用。通过编写fun函数求得累加和。

模块化设计方法的设计流程

BJ-EPM240T100学习板实验教程 模块化设计方法的设计流程 将这种模块化设计思路运用于FPGA/CPLD设计,将大规模复杂系统按照一定规则划分成若干模块,然后对每个模块进行设计输入、综合,并将实现结果约束在预先设置好的区域内,最后将所有模块的实现结果有机地组织起来,就能完成整个系统的设计。 (1)顶层模块的设计:项目管理者需要完成顶层模块的设计输入与综合,为进行Modular Design实现阶段的第一步—初始预算阶段(Initial Budgeting Phase)做准备。 (2)子模块的设计:每个项目成员相对独立地并行完成各自子模块的设计输入和综合,为进行Modular Design实现阶段的第二步—子模块的激活模式实现(ActiveModule Implementation)做准备。 模块化设计的实现步骤是整个模块化设计流程中最重要、最特殊的,它包含: (1)初始预算–本阶段是实现步骤的第一步,对整个Modular Design起着指导性的作用。在初始预算阶段,项目管理者需要为设计的整体进行位置布局,只有布局合理,才能够在最大程度上体现Modular Design的优势;反之,如果因布局不合理而在较后的阶段需要再次进行初始预算,则需要对整个实现步骤全面返工。 (2)子模块的激活模式实现(Active ModuleImplementation)--在该阶段,每个项目成员并行完成各自子模块的实现。 (3)模块的最后合并(Final Assembly)--在该阶段项目管理者将顶层的实现结果和所有子模块的激活模式实现结果有机地组织起来,完成整个设计的实现步骤。 模块化设计中模块划分的基本原则为: 子模块功能相对独立,模块内部联系尽量紧密,而模块间的连接尽量简单。

药理学实验设计第六组

氯丙嗪的镇吐、降温作用及对电刺激小鼠激怒反应的影响一、目的 1.观察氯丙嗪对电刺激小鼠激怒反应的影响 2.了解催吐作用的试验方法,观察氯丙嗪的镇吐作用。 3.观察氯丙嗪对小鼠的降温作用及其特点 二、作用机制 1.氯丙嗪的镇静作用是通过阻断中脑-边缘叶及中脑-皮质通路中的多巴胺 受体。(镇静) 2.氯丙嗪可以阻断了延脑第四脑室底部的催吐化学感受区的D2受体,大剂 量的氯丙嗪直接抑制呕吐中枢。(镇吐) 3.氯丙嗪对下丘脑的调节中枢的抑制。(降温) 三、实验材料 动物:小白鼠,体重18~22g,雌雄不拘。 药品:0.08%氯丙嗪,生理盐水,0.4%氯丙嗪,0.4%酒石酸锑钾,生理盐水,0.03%氯丙嗪,生理盐水,液体石蜡。 器材:药理生理多用仪及附件激怒盒、万用电表、小动物电子秤、鼠笼、1ml 注射器、5号针头,小铁丝笼、小动物电子秤(或天平)、5ml注射器,口腔温度计、1ml注射器、小铁丝笼。 四、实验步骤 将小鼠编号0——11 (一)电刺激激怒实验 实验装置的连接和调置:将药理生理多用仪后板上的开关拔向“激怒”一边,交流电输出电压的电位调节旋钮逆时针旋转至最小,交流电输出接线一端插入“交流输出”插座,另一端分别夹在附件激怒盒的红、黑柱上,即与刺激盒的导电铜丝板相联。交流输入线一端插入“交流输入”插座,另一端接实验室电源。刺激方式拨到“连续B”,“B时间”置于1s,“A频率”置于4Hz,然后用万用表测其阈电压。 诱发小白鼠激怒反应:取异笼喂养的小白鼠各1只,称重后将2只小白鼠放入附件激怒盒的导电铜丝板上,把盖子盖上后,将电源打开,顺时针调节交流电压输出旋钮,直至引起小白鼠激怒反应,刺激电压一般为30V左右。激怒现象表现为:两鼠对应、前肢离地、对峙、互相撕咬等。若刺激1min以上仍未出现者弃之不用。以上法挑选有激怒反应的合格小白鼠两对,并记录其刺激电压。 给药及观察:取一对小白鼠腹腔注射0.08%氯丙嗪 0.1ml/10g,另一对腹腔注射生理盐水0.1ml/10g。给药后20min,先用万用电表调节刺激输出电压至给

学生成绩管理系统设计实验

实验六学生成绩管理系统设计实验 一、实验目的 1、熟悉汇编语言程序结构; 2、熟悉 INT 21H 的文件操作功能调用; 3、熟悉 INT 21H 的 1、9 号功能和 INT 10H 常用功能的使用方法; 4、掌握多子程序复杂问题程序设计方法; 5、掌握利用汇编语言实现字符串的输入输出程序设计方法; 6、了解多模块程序设计方法。 二、实验原理 我们把可以多次调用、具有通用性、能完成特定功能的程序段编写成的独立程序模块称为子程序。子程序是把一个程序划分成若干模块所用的主要手段,它便于独立设计、测试程序和编制程序文件。 三、实验内容 1、实验要求 设计一个学生成绩管理系统,要求完成文件建立、学生成绩录入、显示指定学号的学生记录、删除一个学生的记录、修改学生记录、返回等工作。学生成绩包括学号(XH)、姓名(XM)、数学(SX)、语文(YW)、外语(WY)字段。至少包括30 名学生信息,每名学生学号字段为 4个字符,姓名字段为 15 个字符(最大),每门成绩字段为 3 个字符(最大)。 程序设计步骤如下: 1、编写主程序 main.asm; 2、编写文件创建子程序create实现在指定盘指定文件夹“ d: ”下建立一个指定名称的文件 2009doc.dat; 3、编写成绩录入子程序append,实现在指定文件尾部插入一个学生的成绩记录; 4、编写显示子程序display,实现按指定学号显示一个学生的记录; 5、编写修改子程序modify,实现按指定学号修改一个学生的记录字段(不需修改直接回车); 6、编写删除子程序,实现按指定学号、姓名删除一个学生的记录; 7、编译、链接、调试,产生可执行文件main.exe。 2、程序流程图

系统设计实验报告

系统设计实验报告——远程在线考试系统

目录软件需求说明书························1 引言··························· 1.1编写目的······················· 1.2背景························· 1.3定义························· 1.4参考资料······················· 2 程序系统的结构························ 3 程序设计说明·························

1引言 1.1编写目的 本文档的编写目的是为远程在线考试系统项目的设计提供: a.系统的结构、设计说明; b.程序设计说明; c. 程序(标识符)设计说明 1.2背景 随着网络技术的飞速发展,现在很多的大学及社会上其它的培训部门都已经开设了远程教育,并通过计算机网络实现异地教育。但是,远程教育软件的开发,就目前来说,还是处于起步的阶段。因此,构建一个远程在线考试系统,还是有很大的实际意义的。 根据用户提出的需求,本项目组承接该系统的开发工作 a.开发软件系统的名称:远程在线考试系统 b.本项目的任务提出者:福州大学软件学院 c.用户:各类大专院校学校、中小学校。 1.3定义 远程在线考试系统 远程在线考试系统是基于用Browser/Web模式下的,可以实现考试题库管理、多用户在线考试、自动阅卷功能的系统。

1.4参考资料 ?GB 8566 计算机软件开发规范 ?GB 8567 计算机软件产品开发文件编制指南?软件设计标准 ?《ASP与SQL-Server2000》清华大学出版社?《可行性研究报告》 ?《项目计划文档》 ? 2程序系统的结构 3程序1(标识符)设计说明

模块化程序设计练习题及答案

第四章模块化程序设计练习题及参考答案 一、填空题 1、以下程序的运行结果是(111),把x定义为静态变量运行结果是(123)。void increment(void) { int x=0; x+=1; printf("%d",x);} main() { increment(); increment(); increment(); } 2、若输入的值是-125,以下程序的运行结果是(-125=-5*5*5) #include "" main() { int n; void f(int n); scanf("%d",&n); printf("%d=",n); if(n<0) printf("-"); n=fabs(n); fun(n); } void fun(int n) { int k,r; for(k=2;k<=sqrt(n);k++) { r=n%k; while(r==0) { printf("%d",k); n=n/k; if(n>1)printf("*"); r=n%k; } } if(n!=1) printf("%d\n",n); } 3、设有以下宏定义: #define WIDTH 80 #define LENGTH WIDTH+40 则执行赋值语句:v=LENGTH*20;(v为int型)后,v的值是(880) 4、设有以下宏定义: #define WIDTH 80 #define LENGTH (WIDTH+40)

则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是(2400) 5、下面程序的运行结果是(5) #define DOUBLE(r) r*r main() { int x=1,y=2,t; t=DOUBLE(x+y); printf("%d\n",t);} 6、下面程序的运行结果是(36) #define MUL(z) (z)*(z) main() { printf("%d\n",MUL(1+2)+3); } 7、下面程序的运行结果是(212) #define POWER(x) ((x)*(x)) main() { int i=1; while(i<=4) printf("%d,",POWER(i++)); } 8、下面程序的运行结果是(9) #define MAX(a,b) (a>ba:b)+1 main() { int i=6,j=8,k; printf("%d\n",MAX(i,j)); } 二、选择题 1、以下正确的说法是(D)建立自定义函数的目的之一是: A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 2、以下正确的说法是(B) A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失原有含义。 C)系统根本不允许用户重新定义标准库函数。 D)用户若需调用标准函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调用。 3、以下正确的函数定义形式是(C) A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)double fun(int x,y) 4、以下正确的说法是(D)。在C语言中: A)实参与其对应的形参各占用独立的存储单元。 B)实参和与其对应的形参共占用一个存储单元。 C)只用当实参和与其对应的形参同名时才共占用存储单元。

模块化设计方法及其在机械设计中的应用

模块化设计方法及其在机械设计中的应用 摘要:随着社会经济的发展,为了提高企业生产效率,模块化设计理念在机械设计领域日益广泛,其对于整合市场、优化结构具有重要意义。我们要树立创新意识,加强其在机械设计中的研究运用,实现模块化的转变。 关键词:模块化;设计方法;机械设计 随着技术的发展和经验的总结,在机械设计中,越来越多的设计方相继出现,并逐渐得到广泛的运用。在实际工作中传统的机械包装方法的弊端日益显现,越来越多不适应机械设计的需要,而模块化设计方法逐渐得到广泛的运用。 1 机械产品模块化涵义 模块化就是以它的观点去对产品或者系统进行策划和生产方案,在某个限度内的一样或者存在差异的功能、相异规格的产品探究讨论,区分并设计。机械产品的模块化主要可从以下几方面进行分析: (1)功能需求集,指的是市场和客户对模块化产品基本功能要求的合集。产品的功能需求是进行产品模块化的重要内容,是产品发展的重要方向。 (2)功能模块,强调的为产品里所能够充分发挥其性能因素的作用. (3)结构模块,指的是功能模块的具体结构,一般由部件或子结构模块组成。 (4)模块接口,指的是描述结构模块组合时相互间的几何、物理关系的结合面,模块接口是模块组合的重要依据。 (5)基础模块,通用型接口模块,能够满足基本功能,而得以实现的定向模块功能演进的模块形式。 2 模块化设计 2.1 模块划分标准 为了让人们对模块化设计方法在机械设计中运用有更为详细的了解,对模块化的设计进行划分,在数控立式车床设计中,运用模块化设计方法,其中最为关键的内容是进行功能与结构分析,这是决定设计效果的关键内容。因此,设计开始前,要对模块进行处理,详细划分模块。当前,还没有任何一种标准可以作为模块划分原则。这里,依据不同侧重点,对不同模块进行划分。模块具有独立性,

药理学实验设计第六组(完整资料).doc

【最新整理,下载后即可编辑】 氯丙嗪的镇吐、降温作用及对电刺激小鼠激怒反应的影响一、目的 1.观察氯丙嗪对电刺激小鼠激怒反应的影响 2.了解催吐作用的试验方法,观察氯丙嗪的镇吐作用。 3.观察氯丙嗪对小鼠的降温作用及其特点 二、作用机制 1.氯丙嗪的镇静作用是通过阻断中脑-边缘叶及中脑-皮质通 路中的多巴胺受体。(镇静) 2.氯丙嗪可以阻断了延脑第四脑室底部的催吐化学感受区的 D2受体,大剂量的氯丙嗪直接抑制呕吐中枢。(镇吐) 3.氯丙嗪对下丘脑的调节中枢的抑制。(降温) 三、实验材料 动物:小白鼠,体重18~22g,雌雄不拘。 药品:0.08%氯丙嗪,生理盐水,0.4%氯丙嗪,0.4%酒石酸锑钾,生理盐水,0.03%氯丙嗪,生理盐水,液体石蜡。 器材:药理生理多用仪及附件激怒盒、万用电表、小动物电子秤、鼠笼、1ml注射器、5号针头,小铁丝笼、小动物电子秤(或天平)、5ml注射器,口腔温度计、1ml注射器、小铁丝笼。 四、实验步骤 将小鼠编号0——11 (一)电刺激激怒实验 实验装置的连接和调置:将药理生理多用仪后板上的开关拔向“激怒”一边,交流电输出电压的电位调节旋钮逆时针旋转至最小,交流电输出接线一端插入“交流输出”插座,另一端分别夹在附件激怒盒的红、黑柱上,即与刺激盒的导电铜丝板相联。

交流输入线一端插入“交流输入”插座,另一端接实验室电源。刺激方式拨到“连续B”,“B时间”置于1s,“A频率”置于4Hz,然后用万用表测其阈电压。 诱发小白鼠激怒反应:取异笼喂养的小白鼠各1只,称重后将2只小白鼠放入附件激怒盒的导电铜丝板上,把盖子盖上后,将电源打开,顺时针调节交流电压输出旋钮,直至引起小白鼠激怒反应,刺激电压一般为30V左右。激怒现象表现为:两鼠对应、前肢离地、对峙、互相撕咬等。若刺激1min以上仍未出现者弃之不用。以上法挑选有激怒反应的合格小白鼠两对,并记录其刺激电压。 给药及观察:取一对小白鼠腹腔注射0.08%氯丙嗪0.1ml/10g,另一对腹腔注射生理盐水0.1ml/10g。给药后20min,先用万用电表调节刺激输出电压至给药前引起激怒反应的阈电压,然后断开电源,将该对小白鼠置于导电铜丝板上,再打开电源,刺激1min。观察给药前后反应的差异。 (二)镇吐作用 取小白鼠4只,称重,随机分为两组,并观察动物活动情况及有无呕吐现象。给甲组小白鼠腹腔注射0.4%氯丙嗪0.8mg/10g (0.2ml/10g),1min后灌服0.4%酒石酸锑钾1.2ml/10g (0.3ml/10g)。给药后将小白鼠分别置于小铁笼中,记录给药时间,密切观察小白鼠出现何种反应,比较二组反应有何不同。 (三)降温作用 挑选合格动物:取小白鼠置小铁笼上,用左手拇指盒食指捏住其后头颈部之皮肤,翻转使之腹向上,以左手无名指将鼠尾压再拇指基部,右手拿口腔温度计,将水银柱甩到35oC以下,末

实验六 文件系统设计结果

实验六文件系统设计 1.目的和要求 本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能和内部实现。 2.实验内容 为DOS系统设计一个简单的二级文件系统,可以实现下列几条命令DIR 列文件目录 CREATE 创建文件 DELETE 删除文件 MODIFY 修改文件 OPEN 打开文件 CLOSE 关闭文件 列目录时要列出文件名,物理地址,保护码和文件长度。 3.实验环境 ①PC兼容机 ②Windows、DOS系统、Turbo c 2.0 ③C语言 4.实验提示 ①首先应确定文件系统的数据结构:主目录、活动文件等。主目录文件的形式存放于磁盘,这样便于查找和修改。 主目录结构: Ufdname 用户名 Ufdfile 指向用户的活动文件 活动文件结构: Fpaddr 文件物理地址 Flength 文件长度 Fmode 文件属性(file mode:0-Read Only;1-Write Only;2-Read and Write(default)) Fname 文件名称 ②用户创建的文件,可以编号存储于磁盘上。如:file0,file1,file2…并

以编号作为物理地址,在目录中进行登记。

③本程序需要在c:下建一个名为osfile的目录及一个名为file的子目录,在利用程序创建了文件系统后,可以在这个文件夹下查看到相关的内容。5.实验程序 #include "stdio.h" #include "string.h" #include "conio.h" #include "stdlib.h" #define MAXNAME 25 /*the largest length of mfdname,ufdname,filename*/ #define MAXCHILD 50 /*the largest child*/ #define MAX (MAXCHILD*MAXCHILD) /*the size of fpaddrno*/ typedef struct /*the structure of OSFILE*/ { int fpaddr; /*file physical address*/ int flength; /*file length*/ int fmode; /*file mode:0-Read Only;1-Write Only;2-Read and Write(default);*/ char fname[MAXNAME]; /*file name*/ } OSFILE; typedef struct /*the structure of OSUFD*/ { char ufdname[MAXNAME]; /*ufd name*/ OSFILE ufdfile[MAXCHILD]; /*ufd own file*/ }OSUFD; typedef struct /*the structure of OSUFD'LOGIN*/ { char ufdname[MAXNAME]; /*ufd name*/ char ufdpword[8]; /*ufd password*/ } OSUFD_LOGIN; typedef struct /*file open mode*/ { int ifopen; /*ifopen:0-close,1-open*/ int openmode; /*0-read only,1-write only,2-read and write,3-initial*/ }OSUFD_OPENMODE; OSUFD *ufd[MAXCHILD]; /*ufd and ufd own files*/ OSUFD_LOGIN ufd_lp;

家具模块化设计方法实例分析

家具模块化设计方法实例分析 1前言 当前,消费者对家具的个性化需求日益凸显,如何满足这种需求已经成为越来越多家具企业发展的关键。要做到既符合现代机械化生产的发展主流,又节约成本,且能提高产品的市场竞争力。这确实为难了不少的家具企业。有一坐企业尝试通过从销售终端满足个性化,但众多形态各异、尺寸繁多的家具定单从销售端传送至生产和设计部门,却带来了新的矛盾:设计任务艰巨、生产设计难排、产品质量难以保证,甚至由于部件尺寸的相近导致出错率增加、生产效率低下。有一些敢于吃螃蟹的企业尝试从设计入手,通过标准零部件的设计、组合成新产品来满足这种“个性化”“的需求。但遗憾的是,这种做法并未带来预期的效果,单一的产品导致了销售客额和顾客满意率的下降。所以,如何实现产品的个性化?是从销售端,还是从设计与生产端着手呢?这是家具企业必须根据企业现状做出回答的问题。定制是从销售端解决问题,而模块化设计是从设计端解决问题,旨在通过设计具有标准性和通用性的功能模块,达到组合成多样化的家具的目的。毫无疑问,模块化设计在家具业具有很大的发展潜力,它既能解决个性化需求的问题,还能做到低成本与高效率。 模块化设计属于方法学的范畴,在其他工业行业中已经得到了长足的发展。由于家具消费环塘和制造环境的变化,模块化设计以其特有的优势,开始在家具行业尤其是办公家具中应用。而对于民用家具,

近年来个性化需求与家具企业的生产矛盾日益突出,有关模块化设计的探索才刚刚开始。鉴于国内尚无系统的家具模块化设计理论来指导企业的实践,本文着重以衣橱为例,详细具体地分析单个家具的非模块化设计过程,以进一步明确家具模块化设计的必要性和可操作性。 2 设计概念及设计方法 家具模块化设计指的是在对家具进行功能分析的基础上,划分并设计出一系列的家具功能模块,通过功能模块的选择与组合构成不同的家具,以满足市场多样化需求的设计方法。与传统的设计方法相比较,家具模块化设计呈现出许多新特征。首先,它是针对模块和家具产品系统的设计,既要设计模块,又要设计家具成品。其次,它以标准化、通用化的零部件快速组合成家具,能实现家具的多样化。模块化设计不同于标准化设计,标准化设计带来的是单一的产品,而模块化设计则不然,在设计之初就考虑模块可组合成产品的多样性。因此模块化设计是在标准化设计基础之上,实现产品多样化的一种方法。 根据家具模块化设计的概念,笔者提出从三个层次展开家具的模块化设计。第一层次是家具模块化总体设计。这个阶段主要是进行模块化系统的总体策划,确定模块化实施的范围。良好的模块化总体设计,是模块化设计得以实现的基础。第二层次是家具模块设计,这是模块化设计系统具体化的过程,是承上启下的环节。模块化设计的好坏,直接影响到模块化家具组合的最终效果。第三层次是家具模块化产品设计。这个阶段主要是选择模块,评价模块可能组合方式的合理

数据库实验6数据库系统设计

实验报告 学院:计信学院专业:网络工程班级:091 姓名学号实验组实验时间2012-6-1 指导教师成绩实验项目名称实验六:数据库系统设计实 验目的 要求掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方法,并加深对数据库系统概念和特点的理解。 实 验 要 求 本实验属于设计型实验,通过实验,加强对课堂讲授知识的理解。 实验原理 必须按照数据库设计的四个阶段进行:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。概念模型设计时采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上地设计概念结构,和自底向上的设计方法;概念模型必须用E-R图进行表示。在逻辑设计阶段,将E-R图转换成关系模式,然后进行关系模式的规范化。在物理设计阶段,将关系模式转化成SQL Server中的具体的数据库表,并建立表间的关系,表的索引,及相关的约束。 实 验仪器(1)硬件条件:个人计算机。 (2)软件条件:Windows 2000NT Server; MS SQL Server 2000。 实验步骤1、完成系统需求分析报告 在系统需求分析报告中包括采用的设计方法、数据流图和数据字典。 2、完成数据库信息要求和关系数据模型设计 使用E-R图表示对数据库中要存储的信息及语义进行详细描述,对数据约束和数据之间的关联进行

详细描述。详细描述系统需要的基本表及属性、视图和索引,对基本表的主码、候选码、外码及被参照表进行说明,对基本表中数据的约束条件进行说明。 3、完成数据库的操作和应用要求报告 在数据库的操作和应用要求报告中,详细描述数据库的数据操作要求、处理方法和处理流程,画出系统功能模块图。 4、在机器上完成整个数据库的设计。 实 验内容 要求根据周围的实际情况,自选一个自己熟悉的小型数据库应用项目,并深入到应用项目的现实世界中,进行系统分析和数据库设计。例如选择学籍管理系统、图书管理系统、材料管理系统或仓库管理系统等。 实验数据我设计的是车站售票管理系统,主要用于车站日常的票务处理。 一、需求分析 车站售票管理系统 员工 管理 模块 汽车 管理 模块 线路 管理 模块 车票 管理 模块 票务 信息 管理 模块 员 工 信 息 添 加 员 工 信 息 删 除 员 工 信 息 修 改 汽 车 信 息 添 加 汽 车 信 息 修 改 汽 车 信 息 删 除 线 路 信 息 添 加 线 路 信 息 修 改 线 路 信 息 删 除 添 加 车 票 删 除 车 票 查 询 车 票 信 息 购 买 / 预 订 车 票员 工 信 息 查 询 汽 车 信 息 查 询 线 路 信 息 查 询 车 票 信 息 查 询 功能模块图 1.员工管理模块: 员工有两种身份,售票员和系统管理员。系统管理员可以进行系统用户的添加,密码的修改操作,汽车,线路,车票信息的更新等,售票员可以查询以上信息和购买车票等。 2.线路信息管理模块:

操作系统课程设计实验报告

河北大学工商学院 课程设计 题目:操作系统课程设计 学部信息学部 学科门类电气信息 专业计算机 学号2011482370 姓名耿雪涛 指导教师朱亮 2013 年6月19日

主要内容 一、设计目的 通过模拟操作系统的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 二、设计思想 实现一个模拟操作系统,使用VB、VC、CB等windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 设计模板如下图: 注:本人主要涉及设备管理模块

三、设计要求 设备管理主要包括设备的分配和回收。 ⑴模拟系统中有A、B、C三种独占型设备,A设备1个,B设备2个,C设备2个。 ⑵采用死锁的预防方法来处理申请独占设备可能造成的死锁。 ⑶屏幕显示 注:屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 设备管理模块详细设计 一、设备管理的任务 I/O设备是按照用户的请求,控制设备的各种操作,用于完成I/O 设备与内存之间的数据交换(包括设备的分配与回收,设备的驱动管理等),最终完成用户的I/O请求,并且I/O设备为用户提供了使用外部设备的接口,可以满足用户的需求。 二、设备管理函数的详细描述 1、检查设备是否可用(主要代码) public bool JudgeDevice(DeviceType type) { bool str = false; switch (type) { case DeviceType.a: {

实验七 用函数实现模块化程序设计

河南工业大学C语言实验报告 专业班级:生物11级1班学号:201112910118姓名:l刘路路指导老师:朱红莉评分: 实验题目:用函数实现模块化程序设计 实验目的:熟练掌握函数的定义、调用、声明 实验内容:P218-219 习题1、2、4 实验步骤:(具体程序及运行结果) 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 #include int main() {int hcf(int,int); int lcd(int,int,int); int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%d\n",h); l=lcd(u,v,h); printf("L.C.D=%d\n",l); return 0; } int hcf(int u,int v) {int t,r; if (v>u) {t=u;u=v;v=t;} while ((r=u%v)!=0) {u=v; v=r;} return(v); } int lcd(int u,int v,int h) { return(u*v/h); } 7.3写一个判素数的函数,在主函数输入一个整数,输出是否为素数的信息。 #include int main() {int prime(int); int n; printf("input an integer:"); scanf("%d",&n);

if (prime(n)) printf("%d is a prime.\n",n); else printf("%d is not a prime.\n",n); return 0; } int prime(int n) {int flag=1,i; for (i=2;i #define N 3 int array[N][N]; int main() { void convert(int array[][3]); int i,j; printf("input array:\n"); for (i=0;i

产品模块化设计

当今制造业企业一方面必须利用产品的批量化、标准化和通用化来缩短上市周期、降低产品成本、提高产品质量,另一方面还要不断地进行产品创新使产品越来越个性化,满足客户的定制需求。这样,如何平衡产品的标准化、通用化与定制化、柔性化之间的矛盾,成为赢得竞争的关键能力。平台化、模块化的产品设计和生产可以在保持产品较高通用性的同时提供产品的多样化配置,因此平台化、模块化的产品是解决定制化生产和批量化生产这对矛盾的一条出路。 以下总结了推行模块设计过程需要关注的要点: 1 产品模块化设计各个部门远景目标: 1)产品开发:产品开发过程分解为平台开发和产品开发过程,专门的团队进行平台的设计和优化,新产品的开发由平台通过 变量配置实现; 2)产品制造:产品制造部门按照产品平台分配产线和装配资源; 3)供应链管理:实现零库存,根据模块的要求选择能够承接模块设计和开发的供应商; 4)市场部门:实现按订单制定产品开发和制造计划。 2 模块化实施过程: 1)产品系列平台划分,采用“产品型号组方法”则是对整个目标 市场划分所进行的全部变型型号的规划和开发。新产品规划要

定义一组变型型号。配置应当与市场定位关联,其实际定义应 当与产品性能的部分关联,并体现出不同变型型号之间的差异。 2)产品模块划分,可以采用MFD方法进行模块划分,步骤包括: a 定义客户需求,利用卡诺模型区分客户需求与满意度关 系、使用QFD方法定义客户需求与产品性能的对应关系; b 选择技术方法,定义产品功能树,使用波氏方法选择 技术方法;使用DPM矩阵描述技术方法与产品性能的对 应关系; c 产生模块概念,定义模块驱动与技术解决方案的对应关 系,最理想的模块技术解决方法是可以自己组合成一个模 块,至少可以作为一个模块的基础; 不够优化的技术解决 方法应该和其他技术解决方法整合在一起组成模块。 d 评估模块概念,定义模块接口,优化模块接口。 e 模块优化,创建模块规格说明,进行模块优化,进行 经济和技术上的评价。 3)选项变量定义;在一个平台上定义许可的选项/选项集,定义选项之间的关系和约束。 3 模块化设计考核指标 1)部署通用产品结构的型号组/ 全部型号组; 2)通用模块实例/ 全部的模块实例; 3)CAD/PDM系统中零部件族的利用率;

药理学实验方案

药理学实验方案

元胡止痛片对小鼠镇痛抗炎镇痛活性研究 ——药理实验设计 设计人:级药学一班 张礼杰 515010 信盼 515024 陈茂琴 515026 何朵朵 515028 药学四班 杨森 515101 冯禹 515110 王同月 515102

元胡止痛片中抗炎和镇痛作用研究 1.实验目的:探讨元胡止痛片的镇痛和抗炎作用 2.实验原理:(1)元胡止痛片收载于《元胡止痛片收载于《中国药典》是由元胡、白芷两味药组成的中药复方制剂为行气活血止痛剂临床用于治疗气滞血瘀胃痛、胁痛、头痛及月经痛等症疗效确切。本实验是为验证元胡止痛片的镇痛和抗炎作用进行验证。实验对四川禾邦阳光制药厂家生产元胡止痛片不同剂量进行了药效学研究采用小鼠醋酸扭体法、小鼠热板法和耳肿胀法实验分别测定小鼠扭体反应抑制率、小鼠痛阂值提高率和肿胀率从而确定不同剂量的镇痛和抗炎作用效果。 在基础医学研究中筛选镇痛药的常见致痛方法概括有物理法(热、电、机械)和化学法。动物的疼痛反应常表现出嘶叫、舔足、翘尾、蹦跳及皮肤、肌肉抽搐。化学法,即将某些化学物质,如强酸、强碱、钾离子、缓激肽等,涂布于动物的的某些敏感部位或腹腔注射。腹腔注射损伤物质引起受试动物腹痛,动物表现出“扭体反应”(即腹部内凹、躯干与后肢伸张、臀部高起)。 3.实验方法 :使用小鼠热板法、醋酸扭体法、耳肿胀法 ,并分别建立小鼠疼痛和炎症模型 ,灌胃给予不同剂量元胡止痛片配成的溶液,观察对动物的镇痛和抗炎作用。 4.实验过程: 1.内容

4.1 药品与试剂 元胡止痛片:四川禾邦阳光制药股份有限公司,国药准字z51021658,规格:片芯重0.25g,12片 阿司匹林: 浙江金华市第三制药厂, 国药准字: H13023716, 临用前用蒸馏水配制为适当浓度的混悬液。 4.2动物:健康昆明种小白鼠,雌性,32只 4.3 器材:数控超级恒温槽,烧杯、1ml 注射器、电子秤 4.4分组: 空白对照组 (灌胃0.9%生理盐水 10 mL/kg) 元胡止痛片高、低剂量组 (0.2,0.4mg /10g) 阳性药阿司匹林对照组 (灌胃阿司匹林 0. 4 g/kg) 4.5人和动物剂量换算公式 小白鼠=20 0026 .0?人/g 2 方法 (1)热板法 1.动物筛选:致痛潜伏期 (痛阈值)为 5~30s 之间的合格雌性小鼠。32只,热板法镇痛试验筛选痛阈值合格的小鼠,取♀小鼠于给药前先用热板仪于55 ± 0. 5 ℃分别测定每只小鼠的正常痛阈值[将小鼠放于智能热板仪上至出现舔后足的所需时间作为痛阈值( s) ,连续 2 次,间隔30 s ,测定平均值即为正常痛阈值]。将舔后足时间< 5 s 或>30 s ,或跳跃者不用于此实验

实验六PID控制系统参数优化设计

实验六 PID 控制系统参数优化设计 一.实验目的: 综合运用MATLAB 中SIMULINK 仿真工具进行复杂控制系统的综合设计与优化设计,综合检查学生的文献查阅、系统建模、程序设计与仿真的能力。 二.实验原理及预习内容: 1.控制系统优化设计: 所谓优化设计就是在所有可能的设计方案中寻找具有最优目标(或结果)的设计方法。控制系统的优化设计包括两方面的内容:一方面是控制系统参数的最优化问题,即在系统构成确定的情况下选择适当的参数,以使系统的某些性能达到最佳;另一方面是系统控制器结构的最优化问题,即在系统控制对象确定的情况下选择适当的控制规律,以使系统的某种性能达到最佳。 在工程上称为“寻优问题”。优化设计原理是“单纯形法”。MATLAB 中语句格式为:min ('')X f s =函数名,初值。 2.微分方程仿真应用:传染病动力学方程求解 三.实验内容: 1.PID 控制系统参数优化设计: 某过程控制系统如下图所示,试设计PID 调节器参数,使该系统动态性能达到最佳。(习题5-6) 1020.1156s s e s s -+++R e PID Y 2.微分方程仿真应用: 已知某一地区在有病菌传染下的描述三种类型人数变化的动态模型为 11212122232 3(0)620(0)10(0)70X X X X X X X X X X X X ααββ?=-=?=-=??==?

式中,X 1表示可能传染的人数;X 2表示已经得病的人数;X 3表示已经治愈的人数;0.0010.072αβ==;。试用仿真方法求未来20年内三种人人数的动态变化情况。 四.实验程序: 建立optm.m 文件: function ss=optm (x) global kp; global ki; global kd; global i; kp=x (1); ki=x (2); kd=x (3); i=i+1 [tt,xx,yy]=sim('optzwz',50,[]); yylong=length(yy); ss=yy(yylong); 建立tryopt.m 文件: global kp; global ki; global kd; global i; i=1; result=fminsearch('optm',[2 1 1]) 建立optzwz.mdl:

相关文档
相关文档 最新文档