交通处罚单管理系统课程设计.doc
1课程设计报告专业电气工程及其自动化年级学号姓名成绩批改时间说明1、本报告供学生课程设计时使用。2、学生应认真阅读课程设计要求。3、课程设计报告里面的内容要手工填写,以备存档使用(源程序可打印)。4、课程设计的总评成绩根据课程的性质,按一定比例计入该门课程成绩。5、课程设计报告中的各模块填写的内容是评分的主要依据,如果不够书写,可以自行添加附页。6、按规定的时间提交报告给教师评定成绩,由任课教师交到工学院存档。2课程设计目录课程名称高级语言程序设计序号课程设计名称起止页码29交通处罚单管理系统设计任务题目名称交通处罚单管理系统班级指导教师地点成绩学年开始日期结束日期3一、问题分析(围绕设计题目,进行课程设计开始前的准备过程,在此以问题分析的形式展开,从设计的总体性上对所承担的设计题目的思考,分析,此模块内容请手工填写)(1)需求分析交通处罚单信息用文件存储,提供文件的输输出操作要求可以输入,输出,删除,浏览交通处罚单信息,因而要提供输入,删除和显示操作要实现按车辆,驾驶员和开单交警查询,则要提供查找操作另外提供统计操作和键盘式选择菜单以实现功能选择。(2)总体设计整个管理系统被设计为信息输入模块,信息删除模块,信息浏览模块,信息查询模块,信息统计模块。交通处罚单管理系统输入查找删除统计退出4二、设计流程图(问题分析与算法设计,并画出流程图,此模块内容请打印)1、主函数主函数流程图显示一系列功能选项输入N,判断N是否是16根据N的值调用各功能模块函数2输入模块流程图输入用户要输入处罚单纪录的条数J能否打开文件退出I从0到J1依次输入处罚单信息,并保存到文件中J开始选择浏览还是返回主菜单3删除模块流程图5打开文件统计出文件中的处罚单总数M输入要删除的处罚单的处罚单号JJDANINUM把此I的值赋给作为比较的变量N关闭文件后再打开文件依次比较IN把不要求删除的罚单信息在文件中输入选择浏览还是返回主菜单4查询模块流程图5统计模块流程图打开文件输入用户要查询的信息X让用户选择输入查询的车牌号J输入查询的驾驶员姓名M输入查询的开单警察J输入错误DANICHEPAIJDANIIDJSTRCMPDANINAME,M0显示“找不到此罚单信息关闭文件选择浏览还是返回主菜单显示“找不到此罚单信息显示“找不到此罚单信息显示“找不到此罚单信息6输入需要统计的时间段和驾驶员姓名打开文件依次查找是否有符合统计要求的处罚单信息输出处罚单号输出“找不到统计罚单信息”统计找到的处罚单条数关闭文件选择浏览还是返回主菜单6一个任务结束时是选择浏览还是返回的函数的流程图开始选择WHATDOYOUWANTTODO调用浏览函数调用主界面函数1、主函数7主函数流程图显示一系列功能选项输入N,判断N是否是16根据N的值调用各功能模块函数主函数程序MENU/主界面/{INTN,W/变量N保存选择菜单数字,W判断输入的数字是否在功能菜单对应数字范围内/DO{PRINTF“\T\T\T欢迎来到交通处罚单管理系统\N\N“PRINTF“\T\TMENU\N\N“PRINTF“\T\T\T\T1信息输入\N“PRINTF“\T\T\T\T2信息删除\N“PRINTF“\T\T\T\T3信息浏览\N“PRINTF“\T\T\T\T4信息查询\N“PRINTF“\T\T\T\T5信息统计\N“PRINTF“\T\T\T\T6退出\N“PUTS“\N\N\T\T\N“PRINTF“\T\T请输入您的操作16\B\B“SCANF“D“,IFN6/对选择的数字作判断/{W1GETCHAR}ELSEW0}WHILEW1/选择功能/SWITCHN{8CASE1SHURUBREAKCASE2SHANCHUBREAKCASE3LIULANBREAKCASE4CHAXUNBREAKCASE5TONGJIBREAKCASE6EXIT0}RETURNN}VOIDMAIN/主函数/{MENU}2、各功能模块设计(1)、输入模块数据结构采用结构体的形式,把处罚单的处罚单号、车牌号码、驾驶员姓名、开单警察ID、处罚时间作为结构体成员,用结构体数组的形式存放若干条处罚单信息。STRUCTFANDAN{INTNUM/处罚单号码/INTCHEPAI/车牌号码/CHARNAME8/驾驶员名字/INTID/开单警察的信息ID/CHARTIME11/处罚时间为年月日排列/}DANN/DAN500中每个数组元素对应一个处罚单信息/注意DANN中的N为处罚单条数,本程序采用宏定义DEFINEN500。输入模块流程图9输入用户要输入处罚单纪录的条数J能否打开文件退出I从0到J1依次输入处罚单信息,并保存到文件中J开始选择浏览还是返回主菜单输入模块程序VOIDSHURU/输入模块/{INTI,JFILEFPIFFP“DATATXT“,“W“NULL{PRINTF“无法打开文件\N“EXIT0}PRINTF“\N你要输入多少条处罚单信息“SCANF“D“,FORI0IINCLUDEINCLUDEDEFINEN100STRUCTPLIST//处罚单{CHARVNO20//车牌号CHARDNAME20//驾驶员姓名CHARPNAME20//交警姓名CHARPNO20//交警编号CHARNO20//处罚单编号CHARDATE20//处罚日期}LISTN//处罚单数组VOID//输入模块VOIDDELE//删除模块VOIDBROWSE//浏览模块VOIDSEARCH//查询模块VOIDCOUNT//统计模块VOIDMENU//主菜单VOIDVNO_SEARCH//按车牌号查询VOIDDNA_SEARCH//按驾驶员姓名查询VOIDPNA_SEARCH//按开单交警姓名查询MAIN{20MENUGETCHAR}VOIDMENU{INTNINTRDO{SYSTEM“CLS“PRINTF“\N\T\T\T\T交通处罚单管理系统\N“PRINTF““PRINTF“菜单1信息录入2信息删除3信息浏览4信息查询5信息统计6退出系统\N“PRINTF““PRINTF“请从输入数字选择相应的功能“SCANF“D“,IFN6{R1GETCHAR}ELSER0}WHILER1SWITCHN{CASE1BREAKCASE2DELEBREAKCASE3BROWSEBREAKCASE4SEARCHBREAKCASE5COUNTBREAKCASE621EXIT0}}VOID{FILEFPINTNUMINTI,JIFFP“LISTTXT“,“R“NULL{IFFP“LISTTXT“,“W“NULL{PRINTF“文件打开或创建失败\N“PRINTF“\NPRESSENTERTORETURNMENU\N“GETCHARMENU}PRINTF“\N请输入处罚单数量“SCANF“D“,PRINTF“\N\N“FORJ0JN{PRINTF“\N结构体数组数的N太小,请先修改N的值\N“PRINTF“\NPRESSENTERTORETURNMENU\N“GETCHARGETCHARMENU}PRINTF“\N“FORJ0J4{R1GETCHAR}ELSER0}WHILER1SWITCH