




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
交通处罚单管理系统C语言程序设计课程设计材料学生姓名: 朱明杰 学 号:031410627 系 (院): 自动化学院 设计题目: 交通处罚单管理系统 完成日期: 2015年5月 l 课程设计目的3l 课程设计内容3l 总体设计3l 详细设计4l 运行结果8l 程序调试10l 编程体会11一、 课程设计目的1. 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2. 通过课程设计,进一步掌握C有并重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。3. 通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。4. 通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个中小型系统。5. 通过课程设计,加强了自己的程序分析能力。6. 通过课程设计,完成了交通处罚单管理系统,很多功能还待完善。二、 课程设计内容用C语言编写软件完成以下任务:1交通处罚单基本信息输入(数据包括处罚单号码,车牌号码,姓名,开单警察的信息ID,处罚时间等),信息保存在data.txt文件中,2交通处罚单基本信息浏览。将文件内所有的交通处罚单信息全部输出展现出来。3交通处罚单基本信息查询。可以查询特定的交通处罚单信息。4交通处罚单基本信息统计。可以查询某一个时间段的所有的交通处罚单信息。5 交通处罚单基本信息删除。删除不需要的交通处罚单信息。三、 总体设计本系统的功能模块如图1所示,主要有以下模块:(1) 交通处罚单基本信息输入:构造函数int input(),对产生新的交通处罚单的信息进行输入。(2) 交通处罚单基本信息输出:构造函数void display(),全部输出已被录入交通处罚单的所有信息。(3) 交通处罚单基本信息删除:构造函数int delete(),经确认后调用delete函数删除该姓名的记录。(4) 交通处罚单基本信息排序:构造函数void sort(),对文件中所有的交通处罚单进行排序。(5) 交通处罚单基本信息查找:构造函数int query(),通过输入书名,判断此交通处罚单是否存在,若存在, 则删除该交通处罚单所有信息,然后再把剩下的交通处罚单信息保存到文件。系统功能模块图 交通处罚单管理系统信息输入信息查找信息浏览信息删除信息统计图一四、详细设计结构体定义如下:#define N 500struct chufadanint num; /*处罚单号码*/int chepai; /*车牌号码*/char name10; /*驾驶员名字*/int id; /*开单警察的信息ID*/int year;int month;int day; /*处罚时间为年月日排列*/chufadanN; /*dan500中每个数组元素对应一个处罚单信息*/(一)信息输入函数:输入用户要输入处罚单纪录的条数。能否打开文件退出依次输入处罚单信息,并保存到文件中。j开始完成输入,关闭文件。图2 信息录入功能流程图(三)信息删除函数:打开文件输入要删除的处罚单的处罚单w号寻找文件中所有的处罚单w=chufadani.num 关闭文件后再打开文件 i!=c把不要求删除的罚单信息在文件中输入结束图3 信息删除功能流程图(三)信息查询函数:开始打开文件查询处罚单信息选择查询处罚单方法 按开单警察ID按驾驶员姓名 按车牌号输入结束图4 信息查询功能流程图(四)统计功能函数:开始输入驾驶员名字与时间段将文件每一个信息与输入条件对比 输出满足条件的罚单号,并每输出一个罚单号使统计变量加一。结束N图5 信息统计功能流程图(五)浏览功能函数:开始打开文件输出满足条件的罚单号,并每输出一个罚单号使统计变量加一。结束逐条输出交通处罚单信息。图6 信息浏览功能流程图五、运行结果 主菜单界面图7输入建立模块图8查询模块图9浏览模块图10统计模块图11删除模块图12六、程序调试自从把整体的c语言处罚单管理系统编成以后,就开始进行调试。调试的过程中不知道修改了多少次源代码,为了能让交通处罚单管理系统在输入任何代码的情况下都能正常使用,不会出错,反复的修改,看书,查资料,询问同学调试之后,终于运行成功。主要克服了以下问题:(1)怎么样把交通处罚单数据输入文件中。(2)通过主函数把其他的函数连接起来,形成一个完整的有序的程序。(3)难度最大的是统计模块,算法十分复杂。七、编程体会老师布置完程序设计任务的第二天,我就开始寻找题目准备入手,见到交通处罚单管理系统这个课题以后,我对此很感兴趣。于是,当天下午开始做准备工作,重新把c语言复习一遍,开始编程。起初是挺困难的,偌大的一个程序,我之前从未编过,无从下手,然后,我通过查资料,了解其大概模型,首先是把管理系统所含有的功能各自分成几个模块,建立一个主函数,把主函数和其他数个函数连接起来。我想好了做输入、查询、浏览、删除、统计这五个功能,先把主函数完成,另外设计一个主界面。一开始真的困难重重,虽然c语言复习过了,但是看书看懂了和真正的运用学到的知识写程序是完全不同的,不断的对照例题,不断的尝试与修改。当我把所有的功能完成以后,已经花了将近五天的时间,结果,编程程序检查我的源代码时候,有超过一百个错误。我顿时绝望了。我自己做的程序,我很想把它做好,我一个一个的检查,发现原来是我的结构体没有设置好,导致系统无法识别后面的源代码。对照书本上结构体例题把结构体给完成,剩下的便是一些小毛病。陆陆续续的修改了几天,最后一刻,发现程序能够运行了,我心情顿时兴奋澎湃了!源代码#include#include#include#include#define NUM 150typedef structchar driver10; int car; char police10; int num; int year; int month; int date; Traffic;int menu_select();int Input(Traffic traflist,int n);void Display(Traffic traflist,int n);int Delete(Traffic traflist,int n,char *name);int Delete_a_record(Traffic traflist,int n);void Sort_by_Name(Traffic traflist,int n);int Insert(Traffic traflist,int n,Traffic *p);int Insert_a_record(Traffic traflist,int n);int Query(Traffic traflist,int n,char *name);void Query_a_record(Traffic traflist,int n);int AddfromText(Traffic traflist,int n,char *filename);void WritetoText(Traffic traflist,int n,char *filename);void main() int n=0;char c,k; Traffic traflistNUM; for(;) switch(menu_select() case 1: n=Input(traflist,n); system(pause); break; case 2: Display(traflist,n); system(pause); break; case 3: n=Delete_a_record(traflist,n); system(pause); break; case 4: Sort_by_Name(traflist,n); system(pause); break; case 5: n=Insert_a_record(traflist,n); system(pause); break; case 6: Query_a_record(traflist,n); system(pause); break; case 7: system(cls); n=AddfromText(traflist,n,&c); system(pause); break; case 8: system(cls); WritetoText(traflist,n,&k); system(pause); break; case 0: system(cls); printf(离开!n); system(pause); exit(0); int menu_select()char c;dosystem(cls);printf(1:Input recordsn);printf(2:Display all recordsn);printf(3:Delete a recordn);printf(4:Sortn);printf(5:Insert a recordn);printf(6:Queryn); printf(7:Add records from a Text Filen); printf(8:Write to a Text Filen); printf(0:Quit!n);printf(Input 1-8,0:);c=getchar();while(c8);return c-0;int Input(Traffic traflist,int n) int i,j; for(i=0;i+) printf(You are going to input a record,we have %d records now!n,n); printf(Input drivers name:); scanf(%s,&traflisti.driver); printf(Input car number:); scanf(%d,&traflisti.car); printf(Input polices name:); scanf(%s,&traflisti.police); printf(Input seriels number:); scanf(%d,&traflisti.num); printf(Input year:); scanf(%d,&traflisti.year); printf(Input month:); scanf(%d,&traflisti.month); printf(Input date:); scanf(%d,&traflisti.date);printf(Go on?nTo go on please press 1,press any other key to exit.n); scanf(%d,&j);if(j!=1)break;n+=1; return(n+1);void Display(Traffic traflist,int n) int i,num=0;getchar();printf(司机姓名 车牌号 交警姓名 罚单编号 罚单的年 罚单的月 罚单的日n);for(i=0;in;i+) num+; printf(%8s%8d%8s%8d%8d%8d%8dn,traflisti.driver,traflisti.car,traflisti.police,traflisti.num,traflisti.year,traflisti.month,traflisti.date); if(num%10=0) system(pause); system(cls); int Delete(Traffic traflist,int n,char *name) int i,j;for(i=0;in;i+)if(strcmp(traflisti.driver,name)=0)printf(确定要删除吗?1-删除,否则放弃.);scanf(%d,&j);if(j=1) strcpy(traflisti.driver,traflisti+1.driver); strcpy(traflisti.police,traflisti+1.police); traflisti.car=traflisti+1.car; traflisti.car=traflisti+1.num; traflisti.year=traflisti+1.year; traflisti.month=traflisti+1.month; traflisti.date=traflisti+1.date;n-=1;printf(删除成功!);break;printf(放弃操作!); return n;int Delete_a_record(Traffic traflist,int n) char name20;printf(请输入要删除的名字:n);scanf(%s,name);n=Delete(traflist,n,name); return n;void Sort_by_Name(Traffic traflist,int n) int i,j,t; Traffic sp; for(i=0;in;i+) t=i; for(j=i+1;j0) t=j; if(t!=i) strcpy(sp.driver,traflistt.driver); strcpy(sp.police,traflistt.police); sp.car=traflistt.car; sp.num=traflistt.num; sp.year=traflistt.year; sp.month=traflistt.month; sp.date=traflistt.date; strcpy(traflistt.driver,traflisti.driver); strcpy(traflistt.police,traflisti.police); traflistt.car=traflisti.car; traflistt.num=traflisti.num; traflistt.year=traflisti.year; traflistt.month=traflisti.month; traflistt.date=traflisti.date; strcpy(traflisti.driver,sp.driver); strcpy(traflisti.police,sp.police); traflisti.car=sp.car; traflisti.num=sp.num; traflisti.year=sp.year; traflisti.month=sp.month; traflisti.date=sp.date; int Insert(Traffic trafList,int n,Traffic *s2)trafListn=*s2;n+=1;Sort_by_Name(trafList,n); return n;int Insert_a_record(Traffic trafList,int n) Traffic s2=0,0,0,0,0,0,0; printf(请输入你想要插入的司机姓名:); scanf(%s,s2.driver);printf(请输入车号 :);scanf(%d,&s2.car);printf(请输入开罚单的交警姓名 :);scanf(%s,s2.police);printf(请输入罚单编号 :);scanf(%d,&s2.num);printf(请输入开罚单的年 :);scanf(%d,&s2.year);printf(请输入开罚单的月 :);scanf(%d,&s2.month);printf(请输入开罚单的日 :);scanf(%d,&s2.date);n=Insert(trafList,n,&s2); printf(success!n);return n;int Query(Traffic traflist,int n,char *name) int i;for(i=0;in;i+)if(strcmp(traflisti.driver,name)=0)return i;return (-1);void Query_a_record(Traffic traflist,int n) int i;char name20;printf(请输入带查找人得姓名:n);scanf(%s,name);i=Query(traflist,n,name);if(i=-1)printf(没有找到!);elseprintf(查找成功!该司机的罚单信息如下:n);printf(司机姓名 车牌号 交警姓名 罚单编号 罚单的年 罚单的月 罚单的日n); printf(%st %dt ,traflisti.driver,traflisti.car);printf(%st %dt ,traflisti.police,traflisti.num);printf(%dt %dt %dn,traflisti.year,traflisti.month,traflisti.date);int AddfromText(Traffic traflist,int n,char *filename)FILE *fp;Traffic spNUM;int i,j;printf(请输入文件名!);scanf(%s,filename);if(fp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土建工程监控系统安装方案
- 园区污水处理厂升级改造和扩建工程方案
- 学校校园的安全教育
- 市政管网工程质量监督管理方案
- 校园里的安全教育
- 农村供水管网漏损控制与修复方案
- 政治必修二一二课考试题及答案
- 郑州铁路考试题库及答案
- 正畸护士出科考试题及答案
- 女方不忠离婚协议书:财产分割与婚姻关系终止协议
- 自动化模具制造行业可行性分析报告
- 房颤心电图课件
- 工地拌和站试验室培训课件建筑土木工程
- 2024年卫生院“健康促进医院”创建工作总结样本(3篇)
- 副总经理招聘面试题与参考回答(某大型集团公司)2025年
- 餐饮4D管理培训资料
- 国庆节磨豆腐活动方案
- 七年级上册生命、生态、安全教案全册
- 峥嵘岁月 课件-2024-2025学年高中音乐人音版(2019) 必修 音乐鉴赏
- 《用户体验设计导论》
- 税务法律服务行业分析报告及未来三年行业发展报告
评论
0/150
提交评论