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

SugarHosts糖果主机六折 云服务器五折

也有在上个月介绍到糖果主机商12周年的促销活动,我有看到不少的朋友还是选择他们家的香港虚拟主机和美国虚拟主机比较多,同时有一个网友有联系到推荐入门的个人网站主机,最后建议他选择糖果主机的迷你主机方案,适合单个站点的。这次商家又推出所谓的秋季活动促销,这里一并整理看看这个服务商在秋季活动中有哪些值得选择的主机方案,比如虚拟主机最低可以享受六折,云服务器可以享受五折优惠。 官网地址:糖果主机秋季活动促...

[黑五]ProfitServer新加坡/德国/荷兰/西班牙VPS五折,不限流量KVM月付2.88美元起

ProfitServer已开启了黑色星期五的促销活动,一直到本月底,商家新加坡、荷兰、德国和西班牙机房VPS直接5折,无码直购最低每月2.88美元起,不限制流量,提供IPv4+IPv6。这是一家始于2003年的俄罗斯主机商,提供虚拟主机、VPS、独立服务器、SSL证书、域名等产品,可选数据中心包括俄罗斯、法国、荷兰、美国、新加坡、拉脱维亚、捷克、保加利亚等多个国家和地区。我们随便以一个数据中心为例...

妮妮云(119元/季)日本CN2 2核2G 30M 119元/季

妮妮云的知名度应该也不用多介绍了,妮妮云旗下的云产品提供商,相比起他家其他的产品,云产品还是非常良心的,经常出了一些优惠活动,前段时间的八折活动推出了很多优质产品,近期商家秒杀活动又上线了,秒杀产品比较全面,除了ECS和轻量云,还有一些免费空间、增值代购、云数据库等,如果你是刚入行安稳做站的朋友,可以先入手一个119/元季付的ECS来起步,非常稳定。官网地址:www.niniyun.com活动专区...

我在百度为你推荐
回收站在哪回收站 在c盘的路径缓冲区溢出教程溢出攻击原理快速美白好方法快速美白方法申请证书申请毕业证书qq空间装扮qq空间的装扮空间在哪?雅虎天盾我装了360安全卫士,原来的雅虎天盾需不需要卸载创维云电视功能创维云电视是指什么免费免费建站可以不用钱免费做一个网站吗2012年正月十五2012年正月十五 几月几号iphone6上市时间苹果6什么时候出?
上海服务器租用 5折 inmotionhosting godaddy支付宝 国外网站代理服务器 三拼域名 个人域名 最好的qq空间 hdd hkt 能外链的相册 厦门电信 万网主机管理 河南移动梦网 个人免费邮箱 云服务器比较 lamp是什么意思 宿迁服务器 hostease 香港ip 更多