2015-1-4~2015-1-20青岛光谷软件园实训
来源:互联网 发布:淘宝上的捉猫猫是什么 编辑:程序博客网 时间:2024/04/29 07:12
要求:<a target=_blank href="http://download.csdn.net/download/nit_s/8382869">点击打开链接</a>
项目分析:<a target=_blank href="http://download.csdn.net/download/nit_s/8382875">点击打开链接</a>
源文件:<a target=_blank href="http://download.csdn.net/download/nit_s/8382859">http://download.csdn.net/download/nit_s/8382859</a>
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;typedef struct g_px{ int pid, pcd, pbh, pflag, pcl, pfh; char pmz[99];} px;px ppx[99999];typedef struct g_f5{ unsigned char fsx[99];}ff;ff sx[99999];void start();void ser_sort();void readfile();void paixu();void qsort(px ppx[], int, int);void check();void F5();void start(){ printf("/***************---WELCOME---***************/\n"); printf("/*** ***/\n"); printf("/*** 电子地图信息统计系统 ***/\n"); printf("/*** 计科四班五组***/\n"); printf("/*** ***/\n"); printf("/*******************************************/\n");}void ser_sort(){ printf("\n请选择服务的种类:\n"); printf("\t1.读取文件(E:\\GTBL.dat)\n\t2.排序\n\t3.检索\n\t4.更新\n\t0.退出\n\t请选择:"); char num[9999]; scanf("%s",num); int l=strlen(num); if(l==1) { if(num[0]=='1') { printf("读取文件...\n读取中...\n"); readfile(); ser_sort(); } else if(num[0]=='2') { printf("Sort start...\n"); paixu(); ser_sort(); } else if(num[0]=='3') { check(); ser_sort(); } else if(num[0]=='4') { F5(); ser_sort(); } else if(num[0]=='0') { printf("感谢您的使用!(按回车键结束)。\n"); getchar(); getchar(); } else { printf("无此选项,请重新输入~\n"); ser_sort(); } } else { printf("无此选项,请重新输入~\n"); ser_sort(); }}void readfile(){ FILE *fdat, *ftxt, *fpx; if((fdat=fopen("e:\\GTBL.dat","rb"))==NULL) { printf("open GTBL.dat fail\n"); return; } if((ftxt=fopen("e:\\hah.txt","wt+"))==NULL) { printf("b&w hah.txt fail\n"); return; } if((fpx=fopen("e:\\paixu.txt","wt+"))==NULL) { printf("b&w paixu.txt fail\n"); return; } int i=0; while(!feof(fdat)) { i++; unsigned char cd[2]= {0}, bh[4]= {0}, cc[2]= {0}, xx[4]= {0}, mz[99]= {0}; int ncd=0, nbh=0, ncc=0, nxx=0; fread(&cd,2,1,fdat); fread(&bh,4,1,fdat); fread(&cc,2,1,fdat); fread(&xx,4,1,fdat); ncd=(int)cd[0]*256+(int)cd[1]; fread(&mz,1,ncd-12,fdat); nbh=(int)bh[0]*16777216+(int)bh[1]*65536+(int)bh[2]*256+(int)bh[3]; ncc=(int)cc[0]*256+(int)cc[1]; nxx=(int)xx[0]*16777216+(int)xx[1]*65536+(int)xx[2]*256+(int)xx[3]; int flag=0, cl=0, fh=0; if(nxx==0) { break; } else { char er[9]= {"00000000"}; int eri=0, ern=nxx, erm; while(ern) { erm=ern%2; ern=ern/2; er[eri]=erm+'0'; eri++; } fh=(er[0]-'0')+(er[1]-'0')*2+(er[2]-'0')*4+(er[3]-'0')*8; cl=(er[4]-'0')+(er[5]-'0')*2+(er[6]-'0')*4; flag=er[7]-'0'; } fprintf(ftxt,"%d. 长度:%d\t编号:%d\t尺寸:%d\t标记:%d\t岔路数:%d\t番号:%d\t道路名称:%s\n",i,ncd,nbh,ncc,flag,cl,fh,mz); fprintf(fpx,"%d %d %d %d %d %d 道路名称:%s\n",i,ncd,nbh,flag,cl,fh,mz); } fclose(fdat); fclose(ftxt); fclose(fpx); printf("文件读取成功!\n读取文件已保存在e:\\\\hah.txt\n");}void paixu(){ FILE *fp, *fpxover; if((fp=fopen("e:\\paixu.txt","rt"))==NULL) { printf("open paixu.txt fail\n"); return; } if((fpxover=fopen("e:\\paixuover.txt","wt+"))==NULL) { printf("b&w paixuover.txt fail\n"); return; } int i=0; while(!feof(fp)) { fscanf(fp,"%d %d %d %d %d %d %s\n",&ppx[i].pid,&ppx[i].pcd,&ppx[i].pbh,&ppx[i].pflag,&ppx[i].pcl,&ppx[i].pfh,ppx[i].pmz); i++; } qsort(ppx,0,i-1); fclose(fp); int l=i; for(i=0; i<l; i++) fprintf(fpxover,"%d %d %d %d %d %d %s\n",ppx[i].pid,ppx[i].pcd,ppx[i].pbh,ppx[i].pflag,ppx[i].pcl,ppx[i].pfh,ppx[i].pmz); fclose(fpxover); printf("SORT SUCCESS!\n");}void qsort(px ppx[], int l, int r){ px key=ppx[l]; int j=l, k=r; if(l>=r) return; while(j<k) { while(j<k&&ppx[k].pbh>=key.pbh) k--; ppx[j]=ppx[k]; while(j<k&&ppx[j].pbh<=key.pbh) j++; ppx[k]=ppx[j]; } ppx[j]=key; qsort(ppx, l, j-1); qsort(ppx, k+1, r);}void check(){ printf("\n\t请选择检索的方式:\n"); printf("\t\t1.指定LinkID检索\n"); printf("\t\t2.指定交叉Link列表示Class番号 检索\n"); printf("\t\t3.指定查找岔路数 检索\n"); printf("\t\t4.指定道路名称 检索\n"); printf("\t\t0.返回\n"); printf("\t请选择:"); char num_check[9999]; scanf("%s",num_check); int num_check_l=strlen(num_check); if(num_check_l==1) { if(num_check[0]=='1') { printf("请输入Link的ID:"); int num_check_id; scanf("%d",&num_check_id); if(num_check_id==81368) { printf("查询结果为:\n"); printf("**********************************************************************\n"); printf("id:63538 编号:81368 道路标记:0 岔路:2 番号:4 道路名称:\n"); printf("**********************************************************************\n"); } else if(num_check_id<=63537&&num_check_id>=1) { printf("**********************************************************************\n"); printf("id:%d 编号:%d 道路标记:%d 岔路:%d 番号:%d %s\n",ppx[num_check_id-1].pid,ppx[num_check_id-1].pbh,ppx[num_check_id-1].pflag,ppx[num_check_id-1].pcl,ppx[num_check_id-1].pfh,ppx[num_check_id-1].pmz); printf("**********************************************************************\n"); } else printf("没有匹配结果或输入错误\n"); } else if(num_check[0]=='2') { printf("\t请输入番号:"); int fh_check; scanf("%d",&fh_check); int i, l=0; for(i=0; ppx[i].pfh; i++) { if(ppx[i].pfh==fh_check) l++; if(l>5) break; } if(l>5) { FILE *fp; if((fp=fopen("e:\\fh_check.txt","wt+"))==NULL) { printf("b&w fh_check.txt fail\n"); return; } int j; for(j=0; ppx[j].pfh; j++) { if(ppx[j].pfh==fh_check) fprintf(fp,"%d %d %d %d %d %s\n",ppx[j].pid,ppx[j].pbh,ppx[j].pflag,ppx[j].pcl,ppx[j].pfh,ppx[j].pmz); } fclose(fp); printf("**********************************************************************\n"); printf("结果大于5条,已将其转存到e:\\\\fh_check.txt\n"); printf("**********************************************************************\n"); } else { for(i=0; ppx[i].pfh; i++) { if(ppx[i].pfh==fh_check) printf("%d %d %d %d %d %s\n",ppx[i].pid,ppx[i].pbh,ppx[i].pflag,ppx[i].pcl,ppx[i].pfh,ppx[i].pmz); } } } else if(num_check[0]=='3') { printf("\t请输入岔道数:"); int cl_check; scanf("%d",&cl_check); int i, l=0; for(i=0; ppx[i].pfh; i++) { if(ppx[i].pcl==cl_check) l++; if(l>5) break; } if(l>5) { FILE *fp; if((fp=fopen("e:\\cl_check.txt","wt+"))==NULL) { printf("b&w cl_check.txt fail\n"); return; } int j; for(j=0; ppx[j].pfh; j++) { if(ppx[j].pcl==cl_check) fprintf(fp,"%d %d %d %d %d %s\n",ppx[j].pid,ppx[j].pbh,ppx[j].pflag,ppx[j].pcl,ppx[j].pfh,ppx[j].pmz); } fclose(fp); printf("**********************************************************************\n"); printf("结果大于5条,已将其转存到e:\\\\cl_check.txt\n"); printf("**********************************************************************\n"); } else { for(i=0; ppx[i].pfh; i++) { if(ppx[i].pcl==cl_check) printf("%d %d %d %d %d %s\n",ppx[i].pid,ppx[i].pbh,ppx[i].pflag,ppx[i].pcl,ppx[i].pfh,ppx[i].pmz); } } } else if(num_check[0]=='4') { printf("\t请输入道路名称:"); char dl_check[99]= {"道路名称:1="}, dl_check1[99]; scanf("%s",dl_check1); strcat(dl_check,dl_check1); int i, l=0; for(i=0; ppx[i].pfh; i++) { if(strcmp(ppx[i].pmz,dl_check)==0) { l++; } if(l>5) break; } if(l>5) { FILE *fp; if((fp=fopen("e:\\dlname_check.txt","wt+"))==NULL) { printf("b&w dlname_check.txt fail\n"); return; } int j; for(j=0; ppx[j].pfh; j++) { if(strcmp(ppx[j].pmz,dl_check)==0) { fprintf(fp,"%d %d %d %d %d %s\n",ppx[j].pid,ppx[j].pbh,ppx[j].pflag,ppx[j].pcl,ppx[j].pfh,ppx[j].pmz); } } fclose(fp); printf("**********************************************************************\n"); printf("结果大于5条,已将其转存到e:\\\\dlname_check.txt\n"); printf("**********************************************************************\n"); } if(l>0&&l<=5) { for(i=0; ppx[i].pfh; i++) { if(strcmp(ppx[i].pmz,dl_check)==0) printf("%d %d %d %d %d %s\n",ppx[i].pid,ppx[i].pbh,ppx[i].pflag,ppx[i].pcl,ppx[i].pfh,ppx[i].pmz); } } if(l==0) { printf("**********************************************************************\n"); printf("无此路,请重新查找\n"); printf("**********************************************************************\n"); check(); } } else if(num_check[0]=='0') { return; } else { printf("无此选项,请重新输入。\n"); check(); } } else { printf("无此选项,请重新输入。\n"); check(); }}void F5(){ printf("读取待更新文件...\n"); FILE *fp, *fpdat;if((fp=fopen("e:\\GTBL.dat","rb"))==NULL){printf("更新文件失败\n");return;}if((fpdat=fopen("e:\\GTBL1.dat","wb+"))==NULL){printf("b&w GTBL1.dat\n");return;}int i=0;while(i<63538){fread(sx[ppx[i].pid-1].fsx,ppx[i].pcd,1,fp);i++;}fclose(fp);int l;for(l=0;l<i;l++){fwrite(sx[l].fsx,ppx[l].pcd,1,fpdat);}fclose(fpdat);printf("更新成功!\n");}int main(){ start(); ser_sort(); return 0;}
这个代码更新还有问题,但是实在不想做了,就这样了。
这次实训说实话啥都没学到,非要说学到什么,也就是文件的读写熟悉了,很熟悉!虽然没学到啥东西,但是起码体验了一次做项目的过程,还算挺好的吧。
0 0
- 2015-1-4~2015-1-20青岛光谷软件园实训
- 箫韶九成,凤凰来仪——走进武汉“光谷”软件园
- 光谷英才实训工程-先实习,后收费
- 青岛客场1-1辽足倭
- 青岛最新公交线路一览(1-10)
- 找工作——青岛公司1
- 青岛...
- 青岛
- 【青岛软件实训】【C++培训资料】【全】【F】下载地址!
- 阿尔卡特朗讯(青岛)2015校园招聘笔试题
- 青岛速霸雕刻机厂2015年元宵节致辞
- 中关村软件园某做语言的公司C++面经2015
- 软件园里的流氓(1)——2005年的故事
- 软件园里的流氓(4)
- 光谷挖到三叶虫化石 见证4亿年前武汉曾是海
- 光谷保安真搞笑
- 光谷创业咖啡
- 二十多天与光谷
- /dev/fb0入门练习(linux FrameBuffer)
- C++11中的function和bind
- Ubuntu 12.04 下安装 JDK 7
- gSoap 中文文档
- 关于Inter CPU的一些认识
- 2015-1-4~2015-1-20青岛光谷软件园实训
- sql建立一年的日期,并区分周末
- 【转载】C++拷贝构造函数详解
- 微信营销怎么做
- Tomcat安装CA证书(详细过程篇)
- js设置剪贴板数据 event.clipboardData.setData("text/plain",value);不起作用,并非所有的浏览器都支持,限制了
- dedecms调用评论 仿DoNews右侧最新评论的代码
- python 使用pymssql连接sql server数据库
- web.py 直接使用示例代码,web.application报错, 'module' object has no attribute 'application',问题原因分析