汽车索赔管理系统程序ds.docx
- 文档编号:6193447
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:42
- 大小:691.57KB
汽车索赔管理系统程序ds.docx
《汽车索赔管理系统程序ds.docx》由会员分享,可在线阅读,更多相关《汽车索赔管理系统程序ds.docx(42页珍藏版)》请在冰豆网上搜索。
汽车索赔管理系统程序ds
HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGY
C语言程序设计
课程设计报告
课设题目:
汽车索赔管理系统
专业:
电子信息工程(汽车电子)
班级:
电信143
****************************************
成绩:
完成日期:
2015年7月5日到2015年7月10日
***************************************
一、设计题目与要求
汽车索赔管理程序
题目描述
已知在汽车销售后,服务站在对故障汽车维修后,可以向汽车生产厂家进行索赔,设计一个汽车索赔管理程序,以方便汽车生产厂家对汽车售后索赔进行管理,该程序完成如下功能:
(1)能从键盘输入索赔信息。
(2)指定索赔编号,显示索赔信息。
(3)指定底盘号,显示索赔历史。
(4)给定索赔编号,修改索赔信息。
(5)给定索赔编号,删除索赔信息。
题目要求:
(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。
(2)索赔信息包括:
索赔编号、服务站名称、底盘号、审核人、索赔金额、索赔日期。
(3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
输入要求:
(1)应用程序运行后在屏幕上显示一个菜单。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
程序根据用户输入的信息完成相应的处理,实现要求的功能。
(2)能对输入的数据进行简单的校验,例如,维修日期必须是一个合法的日期格式,索赔编号是唯一的(一个索赔编号对应一次索赔的索赔信息)
输出要求:
(1)应用程序运行后,要在屏幕上显示一个菜单。
(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。
(3)在程序完成处理后,要清楚地给出程序的处理结果。
例如,在给定索赔编号删除索赔信息时,如果该索赔不存在,要提示没能删除,如果删除成功要提示删除成功。
实现要求:
(1)在程序中使用链表存储索赔信息。
(2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。
提示:
(1)使用结构体表示索赔信息,一个结点保存一条索赔信息。
扩展功能:
(1)提供一些统计功能。
例如统计每个服务站索赔金额,根据审核人统计审核的索赔次数。
(2)索赔信息从文件读入。
(3)将索赔信息保存到文件中。
二、系统设计
2.1系统设计
2.2系统模块设计
1)主菜单界面:
构造函数voidmenu(),实现系统主菜单的显示。
2)索赔信息录入:
构造函数voidinput(),实现从文件录入汽车索赔信息的历史情况。
3)给定索赔编号,查询历史索赔信息:
构造voidfind(),将输入的索赔编号和全部索赔信息对照,输出与输入编号相匹配的索赔信息。
4)给定底盘号,查询历史索赔信息:
构造voidfinddomain(),将输入的底盘号和全部编号的底盘号信息对照,输出与输入底盘号相匹配的索赔信息。
5)修改指定索赔的信息:
构造voidchange(),找出任意选项的索赔信息,修改该对应选项的索赔信息。
6)删除指定编号的索赔信息:
构造voiddelete(),找出给定编号的索赔信息,删除该编号的信息。
7)添加新增的索赔信息:
构造voidaddclaim(),指定新的编号,添加索赔信息。
8)保存索赔信息:
构造voidwriteinfo(),将操作之后的索赔信息保存到文件里边。
2.3详细设计
1、宏定义
#defineLENsizeof(structclaim)
2、结构体定义
structclaim
{
charnum[20];
charname[50];
charAudit[30];
charmoney[20];
chardate[30];
chardomain[30];
structclaim*next;
};
3、全局变量及结构体指针的定义
intinfo_flag,f=0;
intflage=0;
structclaim*head=NULL,*p,*p1,*p2,*p3;
4、函数声明
voidwelcome();/*欢迎函数*/
voidinput();/*读取索赔信息*/
intmenue();/*菜单函数*/
voidfind();/*索赔编号查找索赔信息*/
voidfinddomain();/*按底盘号查找索赔信息*/
voiddelete();/*按索赔编号删除索赔信息*/
voidaddclaim();/*添加索赔信息*/
voidchange();/*修改索赔信息*/
voidwriteInfo();/*把链表内容写进文*/
5、主要模块的实现
系统以主函数intmain()为入口,首先调用voidwelcome()函数,显示系统欢迎界面。
然后显示主菜单界面,其次调用voidinput()函数,从文件读入索赔。
最后调用voidwriteinfo()函数,使索赔信息保存。
2.4主要模块流程图
(1)主菜单函数
(2)给定索赔编号,显示某位学生的作业完成情况
(3)给定底盘号,显示所有对应的索赔信息
(4)给定索赔编号,修改该对应的索赔信息
(5)给定索赔编号,删除对应的索赔信息
(6)保存索赔信息
三.测试结果
3.1欢迎界面
3.2主菜单界面
3.3录入学生的成绩
3.4给定索赔编号,显示索赔信息
3.5给定底盘号,显示所有对应的索赔信息
3.6给定索赔编号,删除索赔信息
3.7给定索赔编号,添加索赔信息
3.8给定索赔编号,修改索赔信息
3.9保存索赔信息
3.10题目要求
3.11各模块测试用例数据的确定
建立的文件为:
索赔信息表.txt;
数据为:
1001北京小王100020090210111
1002湖北小张200020101002112
1003云南小李300020111212113
1004浙江小明400020120211114
1005上海小周500020130630115
保存后的文件为:
1.txt
数据为:
1002湖北顾应洪200020101002112
1003云南小李300020111212113
1004浙江小明400020120211114
1005上海小周500020130630115
1006十堰顾应洪28002012-05-06116
四、课程设计总结
在本学期对c语言的粗略学习之后,我们进行的这次课程设计,无疑加深了对c语言的认识和应用。
要想从书本走向实践是一个很艰难地过程,所以刚开始的时候,我遇到了各种各样的阻碍,以至于差点儿打消了我做这次设计的念头。
一开始就遇到了怎样能正确创建一个链表的问题,在上课的时候就模糊不清,不知道所以然,开始翻课本,问同学,依然是朦朦胧胧,又玩命的上机操作才终于得到解决。
在过程中问我才认识到自己自己还有很多的知识没学好,基础知识没理清,而且很多东西还要去翻书,去网上搜索,而且遇到一些小错误运行不出来就会烦躁不安,逐渐克服这些问题后我发现对c语言越来越感兴趣了,以后我要克服这些,尽量保持一颗良好的心态,学好c语言。
首先我必须学好c语言的基础知识,然后能在电脑上熟练的运用,上网的时候多看一些优秀的代码,看看别人怎么写,再结合自己的不足之处进行改正。
总之,这次的课设是是我记忆里的一个新篇章,更是c语言编程上的一个里程碑。
接着又是各种类型的错误,很多是学艺不精的结果,一个一个解决,时而还有道查一下单词。
就这样实践是检验真理的标准,在屡败屡战之后,迎来了成功的花朵。
然后我抓破破脑袋的让我的程序更加合理和多功能。
我们已经学习了《C语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。
这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。
C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。
要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。
只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。
在我有解决不了的问题时,我会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。
为了增大信息的安全性,需要用文件来存储信息,由于我在上课时不注重对文件的运用,所以在这方面有较大的困难。
我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我的程序有了突破,成功地实现了用文件来保存并查看学索赔信息。
这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。
开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。
在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。
而且尽可能的将模块细分,最后在进行函数的调用。
我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。
由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。
在调试的过程中也遇到了困难,但经过我耐心的修改,终于功夫不负有心人,我成功了!
在这样一个过程中,我收获了许多在书本上根本学不到的东西。
了解到了自己的不足之处,受益匪浅。
五.程序源代码
#include
#include
#include
#include
#include
#include
/***********************************************
****************************************************************
*********/
#defineLENsizeof(structclaim)
/*********************************************结构体定义
****************************************************************
*******/
structclaim
{
charnum[20];
charname[50];
charAudit[30];
charmoney[20];
chardate[30];
chardomain[30];
structclaim*next;
};
/*****************************************全局变量及结构体指针的定义
*********************************************************/
intinfo_flag,f=0;
intflage=0;
structclaim*head=NULL,*p,*p1,*p2,*p3;
/*函数声明*/
voidwelcome();/*欢迎函数*/
voidinput();/*读取索赔信息*/
intmenue();/*菜单函数*/
voidfind();/*按索赔编号查找索赔信息*/
voidfinddomain();/*按底盘号查找索赔信息*/
voiddeclared();/*按索赔编号删除索赔信息*/
voidaddclaim();/*添加索赔信息*/
voidchange();/*修改索赔信息*/
voidwriteInfo();/*把链表内容写进文件*/
voidketi();/*题目*/
voidmiam();/*密码*/
/************************************************************/
/*函数名:
密码函数*/
/*功能描述:
本函数用于实现加密功能,目的是保护内部系统资料*/
/*入口参数:
无*/
/*出口参数:
无*/
/*返回值:
无*/
/************************************************************/
/*密码函数*/
voidmima()
{
intn;
charmima1[10];
charmima2[]={"123456"};
printf("\n\n\n\t\t\t密码有三次输入机会");
for(n=1;n<=3;n++)
{
printf("\n\n\n\t\t\t请输入密码(123456):
");
scanf("%s",mima1);
if(strcmp(mima1,mima2)!
=0)
{
printf("\n\t\t\t密码错误,请重新输入!
");
}
else
{
system("cls");
return;
}
}
printf("\n\t\t\t密码输入错误,按任意键退出");
exit(0);
}
/************************************************************/
/*函数名:
主函数*/
/*功能描述:
本函数用于实现调用函数的功能*/
/*入口参数:
无*/
/*出口参数:
无*/
/*返回值:
无*/
/************************************************************/
/*主函数*/
intmain()
{
mima();
welcome();
while
(1)
{
system("cls");
switch(menue())
{
case1:
system("cls");
if(info_flag==1)
{
printf("信息已建立\n");
getch();
break;
}
else
{
input();
break;
}
case2:
system("cls");find();break;
case3:
system("cls");finddomain();break;
case4:
system("cls");declared();break;
case5:
system("cls");addclaim();break;
case6:
system("cls");change();break;
case7:
system("cls");writeInfo();break;
case8:
system("cls");keti();break;
case0:
return0;
default:
{
fflush(stdin);
printf("\n选择错误,请正确输入你的选择(0~7),:
\n");
printf("\n任意键返回......\n");
fflush(stdin);
getch();
system("cls");
}
}
}
return0;
}
/************************************************************/
/*函数名:
课设题目*/
/*功能描述:
本函数用于实现显示课设题目的功能*/
/*入口参数:
无*/
/*出口参数:
无*/
/*返回值:
无*/
/************************************************************/
/*课设题目*/
voidketi()
{
printf("9.汽车索赔管理程序\n");
printf("题目描述\n");
printf("已知在汽车销售后,服务站在对故障汽车维修后,可以向汽车生产厂家进行索赔,设计一个汽车索赔管理程序,以方便汽车生产厂家对汽车售后索赔进行管理,该程序完成如下功能:
\n");
printf("
(1)能从键盘输入索赔信息。
\n");
printf("
(2)指定索赔编号,显示索赔信息。
\n");
printf("(3)指定底盘号,显示索赔历史。
\n");
printf("(4)给定索赔编号,修改索赔信息。
\n");
printf("(5)给定索赔编号,删除索赔信息。
\n");
printf("题目要求:
\n");
printf("
(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。
\n");
printf("
(2)索赔信息包括:
索赔编号、服务站名称、底盘号、审核人、索赔金额、索赔日期。
\n");
printf("(3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
\n");
printf("输入要求:
\n");
printf("
(1)应用程序运行后在屏幕上显示一个菜单。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
程序根据用户输入的信息完成相应的处理,实现要求的功能。
\n");
printf("
(2)能对输入的数据进行简单的校验,例如,维修日期必须是一个合法的日期格式,索赔编号是唯一的(一个索赔编号对应一次索赔的索赔信息)\n");
printf("输出要求:
\n");
printf("
(1)应用程序运行后,要在屏幕上显示一个菜单。
\n");
printf("
(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。
\n");
printf("(3)在程序完成处理后,要清楚地给出程序的处理结果。
例如,在给定索赔编号删除索赔信息时,如果该索赔不存在,要提示没能删除,如果删除成功要提示删除成功。
:
\n");
printf("实现要求:
\n");
printf("
(1)在程序中使用链表存储索赔信息。
\n");
printf("
(2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。
\n");
printf("扩展功能:
\n");
printf("
(1)提供一些统计功能。
例如统计每个服务站索赔金额,根据审核人统计审核的索赔次数。
\n");
printf("
(2)索赔信息从文件读入。
\n");
printf("(3)将索赔信息保存到文件中。
\n");
system("pause");
}
/************************************************************/
/*函数名:
欢迎函数*/
/*功能描述:
欢迎界面*/
/*入口参数:
无*/
/*出口参数:
无*/
/*返回值:
无*/
/************************************************************/
/*欢迎函数*/
voidwelcome()
{
system("color8a");
printf("\n\n\n\n\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf("\t\t☆☆\t\t\t\t\t\t☆☆\n");
printf("\t\t☆☆\t\t\t\t\t\t☆☆\n");
printf("\t\t☆☆欢迎使用汽车索赔管理系统!
☆☆\n");
printf("\t\t☆☆\t\t\t\t\t\t☆☆\n");
printf("\t\t☆☆\t\t\t\t\t\t☆☆\n");
printf("\t\t☆☆\t\t\t\t\t\t☆☆\n");
printf("\t\t☆☆\t\t\t\t\t\t☆☆\n");
printf("\t\t☆☆\t\t\t\t\t\t☆☆\n");
printf("\t\t☆☆制作人:
顾应洪指导教师:
胡宁亚☆☆\n");
printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf("\t\t☆☆☆☆☆☆请按任意键进入系统☆☆☆☆☆☆☆☆☆☆\n");
printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
fflush(stdin);
getch();
system("cls");
return;
}
/************************************************************/
/*函数名:
读取索赔信息*/
/*功能描述:
本函数用于实现读取索赔信息功能*/
/*入口参数:
无*/
/*出口参数:
无*/
/*返回值:
无*/
/************************************************************/
/*读取索赔信息*/
voidinput()
{
FILE*fp;
intn=0;
if((fp=fopen("c:
\\索赔信息表.txt","r"))==NULL)
{
printf("cannotopenthisfile:
\n");
exit(0);
}
head=p1=(structclaim*)malloc(LEN);
p1->next=NULL;
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s",p1->num,p1-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 索赔 管理 系统 程序 ds