ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:26KB ,
资源ID:4504832      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4504832.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计报告交通处罚单管理程序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计报告交通处罚单管理程序.docx

1、C语言课程设计报告交通处罚单管理程序C语言课程设计报告题目:交通处罚单管理程序学号 021410219姓名 李林 指导教师 张定会 完成日期 2015.5.8 一、功能介绍用结构体数组结构实现简单的交通处罚单管理功能,要求具有以下功能:(1)可以输入,删除,显示,修改某个驾驶员的交通处罚信息;(2)可以按驾驶员查询交通处罚单。程序执行过程为:循环显示主菜单,用户在Give you choice:处输入选项,即按照功能列表输入08中的任意一个数字。按回车后,执行相应功能。各项菜单功能:(1)Input Record(输入若干条记录)从键盘上一次输入一张交通处罚单的信息(一条记录),依次存放到结构

2、体数组里。插入一条记录后,显示提示信息:确认是否输入下一条记录,如确认,继续输入,否则,退出输入功能。(2)Display All Record(显示所有记录)按顺序显示数组中所有记录,每屏显示10条记录。每显示10条,按键继续显示下一屏。(3)Delete a record(按姓名查找,删除一条记录)输入待删除记录的姓名,显示提示信息,让用户再次确认是否要删除。确认后,将该姓名的记录删除。(4)Sort(排序)以姓名为序升序排列数组。(5)Insert a Record(插入一条记录)在以姓名为序排列数组中插入一条记录,插入后,数组仍然有序。输出插入成功信息。(6) Query(查找并显示一

3、个记录)输入驾驶员姓名,查找包含该驾驶员名字的记录,并显示该驾驶员的所有罚单信息。(7)Add Records from a Text file (从正文文件添加数据到结构体数组中)用户可提前建立一个正文文件data.txt,存放多个带加入的记录。提示输入正文的文件名,然后从该文件中一次性加入多条处罚单记录。文件data.txt格式如下:2 /表示带添加的记录数/WangXiao 95 DingFei 000001 2013 1 23 LiuLin 87 CaiMing 000002 2013 1 24(8)Write to a Text file将数组中的全部记录写入文件records.tx

4、t,要求文件格式和data.txt相同。(0)Quit(退出交通处罚单管理程序)二、主要问题及解决方法在写程序中遇到的问题是:开始时无法正确完成“确认后再继续”的问题再后来写附加程序对数组自动扩充有些疑惑。面对遇到的问题查阅资料和书籍,一步步的调试,解决了很多问题。对不熟悉的函数不断摸索,试用直到熟练运用,有些语句想不出来就借助流程图去构造。对程序的优化,熟练运用语句,能力的提高让我解决了不少困难心得体会:完成之后程序运行时会出现数组输出不正确的现象,不得不对每个函数进行单步调试,解决了很多问题之后,发现编程有时候会犯一些很低级的错误,要认真检查,不遗漏一处语句。有时绞尽脑汁想出一堆语句,其实

5、一两句就能完成。程序优化真的很重要,仍需不断探索前行。三、算法实现Input RecordDisplay all recordDelete arecordDelete a recordSortSortInsert arecordInsert a recordQueryQuery a recordInsert arecordAddfromtextWriteto TextQuit四、源程序及注释#include#include#include#includetypedef struct /定义一个结构体类型struct Traffic/char driver10; /司机姓名/int car; /

6、驾驶的车牌号/char police10; /开罚单的交警姓名/int num; /罚单编号/int year; /开罚单的年/int month; /开罚单的月/int date; /开罚单的日/Traffic;/对所有调用函数进行声明/int menu_select(); /菜单 /int Input(Traffic trafList,int n); /函数1/void Display(Traffic trafList,int n); /函数2/int Delete(Traffic trafList,int n,char *name); /函数3/int Delete_a_record(T

7、raffic trafList,int n);void sort_by_name(Traffic trafList,int n); /函数4/ int Insert(Traffic trafList,int n,Traffic*s); /函数5/int Insert_a_record(Traffic trafList,int n);int Query(Traffic trafList,int n,Traffic*name); /函数6/void Query_a_record(Traffic trafList,int n);int AddfromText(Traffic trafList,int

8、 n,char*filename); /函数7/void WritetoText(Traffic trafList,int n,char*filename);/函数8/void main()static int n=0; /定义一静态整型变量n/Traffic trafList1000;char filename120,filename2=records.txt;for(;)switch(menu_select() /调用menu select函数输出菜单/ case 1: /输入1调用Input Record函数/system(cls);printf(Input Recordn); n=In

9、put(trafList,n);system(pause);break;case 2: /输入2调用Display all record函数/system(cls);printf(Display all recordn); Display(trafList,n);system(pause);break;case 3: /输入3调用Delete a record函数/system(cls);printf(Delete a recordn);n=Delete_a_record(trafList,n); system(pause);break;case 4: /输入4调用Sort函数/ system

10、(cls);printf(Sortn);sort_by_name(trafList,n); system(pause);break;case 5: /输入5调用Insert a record函数/system(cls);printf(Insert a recordn);n=Insert_a_record(trafList,n); system(pause);break;case 6: /输入6调用Query函数/system(cls);printf(Queryn);Query_a_record(trafList,n); system(pause);break;case 7: /输入7调用Add

11、 records from a Text file函数/system(cls);printf(Add records from a Text filen); printf(请输入正文文件的文件名n); /此处输入文件名进行整批输入/scanf(%s,filename1);n=AddfromText(trafList,n,filename1);system(pause);break; case 8: /输入8调用Write to a Text File函数/ system(cls);printf(Write to a Text Filen);WritetoText(trafList,n,file

12、name2); system(pause); break; case 0: /输入0调用Quit函数/printf(Quit!n);system(pause); exit(0);int menu_select()char c;dosystem(cls);printf(1.Input Recordn);printf(2.Display all recordn);printf(3.Delete a recordn);printf(4.Sortn);printf(5.Insert a recordn);printf(6.Queryn);printf(7.Add records from a Text

13、 filen); printf(8.Write to a Text filen);printf(0.Quit!n);printf(Give your choice(0-8):);c=getchar(); /菜单栏选择命令/while(c8);return(c-0);int Input(Traffic trafList,int n)char k,i;scanf(%s%d%s%d%d%d%d,trafListn.driver,&trafListn.car,trafListn.police,&trafListn.num,&trafListn.year,&trafListn.month,&trafLi

14、stn.date);printf(确认是否输入下一条记录Y or Nn);scanf(%c,&i); /两次scanf消除最上面scanf输入影响/scanf(%c,&k);n+;if(k=y|k=Y)printf(输入:n);n=Input(trafList,n); /从键盘输入数据存到数组traflist中/elsereturn(n);return n;void Display(Traffic trafList,int n)int i;char k;for(i=0;in;i+)if(i+1)%10=0)printf(%st%dt%st%dt%dt%dt%dn,trafListi.drive

15、r,trafListi.car,trafListi.police,trafListi.num,trafListi.year,trafListi.month,trafListi.date);system(pause);system(cls); /每显示10条数据,换下一屏/printf(Display all recordn);elseprintf(%st%dt%st%dt%dt%dt%dn,trafListi.driver,trafListi.car,trafListi.police,trafListi.num,trafListi.year,trafListi.month,trafListi.

16、date); /将数组数据输出到显示器/int Delete(Traffic trafList,int n,char *name)int i,j;for(i=0;in;i+)if(!strcmp(name,trafListi.driver) /删除姓名为name的记录/for(j=i;jn-1;j+)trafListj=trafListj+1;n-=1;return(n);int Delete_a_record(Traffic trafList,int n)char name20;int c;printf(请输入待删除者姓名n);scanf(%s,name);printf(请再次确认是否删除,

17、确认请按1n); scanf(%d,&c); /确认后删除,返回记录数/if(c=1)n=Delete(trafList,n,name);printf(删除成功n);return(n);void sort_by_name(Traffic trafList,int n)int i,j,p;Traffic t;for(i=0;in-1;i+) /选择法排序,按姓名升序排序/ p=i;for(j=i+1;jn;j+)if(strcmp(trafListj.driver,trafListp.driver)0)p=j;if(p!=i)t=trafListp;trafListp=trafListi;tra

18、fListi=t;int Insert(Traffic trafList,int n,Traffic*s)trafListn=*s;n+=1;sort_by_name(trafList,n); /插入这组数据,并排序/return(n);int Insert_a_record(Traffic trafList,int n)Traffic s;printf(请输入信息n); /输入数据/scanf(%s%d%s%d%d%d%d,s.driver,&s.car,s.police,&s.num,&s.year,&s.month,&s.date);n=Insert(trafList,n,&s);ret

19、urn(n);int Query(Traffic trafList,int n,char*name)int i,j;for(i=0;in;i+)if(!strcmp(name,trafListi.driver) return(i); / 查找姓名为name的记录/if(i=n)return(-1);void Query_a_record(Traffic trafList,int n)char name20;int k;printf(请输入待查找人的姓名n);scanf(%s,name);k=Query(trafList,n,name); /输出查找后信息/if(k=-1)printf(无此罚单

20、n);if(k!=-1)printf(查找成功,该司机处罚单如下:n);printf(%st%dt%st%dt%dt%dt%dn,trafListk.driver,trafListk.car,trafListk.police,trafListk.num,trafListk.year,trafListk.month,trafListk.date);int AddfromText(Traffic trafList,int n,char*filename)file*fp1;int i,k;Traffic s;if(fp1=fopen(filename,r)=NULL)printf(Can not o

21、pen %s n,filename); return(n); /判断正文文件是否存在/fscanf(fp1,%d,&k);for(i=1;i=k;i+)fscanf(fp1,%s%d%s%d%d%d%d,s.driver,&s.car,s.police,&s.num,&s.year,&s.month,&s.date);n=Insert(trafList,n,&s);/将文件里的信息存入数组trafList/fclose(fp1);return(n);void WritetoText(Traffic trafList,int n,char*filename)int i;file *fp;if(f

22、p=fopen(filename,w)=NULL)printf(can not open records.txt!n);exit(1);fprintf(fp,driver car police num year month daten);fprintf(fp,-n);for(i=0;i= ArrSize)ArrSize += 10;trafDynList= (Traffic*)realloc(trafDynList, ArrSize * sizeof(Traffic);scanf(%s%d%s%d%d%d%d,trafDynList*n.driver,&trafDynList*n.car,trafDynList*n.police,&trafDynList*n.num,&t

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1