《最新C语言课程设计实验报告--汽车租赁管理系统剖析.doc》由会员分享,可在线阅读,更多相关《最新C语言课程设计实验报告--汽车租赁管理系统剖析.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言课程设计实验报告-汽车租赁管理系统剖析C语言课程设计实验报告-汽车租赁管理系统剖析C语言程序设计课程设计实验报告题目:汽车租赁管理系统专业:班级:姓名:学号:时间:2015年6月-一、 目的1、进一步掌握和利用 C 语言进行程序设计的能力;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方
2、法;5、学会利用流程图或 N-S 图表示算法;6、掌握书写程序设计开发文档,即书写课程设计报告的能力;二、 内容与设计思想。1、系统功能与分析(填写你所设计的菜单及流程图)。主函数系统选项非0,1,2,3,4为无效值退出系统归还登记管理系统办理租赁查询汽车 3:汽车统计4:会员管理系统2:删除汽车1:增加汽车3: 卡号统计0: 返回n2: 删除卡号1: 申请新卡 2、 数据结构 数据表格图形会员信息车辆信息卡号姓名性别电话编号车型品牌租金状态数据结构代码struct member int cardnum; char lendcar10; member1000; struct car int c
3、arnum; char carname20; float carprice; char carcreat20; int turefalse; car1000; struct card int cardnum; char sex5; char membersname20; long int memberstel; card1000;全局变量:char ch1,ch2,ch4;3、 模块设计根据功能需要:源文件函数名功能汽车租赁管理系统.cmain()主函数chacar()分类查找汽车findcar()按“车型”查找findcar1()按“品牌”查找lendcar()将汽车租出并记录huancar
4、()将汽车归还并记录addcard()新增会员,采集信息delcard() 删除会员,清除信息cardcount()统计会员总数,显示详细信息addcar() 增加新车,采集信息delcar()删除车辆,清除信息carcount()统计车辆总数,显示详细信息end() 结束系统运行4、 总体设计思想:整个程序主要由4个界面组成,分别是查询汽车,办理租赁,管理系统,归还登记组成。其中管理系统包括汽车的增加、删除、统计和会员管理系统。会员管理系统又包括申请新卡、删除旧卡、卡号统计的程序。5、 调试过程: 测试数据及结果,出现了哪些问题,如何修改的。以下是测试截图:主界面汽车租赁管理系统(1.增加汽
5、车)(2. 删除汽车) (3.汽车统计) (4. 会员管理系统) (1.申请新卡)(2. 删除卡号)(3. 卡号统计)4. 归还登记归还前已租到 suv 一辆 归还suv 汽车归还后查询汽车时遇到的问题:1. 字符串用的双引号与字符用的单引号上有错误。2. 输出时在上下行数据的排列方式上出现问题,不会灵活运用。3. 考虑不全面,调试时出现不符合要求的错误,重新整理思路,解决问题。办理租赁时遇到的问题:1. 结构体运用中调用出错。2. 对结构体认识不清,理解不透彻,运用不够准确。3. 大括号,分号漏加。4. 没有注意字符串处理函数应用时的格式,导致后期出错。5.对文件的读写,认识不够深刻。管理系
6、统中遇到的问题:1. 对结构体中各成员的引用上,调用存在问题。2. 结构体变量的定义及使用。3. If 与 else 的用法仍不明确。有时会搞混不同层次的if与else的搭配。归还登记中遇到的问题1. Continue,break的区别。2. While、if-else、for等的应用。3.If 语句中的判断过于复杂,可简化6、 程序有待改进的地方及本次实习的收获和建议有待改进的部分: 1.没有完成自动计算时间,从而计算总费用的功能。2.功能较少。3.存储的会员、车辆信息有限。4.输入下一步操作选项时,界面乱,不整洁。5. 删除汽车、会员时,即使输入不存在的值,操作结束后也会提示操作成功。6.
7、无法存储车辆、会员信息。收获和建议:1. 面对较大的程序时,应把问题逐渐细分,从大到小,一步步来2. 多思考,多查阅资料,多测试,多咨询,多沟通。3. 要首先确定基本结构。多关注各个功能的衔接,确定都要使用的全局变量正确。7、 源程序清单(主要代码)#include #include #include#include struct member int cardnum; char lendcar10; member5; struct car int carnum; char carname20; float carprice; char carcreat20; int turefalse; c
8、ar5; struct card int cardnum; char sex5; char membersname20; long int memberstel; card5; findcar() char carname10; int i; printf(nn请输入你要查找的车型:n); scanf(%s,carname); for(i=0;i5;i+) while(strcmp(carname,cari.carname)=0) if(cari.turefalse=1) printf( 编号 车型 品牌n %d %s %s n,cari.carnum,cari.carname,cari.ca
9、rcreat); printf(nn); printf(-此车现在无人租用n.); printf(-按任意键返回n); break; else printf(nn-这辆车已经有人借出n);break; return 0; findcar1() char carcreat10; int i; printf(nn请输入你要查找的品牌:n); scanf(%s,carcreat); for(i=0;i5;i+) while(strcmp(carcreat,cari.carcreat)=0) if(cari.turefalse=1) printf( 编号 车型 品牌n %d %s %s n,cari.
10、carnum,cari.carname,cari.carcreat); printf(nn); printf(-此车现在无人租用n.); printf(-按任意键返回nn); break; else printf(nn-这辆车已经有人借出!n);printf(-按任意键返回nn); break; return 0; chacar() char ch5; do printf(nn 1: 按车型查找 n); printf( 2: 按品牌查找 n); printf( 0: 返回 n); printf( 请输入02:n); ch5=getch(); switch(ch5) case 1:findcar
11、();getch();break; case 2:findcar1();getch();break; case 0:break; default:printf(-无此操作!n);getch();break; while(ch5!=0); return 0; lendcar() int i,n; int cardnum; printf(nn请输入卡号 :n); scanf(%d,&cardnum); for(i=0;i5;i+) if(cardi.cardnum=cardnum) n=i; printf(n车型:); scanf(%s,membern.lendcar); for(i=0;i5;i
12、+) if(strcmp(cari.carname,membern.lendcar)=0) if(cari.turefalse=0) printf(-对不起,此车已被租出,请重新选择n); getch();return 0; else membern.cardnum=cardnum; for(i=0;i5;i+) if(strcmp(cari.carname,membern.lendcar)=0) cari.turefalse=0; continue; printf(nn-操作成功,请及时提车.); printf(n-按任意键返回.n); getch(); return 0; printf(n
13、n-错误操作.); printf(n-按任意键返回.n); getch(); return 0; printf(nn-你的卡号不存在,请申请新卡.n); printf(n-按任意键返回.n); getch(); return 0; huancar() int i,n; int cardnum; char lendcar10; printf(nnn); printf( - 欢迎进入还车界面 -); printf(nn请你输入你的卡号 :); scanf(%d,&cardnum); for(i=0;i5;i+) if(cardi.cardnum=cardnum) n=i; printf(n请输入你
14、要归还的车型:); scanf(%s,lendcar); for(i=0;i5;i+) while(strcmp(memberi.lendcar,lendcar)=0) cari.turefalse=1; break; printf(nn-还车完毕.); printf(n-按任意键返回.n); getch(); return 1; printf(nn-租赁记录不存在.);printf(n-按任意键返回.n); getch(); return 0; else printf(nn-卡号不存在,请与管理员联系.n); printf(n-按任意键返回.n); getch(); return 0;voi
15、d addcard() int i=0; char choice; for(i=0,choice=y;choice=y|choice=Y;i+) printf(nn卡号:); scanf(%d,&cardi.cardnum); printf(n性别:); scanf(%s,cardi.sex); printf(n姓名:); scanf(%s,cardi.membersname); printf(n电话:); scanf(%ld,&cardi.memberstel); printf(nn是否要输入下一个人=(y n)nn); scanf(%s,&choice); printf(nn-输入完毕.)
16、;printf(n-任意键返回.n); getch(); delcard() int i; int cardnum; char choice; printf(nn要删除的卡号:); scanf(%d,&cardnum); for(i=0;i5;i+) while(cardi.cardnum=cardnum) printf(nn确认删除? (Y / N)n); scanf(%s,&choice); if(choice=y|choice=Y) for(;i5;i+) cardi=cardi+1; printf(nn-已删除成功!n-按任意键返回.n); getch(); return 0; els
17、e printf(-已取消删除nn); getch(); return 0; void cardcount() int i,n=0; for(i=0;i5;i+) if(cardi.cardnum!=0) printf(第%d张卡 n,i+1); printf( 卡号 性别 姓名 电话n); printf(ttn); printf( %d %6s %10s %ld nn,cardi.cardnum,cardi.sex,cardi.membersname,cardi.memberstel); n+; printf(n); printf(-目前共有%d个会员.n,n); printf(-按任意键返
18、回.n); getch(); void addcar() char choice; int i; for(i=0,choice=y;choice=y|choice=Y;i+) printf(nnn编号:); scanf(%d,&cari.carnum); printf(nn车型:); scanf(%s,cari.carname); printf(nn品牌:); scanf(%s,cari.carcreat); printf(nn租金:); scanf(%f,&cari.carprice); printf(nn请你设定车的状态=(0-不在 1-在):); scanf(%d,&cari.turef
19、alse); printf(nn是否要输入下一辆车=(y n)nn); scanf(%s,&choice); printf(nn-输入完毕.);printf(n-任意键返回.n); getch(); delcar() int i,carnum; char choice; printf(nn); printf(编号:n); scanf(%d,&carnum); for(i=0;i5;i+) while(carnum=cari.carnum) printf(确认删除-(y / n)?n); scanf(%s,&choice); if(choice=y|choice=Y) for(;i5;i+) c
20、ari=cari+1; printf(nn-已删除成功!n-按任意键返回.n); getch(); return 0; else printf(-已取消删除nn); printf(-按任意键返回.n); getch(); return 0; void carcount() int i,n=0; for(i=0;i5;i+) if(cari.carnum!=0&cari.carname!=0) printf(nn第%d辆车n编号 车型 品牌 租金 状态n,i+1); printf(ttn); printf( %d %10s ,cari.carnum,cari.carname); printf(%
21、15s %4.2f %d=(1在0不在)nn,cari.carcreat,cari.carprice,cari.turefalse); n=n+1; printf(nn-目前共有%d辆车.n,n); printf(-按任意键返回.n); void end() printf(nnn-n); printf(n); printf( - 谢谢使用本系统, 再见! -n); printf(nnnn); void main() char ch1,ch2,ch4; do printf(n); printf( - 制作: 学号: 班级: - nn); printf(n - 欢迎使用系统 -);printf(n
22、n); printf( 请选择需要的服务:n); printf( 1:查询汽车n); printf( 2:办理租赁n); printf( 3:管理系统 n); printf( 4:归还登记n); printf( 0:退出系统 n); printf(请输入数字04:n); ch1=getch(); switch(ch1) case 1:chacar();break; case 2:lendcar();break; case 3: do printf(nn 1:增加汽车n); printf( 2:删除汽车 n); printf( 3:汽车统计 n); printf( 4:会员管理系统n); pri
23、ntf( 0:返回首页 n); printf(请输入04:n); ch2=getch(); switch(ch2) case 1:addcar(); break; case 2:delcar();break; case 3:carcount();getch();break; case 4: do printf(nn 1: 申请新卡 n); printf( 2: 删除卡号 n); printf( 3: 卡号统计n); printf( 0: 返回n); printf(请输入03:n); ch4=getch(); switch(ch4) case 1:addcard();break; case 2:delcard();break; case 3:cardcount();break; case 0:break; default:printf(无此操作!n);getch();break; while(ch4!=0);break; case 0:end();break; default:printf(无此操作!n);getch();break; while(ch2!=0);break; case 4:huancar();break; case 0:end();break; default:printf(无此操作!n);getch();break; while(ch1!=0);