搜索
您的当前位置:首页C语言课程设计实验报告--汽车租赁管理系统

C语言课程设计实验报告--汽车租赁管理系统

来源:乌哈旅游


《C语言程序设计》课程设计

实验报告

题目:汽车租赁管理系统

专业:

班级:

姓名:

学号:

时间:2015年6月

一、目的

1、进一步掌握和利用 C 语言进行程序设计的能力; 2、进一步理解和运用结构化程序设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或 N-S 图表示算法;

6、掌握书写程序设计开发文档,即书写课程设计报告的能力;

第 1 页

二、内容与设计思想。

1、系统功能与分析(填写你所设计的菜单及流程图)。 查询汽车 系统选项 非0,1,2,3,4为无效值 主函数 办理租赁 管理系统 归还登记 退出系统 1:增加汽车 2:删除汽车 3:汽车统计 4:会员管理系统 1: 申请新卡 2: 删除卡号 3: 卡号统计 0: 返回

第 2 页

2、数据结构

数据表格图形 会员信息 卡号

数据结构代码

struct member {

int cardnum; char lendcar[10]; }member[1000];

struct car {

int carnum;

char carname[20]; float carprice; char carcreat[20]; int turefalse; }car[1000];

struct card {

int cardnum; char sex[5];

char membersname[20]; long int memberstel; }card[1000];

全局变量:char ch1,ch2,ch4;

第 3 页

车辆信息 品牌 租金 状态 姓名 性别 电话 编号 车型

3、模块设计 根据功能需要: 源文件 函数名 main() chacar() findcar() findcar1() lendcar() huancar() 汽车租赁管addcard() 理系统.c delcard() cardcount() addcar() delcar() carcount() end()

删除会员,清除信息 统计会员总数,显示详细信息 增加新车,采集信息 删除车辆,清除信息 统计车辆总数,显示详细信息 结束系统运行 新增会员,采集信息 主函数 分类查找汽车 按“车型”查找 按“品牌”查找 将汽车租出并记录 将汽车归还并记录 功能 第 4 页

4、总体设计思想:

整个程序主要由4个界面组成,分别是查询汽车,办理租赁,管理系统,归还登记组成。其中管理系统包括汽车的增加、删除、统计和会员管理系统。会员管理系统又包括申请新卡、删除旧卡、卡号统计的程序。

5、调试过程: 测试数据及结果,出现了哪些问题,如何修改的。 以下是测试截图:

主界面

汽车租赁

管理系统

(1.增加汽车)

第 5 页

(2.删除汽车)

(3.汽车统计)

第 6 页

(4.会员管理系统) (1.申请新卡)

(2.删除卡号)

(3.卡号统计)

4.归还登记

归还前已租到 suv 一辆

归还suv 汽车

第 7 页

归还后

查询汽车时遇到的问题:

1.字符串用的双引号与字符用的单引号上有错误。

2.输出时在上下行数据的排列方式上出现问题,不会灵活运用。

3.考虑不全面,调试时出现不符合要求的错误,重新整理思路,解决问题。

第 8 页

办理租赁时遇到的问题:

1.结构体运用中调用出错。

2.对结构体认识不清,理解不透彻,运用不够准确。

3.大括号,分号漏加。

4.没有注意字符串处理函数应用时的格式,导致后期出错。

5.对文件的读写,认识不够深刻。

管理系统中遇到的问题:

1.对结构体中各成员的引用上,调用存在问题。

2.结构体变量的定义及使用。

3.If 与 else 的用法仍不明确。有时会搞混不同层次的if与else的搭配。

归还登记中遇到的问题

1.Continue,break的区别。

2.While、if-else、for等的应用。

3.If 语句中的判断过于复杂,可简化

6、程序有待改进的地方及本次实习的收获和建议 有待改进的部分:

第 9 页

1.没有完成自动计算时间,从而计算总费用的功能。

2.功能较少。

3.存储的会员、车辆信息有限。

4.输入下一步操作选项时,界面乱,不整洁。

5.删除汽车、会员时,即使输入不存在的值,操作结束后也会提示操作成功。

6.无法存储车辆、会员信息。

收获和建议:

1.面对较大的程序时,应把问题逐渐细分,从大到小,一步步来

2.多思考,多查阅资料,多测试,多咨询,多沟通。

3.要首先确定基本结构。多关注各个功能的衔接,确定都要使用的全局变量正确。

7、源程序清单(主要代码)

#include #include #include #include

struct member {

int cardnum; char lendcar[10]; }member[5];

struct car {

int carnum; char carname[20];

第 10 页

float carprice; char carcreat[20]; int turefalse; }car[5];

struct card {

int cardnum; char sex[5];

char membersname[20]; long int memberstel; }card[5];

findcar() {

char carname[10]; int i;

printf(\"\\n\\n请输入你要查找的车型:\\n\"); scanf(\"%s\ for(i=0;i<5;i++) { while(strcmp(carname,car[i].carname)==0) { if(car[i].turefalse==1)

{

printf(\" 编号 车型 品牌\\n %d %s %s \\n\ printf(\"\\n\\n\"); printf(\"---------------此车现在无人租用\\n.\");

printf(\"---------------按任意键返回\\n\"); break;

}

else {printf(\"\\n\\n---------------这辆车已经有人借出\\n\");break;} }

}

return 0;

}

findcar1() {

char carcreat[10];

第 11 页

int i;

printf(\"\\n\\n请输入你要查找的品牌:\\n\"); scanf(\"%s\ for(i=0;i<5;i++)

{ {

{

while(strcmp(carcreat,car[i].carcreat)==0) if(car[i].turefalse==1)

printf(\" 编号 车型 品牌

\\n %d %s %s \\n\ printf(\"\\n\\n\");

printf(\"---------------此车现在无人租用\\n.\"); printf(\"---------------按任意键返回\\n\\n\"); break; }

else {printf(\"\\n\\n---------------这辆车已经有人借出!\\n\");printf(\"---------------按任意键返回\\n\\n\"); break; }

} }

return 0; }

chacar() {

char ch5; do

{

printf(\"\\n\\n 1: 按车型查找 \\n\"); printf(\" 2: 按品牌查找 \\n\"); printf(\" 0: 返回 \\n\"); printf(\" 请输入0━2:\\n\"); ch5=getch(); switch(ch5)

{

case '1':findcar();getch();break; case '2':findcar1();getch();break; case '0':break;

default:printf(\"---------------无此操作!\\n\");getch();break; }

}

}while(ch5!='0');

return 0;

第 12 页

lendcar() {

int i,n; int cardnum;

printf(\"\\n\\n请输入卡号 :\\n\"); scanf(\"%d\

for(i=0;i<5;i++) {

{

if(card[i].cardnum==cardnum) n=i;

printf(\"\\n车型:\");

scanf(\"%s\

for(i=0;i<5;i++)

{ if(strcmp(car[i].carname,member[n].lendcar)==0)

{

{printf(\"---------------对不起,此车已被租出,请重新选择\\n\"); getch();return 0; }

if(car[i].turefalse==0)

else

member[n].cardnum=cardnum;

for(i=0;i<5;i++) {

{

if(strcmp(car[i].carname,member[n].lendcar)==0) car[i].turefalse=0; continue;

} }

printf(\"\\n---------------按任意键返回...\\n\");

printf(\"\\n\\n---------------操作成功,请及时提车.\"); getch(); return 0;

} }

printf(\"\\n\\n---------------错误操作.\");

printf(\"\\n---------------按任意键返回...\\n\");

getch(); return 0;

} }

printf(\"\\n---------------按任意键返回...\\n\");

printf(\"\\n\\n---------------你的卡号不存在,请申请新卡.\\n\");

第 13 页

getch(); return 0;}

huancar() {

int i,n; int cardnum; char lendcar[10]; printf(\"\\n\\n\\n\");

printf(\" --- 欢迎进入还车界面 ---\");

printf(\"\\n\\n请你输入你的卡号 :\"); scanf(\"%d\

for(i=0;i<5;i++) {

{

if(card[i].cardnum==cardnum) n=i;

printf(\"\\n请输入你要归还的车型:\"); scanf(\"%s\

for(i=0;i<5;i++) {

{ car[i].turefalse=1;

}

while(strcmp(member[i].lendcar,lendcar)==0) break;

printf(\"\\n\\n---------------还车完毕.\");

printf(\"\\n---------------按任意键返回...\\n\");

getch(); return 1;

}

printf(\"\\n---------------按任意键返回...\\n\");

printf(\"\\n\\n---------------租赁记录不存在.\"); getch(); return 0;

} else{

printf(\"\\n\\n---------------卡号不存在,请与管理员联系.\\n\");

printf(\"\\n---------------按任意键返回...\\n\");

getch();

第 14 页

return 0;}}}

void addcard() {

int i=0;

char choice;

for(i=0,choice='y';choice=='y'||choice=='Y';i++) {

printf(\"\\n\\n卡号:\"); scanf(\"%d\ printf(\"\\n性别:\"); scanf(\"%s\

printf(\"\\n姓名:\");

scanf(\"%s\ printf(\"\\n电话:\");

scanf(\"%ld\ }

delcard() {

int i;

int cardnum; char choice;

printf(\"\\n\\n要删除的卡号:\"); scanf(\"%d\

for(i=0;i<5;i++) { {

printf(\"\\n\\n是否要输入下一个人===============(y \\\\ n)\\n\\n\"); }

printf(\"\\n---------------任意键返回...\\n\");

scanf(\"%s\

printf(\"\\n\\n-----------------输入完毕.\"); getch();

while(card[i].cardnum==cardnum) printf(\"\\n\\n确认删除? (Y / N)\\n\"); scanf(\"%s\ if(choice=='y'||choice=='Y')

{

{ for(;i<5;i++)

card[i]=card[i+1]; }

printf(\"\\n\\n---------------已删除成功!\\n---------------按任意键返回...\\n\");

第 15 页

getch(); return 0; }}}

void cardcount() {

int i,n=0;

for(i=0;i<5;i++)

{ if(card[i].cardnum!=0) { printf(\"第%d张卡 \\n\

}

{ printf(\"---------------已取消删除\\n\\n\"); getch(); return 0; }

else

printf(\" 卡号 性别 姓名 电话\\n\"); printf(\"\\\\n\");

printf(\" %d %6s %10s %ld \\n\\n\ n++;

printf(\"\\n\");

} }

printf(\"---------------目前共有%d个会员.\\n\ printf(\"---------------按任意键返回...\\n\"); getch(); }

void addcar() { char choice; int i;

for(i=0,choice='y';choice=='y'||choice=='Y';i++) { printf(\"\\n\\n\\n编号:\");

scanf(\"%d\ printf(\"\\n\\n车型:\"); scanf(\"%s\ printf(\"\\n\\n品牌:\"); scanf(\"%s\ printf(\"\\n\\n租金:\");

scanf(\"%f\

printf(\"\\n\\n请你设定车的状态===============(0-不在 \\\\ 1-在):\"); scanf(\"%d\

printf(\"\\n\\n是否要输入下一辆车===============(y \\\\ n)\\n\\n\"); scanf(\"%s\

第 16 页

}

printf(\"\\n\\n-----------------输入完毕.\"); }

delcar() {

int i,carnum; char choice;

printf(\"\\n\\n\"); printf(\"编号:\\n\"); for(i=0;i<5;i++)

{ while(carnum==car[i].carnum) { printf(\"确认删除-----(y / n)?\\n\");

printf(\"\\n---------------任意键返回...\\n\");

getch();

scanf(\"%d\

scanf(\"%s\ if(choice=='y'||choice=='Y')

{ {for(;i<5;i++) car[i]=car[i+1];}

printf(\"\\n\\n---------------已删除成功!\\n---------------按任意键返回...\\n\");

getch(); return 0;

} else

{ printf(\"---------------已取消删除\\n\\n\"); } } }

printf(\"--------------------按任意键返回...\\n\"); getch(); return 0; }

void carcount() {

int i,n=0;

for(i=0;i<5;i++)

{ if(car[i].carnum!=0&&car[i].carname!=0) {

printf(\"\\n\\n第%d辆车\\n编号 车型 品牌 租金 状态\\n\

printf(\"\\\\n\");

printf(\" %d %10s \ printf(\"%15s %4.2f %d=====(1在\\\\0不在)\\n\\n\ n=n+1;

第 17 页

} }

printf(\"\\n\\n---------------目前共有%d辆车.\\n\ printf(\"---------------按任意键返回...\\n\"); } void end()

{ printf(\"\\n\\n\\n-------------------------------------------------------------------------------\\n\"); printf(\"\\n\");

printf(\" --- 谢谢使用本系统, 再见! ---\\n\"); printf(\"\\n\\n\\n\\n\"); }

void main() {

char ch1,ch2,ch4; do

{

printf(\"\\n\");

printf(\" --- 制作: 学号: 班级: --- \\n\\n\");

printf(\"\\n --- 欢迎使用系统 ---\");

printf(\"\\n\\n\");

printf(\" 请选择需要的服务:\\n\"); printf(\" 1:查询汽车\\n\"); printf(\" 2:办理租赁\\n\"); printf(\" 3:管理系统 \\n\"); printf(\" 4:归还登记\\n\"); printf(\" 0:退出系统 \\n\");

printf(\"请输入数字0━4:\\n\");

ch1=getch(); switch(ch1)

{

case '1':chacar();break; case '2':lendcar();;break; case '3':{ do

{printf(\"\\n\\n 1:增加汽车\\n\");

printf(\" 2:删除汽车 \\n\"); printf(\" 3:汽车统计 \\n\"); printf(\" 4:会员管理系统\\n\"); printf(\" 0:返回首页 \\n\"); printf(\"请输入0━4:\\n\"); ch2=getch(); switch(ch2)

{

第 18 页

case '1':addcar(); break; case '2':delcar();break;

case '3':carcount();getch();break; case '4':{ do

{

printf(\"\\n\\n 1: 申请新卡 \\n\"); printf(\" 2: 删除卡号 \\n\"); printf(\" 3: 卡号统计\\n\"); printf(\" 0: 返回\\n\"); printf(\"请输入0━3:\\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');

第 19 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top