信息车友拼车程序设计(要先在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优惠码...

香港站群多ip服务器多少钱?零途云香港站群云服务器怎么样?

香港站群多ip服务器多少钱?想做好站群的SEO优化,最好给每个网站都分配一个独立IP,这样每个网站之间才不会受到影响。对做站群的站长来说,租用一家性价比高且提供多IP的香港多ip站群服务器很有必要。零途云推出的香港多ip站群云服务器多达256个IP,可以满足站群的优化需求,而且性价比非常高。那么,香港多ip站群云服务器价格多少钱一个月?选择什么样的香港多IP站群云服务器比较好呢?今天,小编带大家一...

RackNerd($199/月),5IP,1x256G SSD+2x3THDD

我们先普及一下常识吧,每年9月的第一个星期一是美国劳工节。于是,有一些服务商会基于这些节日推出吸引用户的促销活动,比如RackNerd有推出四款洛杉矶和犹他州独立服务器,1G带宽、5个独立IP地址,可以配置Windows和Linux系统,如果有需要独立服务器的可以看看。第一、劳工节促销套餐这里有提供2个套餐。两个方案是选择犹他州的,有2个方案是可以选择洛杉矶机房的。CPU内存SSD硬盘配置流量价格...

我在百度为你推荐
淘宝收费淘宝都什么服务是收费的?淘宝收费淘宝卖东西收多少手续费快速美白好方法快速美白的好点子!?(不是晒黑的)渗透测试渗透测试的专业服务arm开发板单片机开发板与ARM开发板有什么不同?唱吧电脑版官方下载电脑上可以安装唱吧吗?奇虎论坛360有论坛中心?奇虎论坛奇虎问答是什么奇虎论坛奇虎是中国的吗?奇虎论坛奇虎论坛最新推荐歌曲列表·
域名系统 域名备案信息查询 工信部域名备案系统 代理域名备案 中文域名交易中心 edgecast GGC 鲜果阅读 圣诞节促销 免费ftp站点 亚洲小于500m 服务器维护方案 双11秒杀 可外链相册 厦门电信 php服务器 阿里云邮箱登陆地址 网页加速 国外免费网盘 tracert 更多