PHOTOSHOP实训(实验)报告
授课时间:____________ 授课班级:________ 学生姓名:__________
婚纱照的后期制作
一、 实训(实验)目的
为新人制作婚妙照片时,后期制作是重要的环节。后期制作的最终效果将直接影响到照片的整体效果。
二、 实训所涉及的知识点
l 图层混合模式、描边命令、投影命令
l 图层样式(外发光、内发光)
l 水平翻转命令、创建变形文本命令
l 色彩平衡命令
l 拷贝图层样式命令
三、 实训课时(2节)
四、 实训内容
l ? 学会钢笔工具使用、描边命令的使用
l ? 学会文字变形工具的使用。
l ? 增强学生对软件窗口的组成、工具栏和面板的功能及基本操作的感性认识。
五、实训(实验)心得、体会、收获(由学生填写)
六、实训(实验)成绩及教师评语
第二篇:上机实践1
数据结构上机实践1
实践目的
在进一步理解线性表的顺序存储结构和基本操作的基础上,能灵活运用并解决具体问题。
预备知识
1.顺序存储结构
typedef struct{
ElemType elem[MAXSIZE];
int len;
}SqList;
2.基本算法
(1)建立算法
void creat_list(SqList *L,int n){
int k;
printf("\n请输入元素:");
for(k=1;k<=n;k++) scanf(&L->elem[k]);
L->len=n;
}
(2)插入算法
int Insert_Sq (SqList *L ,int i, ElemType x){
/* 在线性表的第i-1和第i元素之间插入一个新元素x*/
if (i<1 || i>L->len+1) return 0; /* 不合理的插入位置 i */ if ( L->len== MAXSIZE-1) return -1; /* 表已满 */
for (j=L->len;j>=i;--j)
L->elem[j+1]=L->elem[j]; /* 插入位置及之后的元素右移*/ L->elem[i]=x; /*插入x */
++L->len; /*表长加1 */
return 1;
}
(3)删除算法
int Delete_Sq (SqList *L ,int i ){
/* 删除线性表中第个i元素 */
if (i<1 || i>L->len) return 0; /*不合理的删除位置 i*/ if (L->len==0) return -1; /* 表已空*/
for (j=i;j<=L->len-1;j++)
L->elem[j]=L->elem[j+1]; /*被删除元素之后的元素左移 */ --L->len; /*表长减1*/
return 1;
}
1
应用范例--合并线性表
1 任务描述
设有两个线性表La和Lb,现要求将线性表Lb中的元素逐一并到线性表La的表尾,若Lb中有与原La中相同的元素,则不把该元素合并进去。
2 任务分析
(1)使用线性表的基本运算GetElem(Lb,i),从Lb中逐一取出元素x;
(2)使用基本运算Locate(La,x),查找原La中是否有与x相同的元素;
(3)如查找失败,则使用基本运算Insert(La,i,x)将x插在La的表尾。
3 算法描述
void UnionList(list La,list Lb){
/*将线性表Lb合并到线性表La的表尾*/
m=Length(Lb); /*求线性表Lb的表长*/
for(i=1;i<=m,i++){
x=GetElem(Lb,i);
k=Locate(La,x);
if(k==0) Insert(La,Length(La)+1,x);
}
}
合并线性表-C语言实现
1、存储结构定义:
#define MAXSIZE 20
typedef int ElemType;
typedef struct{
ElemType elem[MAXSIZE];
int len;
}SqList;
2、功能函数说明
void CreatList(SqList *L);
功能:创建线性表L;
void PrintList(SqList *L);
功能:输出线性表L;
ElemType GetElem(SqList *L,int i);
功能:取线性表L中的第i个元素;
int Locate(SqList *L,ElemType x);
功能:确定元素x在线性表L中位置;如线性表L中不存在元素x,则返回0值;int Insert_Sq(SqList *L ,int i, ElemType x)
功能:在线性表L中第i个元素之前插入一个新元素x;
void UnionList(SqList *La,SqList *Lb);
功能:将线性表Lb合并到线性表La的表尾。
2
3 合并线性表的C语言源程序
#include <stdio.h>
#define MAXSIZE 20
typedef int ElemType;
typedef struct{
ElemType elem[MAXSIZE];
int len;
}SqList;
/*以下是函数声明*/
void CreatList(SqList *L,int n);
void PrintList(SqList *L);
ElemType GetElem(SqList *L,int i);
int Locate(SqList *L,ElemType x);
int Insert_Sq(SqList *L,int i,ElemType x); void UnionList(SqList *La,SqList *Lb);
main(){
int alen,blen;
SqList la,lb;
printf("\n------CreatList A--------\n"); printf("please input alen:");
scanf("%d", &alen);
CreatList(&la,alen);
PrintList(&la);
printf("\n\n------CreatList B--------\n"); printf("please input blen:");
scanf("%d", &blen);
CreatList(&lb,blen);
PrintList(&lb);
UnionList(&la,&lb);
printf("\n\n------After union --------\n"); PrintList(&la);
getch();
}
/*以下是各功能函数的定义*/
void CreatList(SqList *L,int n){
int k;
printf("\nplease input element:");
for(k=1;k<=n;k++) scanf("%d",&L->elem[k]); L->len=n;
}
3
void PrintList(SqList *L){
int k;
printf("List have %d element:",L->len);
for(k=1;k<=L->len;k++) printf("%5d",L->elem[k]); }
ElemType GetElem(SqList *L,int i){
return (L->elem[i]);
}
int Locate(SqList *L,ElemType x){
int i;
for(i=1;i<=L->len;i++)
if(L->elem[i]==x) return i;
return 0;
}
int Insert_Sq (SqList *L,int i,ElemType x){ int j;
if (i<1 || i>L->len+1) return 0;
if ( L->len== MAXSIZE-1) return -1;
for (j=L->len;j>=i;--j) L->elem[j+1]=L->elem[j]; L->elem[i]=x;
++L->len;
return 1;
}
void UnionList(SqList *La,SqList *Lb){
int blen,i,k;
ElemType x;
blen=Lb->len;
for(i=1;i<=blen;i++){
x=GetElem(Lb,i);
k=Locate(La,x);
if(k==0) Insert_Sq(La,La->len+1,x);
}
}
4
实践任务
1、实践内容
设某机器表示的正整数不超过5位十进制数字。试采用顺序表表示任意长的正整数,并设计计算两个正整数之和的程序。
2、实践要求
1.存储结构采用顺序表;
2.设计表示:要求程序由以下函数组成:建立顺序表函数、输出顺序表函数、相加函数和main()函数;
3.完整的源程序;
4.测试数据;
5.程序能正常运行,输出结果正确。
5