汽车索赔管理系统程序ds.doc_第1页
汽车索赔管理系统程序ds.doc_第2页
汽车索赔管理系统程序ds.doc_第3页
汽车索赔管理系统程序ds.doc_第4页
汽车索赔管理系统程序ds.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言程序设计课程设计报告课设题目: 汽车索赔管理系统 专 业: 电子信息工程(汽车电子) 班 级: 电信143 姓 名: 顾应洪 成 绩: 完成日期: 2015年7月5日到2015年7月10日 指导教师: 胡宁亚 目 录C语言程序设计1课程设计报告1一、设计题目与要求3二、系统设计42.1系统设计42.2系统模块设计52.3详细设计62.4主要模块流程图7三测试结果113.1欢迎界面113.2主菜单界面113.3录入学生的成绩123.4给定索赔编号,显示索赔信息133.6给定索赔编号,删除索赔信息143.7给定索赔编号,添加索赔信息153.8给定索赔编号,修改索赔信息153.9保存索赔信息163.10题目要求173.11各模块测试用例数据的确定17四、课程设计总结18五程序源代码19一、设计题目与要求汽车索赔管理程序题目描述已知在汽车销售后,服务站在对故障汽车维修后,可以向汽车生产厂家进行索赔,设计一个汽车索赔管理程序,以方便汽车生产厂家对汽车售后索赔进行管理,该程序完成如下功能:(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 num20; char name50; char Audit30; char money20; char date30; char domain30; 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主要模块流程图打印欢迎界面打印主菜单接收用户选择是否合法是否为0调用对应序号函数退出系统是否(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 北京 小王 1000 20090210 1111002 湖北 小张 2000 20101002 1121003 云南 小李 3000 20111212 1131004 浙江 小明 4000 20120211 1141005 上海 小周 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 #include#include #include #include#include /*/#define LEN sizeof(struct claim ) /*结构体定义*/ struct claim char num20; char name50; char Audit30; char money20; char date30; char domain30; 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 mima110;char mima2=123456;printf(nnnttt密码有三次输入机会!);for(n=1;nnext =NULL; while(!feof(fp) fscanf(fp,%s%s%s%s%s%s, p1-num,p1-name,p1-Audit,p1-money,p1-date,p1-domain); p2=(struct claim *)malloc(LEN); p1-next =p2; p3=p1; p1=p2; p1-next =NULL; free(p2); p3-next=NULL;fclose(fp); info_flag=1; p1=head; printf(tt索赔信息如下:nnn); while(p1!=NULL) n=1; printf(tt索赔编号:%sn,p1-num); printf(tt服务站名称:%sn,p1-name);printf(tt审核人:%sn,p1-Audit);printf(tt索赔金额:%sn,p1-money);printf(tt索赔日期:%sn,p1-date);printf(tt底盘号:%sn,p1-domain);printf(nn);p1=p1-next; if(n=0) printf(nnnnttt没有索赔信息!); getch(); /*/*函数名:按索赔编号查找索赔信息*/*功能描述:本函数用于实现按索赔编号查找索赔信息功能*/*入口参数:无*/*出口参数:无*/*返回值:无*/*/*按索赔编号查找索赔信息*/void find() char num20; p1=head; if(p1=NULL) printf(数据库为空n); printf(任意键返回); system(cls); return; printf(请输入要查找的索赔编号); scanf(%s,num); while(p1!=NULL) if(strcmp(p1-num,num)=0) printf(tt索赔编号:%sn,p1-num);printf(tt服务站名称:%sn,p1-name);printf(tt审核人:%sn,p1-Audit);printf(tt索赔金额:%sn,p1-money);printf(tt索赔日期:%sn,p1-date);printf(tt底盘号:%sn,p1-domain);printf(nn);break; else p1=p1-next; if(p1=NULL) printf(nn找不到索赔信息!n); printf(n 任意键返回.n); getch(); system(cls); /*/ /*函数名:按底盘号查找索赔信息*/*功能描述:本函数用于实现按底盘号查找索赔信息功能功能*/*入口参数:无*/*出口参数:无*/*返回值:无*/*/ /*按底盘号查找索赔信息*/ void finddomain() char domain30; p1=head; if(p1=NULL) printf(nn数据库为空! n); printf(n 任意键返回.n); getch(); system(cls); return ; printf(nn 请输入底盘号:n);fflush(stdin);scanf(%s,domain);while(p1!=NULL) if(strcmp(p1-domain,domain)=0) /查找底盘号 printf(tt索赔编号:%sn,p1-num); printf(tt服务站名称:%sn,p1-name); printf(tt审核人:%sn,p1-Audit); printf(tt索赔金额:%sn,p1-money); printf(tt索赔日期:%sn,p1-date); printf(tt底盘号:%sn,p1-domain); printf(nn); f=1; /标志变量 p1=p1-next; if(f!=1) printf(nn没有%s底盘号信息!n,domain); printf(n 任意键返回.n); getch(); system(cls); /清屏 else printf(按任意键返回); getch(); system(cls); /*/*函数名:按索赔编号删除索赔信息*/*功能描述:本函数用于实现按索赔编号查找索赔信息功能*/*入口参数:无*/*出口参数:无*/*返回值:无*/*/*按索赔编号删除索赔信息*/void declared() char num20if(info_flag=0) printf(未建立,数据库为空n); printf(任意键返回);getch();return; else if(head=NULL) printf(n 索赔信息数据库为空,不能删除,按任意键将返回:n); getch(); system(cls); return; p1=head; printf(nntt请输入要删除的索赔编号:); scanf(%s,num); while(strcmp(num,p1-num )!=0&p1-next!=NULL) p2=p1; p1=p1-next ; if(strcmp(num,p1-num )=0) if(head-next=NULL) /只有一个节点的情况 free(head); head=NULL; else if(head=p1) /要删除的索赔编号在第一个节点中 head=p1-next; free(p1); Else /删除节点 p2-next=p1-next; free(p1); printf(n删除完毕;); else printf(tt找不到该索赔信息!nn); getch(); printf(tt剩余索赔信息为:nnn); p1=head; while(p1!=NULL) printf(tt索赔编号:%sn,p1-num);printf(tt服务站名称:%sn,p1-name);printf(tt审核人:%sn,p1-Audit);printf(tt索赔金额:%sn,p1-money);printf(tt索赔日期:%sn,p1-date);printf(tt底盘号:%sn,p1-domain);printf(nn); p1=p1-next; printf(按任意键返回:n); getch(); system(cls); info_flag=1; /*/*函数名:添加索赔信息*/*功能描述:本函数用于实现添加索赔信息功能*/*入口参数:无*/*出口参数:无*/*返回值:无*/*/ /*添加索赔信息*/void addclaim() long y,m,d;int n=0,i=0;char num20;if(info_flag=0) printf(未建立,索赔信息数据库为空n); printf(按任意键返回);getch();return; printf(请输入将要添加的索赔编号n);scanf(%s,num);p1=head; while(p1!=NULL) if(strcmp(num,p1-num)=0)printf(nnnnnnnttt);printf(你输入的索赔编号已经存在!);printf(nntttt信息如下nnnt);printf(tt索赔编号:%sn,p1-num);printf(tt服务站名称:%sn,p1-name);printf(tt审核人:%sn,p1-Audit);printf(tt索赔金额:%sn,p1-money);printf(tt索赔日期:%sn,p1-date);printf(tt底盘号:%sn,p1-domain);printf(nn); n=1;getch();break;p1=p1-next;if(n!=1)system(cls);printf(nnnnnnttt请重新输入将要添加的索赔编号n);fflush(stdin);p1=head;while(p1-next!=NULL) p1=p1-next;printf(*/nn);p2=(struct claim *)malloc(LEN); fflush(stdin);for(i=0;inum);if(i=1)printf(服务站名称:);scanf(%s, p2-name);if(i=2)printf(审核人:);scanf(%s, p2-Audit);if(i=3)printf(索赔金额:);scanf(%s, &p2-money);if(i=4)while(1) /判断索赔日期是否合法printf(索赔日期:);scanf(%s,p2-date);if(p2-date4=-&p2-date7=-&strlen(p2-date)=10)y=(p2-date0-48)*100

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论