停车场管理系统-课程设计.doc

上传人:豆**** 文档编号:34399852 上传时间:2022-08-16 格式:DOC 页数:10 大小:114KB
返回 下载 相关 举报
停车场管理系统-课程设计.doc_第1页
第1页 / 共10页
停车场管理系统-课程设计.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《停车场管理系统-课程设计.doc》由会员分享,可在线阅读,更多相关《停车场管理系统-课程设计.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流停车场管理系统-课程设计【精品文档】第 10 页 高级语言程序设计(1)课程设计 一、程序设计说明书【设计题目】 停车场信息管理系统【问题描述】 现如今随着经济的发展,私家车越来越多,系统管理停车场变得尤为重要。某小区停车场有车数辆,将每个车主的信息用该软件通过键盘敲入并以文本文件方式存放在磁盘,内容为五列:停车场车位号、车牌号、车主姓名、车主身份证号、车主电话。编写程序,录入车主信息,可对车主信息随时进行修改、删除,并按车位号查询车主信息。【基本要求】1. 通过此软件可以录入该汽车的车牌号;2. 通过此软件能够浏览录入该汽车所停车位号;3. 通过此软件

2、录入车主信息,包括车主姓名、车主身份证号以及车主的联系方式;4. 通过此软件可根据输入的车位号删除、修改或查询车主信息;5. 过此软件能将车主信息按照车位号进行排序;6. 通过此软件可输出全部车主信息。【算法思想】1. 构造一个结构体类型,成员包括五项:一个字符型数组存放:车主姓名,四个整形变量:汽车的车牌号、汽车所停车位号、车主身份证号以及车主的联系方式。2. 录入车主信息及车位号时,通过循环语句将各项信息输入到结构体中,然后通过循环语句算出总分并写入文本文件中,并存入磁盘。3. 修改车主信息时,先将文件读出到结构体中,通过字符的比较查找所修改的信息所在处,如果没有找到则输出警告语句,找到后

3、则通过输入输出函数与赋值进行修改,并将修改过后的车主信息写入文本文件中,并存入磁盘。4. 查询车主信息时,直接通过已经存在的文本文件进行读出并在屏幕上输出结果,如果文件不存在则输出警告语句。5. 查找时,直接通过已经存在的文本文件进行读出到结构体中,并将结构提数组通过车位号的大小用冒泡法进行排序,然后将结果显示在屏幕上。【调用关系】main函数分别调用:insert(); /输入信息del(); /删除车主信息modify(); /修改车主信息inquire(); /查询车主信息sort(); /对车主信息进行排序 print_inf()/打印车主信息【概要设计】1 功能模块图;主函数 保存文

4、件排序信息验证密码查找信息删除信息修改信息读取文件插入信息 2 各个模块详细的功能描述。1. 保存信息模块:将程序中链表里所存储的信息保存到已经指定好的文件中(result.txt)(主要是fprintf函数)。2. 读取信息模块:将指定的文件(result.txt)中的信息读取后存入运行程序中的链表当中(主要是fscanf函数)3. 简单菜单模块:显示程序执行时的主菜单(主要是switch语句实现)。4. 输出信息模块:将链表中的信息输出到程序的显示框上(主要是for循环和printf函数实现)。5. 添加信息模块:按照停车号的大小进行插入,有重号系统会显示“有重号,添加失败”,否则“插入成

5、功” 。6. 删除信息模块:通过停车号的比较,当无此车位号则删除失败,否则删除成功。7. 修改信息模块:先找到需要修改的车位号,再按照车牌号,车主姓名,车主身份证,车主联系方式进行进一步修改若无该车位号则提示错误信息返回主菜单。8. 查询信息模块:如果链表里无数据则显示“系统无数据,按任意键返回”如果有则按车位号查询,并输出。9. 排序信息模块:按照简单排序按车位号对信息进行排序,并输出。10. 主函数模块:将以上模块进行组合实现系统的功能。【详细设计】输入密码进入菜单功能函数的调用关系图;Switch()Case 7读取文件添加(插入)停车场的基本信息(车位号车牌号,车主信息)Case 1添

6、加信息Case 2删除信息输入车位号,删除该车位的信息输入车位号,选择修改各项信息Case 3修改信息Case 4查询信息输入车位号,查询该车位的信息将停车场现有的停车信息按照车位号进行排序Case 5排序信息将停车场现有的停车信息输出Case 6打印信息结束Case 0 退出【程序使用方法】1. 执行程序,先输入密码,进入程序主界面按照程序提示进入所要执行的内容。2. 选择1,根据所停车位号添加车主信息,添加完成后按任意键返回主菜单。3. 选择2,根据所停车位号删除车主信息,删除完成后按任意键返回主菜单。4. 选择3,根据所停车位号修改车主信息,修改完成后按任意键返回主菜单。5. 选择4,根

7、据所停车位号查询车主信息,查询后按任意键返回主菜单。6. 选择5,给居所停车位对车主信息进行排序,排序完成后按任意键返回。7. 选择6,可输出全部车主信息,出现在屏幕上,按任意键进行返回。8. 显示主菜单是,选择0,结束本次程序。二 程序上机调试报告 【语法错误及其排除】1. 个别用户表示符和关键字相同导致程序无法运行,找出错误修改。2. 使用fscanf( )函数时,参数直接写的是变量名,应该取地址。3. 宏定义时在末尾处加上了分号,应该不加分号。4. 部分单词拼写错误,导致定义的变量不存在,根据提示进行修改。三程序测试结果 程序测试主要截屏1. 输入系统密码2. 密码正确,进入主菜单3.

8、添加停车信息4. 修改车主信息5. 排序车主信息6. 打印车主信息7. 查找车主信息8. 删除车主信息9. 退出程序【收获及体会】对自己的设计进行评价,指出合理和不足之处,提出改进方案; 我自己觉得自己的程序还存在很大问题,比如如果使用者不按照程序先前制定的规则输入则会出现bug,合理之处就在于基本完成了一个非收费停车场的基本信息的管理。改进之处就是增加信息的项目已经bug的问题。还有就是将这个停车场改成一个收费的停车场,按照时间来收费,有过想法但是不知道该怎么实现,有想到用time函数,但不知道怎么用! 四、源程序代码#include#include#include#include#incl

9、udestruct car *creat_inf(); void save_inf(struct car *h);struct car *read_inf(struct car *head);void menu(void);void scan_inf(struct car *h);void print_inf(struct car *h);int insert(struct car *h);int del(struct car *h); int modify(struct car *h); struct car * inquire(struct car *h);struct car *sort

10、(struct car *head);/定义结构体struct carint n; /停车场车位号char num20; /车牌号char name20; /车主姓名char number20; /车主身份证号 char tel_num20; /车主联系电话struct car *next; /指针域/建立单链表头结点struct car *creat_inf() struct car *head;head=(struct car *)malloc(sizeof(struct car); head-next=NULL; /表尾节点next域置空return head;/将单链表中的信息保存到指

11、定的磁盘文件中void save_inf(struct car *h) struct car *c;FILE *fp;if(fp=fopen(result.txt,wt)=NULL)printf(写文件出错,按任意键退出!);getch();exit(1);for(c=h-next;c!=NULL;c=c-next)fprintf(fp,%d %s %s %s %s ,c-n,c-num,c-name,c-number,c-tel_num);printf(n 文件已成功保存,按任意键退出!nn);getch();fclose(fp);/从指定的磁盘文件中读取信息并存入单链表中struct ca

12、r *read_inf(struct car *head) struct car *p1,*p2;FILE *fp;system(cls);if(fp=fopen(result.txt,rt)=NULL)printf(文件空,按任意键返回!);getch();return head;p2=head;while(!feof(fp) /文件未结束p1=(struct car *)malloc(sizeof(struct car); /存放读取信息fscanf(fp,%d %s %s %s %sn,&p1-n,p1-num,p1-name,p1-number,p1-tel_num);p2-next=

13、p1; /链接节点p2=p1;p2-next=NULL;fclose(fp);printf(n文件中信息以正确读出,按任意键返回!);getch();system(cls);return head;/停车场管理系统菜单void menu(void)printf(nnn-欢迎来到停车场管理系统-nnn);printf( 1.添加停车信息 nn);printf( 2.删除停车信息 nn);printf( 3.修改停车信息 nn);printf( 4.查询停车信息 nn);printf( 5.排序停车信息 nn);printf( 6.打印停车信息 nn);printf( 7.读取库中数据 nn);

14、printf( 0.退出系统 nn);printf( 请选择0-6选项 nn);/输出模块void print_inf(struct car *h)struct car *p;system(cls);printf(nn目前停车场的数据为:nn);printf(车位号 车牌号 车主姓名 车主身份证号 车主联系电话n);for(p=h-next;p!=NULL;p=p-next)printf(%5d %10s %8s %10s %10sn,p-n,p-num,p-name,p-number,p-tel_num);printf(按任意键返回主菜单!n);getch();/添加信息模块int inse

15、rt(struct car *h)struct car *p;p=(struct car *)malloc(sizeof(struct car);/p指向新生成的节点system(cls);printf(请输入要添加的车位号,车牌号,车主姓名,车主身份证号,车主联系电话n);scanf(%d%s%s%s%s,&(p-n),(p-num),(p-name),(p-number),(p-tel_num);while(h-next!=NULL & h-next-n n)h=h-next; if(h-next!=NULL & h-next-n = p-n)free(p);printf(有重号,添加失败

16、,按任意键返回主菜单!);getch();return 0;p-next=h-next;h-next=p;printf(添加成功,按任意键返回主菜单!);getch();return 1;/删除信息模块int del(struct car *h)int m;struct car *p;p=h-next;system(cls);if(p=NULL) /只有头结点为空表,不能删除printf(无内容,无法删除,按任意键退出返回主菜单!n);getch();return 0;elseprintf(请输入要删除的车位号:n);scanf(%d,&m);while(p!=NULL)if(p-n=m)h-

17、next = p-next;free(p);printf(删除成功!按任意键返回主菜单!n);getch();return 1;h = p;p=p-next;printf(无此车位号,删除失败,按任意键返回主菜单!n);getch();return 0;/修改信息模块int modify(struct car *h)int m,choice;struct car *p;p = h-next;system(cls);printf(n请输入要修改的车位号:n);scanf(%d,&m);while (p!=NULL)if(p-n=m)printf(您要修改哪一项:n);printf(n 1.车牌号

18、 n);printf(n 2.车主姓名 n);printf(n 3.车主身份证号 n);printf(n 4.车主联系方式 n);printf(请选择1-4:);scanf(%d,&choice);switch(choice)case 1:printf(请输入修改后的车牌号:n);scanf(%s,p-num);break;case 2:printf(请输入修改后的车主姓名:n);scanf(%s,p-name);break;case 3:printf(请输入修改后的车主身份证号:n);scanf(%s,p-number);break;case 4:printf(请输入修改后的车主联系方式:n

19、);scanf(%s,p-tel_num);break;printf(n 停车信息 n);printf(车位号 车牌号 车主姓名 车主身份证号 车主联系电话n); printf(%5d %10s %8s %10s %10sn,p-n,p-num,p-name,p-number,p-tel_num);printf(修改信息成功!按任意键返回主菜单!);getch();return 1;p=p-next;printf(您所要修改的信息不存在,按任意键返回主菜单!);getch();return 0;/查询信息模块struct car * inquire(struct car *h)int m;st

20、ruct car *p;system(cls);if(h-next = NULL)printf(系统无数据,按任意键返回主菜单n);getch();return 0;elsep = h-next;printf(请输入要要查找的车位号:);scanf(%d,&m);while (p!=NULL)if(p-n=m)printf(车位号 车牌号 车主姓名 车主身份证号 车主联系电话n);printf(%5d %10s %8s %10s %10sn,p-n,p-num,p-name,p-number,p-tel_num);printf(按任意键返回主菜单.);getch(); return p; /找

21、到则返回指向该节点的指针Pp=p-next; return NULL; /未找到则返回空指针NULL/排序struct car *sort(struct car *head) struct car *temp1,*p1,*p2,*min,*temp,*p;temp=(struct car*)malloc(sizeof(struct car);if(head-next=NULL)system(cls);printf(系统无数据!按任意键返回主菜单!);getch();return head;for(p1=head-next;p1!=NULL;p1=p1-next)min=p1;for(p2=p1

22、-next;p2!=NULL;p2=p2-next) if(min-n p2-n)min=p2;if(min!=p1)*temp=*min;*min=*p1;*p1=*temp;temp1=min-next;min-next=p1-next;p1-next=temp1;system(cls);printf(nn排序后停车场的数据为:nn);printf(车位号 车牌号 车主姓名 车主身份证号 车主联系电话n);for(p=head-next;p!=NULL;p=p-next)printf(%5d %10s %8s %10s %10sn,p-n,p-num,p-name,p-number,p-t

23、el_num);printf(按任意键返回主菜单.n);getch();return (head);/主函数void main(void) struct car *head;int m,n,choice;m=123;printf(请输入管理员密码:n);scanf(%d,&n);if(n=m)printf(密码正确!,按任意键进入n);getch();elseprintf(密码错误!按任意键退出n); exit(0);head=creat_inf();dosystem(cls);menu();scanf(%d,&choice); switch(choice)case 1: insert(head); break;case 2: del(head); break; case 3: modify(head); break;case 4: inquire(head);break;case 5: sort(head); break;case 6: print_inf(head);break;case 7: head = read_inf(head);break;case 0: break;while(choice!=0); save_inf(head);free(head);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁