信息车友拼车程序设计(要先在D盘建立txt文件,不懂的可以百度hai我)

我在百度  时间:2021-02-26  阅读:()

车友拼车系统

一、课程内容和要求

为倡导绿色低碳生活提高私家车的利用率试设计一个车友拼车系统。该系统要求建立一个简单的拼车管理系统有车的车友可以将自己出行线路和时间输入到系统中无车的车友可以查看已有的拼车信息也可以将自己的拼车需求输入到系统中。该系统具有排序、查找、插入、显示等功能。通过此课题熟练掌握文件、数组、指针的各种操作 以及一些算法思想的应用。

二、需求分析

2. 1要求

1用C语言实现程序设计

2利用结构体进行相关信息处理

3画出查询模块的流程图

4系统的各个功能模块要求用函数的形式实现

5界面友好良好的人机互交程序要有注释输入信息符合逻辑如输入月份不

能输入13月等。

2.2任务

1车友信息包括用户名、密码、真实姓名、所在地、联系电话。

拼车信息包括用户名、车辆状态有车或无车 出发地点 目的地点时

间真实姓名联系方式

2数据使用文件存储无需重复输入数据。

3需要实现的功能

1用户注册与登录功能

2有车者的拼车信息发布功能查询拼车需求功能

3无车者浏览、查询拼车信息拼车需求信息录入功能

4可以查询从某出发地点到达某目的地点的车辆情况

5可以按日期对拼车信息进行排序。

程序设计报告

2.3开发环境

VC++6.0在内存中的各种操作可以采用数组方式或是指针

三、概要设计struct User 定义车友信息

{char username[20] ;char password[20] ;char truename[20] ;char location[20] ;char telephone[12] ;

} ;struct Date 定义日期

{char year[5] ;char month[3] ;char day[3] ;

} ;struct Information 定义拼车信息

{char car[5] ;char startplace[20] ;char destination[20] ;

Date d; 含有日期结构体的元素

User u; 含有车友信息结构体的元素

} ;

2

程序设计报告

void zhuce(User *u, int i,FILE*fp) 用户注册若源文件中已有同名用户则报错“该用户名已存在请重新输入”注册成功后进入主菜单void denglu(User *u, int i) 用户登录若用户名和密码与已存信息不符则报错“用户名或密码不正确请重新输入”登陆成功后进入主菜单void chaxun(Information *I, int j) 按出发地和目的地查询若配套的出发地和目的地不存在则报错“对不起不存在你要查询的信息”void gongchexinxi (Information *I, int j) 查询供车信息输出所有有车者的信息void pinchexuqiu(Information *I, int j) 查询拼车需求输出所有无车者的信息void shuchusuoyou(Information *I, int j) 输出所有车友的信息void shuru(Information *I, int j,FILE*fp) 用户录入自己的信息在其中会加入一个算法来判断输入的日期是否合法如有关闰年与平年的二月一年12个月哪个月有30天哪个月有31天void paixu(Information *I, int j,FILE*fp) 根据日期排序输出所有信息void menu() 主菜单界面用户可以自由选择需求void run(FILE*fp,User *u, Information *I, int i, int j, int a) 主运行界面配合在menu界面时用户的选择运行程序

FILE*fp1 D盘源文件1 “用户信息” txt文本原有20条信息用以存放用户信息在注册和登陆时可以调用并逐个添加记录永久有效

FILE*fp2 D盘源文件2 “拼车信息” txt文本原有20条信息用以存放拼车信

3

程序设计报告

息其中用户名和密码与“用户信息”中的对应车友可以添加自己的信息也可以从中调看别人的信息永久有效。

四、源程序代码

#inc lude<stdio.h>

#inc lude<stdlib.h>

#inc lude<string.h>

#define N 1000struct User //构造车友信息结构体

{char username[20];char password[20];c har truename[20];char location[20];char telephone[12];

};typedef struct User User;struct Date //构造日期结构体

{char year[5];char month[3];char day[3];

};typedef struct Date Date;struct Information //构造拼车信息结构体

{charcar[5];char startplac e[20];char destination[20];

Date d; //定义函数

User u; //定义函数

};typedef struct Information Information;void zhuc e(User *u,int i,FILE*fp);void deng lu(Us er *u,int i);void chaxun(Information*I,int j);void gongchexinxi(Information*I,int j);void pinchexuqiu(Information*I,int j);void shuchusuoyou(Information*I,int j);void shuru(Information*I,int j,FILE*fp);

4

程序设计报告

void paixu(Information*I,int j,FILE*fp);void menu();void run(FILE*fp,User *u,Information*I,int i,int j,int a);int main() //主函数

{int i=0;int j=0;int a;

User u[N];

Information I[N];

FILE*fp1;

FILE*fp2;fp 1=fopen("D:\\用户信息.txt","a+");if(!fp1)

{printf("file cannot be opened");exit(1);

}while(!feof(fp1))

{fsc anf(fp 1,"%s%s%s%s%s",&u[i].username,&u[i].passw ord,&u[i].truename,&u[i].location,&u[i].telephone);i++;

}fp2=fopen("D:\\拼车信息.txt","a+");if(!fp2)

{printf("file cannot be opened");exit(1);

}while(!feof(fp2))

{fsc anf(fp2,"%s%s%s%s%s%s%s%s%s",&I[j].u.us ername,&I[j].c ar,&I[j].startplac e,&I[j].destination,&I[j].d.year,&I[j].d.month,&I[j].d.day,I[j].u.truename,I[j].u.telephone);j++;

}

"****************************************************************************

**\n");printf(" 欢迎进入拼车系统 \n");

"****************************************************************************

**\n");

5

程序设计报告

printf(" 1 注册\n");printf(" 2 登录\n");

"****************************************************************************

**\n");printf("请选择所要进行的操作对应的序号 ");do

{printf("选择1还是选择2 \n");scanf("%d",&a);

}while(a!=1&&a!=2);switch(a)

{c as e 1: zhuc e(u,i,fp 1); break;case 2: denglu(u,i); break;

}if(i)

{do

{m enu();printf("请输入你的选择 ");scanf("%d",&a);if(a>=0&&a<=7)run(fp 2,u,I,i,j,a);els eprintf("选择错误请重新选择 \n");

}while(a);

}fclose(fp1);fclose(fp2);return 0;

}void menu()

{printf(">>>>>>>>>>>>>>>>>主菜单<<<<<<<<<<<<<<<<<

\n");

6

程序设计报告

;

}void run(FILE*fp,User *u,Information*I,int i,int j,int a) //主运行函数

{switch(a)

{case 1:shuchusuoyou(I,j); break;case 2:gongchexinxi(I,j); break;case 3:pinchexuqiu(I,j); break;case4:c ase 5:shuru(I,j,fp); break;c ase 6:chaxun(I,j); break;case 7:paixu(I,j,fp); break;case 0: printf("\n >>>>>>>>######################欢 迎 下 次 光 临

###########################<<<<<<<\n"); break;

}

}void zhuc e(User *u,int i,FILE*fp) //用户注册

{int k,a;printf("请输入用户名 ");do

{a=0;sc anf("%s",&u[i-1].username);for(k=0;k<i-1;k++) //检验用户名是否已存在

{if(strcmp(u[i-1].us ername,u[k].us ername)==0)

{printf("该用户名已存在请重新输入 \n");a=1;break;

}

}

}while(a);printf("\n请输入密码 ");scanf("%s",&u[i-1].password);printf("\n真实姓名 ");s c anf("%s",&u[i-1].truename);printf("\n所在地 ");scanf("%s",&u[i-1].location);

7

程序设计报告

printf("\n联系电话 ");scanf("%s",&u[i-1].telephone);printf("\n注册成功!\n");fprintf(fp,"%-13s%-13 s%-10s%-10s%-12s",&u[i-1].us ername,&u[i-1].passw ord,&u[i-1].truename,&u[i-1].location,&u[i-1].telephone); //将用户信息记录到文本文件中fprintf(fp,"\r\n");

}void deng lu(Us er *u,int i) //用户登录

{int k,a=1;char s1[20],s2[20];do

{printf("用户名 ");scanf("%s",&s1);printf("\n密码 ");scanf("%s",&s2);for(k=0;k<i-1;k++) //检验用户名和密码是否匹配

{if(strcmp(s 1,u[k].us ername)==0&&strcmp(s 2,u[k].passw ord)==0)

{a=0;break;

}

}if(a==1)printf("\n用户名或者密码不正确请重新输入 \n"); //报错

}while(a);printf("登陆成功 \n");

}void chaxun(Information*I,int j) //根据输入的出发地和目的地筛选出来的拼车信息

{int k,a=0;char s1[20],s2[20];printf("\n请输入出发地点 ");scanf("%s",&s1);printf("\n请输入目的地 ");scanf("%s",&s2);for(k=0;k<j-1;k++)

{

8

程序设计报告

if(strc mp(s 1,I[k].startplac e)==0&&strc mp(s 2,I[k].destination)==0)

{a=1;printf("用户名 车辆状况 出发地 目的地 年 月 日 真实姓名联系电话\n");printf("%-13 s%-10s%-10s%-9s%-6s%-4s%-6s%-10s%-12s",&I[k].u.us ername,&I[k].c ar,&I[k].startplac e,&I[k].des tination,&I[k].d.year,&I[k].d.month,&I[k].d.day,&I[k].u.truename,&I[k].u.telephone);

}

}if(a==0)printf("对不起不存在你所要查询的信息 \n"); //报错

}void gongchexinxi(Information*I,int j) //输出供车信息

{int k;printf("用户名 车辆状况 出发地 目的地 年 月 日 真实姓名 联系电话\n");for(k=0;k<j-1;k++)

{if(s trc mp(I[k].c ar,"有")==0)

{printf("%-13 s%-10s%-10s%-9s%-6s%-4s%-6s%-10s%-12s",&I[k].u.us ername,&I[k].c ar,&I[k].startplac e,&I[k].des tination,&I[k].d.year,&I[k].d.month,&I[k].d.day,&I[k].u.truename,&I[k].u.telephone);

}

}

}void pinchexuqiu(Information*I,int j) //输出有拼车需求的用户的信息

{int k;printf("用户名 车辆状况 出发地 目的地 年 月 日 真实姓名 联系电话\n");for(k=0;k<j-1;k++)

{if(s trc mp(I[k].c ar,"无")==0)

{printf("%-13 s%-10s%-10s%-9s%-6s%-4s%-6s%-10s%-12s",&I[k].u.us ername,&I[k].c ar,&I[k].startplac e,&I[k].des tination,&I[k].d.year,&I[k].d.month,&I[k].d.day,&I[k].u.truename,&I[k].u.telephone);

}

}

9

10gbiz:香港/洛杉矶CN2直连线路VPS四折优惠,直连香港/香港/洛杉矶CN2四折

10gbiz怎么样?10gbiz在本站也多次分享过,是一家成立于2020的国人主机商家,主要销售VPS和独立服务器,机房目前有中国香港和美国洛杉矶、硅谷等地,线路都非常不错,香港为三网直连,电信走CN2,洛杉矶线路为三网回程CN2 GIA,10gbiz商家七月连续推出各种优惠活动,除了延续之前的VPS产品4折优惠,目前增加了美国硅谷独立服务器首月半价的活动,有需要的朋友可以看看。10gbiz优惠码...

【IT狗】在线ping,在线tcping,路由追踪

IT狗为用户提供 在线ping、在线tcping、在线路由追踪、域名被墙检测、域名被污染检测 等实用工具。【工具地址】https://www.itdog.cn/【工具特色】1、目前同类网站中,在线ping 仅支持1次或少量次数的测试,无法客观的展现目标服务器一段时间的网络状况,IT狗Ping工具可持续的进行一段时间的ping测试,并生成更为直观的网络质量柱状图,让用户更容易掌握服务器在各地区、各线...

瓜云互联-美国洛杉矶高防CN2高防云服务器,新老用户均可9折促销!低至32.4元/月!

瓜云互联一直主打超高性价比的海外vps产品,主要以美国cn2、香港cn2线路为主,100M以内高宽带,非常适合个人使用、企业等等!安全防护体系 弹性灵活,能为提供简单、 高效、智能、快速、低成本的云防护,帮助个人、企业从实现网络攻击防御,同时也承诺产品24H支持退换,不喜欢可以找客服退现,诚信自由交易!官方网站:点击访问瓜云互联官网活动方案:打折优惠策略:新老用户购买服务器统统9折优惠预存返款活动...

我在百度为你推荐
优酷路由宝怎么赚钱优酷路由宝是如何赚钱的?简体翻译成繁体简体中文转换成繁体怎么转换?镜像文件是什么什么是镜像文件啊godaddygodaddy域名怎样使用创维云电视功能谁能具体介绍一下创维云电视的主要功能,以及基本的使用方式,如果能分型号介绍就更好了,O(∩_∩)O谢谢免费qq空间装扮有办法免费装扮QQ空间吗??如何快速收录如何做到让百度快速收录电子商务网站模板网页制作模板系统分析员系统分析师是什么职业?主要做什么工作?recovery教程如何强制刷入recovery
ip代理地址 长沙虚拟主机 56折 tk域名 申请空间 中国智能物流骨干网 免费个人空间申请 中国电信测速112 anylink hkg 国外代理服务器地址 服务器监测 支持外链的相册 免费asp空间申请 阿里云手机官网 云服务是什么意思 攻击服务器 深圳主机托管 谷歌搜索打不开 腾讯服务器 更多