当前位置:文档之家› 汽车索赔管理系统程序

汽车索赔管理系统程序

HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言程序设计课程设计报告课设题目:汽车索赔管理系统专业:电子信息工程(汽车电子)班级: 电信143*名:***成绩:完成日期: 2015年7月5日到2015年7月10日****: ***目录C语言程序设计 0课程设计报告 0一、设计题目与要求 (2)二、系统设计 (3)2.1系统设计 (3)2.2系统模块设计 (3)2.3详细设计 (4)2.4主要模块流程图 (6)三.测试结果 (9)3.1欢迎界面 (9)3.2主菜单界面 (9)3.3录入学生的成绩 (10)3.4给定索赔编号,显示索赔信息 (11)3.6给定索赔编号,删除索赔信息 (12)3.7给定索赔编号,添加索赔信息 (13)3.8给定索赔编号,修改索赔信息 (13)3.9保存索赔信息 (14)3.10题目要求 (15)3.11各模块测试用例数据的确定 (15)四、课程设计总结 (16)五.程序源代码 (18)一、设计题目与要求汽车索赔管理程序题目描述已知在汽车销售后,服务站在对故障汽车维修后,可以向汽车生产厂家进行索赔,设计一个汽车索赔管理程序,以方便汽车生产厂家对汽车售后索赔进行管理,该程序完成如下功能:(1)能从键盘输入索赔信息。

(2)指定索赔编号,显示索赔信息。

(3)指定底盘号,显示索赔历史。

(4)给定索赔编号,修改索赔信息。

(5)给定索赔编号,删除索赔信息。

题目要求:(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。

(2)索赔信息包括:索赔编号、服务站名称、底盘号、审核人、索赔金额、索赔日期。

(3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。

输入要求:(1)应用程序运行后在屏幕上显示一个菜单。

用户可以根据需求,选定相应的操作项目。

进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。

程序根据用户输入的信息完成相应的处理,实现要求的功能。

(2)能对输入的数据进行简单的校验,例如,维修日期必须是一个合法的日期格式,索赔编号是唯一的(一个索赔编号对应一次索赔的索赔信息)输出要求:(1)应用程序运行后,要在屏幕上显示一个菜单。

(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。

(3)在程序完成处理后,要清楚地给出程序的处理结果。

例如,在给定索赔编号删除索赔信息时,如果该索赔不存在,要提示没能删除,如果删除成功要提示删除成功。

实现要求:(1)在程序中使用链表存储索赔信息。

(2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。

提示:(1)使用结构体表示索赔信息,一个结点保存一条索赔信息。

扩展功能:(1)提供一些统计功能。

例如统计每个服务站索赔金额,根据审核人统计审核的索赔次数。

(2)索赔信息从文件读入。

(3)将索赔信息保存到文件中。

二、系统设计2.1系统设计2.2系统模块设计1)主菜单界面:构造函数void menu (),实现系统主菜单的显示。

2) 索赔信息录入:构造函数void input(),实现从文件录入汽车索赔信息的历史情况。

3)给定索赔编号,查询历史索赔信息:构造void find(),将输入的索赔编号和全部索赔信息对照,输出与输入编号相匹配的索赔信息。

4)给定底盘号,查询历史索赔信息:构造void finddomain(),将输入的底盘号和全部编号的底盘号信息对照,输出与输入底盘号相匹配的索赔信息。

5)修改指定索赔的信息:构造void change(),找出任意选项的索赔信息,修改该对应选项的索赔信息。

6)删除指定编号的索赔信息:构造void delete (),找出给定编号的索赔信息,删除该编号的信息。

7)添加新增的索赔信息:构造void addclaim(),指定新的编号,添加索赔信息。

8)保存索赔信息:构造void writeinfo(),将操作之后的索赔信息保存到文件里边。

2.3详细设计1、宏定义#define LEN sizeof(struct claim )2、结构体定义struct claim{char num[20];char name[50];char Audit[30];char money[20];char date[30];char domain[30];struct claim *next;};3、全局变量及结构体指针的定义int info_flag,f=0;int flage=0;struct claim *head=NULL,*p,*p1,*p2,*p3;4、函数声明void welcome(); /*欢迎函数*/void input(); /*读取索赔信息*/int menue() ; /*菜单函数*/void find() ; /*索赔编号查找索赔信息*/ void finddomain(); /*按底盘号查找索赔信息*/ void delete() ; /*按索赔编号删除索赔信息*/ void addclaim() ; /*添加索赔信息*/void change(); /*修改索赔信息*/void writeInfo(); /*把链表内容写进文*/5、主要模块的实现系统以主函数int main()为入口,首先调用void welcome()函数,显示系统欢迎界面。

然后显示主菜单界面,其次调用void input()函数,从文件读入索赔。

最后调用void writeinfo()函数,使索赔信息保存。

2.4主要模块流程图(1(2)给定索赔编号,显示某位学生的作业完成情况(3)给定底盘号,显示所有对应的索赔信息(4)给定索赔编号,修改该对应的索赔信息(5)给定索赔编号,删除对应的索赔信息(6三.测试结果3.1欢迎界面3.2主菜单界面3.3录入学生的成绩3.4给定索赔编号,显示索赔信息3 .5给定底盘号,显示所有对应的索赔信息3.6给定索赔编号,删除索赔信息3.9保存索赔信息3.10题目要求3.11各模块测试用例数据的确定建立的文件为:索赔信息表.txt;数据为:1001 北京小王 1000 20090210 111 1002 湖北小张 2000 20101002 112 1003 云南小李 3000 20111212 113 1004 浙江小明 4000 20120211 114 1005 上海小周 5000 20130630 115 保存后的文件为:1.txt数据为:1002 湖北顾应洪 2000 20101002 1121003 云南小李 3000 20111212 1131004 浙江小明 4000 20120211 1141005 上海小周 5000 20130630 1151006 十堰顾应洪 2800 2012-05-06 116四、课程设计总结在本学期对c语言的粗略学习之后,我们进行的这次课程设计,无疑加深了对c语言的认识和应用。

要想从书本走向实践是一个很艰难地过程,所以刚开始的时候,我遇到了各种各样的阻碍,以至于差点儿打消了我做这次设计的念头。

一开始就遇到了怎样能正确创建一个链表的问题,在上课的时候就模糊不清,不知道所以然,开始翻课本,问同学,依然是朦朦胧胧,又玩命的上机操作才终于得到解决。

在过程中问我才认识到自己自己还有很多的知识没学好,基础知识没理清,而且很多东西还要去翻书,去网上搜索,而且遇到一些小错误运行不出来就会烦躁不安,逐渐克服这些问题后我发现对c语言越来越感兴趣了,以后我要克服这些,尽量保持一颗良好的心态,学好c语言。

首先我必须学好c语言的基础知识,然后能在电脑上熟练的运用,上网的时候多看一些优秀的代码,看看别人怎么写,再结合自己的不足之处进行改正。

总之,这次的课设是是我记忆里的一个新篇章,更是c语言编程上的一个里程碑。

接着又是各种类型的错误,很多是学艺不精的结果,一个一个解决,时而还有道查一下单词。

就这样实践是检验真理的标准,在屡败屡战之后,迎来了成功的花朵。

然后我抓破破脑袋的让我的程序更加合理和多功能。

我们已经学习了《C 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。

这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。

C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。

要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。

只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

在我有解决不了的问题时,我会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。

为了增大信息的安全性,需要用文件来存储信息,由于我在上课时不注重对文件的运用,所以在这方面有较大的困难。

我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我的程序有了突破,成功地实现了用文件来保存并查看学索赔信息。

这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。

开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。

在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。

而且尽可能的将模块细分,最后在进行函数的调用。

我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。

由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。

在调试的过程中也遇到了困难,但经过我耐心的修改,终于功夫不负有心人,我成功了!在这样一个过程中,我收获了许多在书本上根本学不到的东西。

了解到了自己的不足之处,受益匪浅。

五.程序源代码#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<process.h>#include<string.h>#include<conio.h>/*************************************************************************************************************** *********/#define LEN sizeof(struct claim )/*********************************************结构体定义**************************************************************** *******/struct claim{char num[20];char name[50];char Audit[30];char money[20];char date[30];char domain[30];struct claim *next;};/*****************************************全局变量及结构体指针的定义*********************************************************/int info_flag,f=0;int flage=0;struct claim *head=NULL,*p,*p1,*p2,*p3;/*函数声明*/void welcome(); /*欢迎函数*/void input(); /*读取索赔信息*/int menue() ; /*菜单函数*/void find() ; /*按索赔编号查找索赔信息*/void finddomain(); /*按底盘号查找索赔信息*/void declared() ; /*按索赔编号删除索赔信息*/ void addclaim() ; /*添加索赔信息*/void change(); /*修改索赔信息*/void writeInfo(); /*把链表内容写进文件*/void keti(); /*题目*/void miam(); /*密码*//************************************************************/ /*函数名:密码函数*//*功能描述:本函数用于实现加密功能,目的是保护内部系统资料*/ /*入口参数:无*//*出口参数:无*//*返回值:无*//************************************************************/ /*密码函数*/void mima (){int n;char mima1[10];char mima2[]={"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);}/************************************************************/ /*函数名:主函数*//*功能描述:本函数用于实现调用函数的功能*//*入口参数:无*//*出口参数:无*//*返回值:无*//************************************************************//*主函数*/int main(){mima();welcome();while(1){system("cls");switch(menue()){case 1: system("cls");if(info_flag==1){printf("信息已建立\n");getch();break;}else{input();break;}case 2: system("cls"); find();break;case 3: system("cls"); finddomain();break;case 4: system("cls"); declared();break;case 5: system("cls"); addclaim();break;case 6: system("cls"); change();break;case 7: system("cls"); writeInfo();break;case 8: system("cls"); keti();break;case 0: return 0;default :{fflush(stdin);printf("\n 选择错误,请正确输入你的选择(0~7),:\n");printf("\n 任意键返回......\n");fflush(stdin);getch();system("cls");}}}return 0;}/************************************************************/ /*函数名:课设题目*//*功能描述:本函数用于实现显示课设题目的功能*//*入口参数:无*//*出口参数:无*//*返回值:无*//************************************************************//*课设题目*/void keti(){printf("9.汽车索赔管理程序\n");printf("题目描述\n");printf("已知在汽车销售后,服务站在对故障汽车维修后,可以向汽车生产厂家进行索赔,设计一个汽车索赔管理程序,以方便汽车生产厂家对汽车售后索赔进行管理,该程序完成如下功能:\n");printf("(1)能从键盘输入索赔信息。

相关主题