1、tm_mon);day=p-tm_mday;hour=p-tm_hour;fen=p-tm_min;second=p-tm_sec;speed=n;next=NULL; 由于每条数据有比较多的信息所以我们定义一个结构体来 存储采集到的每条数据,数据采用位段存储省空间; 程序如下: typedef struct car unsigned int year:12; unsigned int mouth:4; unsigned int day:5; unsigned int hour: unsigned int fen:6; unsigned int second: unsigned int spe
2、ed:9; struct car * next; PER,*PPER; 由于存储的数据条数比较多且条数不固定所以采用链 表将这些结构体链接起来,来的数据往链表末尾一挂 程序如下:PPER addlink(PPER head) int i=0; PPER ps=head; while(1) PPER new=calloc(1,sizeof(PER); input(new); if(NULL=head) head=new; ps=head; i+; else head-next=new; if(0=new-speed) return ps; head=head-next; i+; if(i=N)
3、return ps; 3.2将数据存入文件中 每一次存储数据在文件的位置都要从上一次结束的位置开 始,我们定义一个变量n来记录每次文件存储结束的位置,并 存入文件的开头,第二次要存储数据的时候先读取n的数据就 知道上一次存在哪里,然后接着往后面存; 文件的大小我们宏定义一个FILEMAX来控制每一次剩余 文件 的大小不能存储一条 数据时将文件跳到n后面开始存储void inputfile(PPER head) int n=sizeof(int); FILE *fp=fopen(xiangmu.txt,r+ if(NULL=fp) fp=fopen(w fwrite(&n,sizeof(int)
4、,1,fp); else fread(& fseek(fp,n,SEEK_SET); break; if(FILEMAX-ftell(fp)sizeof(PER) fwrite(head,sizeof(PER),1,fp); head=head- fseek(fp,sizeof(int),SEEK_SET); n=ftell(fp); rewind(fp); fwrite(& fclose(fp); 3.3显示文件 由于文件是以二进制代码方式存储,人类无法直接查看所 以要先将文件的内容调入PC机内存中显示在显示器上才好查看, 文件到内存放在链表中存储PPER outputfile(PPER h
5、ead)r printf(文件打开失败n return NULL; fseek(fp,sizeof(int),SEEK_SET); fread(new,sizeof(PER),1,fp); new- if(0!=feof(fp) head=addlink1(head,new); return head;PPER output(PPER head) if(NULL=head) return head; show(ps); ps=ps- if(NULL=ps) return head; 4.画流程图 由于时间有限在此就不画电子版的流程图;5.编写程序 程序附带在同一个文件夹里,再此就不做编写6.显
6、示程序运行结果 主菜单页请输入功能号0-退出1-将采集来的数据输入链表中2-显示链表3-将链表里的数据存入文件中4-释放链表5-把文件里面的数据导入链表中6-求最大速度7求平均速度 显示文件记录的所有数据时间 2015年8月5日 9时36分48秒speed 93km/h时间 2015年8月5日 9时36分49秒speed 94km/h时间 2015年8月5日 9时36分50秒speed 95km/hspeed 96km/h时间 2015年8月5日 9时36分52秒speed 97km/h时间 2015年8月5日 9时36分53秒speed 98km/h时间 2015年8月5日 9时36分54秒
7、speed 99km/h时间 2015年8月5日 9时36分56秒speed 100km/h时间 2015年8月5日 9时37分1秒speed 101km/h时间 2015年8月5日 9时37分22秒speed 102km/h时间 2015年8月5日 9时37分24秒speed 103km/h时间 2015年8月5日 9时37分25秒speed 104km/h时间 2015年8月5日 9时37分27秒speed 105km/h时间 2015年8月5日 9时37分28秒speed 106km/h时间 2015年8月5日 9时37分29秒speed 107km/h时间 2015年8月5日 9时37
8、分31秒speed 108km/h时间 2015年8月5日 9时37分33秒speed 109km/h时间 2015年8月5日 9时37分36秒speed 110km/h时间 2015年8月5日 9时37分38秒speed 111km/h时间 2015年8月5日 9时32分15秒speed 12km/h时间 2015年8月5日 9时32分17秒speed 13km/h时间 2015年8月5日 9时32分18秒speed 14km/h时间 2015年8月5日 9时32分19秒speed 15km/h时间 2015年8月5日 9时32分20秒speed 16km/h时间 2015年8月5日 9时3
9、2分21秒speed 17km/h时间 2015年8月5日 9时32分22秒speed 18km/h时间 2015年8月5日 9时32分23秒speed 19km/h时间 2015年8月5日 9时32分25秒speed 20km/h时间 2015年8月5日 9时32分27秒speed 21km/h时间 2015年8月5日 9时32分57秒speed 22km/h时间 2015年8月5日 9时32分58秒speed 23km/h时间 2015年8月5日 9时32分59秒speed 24km/h时间 2015年8月5日 9时33分0秒speed 25km/h时间 2015年8月5日 9时33分1秒
10、speed 26km/h时间 2015年8月5日 9时33分2秒speed 27km/h时间 2015年8月5日 9时33分3秒speed 28km/h时间 2015年8月5日 9时33分4秒speed 29km/h时间 2015年8月5日 9时33分6秒speed 30km/h时间 2015年8月5日 9时33分7秒speed 31km/h时间 2015年8月5日 9时33分26秒speed 32km/h时间 2015年8月5日 9时33分28秒speed 33km/h时间 2015年8月5日 9时33分29秒speed 34km/h时间 2015年8月5日 9时33分30秒speed 35
11、km/h时间 2015年8月5日 9时33分31秒speed 36km/h时间 2015年8月5日 9时33分32秒speed 37km/h时间 2015年8月5日 9时33分34秒speed 38km/h时间 2015年8月5日 9时33分35秒speed 39km/h时间 2015年8月5日 9时33分37秒speed 40km/h时间 2015年8月5日 9时33分39秒speed 41km/h时间 2015年8月5日 9时34分2秒speed 42km/h时间 2015年8月5日 9时34分3秒speed 43km/h时间 2015年8月5日 9时34分4秒speed 44km/h时间
12、 2015年8月5日 9时34分6秒speed 45km/h时间 2015年8月5日 9时34分7秒speed 46km/h时间 2015年8月5日 9时34分8秒speed 47km/h时间 2015年8月5日 9时34分9秒speed 48km/h时间 2015年8月5日 9时34分10秒speed 49km/h时间 2015年8月5日 9时34分12秒speed 50km/h时间 2015年8月5日 9时34分13秒speed 51km/h时间 2015年8月5日 9时34分47秒speed 52km/h时间 2015年8月5日 9时34分48秒speed 53km/h时间 2015年8
13、月5日 9时34分50秒speed 54km/h时间 2015年8月5日 9时34分51秒speed 55km/h时间 2015年8月5日 9时34分52秒speed 56km/h时间 2015年8月5日 9时34分53秒speed 57km/h时间 2015年8月5日 9时34分54秒speed 58km/h时间 2015年8月5日 9时34分56秒speed 59km/h时间 2015年8月5日 9时34分57秒speed 60km/h时间 2015年8月5日 9时34分58秒speed 61km/h时间 2015年8月5日 9时35分14秒speed 62km/h时间 2015年8月5日
14、 9时35分15秒speed 63km/h时间 2015年8月5日 9时35分16秒speed 64km/h时间 2015年8月5日 9时35分17秒speed 65km/h时间 2015年8月5日 9时35分18秒speed 66km/h时间 2015年8月5日 9时35分19秒speed 67km/h时间 2015年8月5日 9时35分20秒speed 68km/h时间 2015年8月5日 9时35分21秒speed 69km/h时间 2015年8月5日 9时35分23秒speed 70km/h时间 2015年8月5日 9时35分24秒speed 71km/h时间 2015年8月5日 9时
15、35分38秒speed 72km/h时间 2015年8月5日 9时35分40秒speed 73km/h时间 2015年8月5日 9时35分41秒speed 74km/h时间 2015年8月5日 9时35分42秒speed 75km/h时间 2015年8月5日 9时35分43秒speed 76km/h时间 2015年8月5日 9时35分45秒speed 77km/h时间 2015年8月5日 9时35分46秒speed 78km/h时间 2015年8月5日 9时35分47秒speed 79km/h时间 2015年8月5日 9时35分48秒speed 80km/h时间 2015年8月5日 9时35分
16、49秒speed 81km/h时间 2015年8月5日 9时36分14秒speed 82km/h时间 2015年8月5日 9时36分15秒speed 83km/h时间 2015年8月5日 9时36分16秒speed 84km/h时间 2015年8月5日 9时36分18秒speed 85km/h时间 2015年8月5日 9时36分19秒speed 86km/h时间 2015年8月5日 9时36分20秒speed 87km/h时间 2015年8月5日 9时36分21秒speed 88km/h时间 2015年8月5日 9时36分22秒speed 89km/h时间 2015年8月5日 9时36分23秒speed 90km/h时间 2015年8月5日 9时36分24秒speed 91km/h时间 2015年8月5日 9时36分47秒speed 92km/h 显示文件记录所有数据的最高速度和平均速度记录中速度最快为111km/h 时间为 2015年8月5日 9时37分38秒sum=6150.00 文件的记录有100条average=61.50km/h7.总结 通过本次项目锻炼了自我解决问题的能力,加强了所学各个知识点的衔接,为以后的工作打下了坚实的基础。