




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人工智能课程设计报告课程:人工智能课程设计报告班级:姓名:学号:指导教师:赵曼2015年11月-37-人工智能课程设计报告课程背景人工智能(ArtificialIntelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。人工智能是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。也被认为是二十一世纪三大尖端技术(基因工程、纳米科学、人工智能)之一。这是因为近三十年来它获得了迅速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐步成为一个独立的分支,无论在理论和实践上都已自成一个系统。人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展。题目二:n皇后问题一.问题描述分别用回溯法(递归)、GA算法和CSP的最小冲突法求解n皇后问题。即如何能够在n×n的国际象棋棋盘上放置n个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。要求:ⅰ.输入n,并用运行时间比较几种算法在相同规模的问题时的求解效率,并列表给出结果。ⅱ.比较同一算法在n不相同时的运行时间,分析算法的时间复杂性,并列表给出结果。如八皇后问题的一个解二.设计分析1.算法分析1)回溯法(递归)回溯法解题的一般步骤编辑(1)针对所给问题,定义问题的解空间;(2)确定易于搜索的解空间结构;(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。引入一个整型一维数组col[]来存放最终结果,col[i]就表示在棋盘第i列、col[i]行有一个皇后,为了使程序再找完了全部解后回到最初位置,设定col[0]的初值为0,即当回溯到第0列时,说明以求得全部解,结束程序运行。为了方便算法的实现,引入三个整型数组来表示当前列在三个方向上的状态:a[]a[i]=0表示第i行上还没有皇后;b[]b[i]=0表示第i列反斜线/上没有皇后;c[]c[i]=0表示第i列正斜线\上没有皇后。棋盘中同一反斜线/上的方格的行号与列号相同;同一正斜线\上的方格的行号与列号之差均相同,这就是判断斜线的依据。初始时,所有行和斜线上都没有皇后,从第1列的第1行配置第一个皇后开始,在第m列,col[m]行放置了一个合理的皇后,准备考察第m+1列时,在数组a[],b[]和c[]中为第m列,col[m]行的位置设定有皇后的标志;当从第m列回溯到m-1列时,并准备调整第m-1列的皇后配置时,清除在数组a[],b[]和c[]对应位置的值都为1来确定。2)遗传算法遗传算法的基本运算过程如下:a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。b)个体评价:计算群体P(t)中各个个体的适应度。遗传算法遗传算法c)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。d)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。e)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。3)csp最小冲突法(1)初始化N个皇后的一个放置,允许有冲突(2)考虑某一行的某个皇后,她可能与x个皇后冲突,然后看看将这个皇后移动到这一行的哪个空位能使得与其冲突的皇后个数最少,就移动到那里。(也可以考虑列,是等价的)(3)不断执行(2),直到没有冲突为止2.数据结构使用数组结构存储相关数据一维数组:二维数组:3.算法设计1)//回溯搜索voidFunction1::DFS(intt,boolisShowTime){ if(t==n)//说明已经排了n行了(从0开始的),即排列结束了 { for(inti=0;i<n;i++) { rec[i]=board[i]; } if(!isShowTime)PrintChessBoard();//输出棋局 count++; return; } for(inti=0;i<n;i++) { //有冲突 if(ver[i]==1||ru[i-t+n]==1||rd[i+t]==1)continue; //没有冲突 ver[i]=1; ru[i-t+n]=1; rd[i+t]=1; board[t]=i; DFS(t+1,isShowTime);//深搜递归 //后退处理 rd[i+t]=0; ru[i-t+n]=0; ver[i]=0; } return;}2)遗传算法voidCGAQueen::PrintChessBoard(boolPrintChessBoard){ boolDisplayAllAnsures=PrintChessBoard;//是否输出所有棋盘结果 intg=0,num=0; InitialPopulation(); while(g==0&&num<this->Iteration) { num++; g=0; for(intk=0;k<this->Population;k++) { this->FillArea(k); this->CostMatrix[k]=this->CostFunc(k); } this->PopulationSort(); if(this->CostMatrix[0]==0)//已经完成计算 g=1; if(DisplayAllAnsures) { PrintTheBestAnsure(); /*for(i=0;i<=ChessBoradLenght-1;i++) { cout<<"row:"<<i<<"col:"<<this->ChromosomeMatrix[i][0]<<endl; } cout<<endl;*/ } this->GenerateCrossOverMatrix(); this->Mating(); this->ApplyMutation(); } cout<<"实际迭代:"<<num<<"次"<<endl; if(DisplayAllAnsures) { cout<<"最佳答案为:"<<endl; this->PrintTheBestAnsure(); }}3)CSP最小冲突算法//用最小冲突算法调整第row行的皇后的位置(初始化时每行都有一个皇后,调整后仍然在第row行)//调整过后check一下看看是否已经没有冲突,如果没有冲突(达到终止状态),返回trueboolCSP_Queens::Adjust_row(introw){ intcur_col=R[row]; intoptimal_col=cur_col;//最佳列号,设置为当前列,然后更新 //计算总冲突数 intmin_conflict=col[optimal_col]+pdiag[GetP(row,optimal_col)]-1 +cdiag[GetC(row,optimal_col)]-1;//对角线冲突数为当前对角线皇后数减一,三次重叠了 //逐个检查第row行的每个位置,看看是否存在冲突数更小的位置 for(inti=0;i<N;i++) { if(i==cur_col)continue; intconflict=col[i]+pdiag[GetP(row,i)]+cdiag[GetC(row,i)]; if(conflict<min_conflict) { min_conflict=conflict; optimal_col=i; } } //如果最佳列位置改变,则皇后移向新的最小冲突位置,要更新col,pdiag,cdiag, if(optimal_col!=cur_col) { col[cur_col]--; pdiag[GetP(row,cur_col)]--; cdiag[GetC(row,cur_col)]--; col[optimal_col]++; pdiag[GetP(row,optimal_col)]++; cdiag[GetC(row,optimal_col)]++; R[row]=optimal_col; if(col[cur_col]==1&&col[optimal_col]==1 &&pdiag[GetP(row,optimal_col)]==1&&cdiag[GetC(row,optimal_col)]==1){ returnQualify();//qualify相对更耗时,所以只在满足上面基本条件后才检查 } } //否则当前点就是最佳点,一切都保持不变 returnfalse;//如果都没变的话,肯定不满足终止条件,否则上一次就应该返回true并终止了}//检查冲突boolCSP_Queens::Qualify(){ for(inti=0;i<N;i++){ if(col[R[i]]!=1|| pdiag[GetP(i,R[i])]!=1|| cdiag[GetC(i,R[i])]!=1){ returnfalse; } } returntrue;}//最终用户调用函数,numOfQueens为输入皇后数,PrintChessBoard判断是否输出棋盘表示intCSP_Queens::CSPAlgorithms(boolPrintChessBord){ srand((unsigned)time(NULL)); Init(); if(Qualify()){//运气很好,初始化后就满足终止条件 if(PrintChessBord)Print_result(); return0; } boolend=false; while(!end){ for(inti=0;i<N;i++){ if(Adjust_row(i)){ end=true; break; } } } if(PrintChessBord)Print_result(); return0;}四.运行结果及分析1.递归算法2.遗传算法3.CSP最小冲突算法4.n=4时不同算法的比较5.n=8时不同算法比较结果分析回溯法在皇后数目较小的,很占优势,它的速度非常的快,但随着皇后数目的增加,回溯法显得很不实用,在n=35时,用回溯法已不能较好的解决n皇后问题。 遗传算法优点是能很好的处理约束,能很好的跳出局部最优,最终得到全局最优解,全局搜索能力强;缺点是收敛较慢,局部搜索能力较弱,运行时间中等,且容易受n值的影响。遗传算法的运行时间在n很小时没有回溯法快,但是随着n值的增加,遗产算法的优点也就显现出来,它能够解决回溯法不能解决的问题。CSP最小冲突法是一种始终都比较快的算法,它的运行时间与皇后是个数没有必然的联系,而且在n很大时,它显现出来运行时间短,效率高的优势,但它的缺点是会出现山脊、高原,86%的时间会卡住。总的来说,CSP最小冲突法较简单,也比较快,在皇后的个数较多时体现出来效率最高,处理多约束大规模问题时往往不能得到较好的解。总的来说,回溯在n值很小时,效率很高,但其求解范围很小,超过35基本就解不出来,遗传算法求解范围适中。在n值很大(>100)时,前两者都不能再解决,此时,CSP最小冲突法的效率最高,且与n值没有必然的联系。总结通过此次课程实习不仅大大加深了我对几种经典搜索算法的理解,而且帮助我很好的复习了队列、堆栈、图、文件读写这几部分的内容,使我对几种基本的数据结构类型的运用更加熟练。在解决这些问题的过程中我不但很好的巩固了数据结构的相关知识,而且提高了编程及程序调试能力,增强了自己编程的信心。总之,在这次课程实习过程中我是实实在在学到了一些课堂上学不到的东西,同时也提高了实践能力。同时在这个过程中也暴露了自己的不少问题,在今后的学习过程成也会更加有针对性。最后还要感谢老师的悉心指导,解答我编程过程中的疑问、指出我程序中的不足,及提出可行的解决方法,让我的程序的功能更加完善。CSP算法源代码://CSPAlgorithms.h#pragmaonceclassCSP_Queens{public: //构造函数,numOfQueens为输入皇后数, CSP_Queens(intnumOfQueens); ~CSP_Queens();private: //row[i]表示当前摆放方式下第i行的皇后数, int*row; //col[i]表示当前摆放方式下第i列的皇后冲突数 int*col; intN;//放置N个皇后在N*N棋盘上 //从左上到右下的对角线上row-col值是相同的,但是这个值有可能是负值,最小为-(N-1), //所以可以做个偏移,统一加上N-1,这样这个值就在[0,2*N-2]范围内,将这个值作为该对角线的编号 //pdiag[i]表示当前摆放方式下编号为i的对角线上的皇后数 int*pdiag;//principaldiagonal,主对角线,左上到右下(表示和主对角线平行的2N-1条对角线) //从右上到左下的对角线row+col的值相同,取值范围为[0,2*N-2],2*N-1条,作为对角线编号 //cdiag[i]表示编号为i的对角线上的皇后数 int*cdiag;//counterdiagonal,副对角线 //R[]用来存储皇后放置位置,R[row]=col表示(row,col)处,即“第row行第col列”有个皇后 int*R;public: intswap(int&a,int&b); //给定二维矩阵的一个点坐标,返回其对应的左上到右下的对角线编号 intGetP(introw,intcol); //给定二维矩阵的一个点坐标,返回其对应的右上到左下的对角线编号 intGetC(introw,intcol); //返回begin,begin+1,...,end-1这end-begin个数中的随机的一个 intMy_rand(intbegin,intend);//左闭右开[begin,end) //原地shuffle算法,算法导论中的randomizeinplace算法 voidRandomize(inta[],intbegin,intend);//左闭右开 //初始化皇后的摆放,同时初始化row,col,pdiag,cdiag数组 voidInit(); //用最小冲突算法调整第row行的皇后的位置(初始化时每行都有一个皇后,调整后仍然在第row行) //调整过后check一下看看是否已经没有冲突,如果没有冲突(达到终止状态),返回true boolAdjust_row(introw); boolQualify(); voidPrint_result(); //最终用户调用函数PrintChessBoard判断是否输出棋盘表示 intCSPAlgorithms(boolPrintChessBord);};//CSPAlgorithms.cpp#include"CSPAlgorithms.h"#include<cstdio>#include<cstdlib>#include<ctime>#include<iostream>usingnamespacestd;CSP_Queens::CSP_Queens(intnumOfQueens){ srand((unsigned)time(NULL)); N=numOfQueens; row=newint[N]; col=newint[N]; pdiag=newint[2*N]; cdiag=newint[2*N]; R=newint[N];}CSP_Queens::~CSP_Queens(){ if(NULL!=row)delete[]row; if(NULL!=col)delete[]col; if(NULL!=pdiag)delete[]pdiag; if(NULL!=cdiag)delete[]cdiag; if(NULL!=R)delete[]R;}intCSP_Queens::swap(int&a,int&b){ intt=a;a=b;b=t; return0;}//intCSP_Queens::GetP(introw,intcol){ returnrow-col+N-1;}intCSP_Queens::GetC(introw,intcol){ returnrow+col;}//返回begin,begin+1,...,end-1这end-begin个数中的随机的一个intCSP_Queens::My_rand(intbegin,intend)//左闭右开[begin,end){ returnrand()%(end-begin)+begin;}//原地shuffle算法,算法导论中的randomizeinplace算法voidCSP_Queens::Randomize(inta[],intbegin,intend)//左闭右开{ for(inti=begin;i<=end-2;i++){ intx=My_rand(i,end); swap(a[i],a[x]); }}//初始化皇后的摆放,同时初始化row,col,pdiag,cdiag数组voidCSP_Queens::Init(){ for(inti=0;i<N;i++){//首先全部安放在主对角线上 R[i]=i; } //下面随机抽取调换两行皇后位置 Randomize(R,0,N);//初始化N个皇后对应的R数组为0~N-1的一个排列, //此时即没有任意皇后同列,也没有任何皇后同行 for(inti=0;i<N;i++){ row[i]=1;//每行恰好一个皇后 col[i]=0; } for(inti=0;i<2*N-1;i++){ pdiag[i]=0; cdiag[i]=0; } //初始化当前棋局的皇后所在位置的各个冲突数 for(inti=0;i<N;i++){ col[R[i]]++; pdiag[GetP(i,R[i])]++; cdiag[GetC(i,R[i])]++; }}//用最小冲突算法调整第row行的皇后的位置(初始化时每行都有一个皇后,调整后仍然在第row行)//调整过后check一下看看是否已经没有冲突,如果没有冲突(达到终止状态),返回trueboolCSP_Queens::Adjust_row(introw){ intcur_col=R[row]; intoptimal_col=cur_col;//最佳列号,设置为当前列,然后更新 intmin_conflict=col[optimal_col]+pdiag[GetP(row,optimal_col)]-1 +cdiag[GetC(row,optimal_col)]-1;//对角线冲突数为当前对角线皇后数减一 for(inti=0;i<N;i++){//逐个检查第row行的每个位置 if(i==cur_col){ continue; } intconflict=col[i]+pdiag[GetP(row,i)]+cdiag[GetC(row,i)]; if(conflict<min_conflict){ min_conflict=conflict; optimal_col=i; } } if(optimal_col!=cur_col){//要更新col,pdiag,cdiag col[cur_col]--; pdiag[GetP(row,cur_col)]--; cdiag[GetC(row,cur_col)]--; col[optimal_col]++; pdiag[GetP(row,optimal_col)]++; cdiag[GetC(row,optimal_col)]++; R[row]=optimal_col; if(col[cur_col]==1&&col[optimal_col]==1 &&pdiag[GetP(row,optimal_col)]==1&&cdiag[GetC(row,optimal_col)]==1){ returnQualify();//qualify相对更耗时,所以只在满足上面基本条件后才检查 } } //当前点就是最佳点,一切都保持不变 returnfalse;//如果都没变的话,肯定不满足终止条件,否则上一次就应该返回true并终止了}//检查冲突boolCSP_Queens::Qualify(){ for(inti=0;i<N;i++){ if(col[R[i]]!=1|| pdiag[GetP(i,R[i])]!=1|| cdiag[GetC(i,R[i])]!=1){ returnfalse; } } returntrue;}voidCSP_Queens::Print_result(){ cout<<"结果为:"<<endl; cout<<endl; for(intj=0;j<N;j++){ for(intk=0;k<N;k++){ if(R[j]==k) cout<<"Q"; else cout<<"+"; cout<<""; } cout<<endl; }}//最终用户调用函数,numOfQueens为输入皇后数,PrintChessBoard判断是否输出棋盘表示intCSP_Queens::CSPAlgorithms(boolPrintChessBord){ srand((unsigned)time(NULL)); Init(); if(Qualify()){//运气很好,初始化后就满足终止条件 Print_result(); return0; } boolend=false; while(!end){ for(inti=0;i<N;i++){ if(Adjust_row(i)){ end=true; break; } } } Print_result(); return0;}//Source.cpp#include<ctime>#include<iostream>#include"CSPAlgorithms.h"usingnamespacestd;intmain(intargc,constchar*argv[]){ boolend=false; while(!end){ cout<<"CSPAlgorithms"<<endl; cout<<"请输入皇后数:"; intN; cin>>N; inttime1=clock(); CSP_QueensmyQueens(N); myQueens.CSPAlgorithms(end); inttime2=clock(); cout<<""<<N<<"皇后问题耗时:"<<time2-time1<<"ms"<<endl; charp; cout<<"是否继续测试?(y/n):"; cin>>p; if(p=='n')break; } return0;}附录资料:不需要的可以自行删除
Excel表格的基本操作教程Excel快捷键和功能键Ctrl组合快捷键按键说明Ctrl+(取消隐藏选定范围内所有隐藏的行。Ctrl+)取消隐藏选定范围内所有隐藏的列。Ctrl+&将外框应用于选定单元格。Ctrl+_从选定单元格删除外框。Ctrl+~应用“常规”数字格式。Ctrl+$应用带有两位小数的“货币”格式(负数放在括号中)。Ctrl+%应用不带小数位的“百分比”格式。Ctrl+^应用带有两位小数的“指数”格式。Ctrl+#应用带有日、月和年的“日期”格式。Ctrl+@应用带有小时和分钟以及AM或PM的“时间”格式。Ctrl+!应用带有两位小数、千位分隔符和减号(-)(用于负值)的“数值”格式。Ctrl+-显示用于删除选定单元格的“删除”对话框。Ctrl+*选择环绕活动单元格的当前区域(由空白行和空白列围起的数据区域)。在数据透视表中,它将选择整个数据透视表。Ctrl+:输入当前时间。Ctrl+;输入当前日期。Ctrl+`在工作表中切换显示单元格值和公式。Ctrl+'将公式从活动单元格上方的单元格复制到单元格或编辑栏中。Ctrl+"将值从活动单元格上方的单元格复制到单元格或编辑栏中。Ctrl++显示用于插入空白单元格的“插入”对话框。Ctrl+1显示“单元格格式”对话框。Ctrl+2应用或取消加粗格式设置。Ctrl+3应用或取消倾斜格式设置。Ctrl+4应用或取消下划线。Ctrl+5应用或取消删除线。Ctrl+6在隐藏对象、显示对象和显示对象占位符之间切换。Ctrl+7显示或隐藏“常用”工具栏。Ctrl+8显示或隐藏大纲符号。Ctrl+9隐藏选定的行。Ctrl+0隐藏选定的列。Ctrl+A选择整个工作表。如果工作表包含数据,则按Ctrl+A将选择当前区域。再次按Ctrl+A将选择整个工作表。当插入点位于公式中某个函数名称的右边时,则会显示“函数参数”对话框。当插入点位于公式中某个函数名称的右边时,按Ctrl+Shift+A将会插入参数名称和括号。Ctrl+B应用或取消加粗格式设置。Ctrl+C复制选定的单元格。如果连续按两次Ctrl+C,则会显示MicrosoftOffice剪贴板。如果工作表包含数据,则按Ctrl+A将选择当前区域。再次按Ctrl+A将选择整个工作表。当插入点位于公式中某个函数名称的右边时,则会显示“函数参数”对话框。当插入点位于公式中某个函数名称的右边时,按Ctrl+Shift+A将会插入参数名称和括号。Ctrl+B应用或取消加粗格式设置。Ctrl+C复制选定的单元格。如果连续按两次Ctrl+C,则会显示MicrosoftOffice剪贴板。Ctrl+D使用“向下填充”命令将选定范围内最顶层单元格的内容和格式复制到下面的单元格中。Ctrl+F显示“查找”对话框。按Shift+F5也会显示此对话框,而按Shift+F4则会重复上一次“查找”操作。Ctrl+G显示“定位”对话框。按F5也会显示此对话框。Ctrl+H显示“查找和替换”对话框。Ctrl+I应用或取消倾斜格式设置。Ctrl+K为新的超链接显示“插入超链接”对话框,或为选定的现有超链接显示“编辑超链接”对话框。Ctrl+L显示“创建列表”对话框。Ctrl+N创建一个新的空白文件。Ctrl+O显示“打开”对话框以打开或查找文件。按Ctrl+Shift+O可选择所有包含批注的单元格。Ctrl+P显示“打印”对话框。Ctrl+R使用“向右填充”命令将选定范围最左边单元格的内容和格式复制到右边的单元格中。Ctrl+S使用其当前文件名、位置和文件格式保存活动文件。Ctrl+U应用或取消下划线。Ctrl+V在插入点处插入剪贴板的内容,并替换任何选定内容。只有在剪切或复制了对象、文本或单元格内容后,才能使用此快捷键。Ctrl+W关闭选定的工作簿窗口。Ctrl+X剪切选定的单元格。Ctrl+Y重复上一个命令或操作(如有可能)。Ctrl+Z使用“撤消”命令来撤消上一个命令或删除最后键入的条目。显示了自动更正智能标记时,按Ctrl+Shift+Z可使用“撤消”或“重复”命令撤消或恢复上一次自动更正操作。功能键按键说明F1显示“帮助”任务窗格。按Ctrl+F1可关闭并重新打开当前任务窗格。按Alt+F1可创建当前范围中数据的图表。按Alt+Shift+F1可插入新的工作表。F2编辑活动单元格并将插入点放在单元格内容的结尾。如果禁止在单元格中进行编辑,它也会将插入点移到编辑栏中。按Shift+F2可编辑单元格批注。F3将定义的名称粘贴到公式中。按Shift+F3将显示“插入函数”对话框。F4重复上一个命令或操作(如有可能)。按Ctrl+F4可关闭选定的工作簿窗口。F5显示“定位”对话框。按Ctrl+F5可恢复选定工作簿窗口的窗口大小。F6切换到已拆分(“窗口”菜单,“拆分”命令)的工作表中的下一个窗格。按Shift+F6可切换到已拆分的工作表中的上一个窗格。如果打开了多个工作簿窗口,则按Ctrl+F6可切换到下一个工作簿窗口。F7显示“拼写检查”对话框,以检查活动工作表或选定范围中的拼写。如果工作簿窗口未最大化,则按Ctrl+F7可对该窗口执行“移动”命令。使用箭头键移动窗口,并在完成时按Esc。F8打开或关闭扩展模式。在扩展模式中,“EXT”将出现在状态行中,并且按箭头键可扩展选定范围。通过按Shift+F8,您可以使用箭头键将非邻近单元格或范围添加到单元格的选定范围。当工作簿未最大化时,按Ctrl+F8可执行“大小”命令(在工作簿窗口的“控制”菜单上。按Alt+F8可显示用于运行、编辑或删除宏的“宏”对话框。F9计算所有打开的工作簿中的所有工作表。如果先按F9再按Enter(对于数组公式则按Ctrl+Shift+Enter),则会计算选定的公式部分,并将选定部分替换为计算出的值。按Shift+F9可计算活动工作表。按Ctrl+Alt+F9可计算所有打开的工作簿中的所有工作表,不管它们自上次计算以来是否已更改。如果按Ctrl+Alt+Shift+F9,则会重新检查相关公式,然后计算所有打开的工作簿中的所有单元格,其中包括未标记为需要计算的单元格。按Ctrl+F9可将工作簿窗口最小化为图标。F10选择菜单栏或同时关闭打开的菜单和子菜单。按Shift+F10可显示选定项目的快捷菜单。按Alt+Shift+F10可显示智能标记的菜单或消息。如果存在多个智能标记,按该组合键可切换到下一个智能标记并显示其菜单或消息。按Ctrl+F10可最大化或还原选定的工作簿窗口。F11创建当前范围内数据的图表。按Shift+F11可插入一个新工作表。按Alt+F11将打开VisualBasic编辑器,您可以在其中通过使用VisualBasicforApplications(VBA)来创建宏。按Alt+Shift+F11将打开Microsoft脚本编辑器,您可以在其中添加文本、编辑HTML标记以及修改任何脚本代码。F12显示“另存为”对话框。其他有用的快捷键按键说明箭头键在工作表中上移、下移、左移或右移一个单元格。按Ctrl+箭头键可移动到工作表中当前数据区域(数据区域:包含数据的单元格区域,该区域周围为空白单元格或数据表边框。)的边缘。按Shift+箭头键可将单元格的选定范围扩大一个单元格。按Ctrl+Shift+箭头键可将单元格的选定范围扩展到与活动单元格同一列或同一行中的最后一个非空白单元格。当菜单处于可见状态时,按向左键或向右键可选择左边或右边的菜单。当子菜单处于打开状态时,按这些箭头键可在主菜单和子菜单之间切换。当菜单或子菜单处于打开状态时,按向下键或向上键可选择下一个或上一个命令。在对话框中,按箭头键可在打开的下拉列表中的各个选项之间移动,或在一组选项的各个选项之间移动。按Alt+向下键可打开选定的下拉列表。Backspace在编辑栏中删除左边的一个字符。也可清除活动单元格的内容。Delete从选定单元格中删除单元格内容(数据和公式),而不会影响单元格格式或批注。在单元格编辑模式下,按该键将会删除插入点右边的字符。End当ScrollLock处于开启状态时,移动到窗口右下角的单元格。当菜单或子菜单处于可见状态时,也可选择菜单上的最后一个命令。按Ctrl+End可移动到工作表上的最后一个单元格,即所使用的最下方一行与所使用的最右边一列的交汇单元格。按Ctrl+Shift+End可将单元格的选定范围扩展到工作表上所使用的最后一个单元格(右下角)。Enter从单元格或编辑栏中完成单元格输入,并(默认)选择下面的单元格。在数据表单中,按该键可移动到下一条记录中的第一个字段。打开选定的菜单(按F10激活菜单栏),或执行选定命令的操作。在对话框中,按该键可执行对话框中默认命令按钮(带有突出轮廓的按钮,通常为“确定”按钮)的操作。按Alt+Enter可在同一单元格中另起一个新行。按Ctrl+Enter可使用当前条目填充选定的单元格区域。按Shift+Enter可完成单元格输入并选择上面的单元格。Esc取消单元格或编辑栏中的输入。按该键也可关闭打开的菜单或子菜单、对话框或消息窗口。Home移到工作表中某一行的开头。当ScrollLock处于开启状态时,移到窗口左上角的单元格。当菜单或子菜单处于可见状态时,选择菜单上的第一个命令。按Ctrl+Home可移到工作表的开头。按Ctrl+Shift+Home可将单元格的选定范围扩展到工作表的开头。PageDown在工作表中下移一个屏幕。按Alt+PageDown可在工作表中向右移动一个屏幕。按Ctrl+PageDown可移到工作簿中的下一个工作表。按Ctrl+Shift+PageDown可选择工作簿中的当前和下一个工作表。PageUp在工作表中上移一个屏幕。按Alt+PageUp可在工作表中向左移动一个屏幕。按Ctrl+PageUp可移到工作簿中的上一个工作表。按Ctrl+Shift+PageUp可选择工作簿中的当前和上一个工作表。空格键在对话框中,执行选定按钮的操作,或者选中或清除复选框。按Ctrl+空格键可选择工作表中的整列。按Shift+空格键可选择工作表中的整行。按Ctrl+Shift+空格键可选择整个工作表。如果工作表包含数据,则按Ctrl+Shift+空格键将选择当前区域。再按一次Ctrl+Shift+空格键将选择整个工作表。当某个对象处于选定状态时,按Ctrl+Shift+空格键可选择工作表上的所有对象。按Alt+空格键可显示Excel窗口的“控制”菜单。Tab在工作表中向右移动一个单元格。在受保护的工作表中,可在未锁定的单元格之间移动。在对话框中,移到下一个选项或选项组。按Shift+Tab可移到前一个单元格(在工作表中)或前一个选项(在对话框中)。在对话框中,按Ctrl+Tab可切换到下一个选项卡。在对话框中,按Ctrl+Shift+Tab可切换到前一个选项卡。Excel表格的基本操作教程
也许你已经在Excel中完成过上百张财务报表,也许你已利用Excel函数实现过上千次的复杂运算,也许你认为Excel也不过如此,甚至了无新意。但我们平日里无数次重复的得心应手的使用方法只不过是Excel全部技巧的百分之一。本专题从Excel中的一些鲜为人知的技巧入手,领略一下关于Excel的别样风情。
一、让不同类型数据用不同颜色显示
在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。1.打开“工资表”工作簿,选中“工资总额”所在列,执行“格式→条件格式”命令,打开“条件格式”对话框。单击第二个方框右侧的下拉按钮,选中“大于或等于”选项,在后面的方框中输入数值“2000”。单击“格式”按钮,打开“单元格格式”对话框,将“字体”的“颜色”设置为“红色”。2.按“添加”按钮,并仿照上面的操作设置好其它条件(大于等于1500,字体设置为“蓝色”;小于1000,字体设置为“棕色”)。3.设置完成后,按下“确定”按钮。看看工资表吧,工资总额的数据是不是按你的要求以不同颜色显示出来了。
Excel表格的基本操作教程六、让数据按需排序如果你要将员工按其所在的部门进行排序,这些部门名称既的有关信息不是按拼音顺序,也不是按笔画顺序,怎么办?可采用自定义序列来排序。1.执行“格式→选项”命令,打开“选项”对话框,进入“自定义序列”标签中,在“输入序列”下面的方框中输入部门排序的序列(如“机关,车队,一车间,二车间,三车间”等),单击“添加”和“确定”按钮退出。2.选中“部门”列中任意一个单元格,执行“数据→排序”命令,打开“排序”对话框,单击“选项”按钮,弹出“排序选项”对话框,按其中的下拉按钮,选中刚才自定义的序列,按两次“确定”按钮返回,所有数据就按要求进行了排序。二、建立分类下拉列表填充项我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。1.在Sheet2中,将企业名称按类别(如“工业企业”、“商业企业”、“个体企业”等)分别输入不同列中,建立一个企业名称数据库。2.选中A列(“工业企业”名称所在列),在“名称”栏内,输入“工业企业”字符后,按“回车”键进行确认。仿照上面的操作,将B、C……列分别命名为“商业企业”、“个体企业”……3.切换到Sheet1中,选中需要输入“企业类别”的列(如C列),执行“数据→有效性”命令,打开“数据有效性”对话框。在“设置”标签中,单击“允许”右侧的下拉按钮,选中“序列”选项,在下面的“来源”方框中,输入“工业企业”,“商业企业”,“个体企业”……序列(各元素之间用英文逗号隔开),确定退出。再选中需要输入企业名称的列(如D列),再打开“数据有效性”对话框,选中“序列”选项后,在“来源”方框中输入公式:=INDIRECT(C1),确定退出。4.选中C列任意单元格(如C4),单击右侧下拉按钮,选择相应的“企业类别”填入单元格中。然后选中该单元格对应的D列单元格(如D4),单击下拉按钮,即可从相应类别的企业名称列表中选择需要的企业名称填入该单元格中。提示:在以后打印报表时,如果不需要打印“企业类别”列,可以选中该列,右击鼠标,选“隐藏”选项,将该列隐藏起来即可。三、建立“常用文档”新菜单在菜单栏上新建一个“常用文档”菜单,将常用的工作簿文档添加到其中,方便随时调用。1.在工具栏空白处右击鼠标,选“自定义”选项,打开“自定义”对话框。在“命令”标签中,选中“类别”下的“新菜单”项,再将“命令”下面的“新菜单”拖到菜单栏。按“更改所选内容”按钮,在弹出菜单的“命名”框中输入一个名称(如“常用文档”)。Excel表格的基本操作教程2.再在“类别”下面任选一项(如“插入”选项),在右边“命令”下面任选一项(如“超链接”选项),将它拖到新菜单(常用文档)中,并仿照上面的操作对它进行命名(如“工资表”等),建立第一个工作簿文档列表名称。重复上面的操作,多添加几个文档列表名称。3.选中“常用文档”菜单中某个菜单项(如“工资表”等),右击鼠标,在弹出的快捷菜单中,选“分配超链接→打开”选项,打开“分配超链接”对话框。通过按“查找范围”右侧的下拉按钮,定位到相应的工作簿(如“工资.xls”等)文件夹,并选中该工作簿文档。重复上面的操作,将菜单项和与它对应的工作簿文档超链接起来。4.以后需要打开“常用文档”菜单中的某个工作簿文档时,只要展开“常用文档”菜单,单击其中的相应选项即可。提示:尽管我们将“超链接”选项拖到了“常用文档”菜单中,但并不影响“插入”菜单中“超链接”菜单项和“常用”工具栏上的“插入超链接”按钮的功能。Excel表格的基本操作教程四、制作“专业符号”工具栏Excel表格的基本操作教程在编辑专业表格时,常常需要输入一些特殊的专业符号,为了方便输入,我们可以制作一个属于自己的“专业符号”工具栏。1.执行“工具→宏→录制新宏”命令,打开“录制新宏”对话框,输入宏名?如“fuhao1”?并将宏保存在“个人宏工作簿”中,然后“确定”开始录制。选中“录制宏”工具栏上的“相对引用”按钮,然后将需要的特殊符号输入到某个单元格中,再单击“录制宏”工具栏上的“停止”按钮,完成宏的录制。仿照上面的操作,一一录制好其它特殊符号的输入“宏”。2.打开“自定义”对话框,在“工具栏”标签中,单击“新建”按钮,弹出“新建工具栏”对话框,输入名称——“专业符号”,确定后,即在工作区中出现一个工具条。切换到“命令”标签中,选中“类别”下面的“宏”,将“命令”下面的“自定义按钮”项拖到“专业符号”栏上(有多少个特殊符号就拖多少个按钮)。3.选中其中一个“自定义按钮”,仿照第2个秘技的第1点对它们进行命名。4.右击某个命名后的按钮,在随后弹出的快捷菜单中,选“指定宏”选项,打开“指定宏”对话框,选中相应的宏(如fuhao1等),确定退出。重复此步操作,将按钮与相应的宏链接起来。5.关闭“自定义”对话框,以后可以像使用普通工具栏一样,使用“专业符号”工具栏,向单元格中快速输入专业符号了。五、用“视面管理器”保存多个打印页面有的工作表,经常需要打印其中不同的区域,用“视面管理器”吧。1.打开需要打印的工作表,用鼠标在不需要打印的行(或列)标上拖拉,选中它们再右击鼠标,在随后出现的快捷菜单中,选“隐藏”选项,将不需要打印的行(或列)隐藏起来。2.执行“视图→视面管理器”命令,打开“视面管理器”对话框,单击“添加”按钮,弹出“添加视面”对话框,输入一个名称(如“上报表”)后,单击“确定”按钮。3.将隐藏的行(或列)显示出来,并重复上述操作,“添加”好其它的打印视面。4.以后需要打印某种表格时,打开“视面管理器”,选中需要打印的表格名称,单击“显示”按钮,工作表即刻按事先设定好的界面显示出来,简单设置、排版一下,按下工具栏上的“打印”按钮,一切就OK了。七、把数据彻底隐藏起来工作表部分单元格中的内容不想让浏览者查阅,只好将它隐藏起来了。1.选中需要隐藏内容的单元格(区域),执行“格式→单元格”命令,打开“单元格格式”对话框,在“数字”标签的“分类”下面选中“自定义”选项,然后在右边“类型”下面的方框中输入“;;;”(三个英文状态下的分号)。2.再切换到“保护”标签下,选中其中的“隐藏”选项,按“确定”按钮退出。3.执行“工具→保护→保护工作表”命令,打开“保护工作表”对话框,设置好密码后,“确定”返回。经过这样的设置以后,上述单元格中的内容不再显示出来,就是使用Excel的透明功能也不能让其现形。提示:在“保护”标签下,请不要清除“锁定”前面复选框中的“∨”号,这样可以防止别人删除你隐藏起来的数据。八、让中、英文输入法智能化地出现在编辑表格时,有的单元格中要输入英文,有的单元格中要输入中文,反复切换输入法实在不方便,何不设置一下,让输入法智能化地调整呢?选中需要输入中文的单元格区域,执行“数据→有效性”命令,打开“数据有效性”对话框,切换到“输入法模式”标签下,按“模式”右侧的下拉按钮,选中“打开”选项后,“确定”退出。以后当选中需要输入中文的单元格区域中任意一个单元格时,中文输入法(输入法列表中的第1个中文输入法)自动打开,当选中其它单元格时,中文输入法自动关闭。九、让“自动更正”输入统一的文本你是不是经常为输入某些固定的文本,如《电脑报》而烦恼呢?那就往下看吧。1.执行“工具→自动更正”命令,打开“自动更正”对话框。2.在“替换”下面的方框中输入“pcw”(也可以是其他字符,“pcw”用小写),在“替换为”下面的方框中输入“《电脑报》”,再单击“添加”和“确定”按钮。3.以后如果需要输入上述文本时,只要输入“pcw”字符?此时可以不考虑“pcw”的大小写?,然后确认一下就成了。十、在Excel中自定义函数Excel函数虽然丰富,但并不能满足我们的所有需要。我们可以自定义一个函数,来完成一些特定的运算。下面,我们就来自定义一个计算梯形面积的函数:1.执行“工具→宏→VisualBasic编辑器”菜单命令(或按“Alt+F11”快捷键),打开VisualBasic编辑窗口。2.在窗口中,执行“插入→模块”菜单命令,插入一个新的模块——模块1。3.在右边的“代码窗口”中输入以下代码:FunctionV(a,b,h)V=h*(a+b)/2EndFunction4.关闭窗口,自定义函数完成。以后可以像使用内置函数一样使用自定义函数。提示:用上面方法自定义的函数通常只能在相应的工作簿中使用。十一、表头下面衬张图片为工作表添加的背景,是衬在整个工作表下面的,能不能只衬在表头下面呢?1.执行“格式→工作表→背景”命令,打开“工作表背景”对话框,选中需要作为背景的图片后,按下“插入”按钮,将图片衬于整个工作表下面。2.在按住Ctrl键的同时,用鼠标在不需要衬图片的单元格(区域)中拖拉,同时选中这些单元格(区域)。3.按“格式”工具栏上的“填充颜色”右侧的下拉按钮,在随后出现的“调色板”中,选中“白色”。经过这样的设置以后,留下的单元格下面衬上了图片,而上述选中的单元格(区域)下面就没有衬图片了(其实,是图片被“白色”遮盖了)。提示?衬在单元格下面的图片是不支持打印的。十二、用连字符“&”来合并文本如果我们想将多列的内容合并到一列中,不需要利用函数,一个小小的连字符“&”就能将它搞定(此处假定将B、C、D列合并到一列中)。1.在D列后面插入两个空列(E、F列),然后在D1单元格中输入公式:=B1&C1&D1。2.再次选中D1单元格,用“填充柄”将上述公式复制到D列下面的单元格中,B、C、D列的内容即被合并到E列对应的单元格中。3.选中E列,执行“复制”操作,然后选中F列,执行“编辑→选择性粘贴”命令,打开“选择性粘贴”对话框,选中其中的“数值”选项,按下“确定”按钮,E列的内容(不是公式)即被复制到F列中。4.将B、C、D、E列删除,完成合并工作。提示:完成第1、2步的操作,合并效果已经实现,但此时如果删除B、C、D列,公式会出现错误。故须进行第3步操作,将公式转换为不变的“值”。十三、生成绩条常有朋友问“如何打印成绩条”这样的问题,有不少人采取录制宏或VBA的方法来实现,这对于初学者来说有一定难度。出于此种考虑,我在这里给出一种用函数实现的简便方法。此处假定学生成绩保存在Sheet1工作表的A1至G64单元格区域中,其中第1行为标题,第2行为学科名称。1.切换到Sheet2工作表中,选中A1单元格,输入公式:=IF(MOD(ROW(),3)=0,″″,IF(0MOD?ROW(),3(=1,sheet1!Aū,INDEX(sheet1!$A:$G,INT(((ROW()+4)/3)+1),COLUMN())))。2.再次选中A1单元格,用“填充柄”将上述公式复制到B1至G1单元格中;然后,再同时选中A1至G1单元格区域,用“填充柄”将上述公式复制到A2至G185单元格中。至此,成绩条基本成型,下面简单修饰一下。3.调整好行高和列宽后,同时选中A1至G2单元格区域(第1位学生的成绩条区域),按“格式”工具栏“边框”右侧的下拉按钮,在随后出现的边框列表中,选中“所有框线”选项,为选中的区域添加边框(如果不需要边框,可以不进行此步及下面的操作)。4.同时选中A1至G3单元格区域,点击“常用”工具栏上的“格式刷”按钮,然后按住鼠标左键,自A4拖拉至G186单元格区域,为所有的成绩条添加边框。按“打印”按钮,即可将成绩条打印出来。十四、Excel帮你选函数在用函数处理数据时,常常不知道使用什么函数比较合适。Excel的“搜索函数”功能可以帮你缩小范围,挑选出合适的函数。执行“插入→函数”命令,打开“插入函数”对话框,在“搜索函数”下面的方框中输入要求(如“计数”),然后单击“转到”按钮,系统即刻将与“计数”有关的函数挑选出来,并显示在“选择函数”下面的列表框中。再结合查看相关的帮助文件,即可快速确定所需要的函数。十五、同时查看不同工作表中多个单元格内的数据有时,我们编辑某个工作表(Sheet1)时,需要查看其它工作表中(Sheet2、Sheet3……)某个单元格的内容,可以利用Excel的“监视窗口”功能来实现。执行“视图→工具栏→监视窗口”命令,打开“监视窗口”,单击其中的“添加监视”按钮,展开“添加监视点”对话框,用鼠标选中需要查看的单元格后,再单击“添加”按钮。重复前述操作,添加其它“监视点”。以后,无论在哪个工作表中,只要打开“监视窗口”,即可查看所有被监视点单元格内的数据和相关信息。十六、为单元格快速画边框在Excel2002以前的版本中,为单元格区域添加边框的操作比较麻烦,Excel2002对此功能进行了全新的拓展。单击“格式”工具栏上“边框”右侧的下拉按钮,在随后弹出的下拉列表中,选“绘图边框”选项,或者执行“视图→工具栏→边框”命令,展开“边框”工具栏。单击工具栏最左侧的下拉按钮,选中一种边框样式,然后在需要添加边框的单元格区域中拖拉,即可为相应的单元格区域快速画上边框。提示:①如果画错了边框,没关系,选中工具栏上的“擦除边框”按钮,然后在错误的边框上拖拉一下,就可以清除掉错误的边框。②如果需要画出不同颜色的边框,可以先按工具栏右侧的“线条颜色”按钮,在随后弹出的调色板中选中需要的颜色后,再画边框即可。③这一功能还可以在单元格中画上对角的斜线。十七、控制特定单元格输入文本的长度你能想象当你在该输入四位数的单元格中却填入了一个两位数,或者在该输入文字的单元格中你却输入了数字的时候,Excel就能自动判断、即时分析并弹出警告,那该多好啊!要实现这一功能,对Excel来说,也并不难。例如我们将光标定位到一个登记“年份”的单元格中,为了输入的统一和计算的方便,我们希望“年份”都用一个四位数来表示。所以,我们可以单击“数据”菜单的“有效性”选项。在“设置”卡片“有效性条件”的“允许”下拉菜单中选择“文本长度”。然后在“数据”下拉菜单中选择“等于”,且“长度”为“4”。同时,我们再来到“出错警告”卡片中,将“输入无效数据时显示的出错警告”设为“停止”,并在“标题”和“错误信息”栏中分别填入“输入文本非法!”和“请输入四位数年份。”字样。很显然,当如果有人在该单元格中输入的不是一个四位数时,Excel就会弹出示的警告对话框,告诉你出错原因,并直到你输入了正确“样式”的数值后方可继续录入。神奇吧?其实,在Excel的“数据有效性”判断中,还有许多特殊类型的数据格式可选,比如“文本类型”啊,“序列大小”啊,“时间远近”啊,如你有兴趣,何不自作主张,自己设计一种检测标准,让你的Excel展示出与众不同的光彩呢。十八、成组填充多张表格的固定单元格我们知道每次打开Excel,软件总是默认打开多张工作表。由此就可看出Excel除了拥有强大的单张表格的处理能力,更适合在多张相互关联的表格中协调工作。要协调关联,当然首先就需要同步输入。因此,在很多情况下,都会需要同时在多张表格的相同单元格中输入同样的内容。那么如何对表格进行成组编辑呢?首先我们单击第一个工作表的标签名“Sheet1”,然后按住Shift键,单击最后一张表格的标签名“Sheet3”(如果我们想关联的表格不在一起,可以按住Ctrl键进行点选)。此时,我们看到Excel的标题栏上的名称出现了“工作组”字样,我们就可以进行对工作组的编辑工作了。在需要一次输入多张表格内容的单元格中随便写点什么,我们发现,“工作组”中所有表格的同一位置都显示出相应内容了。但是,仅仅同步输入是远远不够的。比如,我们需要将多张表格中相同位置的数据统一改变格式该怎么办呢?首先,我们得改变第一张表格的数据格式,再单击“编辑”菜单的“填充”选项,然后在其子菜单中选择“至同组工作表”。这时,Excel会弹出“填充成组工作表”的对话框,在这里我们选择“格式”一项,点“确定”后,同组中所有表格该位置的数据格式都改变了。十九、改变文本的大小写在Excel中,为表格处理和数据运算提供最强大支持的不是公式,也不是数据库,而是函数。不要以为Excel中的函数只是针对数字,其实只要是写进表格中的内容,Excel都有对它编辑的特殊函数。例如改变文本的大小写。在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木工工具采购合同
- 校园专线接送服务合同
- 阿坝职业学院《地学英语阅读与翻译》2023-2024学年第二学期期末试卷
- 陇东学院《中国特色美食文化鉴赏》2023-2024学年第二学期期末试卷
- 陕西中医药大学《二维动画技术》2023-2024学年第一学期期末试卷
- 陕西学前师范学院《园林规划设计I》2023-2024学年第二学期期末试卷
- 陕西旅游烹饪职业学院《井巷工程》2023-2024学年第二学期期末试卷
- 陕西省五校重点中学2024-2025学年高考物理试题命题比赛模拟试卷(2)含解析
- 陕西省商洛市丹凤中学2025年高三质量检测试题英语试题含解析
- 陕西省安康市旬阳县2025年三下数学期末考试模拟试题含解析
- 实时数据驱动孪生-全面剖析
- 2025年湖南省长沙市中考一模道德与法治试卷(含答案)
- 2025年上半年甘肃省农垦集团限责任公司人才招聘380人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年危险化学品企业安全生产执法检查重点事项指导目录
- 中考语文文学批注-病句表达欠妥(含答案)
- 15 一分钟(核心素养公开课一等奖创新教案)
- 2025年河南经贸职业学院单招职业技能测试题库完整
- 2024年继续教育公需课考试题目及答案
- GB∕T 2518-2019 连续热镀锌和锌合金镀层钢板及钢带
- 损伤控制性复苏课件
- 三角坐标图的判读
评论
0/150
提交评论