第一篇:上机实习报告格式
文献检索实习报告(参考格式)
课程名称:文献检索日期:
学院:班号:姓名:学号:
实验名称:电子图书等资源检索。
实验目的:掌握图书资源如何检索和利用,熟悉人名录或机构名录的检索。实验内容:
1、用CALIS检索你们自己任课教师的编著发表情况。
2、用超星检索自己所在专业的某一方面的图书出版情况,并采集某一本书的一段文字,一个图。(以超星为例)
(1).登陆四川理工学院图书馆主页。
(2).找到电子资源,点击进入图书馆电子资源界面。
(3).找到热门资源中的“超星数字图书馆”,并点击“本地”,进
入超星数字图书馆。
(4).找到“浏览器”,点击并下载超星星浏览器。
(5).下载好“超星星浏览器”后就可以浏览图书了。
(6).例如查
3、利用物竞化学品数据库检索某一具体化学物质的相关数据。
4、用万方数据库检索我国某一位院士/科学家/某学科领域著名学者的名录。
实习报告要求:用自己姓名作为文件名称,将作业发送给各班指定的同学。
第二篇:linux上机实习报告
目 录
Linux 第一次上机(运行环境RedHat)................................................................................1 调试运行CD唱片应用程序.......................................................................................1 运行过程............................................................................................................1 心得体会............................................................................................................3 编写shell脚本,求1到100的和..............................................................................3 运行过程............................................................................................................3 源代码...............................................................................................................4 编写shell脚本,从键盘输入两个数,求这两个数的和.................................................4 运行过程............................................................................................................4 源代码...............................................................................................................5 等待特定用户登录,每30秒确认一次.......................................................................5 运行过程............................................................................................................5 源代码...............................................................................................................6 找出系统中当前消耗磁盘容量最大的前10个用户,并向他们发送警告邮件...............6 运行过程............................................................................................................6 源代码...............................................................................................................8 查找输入文件的路径.................................................................................................8 运行过程............................................................................................................8 源代码...............................................................................................................9 Linux 第二次上机(运行环境RedHat)................................................................................9 定制自己的ls命令。提供至少三种带参数的执行方式................................................9 运行过程............................................................................................................9 源代码..............................................................................................................11 调试编译串行口通信程序p6.5.c...............................................................................16 运行过程..........................................................................................................16 Linux 第三次上机(运行环境RedHat,CentOS)...............................................................16 创建一个系统监听守护进程,一旦接收到其他进程发来的信号,马上给出报告........16 运行过程..........................................................................................................16 源代码.............................................................................................................18 分别利用本地socket套接字和INTENET套接字实现进程间文件传输......................20 本地socket套接字运行过程.............................................................................20 本地socket套接字服务器server1.c源代码........................................................22 本地socket套接字客户端client1.c源代码.........................................................23 INTENET套接字运行过程...............................................................................25 INTENET套接字服务器server2.c源代码..........................................................28 INTENET套接字客户端client2.c源代码...........................................................29 感谢与收获....................................................................................................................30
Linux 第一次上机(运行环境RedHat)调试运行CD唱片应用程序 运行过程
图表 1第一步,使用./CD 命令运行CD脚本
图表 2进入选项界面
图表 3增加CD
图表 4查找CD
图表 5查询数目
图表 6退出
心得体会
通过运行书上的CD唱片应用程序,进一步地了解到shell编程的方法,以及编写程序的思路。
编写shell脚本,求1到100的和 运行过程
图表 7使用./sum1to100运行
源代码
图表 8使用cat sum1to100查看源代码
编写shell脚本,从键盘输入两个数,求这两个数的和
运行过程
图表 9使用./sumAandB 运行
源代码
图表 10使用cat sumAandB查看源代码
等待特定用户登录,每30秒确认一次 运行过程
已知特定用户是zzx,我首先让root用户登录并运行程序,可以发现每隔30s提醒一次
图表 11使用./checkuser运行
当我切换到zzx用户,并再次运行程序,可得如下结果
源代码
图表 12使用cat checkuser查看代码
找出系统中当前消耗磁盘容量最大的前10个用户,并向他们发送警告邮件 运行过程
由于权限等问题,我们使用root用户运行程序
图表 13使用./mymail运行
运行完毕后,我们就可以查看邮件了
图表 14 root用户收到的邮件
图表 15 zzx用户收到的邮件
图表 16 t1用户收到的邮件
源代码
图表 17 使用cat命令查看
查找输入文件的路径 运行过程
由于权限的问题,我们使用root用户运行程序
图表 18 使用./route运行,并按照要求输入文件名
源代码
图表 19 使用cat route查看源代码
Linux 第二次上机(运行环境RedHat)定制自己的ls命令。提供至少三种带参数的执行方式 运行过程
图表 20 使用./ls 运行不带参数ls
图表 21使用./ls-l 运行带参数-l 的ls
图表 22 使用./ls-a运行带参数-a的ls
图表 23使用./ls-al 运行带参数-al的ls 源代码
#include #include int do_ls(char *dir,char *filename,int lflag){ int n;struct stat buf;char out[100];struct passwd *pw; struct group *gr;struct tm *t;if(lflag == 0){ } { } return 0; printf(“%st”,filename);if(lstat(dir,&buf)<0)fprintf(stderr,“stat error:%sn”,strerror(errno));return-1;switch(buf.st_mode & S_IFMT){ case S_IFREG: printf(“-”);break;case S_IFDIR: printf(“d”);break;case S_IFCHR: printf(“c”);break;case S_IFBLK: printf(“b”);break;case S_IFIFO: printf(“p”);break;case S_IFLNK: printf(“l”);break; case S_IFSOCK: printf(“s”);} for(n=8;n>=0;n--){ if(buf.st_mode&(1< break; } } else { } { case 2: printf(“r”);break;case 1: printf(“w”);break;case 0: printf(“x”);break;default: break;} printf(“-”);printf(“ %d”,buf.st_nlink); pw = getpwuid(buf.st_uid);printf(“ %s”,pw->pw_name);gr = getgrgid(buf.st_gid);printf(“ %s”,gr->gr_name);printf(“ %ld”,buf.st_size);t = localtime(&buf.st_atime);printf(“ %d-%d-%d %d:%d” ,t->tm_year+1900 ,t->tm_mon+1 ,t->tm_mday ,t->tm_hour ,t->tm_min); printf(“ %s ”,filename); if(S_ISLNK(buf.st_mode)){ printf(“-> ”);if(readlink(filename,out,100)==-1){ } //printf(“readlink errorn”); } printf(“%s”,out);} printf(“n”);return 0;int ls_prepare(char *w,int aflag,int lflag){ struct stat buf;char name[100];DIR *dir; struct dirent *pdr;if(lstat(w,&buf)<0){ fprintf(stderr,“stat error:%sn”,strerror(errno));return-1;} if(S_ISDIR(buf.st_mode)){ dir = opendir(w);{ } closedir(dir); while((pdr = readdir(dir))!=NULL)if(aflag==0){ if(pdr->d_name[0]=='.') continue;memset(name,0,100); strcpy(name,w); strcat(name,“/”); strcat(name,pdr->d_name);do_ls(name,pdr->d_name,lflag);}else { } memset(name,0,100);strcpy(name,w);strcat(name,“/”);strcat(name,pdr->d_name);do_ls(name,pdr->d_name,lflag);}else { do_ls(w,w,lflag); } { } } return 0;int main(int argc,char **argv)int aflag =0;int lflag =0;char c;int i;while((c = getopt(argc,argv,“al”))!=-1){ } switch(c){ case 'a': aflag =1;break;case 'l': lflag =1;break;default: break;} if(argc == optind){ ls_prepare(“./”,aflag,lflag);} else { } for(i=optind;i 调试编译串行口通信程序p6.5.c 运行过程 由于权限问题,我们在root用户下运行程序 图表 24 使用./mytrunk不带参数运行 图表 25使用./mytrunk /dev/ttyS0 0带参数运行 Linux 第三次上机(运行环境RedHat,CentOS)创建一个系统监听守护进程,一旦接收到其他进程发来的信号,马上给出报告 运行过程 图表 26首先运行守护进程之后查看 当前进程 图表 27可以发现守护进程-jincheng在后台运行,且 PPID=1,PID=4085 图表 28可以发现守护进程向test.txt发送了start 图表 29向守护进程发送终止信号,终止守护进程 图表 30可以发现后台运行的守护进程没了 图表 31可以发现守护进程又向test.txt发送了end 图表 32具体查看test.txt 图表 33具体查看test.txt的内容 源代码 #include if(sig==SIGTERM){ write(fd1,“endn”,5);exit(0);} } int daemon(int nochdir, int noclose){ pid_t pid; pid = fork(); /* In case of fork is error.*/ if(pid < 0) { perror(“fork”); return-1; } /* In case of this is parent process.*/ if(pid!= 0) exit(0); /* Become session leader and get pid.*/ pid = setsid(); if(pid <-1) { perror(“setsid”); return-1; } /* Change directory to root.*/ if(!nochdir) chdir(“/”); /* File descriptor close.*/ if(!noclose) { int fd; fd = open(“/dev/null”, O_RDWR, 0); if(fd!=-1) { dup2(fd, STDIN_FILENO); } dup2(fd, STDOUT_FILENO); dup2(fd, STDERR_FILENO); if(fd > 2) close(fd); } umask(0027); return 0; } int main(void){ fd1=open(“test.txt”,O_RDWR | O_TRUNC); } write(fd1,“startn”,7);daemon(0,0);signal(SIGTERM,sigintHandler);sleep(1000);return 0; 分别利用本地socket套接字和INTENET套接字实现进程间文件传输 本地socket套接字运行过程 图表 34使用./server1运行服务器,显示服务器等待状态 图表 35当在另外一个终端运行客户端程序时,服务器显示客户连接,并要求输入传输文件名称 图表 36当服务器输入文件名称server1.c后客户端显示接收信息,不过接收到的文件重定向到 test.txt中 图表 37 server1.c的内容 图表 38 客户端接收到显示在test.txt的内容,和server1.c的内容比较,完全一致 本地socket套接字服务器server1.c源代码 #include int filefd,n;//////////////// char file[100],buf[1024];//////////////// int server_sockfd,client_sockfd; int server_len,client_len; struct sockaddr_un server_address; struct sockaddr_un client_address; unlink(“server_socket”); server_sockfd =socket(AF_UNIX,SOCK_STREAM,0); server_address.sun_family =AF_UNIX; strcpy(server_address.sun_path,“server_socket”); server_len =sizeof(server_address); bind(server_sockfd,(struct sockaddr *)&server_address,server_len); listen(server_sockfd,5); while(1) { printf(“server waitingn”); client_len =sizeof(client_address); client_sockfd=accept(server_sockfd,(struct *)&client_address,&client_len); if(client_sockfd!=-1) { printf(“you have a client ,please put the filename to transport!n”); scanf(“%s”,file); if((filefd=open(file,O_RDWR))<0) { perror(“can't find the file”); exit(1); } printf(“filefd= %dn”,filefd); printf(“the file is transported ,please wait...n”); lseek(filefd,0L,0);//每次接受客户机连接,应将用于读的源文件指针移到文件头 write(client_sockfd,file,sizeof(file));//传送文件名 if((n=read(filefd,buf,sizeof(buf)))>0) { } write(client_sockfd,buf,n); sockaddr printf(“you have transport %d bytes and it is end!n”,n); close(client_sockfd); } close(filefd); } } 本地socket套接字客户端client1.c源代码 #include #include int filefd,n,oldfilefd;///////////////// char file[100],buf[1024]; int sockfd; int len; struct sockaddr_un address; int result; sockfd =socket(AF_UNIX, SOCK_STREAM,0); address.sun_family =AF_UNIX; strcpy(address.sun_path,“server_socket”); len=sizeof(address); result=connect(sockfd,(struct sockaddr *)&address,len); if(result ==-1) { perror(“oops:client1”); exit(1); } if(result!=-1) { oldfilefd=open(“test.txt”,O_RDWR); filefd=dup(oldfilefd); read(sockfd,file,sizeof(file)); printf(“the filename you receive is:%sn”,file); if((n=read(sockfd,buf,sizeof(buf)))>0) { write(filefd,buf,n); } printf(“you have received a file which is %d bytes,but the file's context cover the test.txt,so please check into test.txt!n”,n); close(sockfd); } close(filefd); exit(0);} INTENET套接字运行过程 图表 39使用./server2运行服务器,显示服务器等待状态 图表 40当在另外一个终端运行客户端程序时,服务器显示客户连接,并要求输入传输文件名称 图表 41当服务器输入文件名称server2.c后客户端显示接收信息,不过接收到的文件重定向到 test.txt中 图表 42 server2.c的内容 图表 43客户端接收到显示在test.txt的内容,和server2.c的内容比较,完全一致 INTENET套接字服务器server2.c源代码 #include int main(){ int filefd,n;//////////////// char file[100],buf[4096];/////////////////// int server_sockfd,client_sockfd; int server_len,client_len;struct sockaddr_in server_address;struct sockaddr_in client_address;server_sockfd =socket(AF_INET,SOCK_STREAM,0);server_address.sin_family=AF_INET;server_address.sin_addr.s_addr=inet_addr(“127.0.0.1”);server_address.sin_port =9734;server_len=sizeof(server_address);bind(server_sockfd,(struct sockaddr *)&server_address,server_len);listen(server_sockfd,5);while(1) { printf(“server waitingn”); client_len =sizeof(client_address); client_sockfd=accept(server_sockfd,(struct *)&client_address,&client_len); if(client_sockfd!=-1) { printf(“you have a client ,please put the filename to transport!n”);scanf(“%s”,file); if((filefd=open(file,O_RDWR))<0){ sockaddr perror(“can't find the file”); exit(1); } printf(“filefd= %dn”,filefd); printf(“the file is transported ,please wait...n”); lseek(filefd,0L,0);//每次接受客户机连接,应将用于读的源>文件指针移到文件头 write(client_sockfd,file,sizeof(file));//传送文件名 if((n=read(filefd,buf,sizeof(buf)))>0) { write(client_sockfd,buf,n); } printf(“you have transport %d bytes and it is end!n”,n); close(client_sockfd); } close(filefd); } } INTENET套接字客户端client2.c源代码 #include int main(){ int filefd,n,oldfilefd;//////////////////// char file[100],buf[4096];int sockfd;int len;struct sockaddr_in address;int result;sockfd =socket(AF_INET,SOCK_STREAM,0);address.sin_family =AF_INET;address.sin_addr.s_addr =inet_addr(“127.0.0.1”);address.sin_port =9734;len =sizeof(address); result=connect(sockfd,(struct sockaddr *)&address,len); if(result ==-1) { perror(“oops:client2”); exit(1); } if(result!=-1){ oldfilefd=open(“test.txt”,O_RDWR); filefd=dup(oldfilefd); read(sockfd,file,sizeof(file)); printf(“the filename you receive is:%sn”,file); if((n=read(sockfd,buf,sizeof(buf)))>0) { write(filefd,buf,n); } printf(“you have received a file which is %d bytes,but the file's context cover the test.txt,so please check into test.txt!n”,n); close(sockfd);} close(filefd); exit(0);} 感谢与收获 通过这几次上机实习,使我更加扎实的掌握了有关Linux C编程方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过编程,使我们掌握的知识不再是纸上谈兵。 过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上披荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可! 实践课诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。 我认为,在这学期的课程设计中,不仅培养了独立思考、动手操作的能力,在各种 其它能力上也都有了提高。更重要的是,在课程设计上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。 回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。 题目: 大地测量学上机实习 学 号: 姓 名: 班 级: 专 业: 测绘工程 课程名称: 大地测量学基础 课程老师: 大地测量学上机实习报告 一、实习目的: 了解大地测量学的定义以及作用,让同学们充分了解大地测量学在现代社会的重要地位及其广泛的应用,让同学们体验大地测量的一些解题计算方法与运用。也让同学们对于复杂的测绘计算如何用计算机通过编程来解决,同时对于坐标转化和高斯投影的处理方法进行一定的了解。 二、实习任务: 1、2、空间坐标转换编程; 高斯投影正算编程; 3、高斯投影反算编程; 三、实习时间与地点: 地点:核工楼410教室; 时间:每周四上午一二节课,共三周; 四、实习仪器: 电脑,C++编程软件; 5、实习步骤: 5.1实验方法步骤 1、先了解书本上关于大地主题解算的步骤; 2、根据公式用VC编写程序 3、对编写的程序代码进行调试运行 5.1.1大地坐标空间直角坐标系转换 X(NH)cosBcosL1)空间大地坐标系向空间直角坐标系的转换公式为:Y(NH)cosBsinLZ[N(1e2)H]sinB式中,Na,a为椭球的长半轴,N为椭球的卯酉圈曲率半径a=6378.137km W W1e2sin2B,e2a2b2a2,e为椭球的第一偏心率,b=6356.7523141km。 2)程序代码 #include a=a/180*PI;return a;} void deg(double d,int *d1,int *d2,double *d3){d=d/PI;*d1=(int)d;*d2=(int)((d-*d1)*60);*d3=((d-*d1)*60-*d2)*60;} void X1(double a1,double e){double l,b,h,x,y,z,a,b1,c,n,w;printf(“please input L:n”);scanf(“%lf%lf%lf”,&a,&b1,&c);l=rad(a,b1,c); b为椭球的短半轴 printf(“please input B:n”);scanf(“%lf%lf%lf”,&a,&b1,&c);b=rad(a,b1,c);printf(“please input H:n”);scanf(“%lf”,&h);w=sqrt((1-e*e*sin(b)*sin(b)));n=a1/w;x=(n+h)*cos(b)*cos(l);y=(n+h)*cos(b)*sin(l);z=(n*(1-e*e)+h)*sin(b);printf(“X=%fnY=%fnZ=%fn”,x,y,z);} void X2(double a1,double e){double l,b,h,x,y,z,n,w,m,g,m1,g1,l3,b3;int l1,l2,b1,b2;printf(“please input X:n”);scanf(“%lf”,&x);printf(“please input Y:n”);scanf(“%lf”,&y);printf(“please input Z:n”);scanf(“%lf”,&z);l=atan2(y,x);do{m=(z+a1*e*e*g/sqrt(1+g*g-e*e*g*g))/sqrt(x*x+y*y);m1=atan(m);g1=atan(g);m1=m1/PI*180*3600;g1=g1/PI*180*3600;g=m;} while(sqrt((m1-g1)*(m1-g1))>0.0001);b=atan(m);w=sqrt(1-e*e*sin(b)*sin(b));n=a1/w;h=sqrt(x*x+y*y)/cos(b)-n;deg(l,&l1,&l2,&l3);deg(b,&b1,&b2,&b3);printf(“L=%d°%d'%2.6f''nB=%d°%d'%2.6f''nH=%5.6fmn”,l1,l2,l3,b1,b2,b3,h);} void f(int a){double a1,e,e2;int b,c;printf(“please input L,B,H→X,Y,Z:请输入1 或 X,Y,Z→L,B,H:请输入2n”);scanf(“%d”,&b);printf(“请选择参考椭球面:n克拉索夫斯基椭球(请输入1)n或 IUGG 1975椭球(请输入2)n或 CGCS 2000椭球(请输入3)n或WGS-84椭球体(请输入4)”);scanf(“%d”,&c);if(c==1){a1=6378245.0000,e2=0.00669342162297;} else if(c==2){a1=6378140.0000,e2=0.00669438499959;} else if(c==3){a1=6378137.0000,e2=0.00669438002290;} else if(c==4){a1=6378137.0000,e2=0.00669437999013;};e=sqrt(e2);if(b==1)X1(a1,e);else if(b==2)X2(a1,e);} main(){int a=1;do {f(a);printf(“A,B,0n”);scanf(“%d”,&a);} while(a);} 调试运行: 5.1.2高斯投影正算 1)由第二条件知 : 位于中央子午线上的点,投影后的纵坐标 x 应等于投影前从赤道量至该点的子午线弧长 X,即(8-33)式第一式中,当 有: 顾及(对于中央子午线) 时 得: 依次求得 并代入(8-33)式,得到高斯投影正算公式 2)程序代码: #include x=X+(N/(2*p*p))*sin(B)*cos(B)*l*l+(N/(24*p*p*p*p))*sin(B)*cos(B)*cos(B)*cos(B)*(5-t*t+9*n)*l*l*l*l;y=(N/p)*cos(B)*l+(N/(6*p*p*p))*cos(B)*cos(B)*cos(B)*(1-t*t+n)*l*l*l+(N/(120*p*p*p*p*p))*cos(B)*cos(B)*cos(B)*cos(B)*cos(B)*(5-18*t*t+t*t*t*t)*l*l*l*l*l;printf(“x=%lfny=%lfn”,x,y);return 0;} 运行调试结果: 5.1.3高斯投影反算 公式 BBftftf2MfNf5fy2tf24MfN3f53t2f22429tyfff720MfNNfy6190t2t4y6f45flyy32212tffcosBf6N3cosBffy5120N5fcosBf2)程序代码: #include 528t2f224t422f6f8ftf#define PI 3.14***932 #define P 206264.806247096355 void main(){ long double RadianToAngle(long double alfa);long double Bf(long double a,long double b,long double x);void GSFS(long double a,long double b,long double Bf,long double y,long double *B,long double *l);long double a,b,x,y,L0;long double FSB,FSL;long double *pointer_B,*pointer_L;long double DH;pointer_B=&FSB;pointer_L=&FSL;a=6378140.0000000000;b=6356755.2881575287;printf(“请输入x坐标和y坐标:(输入时x坐标和y坐标之间用逗号隔开)n”);scanf(“%lf,%lf”,&x,&y);FSB=Bf(a,b,x);DH=floor(y/1000000);y=y-DH*1000000-500000;GSFS(a,b,FSB,y,pointer_B,pointer_L);FSB=RadianToAngle(FSB);FSL=RadianToAngle(FSL);L0=DH*6-3;printf(“nt===========================计算结果===========================n”);printf(“nttB=%-20.10lfttL=%-20.10lfn”,FSB,DH*6-3+FSL);printf(“nt===============n”);} long double RadianToAngle(long double alfa){ long double alfa1,alfa2;alfa=alfa*180./PI;alfa1=floor(alfa)+floor((alfa-floor(alfa))*60.)/100.;alfa2=(alfa*60.-floor(alfa*60.))*0.006;alfa1+=alfa2;return(alfa1);} long double Bf(long double a,long double b,long double x){ long double e,m0,m2,m4,m6,m8;long double a0,a2,a4,a6,a8;long double B,FB,Bn1,Bn;int n=0;e=(sqrt(a*a-b*b))/a;m0=a*(1-e*e);m2=3.0/2.0*e*e*m0;m4=5.0/4.0*e*e*m2;m6=7.0/6.0*e*e*m4;m8=9.0/8.0*e*e*m6;a0=m0+m2/2.0+3.0/8.0*m4+5.0/16.0*m6+35.0/128.0*m8;a2=m2/2.0+m4/2.0+15.0/32.0*m6+7.0/16.0*m8;a4=m4/8.0+3.0/16.0*m6+7.0/32.0*m8;a6=m6/32.0+m8/16.0;a8=m8/128.0;B=x/a0;FB=a2/2.0*sin(2*B)-a4/4.0*sin(4*B)+a6/6.0*sin(6*B)-a8/8.0*sin(8*B);do { Bn=B;B=(x+FB)/a0;FB=a2/2.0*sin(2*B)-a4/4.0*sin(4*B)+a6/6.0*sin(6*B)-a8/8.0*sin(8*B);Bn1=B;} while(fabs((Bn1-Bn)*P)>=0.000000000001);return(B);} void GSFS(long double a,long double b,long double Bf,long double y,long double *B,long double *l){ long double e,e1,V,t,u2;long double n0,n2,n4,n6,n8,sin2B,sin4B,sin6B,sin8B,N;e=(sqrt(a*a-b*b))/a;e1=(sqrt(a*a-b*b))/b;V=sqrt(1+e1*e1*cos(Bf)*cos(Bf));t=tan(Bf);u2=e1*e1*cos(Bf)*cos(Bf);n0=a;n2=1.0/2.0*e*e*n0;n4=3.0/4.0*e*e*n2;n6=5.0/6.0*e*e*n4;n8=7.0/8.0*e*e*n6;sin2B=pow(sin(Bf),2);sin4B=pow(sin(Bf),4);sin6B=pow(sin(Bf),6);sin8B=pow(sin(Bf),8);N=n0+n2*sin2B+n4*sin4B+n6*sin6B+n8*sin8B; *B=Bf-1.0/2.0*V*V*t*((y/N)*(y/N)-1.0/12.0*(5+3*t*t+u2-9*u2*t*t)*pow((y/N),4)+1.0/360.0*(61+90*t*t+45*pow(t,4))*pow((y/N),6));*l=1.0/cos(Bf)*((y/N)-1.0/6.0*(1+2*t*t+u2)*pow((y/N),3)+1.0/120.0*(5+28*t*t+24*pow(t,4)+6*u2+8*u2*t*t)*pow(y/N,5));} 3)运行结果: 7、实习总结: 通过这次大地坐标转换及高斯投影正反算程序代码编写设计的上机操作学习,我更加了解了如何运用计算机编程去处理复杂的测绘计算,并且也知道了对于编程时遇到的一般问题该如何解决,对于坐标转换和高斯正反算的一些理念也有一定的了解。本次实习,利用计算机编程来实现测量数据的处理,让我对坐标系之间的转化,高斯投影正反算的原理以及计算过程有了更深刻的理解和记忆,感觉受益匪浅。不过在本次实习期间,也出现了一些小问题。在编写程序的时候,略显生疏,花费了较多的时间,以后有待提高;对于计算公式中的有的字母,忘记其所代表的具体意义,不过最终通过复习,搞明白每一个字母的含义。 实习就是一个理论与实践相结合的过程,希望自己能在这一方面有更大的进步! 计算机上机实习报告 姓名:张陆浩 班级:高材11001 学号:201001978 老师:张老师 熊老师 时间:2011年12月24日 一.实验目的: 1.熟悉VB 6.0的开发环境,掌握基本的编程方法,熟悉用VB语言完成一个应用程序的设计过程,掌握有关编辑和调试程序的方法和技巧;2.主要掌握VB语言中的标准模块的建立﹑数据文件的读出与写入、数组与选择结构的运用,图形操作等内容 3.了解开发简单应用程序的全过程,包括:分析﹑设计﹑编程﹑调试和编写报告.二.实习要求: (一)。用记事本新建一个文本文件,将本班M名学生N门考试课的成绩输入到这个文件中,建议按如下形式存放(注:20=M<=50,5<=N<=8,下文以M=4,N=3为例): 学号 姓名 英语 数学 物理 化学 VB 1 张陆浩 2 林丹 3 李宗伟 4 李永波 (二)。将N门考试课以及其分数输入到另一个数据文件(文件类型同上题)中,建议以下列形式存放: 编号 课程名称 课程学分 1 英语 5.0 2 数学 4.5 3 物理 5.0 4 化学 4.5 5 VB 4.5 (三)。请编写一个简单的学生成绩管理程序,以完成以下功能: 1.根据以上两文件内容分别计算每个学生N门课程的加权平均分(保留两位小数,四舍五入),按平均分排列名次,平均分相同则名 次并列。用VB创建一个数据文件,存放班级的成绩表。 2.分别统计全班每门课的平均分,并计算各分数段(90分以上;80~89;70~79;60~69;60分以下)的学生数。.3.打印每名学生成绩条(并将结果存放到用VB创建的一个新的数据文件中)。 4.显示所有存在不及格课程的学生的名单(含学号,不及格课程名称,课程的学分及成绩)。 5.屏幕显示优等生名单及打印每门课程成绩分布图。优等生条件(只要满足三个中任一个就可以): a)平均分>=90分 b)名次在本班位于前四名 c)平均分>=85分,并且至少有一门课的成绩>=95分 三、实习步骤 1、用记事本新建一个学生成绩文本文件(其中包括学生学号,成绩,姓名,课程及成绩)。 2、用记事本新建一个课程学分文本文件。 3、编辑菜单编辑器:编辑四个可拉式菜单,包括学生成绩、成绩处理、成绩编辑、画图。 4、编辑代码:分别编辑打印学生成绩和学分代码,编辑加权平均分、各科平均分、分数段、成绩条、排名、优等生、差等生的代码,还有画各科目成绩人数图的代码。 5、调试程序代码并保存。 6、打印代码。 三.相关数据列表: (一)。源文件 (1)成绩 学号 姓名 英语 数学 物理 化学 VB 1 张陆浩 97 98 97 97 98 2 林丹 92 87 79 91 84 3 李宗伟 75 96 83 75 73 4 李永波 89 93 83 86 82 5 王仪涵 92 79 89 86 80 6 汪鑫 93 65 86 68 84 7 付海峰 94 91 89 92 80 8 湛龙 86 83 88 80 92 9 盖德 68 79 54 72 71 10 陶菲克 69 76 59 81 75 11 佐佐木 85 83 68 57 71 12 李娜 94 63 62 65 53 13 陈金 86 79 89 94 83 14 兰洋 91 93 92 89 75 15 小志 95 89 93 86 87 16 棃一名 92 86 83 67 59 17 吴凯飞 67 75 57 82 62 18 江方 93 80 73 76 84 19 胡艳 74 68 58 63 71 20 张继原 68 95 68 84 93(2).学分 编号 课程名称 课程学分 1 英语 5.0 2 数学 4.5 3 物理 5.0 4 化学 4.5 5 VB 4.5 四.运行效果: (一).学生管理 (1)打开课程成绩及学分 (2)打开计算的加权平均分﹑排名及各科平均分 (三).编辑 (1)打开计算的各科人数分布 (2)打开按学号查找每个学生的成绩 a)输入要查找学生的学号 b)得到该生的成绩条 (3)打开查找到的优等生信息 (4)打开不及格学生的分布 (四).成绩分布图 五.实习小结 通过两个星期的上机实习,我体会颇深,不仅表现在VB语言程序设计中,而且表现在与人交流和独立自主完成任务的决心中。 本次上机在VB程序设计中我学会了很多以前不会或根本一点都不懂的东西。比如,在程序设计过程中,刚开始我弄不清楚怎样把编辑的文件读到VB中,但是通过询问老师和同学讨论,终于弄清了思路,即先将文件打开,再将数据分别放入若干个数组中,最后再将它读出来。除此之外,我还明白了变量的作用域对编程的重要性和子过程,函数过程数据处理的帮助。而对以前学的,像选择结构,循环结构等也进行了巩固和运用。在数据处理和打印的时候进行了大量运用。为了使程序更人性化化,我还运用了msgbox,inputbox等方法,使我对所学的知识进行了综合的运用。 我相信通过这次实习,我对VB和计算机语言都有了更深刻的认识。虽然在实习的过程中,我发现了自己在编写程序中的不足,像思维不够严密等,但我相信,只要认真、努力就一定会有收获 六.程序代码 (一).创建标准模块 Type student “定义变量:student” number As String * 9 name As String * 3 score(1 To 5)As Single average As Single rank As Integer End Type Type class “定义变量:class” num As String * 9 nam As String * 3 scor As Single End Type Public stu()As student, cla()As class, sumscor As Integer, subj()As class Public q(5)As Integer, t(5)As Integer, x(5)As Integer, y(5)As Integer, h(5)As Integer “定义删除空格函数” Public Function deletespace(str As String)As String Dim i% i = InStr(str, “ ”)Do While i <> o str = Replace(str, “ ”, “ ”)i = InStr(str, “ ”)Loop deletespace = str End Function Public Sub addave(stu()As student, cou()As course)“定义计算加 For i = 1 To UBound(stu)权平均分 Dim jqpj!, x!, y!的子过 程 x = 0 y = 0 For j = 1 To 5 x = x + cou(j).score y = y + stu(i).score(j)* cou(j).score Next j stu(i).jqpj = y / x Next i End Sub Public Sub mc(stu()As student)“定义计算排名的子过程” For i = 1 To UBound(stu)stu(i).rank = 0 For j = 1 To UBound(stu)If stu(i).jqpj <= stu(j).jqpj Then stu(i).rank = stu(i).rank + 1 End If Next j Next i End Sub(二).读取考试成绩和课程学分(1).打开文件 Private Sub studentscore_Click()CommonDialog1.Filter = “文本文件|*.txt” CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #1 Line Input #1, str1 Print str1 Do While Not EOF(1)Line Input #1, str str = deletespace(Trim(str))a = Split(str, “ ”)n = n + 1 ReDim Preserve stu(n)stu(n).number = a(0)stu(n).name = a(1)For i = 1 To 5 stu(n).score(i)= a(i + 1)Next i Loop For i = 1 To n Print stu(i).number;Spc(1);stu(i).name;Spc(3);For j = 1 To 5 Print stu(i).score(j);Spc(3);Next j Print Next i Close #1 End Sub Private Sub classrank_Click()CommonDialog2.Filter = “文本文件|*.txt” CommonDialog2.ShowOpen Open CommonDialog2.FileName For Input As #2 Line Input #2, str2 Print str2 sumscor = 0 Do While Not EOF(2)Line Input #2, str3 str3 = deletespace(Trim(str3))b = Split(str3, “ ”)m = m + 1 ReDim Preserve cla(m)cla(m).num = b(0)cla(m).nam = b(1)cla(m).scor = b(2)sumscor = sumscor + Val(cla(m).scor)Loop For k = 1 To m Print cla(k).num;Spc(2);cla(k).nam;Spc(3);cla(k).scor;Spc(3)Next k End Sub(2).分数处理 Private Sub ran_Click()“加权平均分及名次” Form1.Cls For n = 1 To 20 sum = 0 For i = 1 To 5 sum = sum + stu(n).score(i)* cla(i).scor Next i stu(n).average = Format(sum / sumscor, “##.##”)Next n For n = 1 To 20 stu(n).rank = 1 For j = 1 To 20 If stu(n).average < stu(j).average Then stu(n).rank = stu(n).rank + 1 End If Next j Next n Print “学号”;Spc(6);“姓名”;Spc(4);“英 语”;Spc(2);“数 学”;Spc(2);“ 物 理”;Spc(3);“化 学”;Spc(2);“V B”;Spc(2);“加权平均分”;Spc(2);“名次” For n = 1 To 20 Print stu(n).number;Spc(1);stu(n).name;Spc(3);For i = 1 To 5 Print stu(n).score(i);Spc(3);Next i Print stu(n).average;Spc(3);stu(n).rank Next n End Sub Private Sub eaverage_Click()“ 课程平均分” Print Spc(7);“英 语”;Spc(1);“数 学”;Spc(1);“ 物 理”;Spc(1);“化 学”;Spc(1);“V B” Print “平均分”;For i = 1 To 5 sum = 0 For n = 1 To 20 sum = sum + stu(n).score(i)Next n j = Format(sum / 20, “00.00”)Print Spc(2);j;Next i End Sub(3).编辑 Private Sub scor_Click()“计算打印个分数段人数” Form1.Cls Print “范围”;“英 语”;Spc(3);“数 学”;Spc(3);“ 物 理”;Spc(3);“化 学”;Spc(3);“V B” For i = 1 To 5 For n = 1 To 20 Select Case stu(n).score(i)Case 90 To 100 q(i)= q(i)+ 1 Case 80 To 89 x(i)= x(i)+ 1 Case 70 To 79 t(i)= t(i)+ 1 Case 60 To 69 h(i)= h(i)+ 1 Case Else y(i)= y(i)+ 1 End Select Next n Next i Print “>90”;For i = 1 To 5 Print Spc(4);q(i);Next i Print Print “80_89”;For i = 1 To 5 Print Spc(4);x(i);Next i Print Print “70_79”;For i = 1 To 5 Print Spc(4);t(i);Next i Print Print “60_69”;For i = 1 To 5 Print Spc(4);h(i);Next i Print Print “<60”;For i = 1 To 5 Print Spc(4);y(i);Next i End Sub Private Sub stuscolist_Click()“打印成绩条” Form1.Cls n = InputBox(“请输入学号”)Print “学号”;Spc(5);“姓名”;Spc(3);“英 语”;Spc(3);“数 学”;Spc(3);“ 物 理”;Spc(3);“化 学”;Spc(3);“V B” Print stu(n).number;Spc(1);stu(n).name;Spc(3);For i = 1 To 5 Print stu(n).score(i);Spc(3);Next i End Sub Private Sub excellent_Click()“打印优等生” Form1.Cls Dim t As Integer Print “姓名”;Spc(4);“学号”;Spc(8);“英 语”;Spc(4);“数 学”;Spc(3);“ 物 理”;Spc(3);“化 学”;Spc(4);“V B”;Spc(6);“平均分”;Spc(4);“名次” For i = 1 To 20 t = 0 For j = 1 To 5 If stu(i).score(j)>= 95 Then t = t + 1 End If Next j If stu(i).average >= 85 And t >= 2 Or stu(i).average >= 90 Or stu(i).rank <= 3 Then Print stu(i).name;Spc(2);stu(i).number;Spc(3);For j = 1 To 5 Print stu(i).score(j);Spc(5);Next j Print stu(i).average;Spc(5);stu(i).rank End If Next i End Sub Private Sub ugstulist_Click()“打印不及格学生” Form1.Cls For n = 1 To 20 For i = 1 To 5 If stu(n).score(i)< 60 Then Print stu(n).number;stu(n).name;stu(n).score(i);cla(i).nam;cla(i).scor End If Next i Next n End Sub(5).成绩分布图 Private Sub Command1_Click()“新建窗体form2” For i = 0 To 4 Picture1(i).Scale(0, 14)-(100, 0)Picture1(i).Line(10, 2)-(92, 2), vbRed Picture1(i).Print “分数段” Picture1(i).Line(10, 2)-(10, 14), vbRed Picture1(i).Print “人数” For j = 2 To 10 Step 2 Picture1(i).CurrentY = j + 2 Picture1(i).CurrentX = 4 Picture1(i).Print j Next j Picture1(i).CurrentX = 10 Picture1(i).CurrentY = 2 Picture1(i).Line(10, 2)-(26, 2 + q(1 + i)), vbGreen, BF Picture1(i).CurrentX = 26 Picture1(i).CurrentY = 2 Picture1(i).Line(26, 2)-(42, 2 + x(i + 1)), vbRed, BF Picture1(i).CurrentX = 42 Picture1(i).CurrentY = 2 Picture1(i).Line(42, 2)-(58, 2 + t(i + 1)), vbGreen, BF Picture1(i).CurrentX = 58 Picture1(i).CurrentY = 2 Picture1(i).Line(58, 2)-(74, 2 + h(i + 1)), vbRed, BF Picture1(i).CurrentX = 74 Picture1(i).CurrentY = 2 Picture1(i).Line(74, 2)-(90, 2 + y(i + 1)), vbGreen, BF Picture1(i).Line(10, 2)-(26, 2), vbGreen Picture1(i).Line(26, 2)-(42, 2), vbRed Picture1(i).Line(42, 2)-(58, 2), vbGreen Picture1(i).Line(58, 2)-(74, 2), vbRed Picture1(i).Line(74, 2)-(90, 2), vbGreen Picture1(i).CurrentX = 10 Picture1(i).CurrentY = 2 Picture1(i).Print “ >=90 80-89 70-79 60-69 <=60” Next i End Sub 课程实习报告 实习课程:《ArcGIS专业技能训练实习报告》 姓 名: 学 号: 专 业: 班 级: 2012年 6月 20日 ArcGIS专业技能训练实习报告 实习目的: 通过学习Arcgis这款Gis应用软件熟练我们的实际应用能力,深入理解GIS软件应用的核心部分,通过熟练Arcgis能掌握类似相关软件操作,加强动手能力。 实习步骤: 1.对Arcgis软件整体掌握,并与之前各类软件操作对比和学习。 2.具体对软件操作掌握空间数据的采集与组织、数据的处理与变、数据的可视化表达。 3.Arcgis的空间分析能力的掌握:矢量数据的空间分析、栅格数据的空间分析、三维分析、地统计分析、水文分析等。4.掌握Arcgis的空间分析建模。 实习内容: 根据练习内容,选择了练习第3、4、5、7、12章的内容,其余在课下自己练习完成,这些章内容分别为:空间数据的采集与组织、数据的处理与变换、数据的可视化表达、矢量数据空间分析、空间分析建模 Geodatabase是一种采用标准关系数据库技术来表现地理信息的数据模型。Geodatabase支持在标准的数据库管理系统(DBMS)表中存储和管理地理信息。一. 基于Geodatabase的数据库设计 Geodatabase支持面向对象的矢量数据模型,它将地理数据组织成一个数据对象的结构体系。在Geodatabase模型中,实体被表示为属性,行为,关系的对象。Geodatabase还允许用户定义对象之间的关系,以及保持对象之间参照完整性的规则。Geodatabase也定义了简单的对象,地理要素,几何网络,注记要素等多种对象类型。二. Geodatabase中的信息类型 1.表(table):是记录的集合,每个记录(行)中包括许多列(字段); 2.对象类(object classes):对象表示一个没有空间几何的实体,没有位置相关信息,但是可以通过关系类与要素联系起来,一个对象类作为一个表存储在Geodatabase中,一个对象是表中的一行。3.要素类(feature classes):表示有空间几何的实体,有位置相关信息。要素类是具有相同的属性和相同的几何表示类型的要素集合。1)简单要素类:没有拓扑关联,包括点,线,多边形,注记等多种类型,以要素的方式管理,存放在要素集内外均可。 2)复杂要素类则是有拓扑关联的若干个要素类的组合,必须存放在同一个要素数据集中,例如拓扑要素、几何网络等类型。 4.子类(subtype):在要素类内部可以划分若干个次一级的组,每个组是一个子类。每个子类有其自己的完整性规则和GIS行为。5.要素数据集(feature database):要素数据集是一个具有相同空间参照的要素类的集合。 6.关系(relationships):是一种表(或要素类)与表(或要素类)之间的联系机制。关系类建立在对象(或要素)类之间,由一个对象(或要素)类指向另一个对象(或要素)类。 7.栅格数据集(raster data sets):影像作为栅格表来管理。 8.拓扑关系(topology):拓扑关系将参与拓扑的各个要素类集成在一个拓扑图中作为一个拓扑单元来管理,规定同一个要素类中的各个要素如何与其他要素共享几何或不同要素类之间如何共享几何。9.元数据:对数据库中各个数据元素的描述。 10.几何网络(geometric network):若干个要素类作为一个整体参与到几何网络的构造,Geodatabase通过拓扑关联保证参与到几何网络中的各个要素类的空间几何的连通性。几何网络将导致保证网络连通性的行为。 三. Geodatabase的优势: 1.所有图形数据和属性数据统一存储在商业DBMS中。 2.便于使用DBMS支持的多用户并发访问、事务管理、失败事务恢复、用户权限策略等机制,有利于空间信息共享、数据安全,提高了数据库性能。 3.支持智能化的要素、规则和关系。4.完善的用户支持。 四.Geodatabase数据库设计的内容 1.基本内容是规定 构成数据库的要素类、栅格数据集、其他表,以及表之间的各种关系。 2.其中,要素(或对象)类之间的关系通过要素数据集、关系类、拓扑来管理。 3.一个要素数据集中的各个要素类具有相同的空间参照;拓扑类、几何网络中的要素类受拓扑完整性约束。五 Geodatabase数据库设计的步骤 1.用户视图建模 2.定义实体和关系 3.明确实体的表示 4.匹配到Geodatabase模型 5.组织地理数据集 六.将地理实体表示为Geodatabase数据类型 要在识别地理实体并决定其几何表示类型之后,决定数据如何在Geodatabase中表示。具体包括两方面处理: 1.决定各种地理实体的表示类型及其拓扑关系; 2.决定各实体的属性字段。 决定实体的表示类型的依据是其几何表示类型:点实体用点要素、简单节点、复合节点表示,线实体用线要素、简单边、复合边表示,面实体用多边形要素表示,表面实体用TIN或栅格数据集表示,空间位置无关的实体用对象(表)表示。 其中点、线、面实体的离散分布有两种: 1.独立分布的实体,与其他要素无关,可以表示为简单的点、线、面要素; 2.与其他要素的分布相关,这种点、线实体可以表示为节点、边要素,面实体表示为有拓扑关系的多边形要素。 考虑要素之间的拓扑关系,定义复合要素类:平面拓扑和几何网络。平面拓扑强制保证要素不能相互交叉而没有交点。如土地或区划系统,采用平面拓扑管理要素间的公共边。 几何网络强制保持网络要素之间的连通性,是网络编辑易于操作。如对于线状系统,交通网络,多采用几何网络表示。 确定对象的属性类型 1.主要依据要素(或对象)的专题性质而定。 2.每个实体可能有多种属性,依据相关原则确定每种属性(字段)的数据类型,使用默认值、域等工具保证数据的完整性。六. 将数据组织到Geodatabase地理数据集 1.工作包括: (1).划分要素类和子类(2).规定要素类的拓扑关系(3.)构建地理数据集(4.)组织地理数据库 (1)划分要素类和子类 下列情况下必须建立单列的要素类: 1)当各组相关要素的属性字段组合根本不同时 2)当各组相关要素需要有特有的定制行为时 3)当需要对各组要素赋予不同存取权限时 4)当有些要素要采用版本管理存取而另一些要素不需要版本管理时(2)规定要素类的拓扑关系 1)将相关要素分组为几何网络好或平面拓扑 2)如果要素类是独立点、线、面要素,那么它不参与几何网络或者平面拓扑 3)如果要素类是简单边、简单节点、复合边、复合节点,那么它参与几何网络的构成 4)如果要素类是拓扑关联的多边形要素类,其内部各个要素必须满足特定的拓扑关系(3)构建地理数据集 1)要素数据集是一个容器,使用它可以将相似的要素类组合在一起。2)将具有相同空间参照的要素类组织到同一个要素数据集中是有利的,因为不同要素数据集在运算过程中可能会出现细微的差别而引起数据不一致。3)同时参加到平面拓扑或几何网络中的各个要素类必须被组织到同一个要素数据集中。 (4)最后将要素数据集和要素类组合起来。 1)确定了各要素及其拓扑联系之后,最后需要将它们组合到地理数据库中。2)如果企业用户包括多个部门,不同部门使用不同的数据集。地理数据库可以安装企业组织结构部署。 4)如果使用personal Geodatabases,由于数据库容量的限制,必须对数据库按专题或空间进行分割。七. Geodatabase的建库步骤 1.在F盘中建立自己的文件夹070141; 2.在自己的文件夹中建立个人数据库database;截图说明 3.在personal database中建立点要素a,线要素aa,面要素aaa。八. Geodatabase的拓扑建立 若干个要素类作为一个整体参与到几何网络的构造,Geodatabase通过拓扑关联保证参与到几何网络中的各个要素类的空间几何的连通性。几何网络将导致保证网络连通性的行为。 1.右键单击数据库database,点击new再点击Feature Dataset 截图说明: 出现对话框New Feature Dataset 在name中填写名字topology;2.点击“下一步”出现如下对话框,点击对话框中的Import,又出现对话框在Ext文件夹中点击Blocks.shp,点击Add即可添加数据; 截图说明; 再点击继续点击下一步,下一步,Finish,即可建立topology; 3.右键单击topology,点击Import,再点击Feature Class(mulitiple) 截图说明: 出现如下对话框,在对话框中点击第一个图标浏览,在出现的对话框中加入Ex1中的两个数据Blocks.shp和Parcels.shp,点击Add; 点击ok,则topology中增加了Blocks.shp和Parcels.shp两个数据项; 4.右键单击topology中的Blocks,点击Properties 截图说明: 出现如下对话框, 在对话框中的子类SubtypeField一栏下拉选择Res,在Subtype中设置Code和Description为0,nonres;1,res; 点击确定; 截图说明: 4.同理设置Parcels的Properties; 5.右键单击topology,点击new,再点击Topology: 6.在出现的如下对话框中点击下一步 7在.出现的如下对话框中点击下一步 8.在出现的New Topology如下对话框中点击Select All 截图说明: 9.在出现的New Topology如下对话框中,在Enter the number of ranks中填1; 10.点击下一步,在出现的New Topology对话框中,点击Add Rule,再Add Rule中的三栏中选择Parcels,Must Not Overlap With,Blocks,点击ok; 截图说明: 点击下一步,再点击Finish.再出现的对话框是否拓扑查询,点击否。则在Topology中建立了topology-Topology。 11.打开ArcMap,将topology-Topology拖到ArcMap的Layers中,则在Layers中添加了topology-Topology,Blocks和Parcels; 截图说明: 12.点击工具栏中的View,点击Toolbars,再点击Topology,将出现进行拓扑操作的Topology工具栏;在Editor下拉菜单中点击Starting Editor,将工具激活; 截图说明: 13.点击Topology工具栏的Topology Editor Tool图标,双击弧线段,在结点处进行操作即可 拓扑结果图:第三篇:大地测量上机实习报告
第四篇:计算机上机实习报告
第五篇:arcgis上机实习报告