单片机按键次数计数器_第1页
单片机按键次数计数器_第2页
单片机按键次数计数器_第3页
单片机按键次数计数器_第4页
单片机按键次数计数器_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、成 绩 评 定 表学生姓名班级学号专 业课程设计题目1、C语言图书管理系统2、单片机按键次数计数器评语组长签字:成绩日期 2014年 7月15日课程设计任务书学 院专 业学生姓名班级学号 课程设计题目1、C语言图书管理系统 2、单片机按键次数计数器实践教学要求与任务:1、 学习和掌握C+软件使用方法。2、 用Keil与Proteus联调3、 4、PCB板图设计。工作计划与进度安排: 第一周周一:布置课设任务,收集资料; 周二: 安装设计软件,熟悉软件操作方法;周三: 模拟电路设计,画电路原理图;周四、五:模拟电路仿真,调试。第二周周一:学习PCB软件操作方法; 周二、三:画电路图; 周四:电路

2、PCB设计,画电路板图; 周五:验收,交课设报告书。指导教师: 2014年 6月6日专业负责人:2014年6月7日学院教学副院长:2014年6月7日目录一、课程设计的目的11、C语言课程设计的目的12、单片机课程设计的目的1二、C语言课程设计-图书管理系统11、需求分析12、算法设计:2a设计思想:2b设计表示:2c实现注释:3d结构体系设计:3e设计想法与程序的不足:43、用户手册:44、调试与测试:55、源程序代码86、心得体会157、参考文献:16二、单片机课程设计-按键次数计数器171、设计内容:172、电路图:174调试结果:215、心得体会226、参考文献2223一、课程设计的目的

3、1、C语言课程设计的目的1)复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握; 2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力; 3)培养学生在项目开发中团队合作精神、创新意识及能力。2、单片机课程设计的目的以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个

4、元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。二、C语言课程设计-图书管理系统1、需求分析为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作

5、。实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、出版社、出版日期、价格、在库状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作。整个程序实现链表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。2、算法设计:a设计思想:整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型

6、、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面简单,易操作。 b设计表示:(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。主要实现了图书的录入、存储、查询、添加、删除、修改等功能。(2)、Cbook();这是一个指针函数,它主要实现了链

7、表的创建,并且在创建过程中从文件读取信息到链表中,以用于后面其他函数的操作。它返回的时一个单向链表的头。其他函数调用时只需调用它返回的头即可。(3)、mainmenu();、menu1();、glmenu();、cxmenu();、jhmenu();这五个函数时整个图书管理系统的全部菜单函数,mainmenu();为系统主界面,进入时可选择进入程序和退出程序。menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。glmenu();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。cxmenu();为查询系统的菜单,在此可以

8、选择按书名、编号、作者等方式进行查询图书。jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。操作完成后按提示信息进行文件的保存操作。(4)、print();这个函数为链表的输出函数,把链表的头传给函数后,可输出整个链表的所有信息。、(5)、hold();这个函数为保存信息到文件的函数,使用时将链表的头传给函数,函数可将整个链表的所有信息存入到磁盘文件中。并覆盖掉源文件,以便以后调用。 (6) 、holdcx();这个函数为保存查询信息到文件的函数,使用时将查询到的节点指针传给函数,函数会将该节点所有信息保存到文件中去,文件写入是以追加方式写入,以便用户查看。(7) findboo

9、okname();findauthor();这二个函数为查询图书信息函数, findboookname();按书名查询、findauthor();按作者查询。查询到信息后返回信息所在节点,查询不到则返回空指针。(8)、add();sortnumber();delbook();revamp();这四个函数为功能函数,add();添加一本图书信息、sortnumber();将图书按编号排序、delbook();删除一本图书信息、revamp();修改一本图书信息。调用时将链表头指针传递给函数,函数返回经过功能操作后的头指针。c实现注释:这个实用的小型图书管理程序程序以链表操作完成,并实现文件信息的

10、录入和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。实现了图书管理的基本功能,包括了图书的录入、存储、查询、添加、删除、修改等功能。查询时可按书名、作者等方式查询,找到后输出这本书的所有信息。在添加图书信息后,还增加了链表排序操作,并输出整个链表,方便用户检查信息。系统中主要的数据结构就是图书的信息,包含编号、书名、作者、出版社、出版时间、价格、在库状态等,在处理过程中各项可以作为一本图书的不同属性来进行处理。d结构体系设计:图书管理系统主界面流程图进入图书信息录入系统进入图书信息浏览系统退出图书信息系统进入图书查询系 统进入图书信息删除系统进入图书信息修改系统图书管理系统主界面开始e

11、设计想法与程序的不足:作为学期末的一项课程,主要靠编出来的系统来考察我们所掌握的基本理论知识及实际解决问题的能力,通过这次c语言课程设计,很大程度上锻炼了我们写程序的动手能力和自主思考能力。利用所学知识,开发小型实用的应用系统,掌握运用C语言编写调试应用系统程序,对于我们独立开发应用系统并进行数据处理的综合能力是一个很大的提高。总的来说这个程序大致实现了题目的要求,但是这套程序仍然存在着很多的问题与不足。比如,没有对界面进行操作,只是实现了简单的功能,程序写的有点繁琐,不是那么井然有序,条理清晰,程序注释也不是很完善,对信息处理功能还有些不足之处,提示信息不明确,对于数据的错误输入处理不是很完

12、善等等。这个系统主要是我自己编写的,同时也得到了老师和同学的一些帮助。我在做系统的过程中也遇到了很多问题,有的是知识不足,有的是考虑不够周全,。事实证明,只靠自己的知识面还是很窄,独立处理问题能力不是很强,以后还要加强对c语言的学习。 我认为对于C语言编写的程序来说,使用方法大致都是一样的,所以如果要改进的话,就是要改进一些算法,尽量把界面编写清楚,提示信息全面,方便易用。3、用户手册:下面,我大致介绍一下我的系统的主要功能和注意事项:当运行此程序时,首先进入系统主界面功能菜单中,选择1进入图书信息录入系统,2进入图书信息浏览系统,3进入图书查询系统,4进入图书信息删除系统,5图书信息修改系统

13、,6退出图书信息管理系统。 当出现"请选择"时,需要输入选项前的数字,输完之后按回车(下同)。首次运行系统需要先选择1录入库存书籍信息,然后再选择其他操作。当选择5时会进入图书信息修改,在这里可以选择修改信息等操作,需要注意的是每次执行完修改等操作后需要手动选择保存图书信息的操作,不然磁盘文件信息不会改变(下同)。返回上级菜单进入图书查询系统管理系统的差不多,用户可自己尝试使用,所有信息最后均以磁盘文件方式保存,而且格式固定,在输入和输出均按这种格式,用户在使用时必须要按这种格式输入,否则会出现文件信息错误。4、调试与测试:上机操作(截图)系统主界面选择1进入图书信息录入系

14、统选择2进入图书信息浏览系统选择3进入图书查询系统5、源程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct char number10;/书号char name20;/书名char author20;/作者char publish50;/出版社char time20;/出版时间float price;mbook;typedef struct int count;/书的本数mbook book100;/最大可有100本书mlibrary;mlibrary library

15、;void save()/保存图书信息。FILE *fp;if(fp=fopen("library.doc","w")=NULL)printf("n不能保存图书信息n");return;fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book0),library.count,fp);void putin() /*定义录入函数*/ int y=1;system("cls");while(y) printf(&

16、quot;t请输入您的书籍的书号:");scanf("%s",library.booklibrary.count.number);printf("t请输入书名:");scanf("%s",);printf("t请输入作者名:");scanf("%s",library.booklibrary.count.author);printf("t请输入出版社:");scanf("%s",libra

17、ry.booklibrary.count.publish);printf("t请输入出版时间:");scanf("%s",library.booklibrary.count.time);printf("t请输入该书的价格:");fflush(stdin);scanf("%f",&library.booklibrary.count.price);library.count+;printf("n是否继续录入(1.继续;0,退出录入):");fflush(stdin);scanf("

18、%d",&y);if (y!=1)y=0;break; save();void lookup()system("cls");printf("图书号t图书名t作者名t出版社t出版日期t图书价格n");for (int i=0;i<library.count;i+)printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.author,library.booki.publish,library.booki

19、.time,library.booki.price);fflush(stdin);getchar();void search_by_name() /*定义按书名查询*/ char s220; int flag=1;printf("n请输入要查询的书名: ");fflush(stdin);scanf("%s",s2);printf("图书号t图书名t作者名t出版社t出版日期t图书价格n");for(int i=0;i<library.count;i+ )if(strcmp(s2,)=0) fla

20、g=0;printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf("cannot found!");fflush(stdin);getchar();void search_by_author() /*定义按作者名查询*/ char s320;int flag=1;printf

21、("请输入要查询的书的作者: ");fflush(stdin);scanf("%s",s3);printf("图书号t图书名t作者名t出版社t出版日期t图书价格n");for(int i=0;i<library.count;i+ )if(strcmp(s3,library.booki.author)=0) flag=0;printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.author,libr

22、ary.booki.publish,library.booki.time,library.booki.price); if (flag)printf("cannot found!");fflush(stdin);getchar();void search() /*定义查询函数*/ int a;system("cls"); /*进行清屏*/ printf("tt*n");printf("开始查询n"); printf("ttt1-search_by_namen"); printf("tt

23、t2-search_by_writern"); printf("ttt0-exitn"); printf("tt*n") ; printf("tt请选择你想要的查询方式:");fflush(stdin); scanf("%d",&a); switch(a) case 1:search_by_name();break; case 2:search_by_author();break;case 0:return;void del() /*定义删除函数*/ char number10;system(&q

24、uot;cls"); /*清屏*/printf("n Please type in the number of the book you want to delete:");fflush(stdin);scanf("%s",number);int i;for (i=0;i<library.count;i+)if(strcmp(number,library.booki.number)=0)break;if (i!=library.count)for(;i<library.count-1;i+)strcpy(library.booki.

25、name,library.booki+1.name);strcpy(library.booki.number,library.booki+1.number);strcpy(library.booki.publish,library.booki+1.publish);strcpy(library.booki.author,library.booki+1.author);strcpy(library.booki.time,library.booki+1.time);library.booki.price=library.booki+1.price;library.count-;elseprintf

26、("n cannot found!n");save();fflush(stdin);getchar();void update()/修改图书信息char number10;system("cls"); /*清屏*/printf("n Please type in the number of the book you want to delete:");fflush(stdin);scanf("%s",number);int i;for (i=0;i<library.count;i+) if(strcmp(nu

27、mber,library.booki.number)=0) printf("图书号t图书名t作者名t出版社t出版日期t图书价格n"); printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); break; if (i!=library.count)mbook book;printf("ntt请输

28、入修改后此图书的信息n");printf("t请输入图书号:");scanf("%s",book.number);printf("t请输入图书名:");scanf("%s",);printf("t请输入作者名:");scanf("%s",book.author);printf("t请输入出版社:");scanf("%s",book.publish);printf("t请输入出版时间:");

29、scanf("%s",book.time);printf("t请输入该书的价格:");fflush(stdin);scanf("%f",&book.price);strcpy(,);strcpy(library.booki.number,book.number);strcpy(library.booki.publish,book.publish);strcpy(library.booki.author,book.author);strcpy(library.booki.ti

30、me,book.time);library.booki.price=book.price;save();elseprintf("n cannot found!n");fflush(stdin);getchar();void main()FILE *fp;if(fp=fopen("library.doc","r")=NULL)printf("n不能打开图书信息库n");fp=fopen("library.doc","w+");printf("n初始化图书信息库,初始化

31、之后要重启程序n");library.count=0;fwrite(&library.count,sizeof(int),1,fp);fclose(fp);return;fread(&library.count,sizeof(int),1,fp);fread(library.book,sizeof(library.book0),library.count,fp);fclose(fp);int a; do system("cls");printf("nnnnntttt图书信息管理系统ttttn");printf("tt*

32、n");printf("ttt1 -图书信息录入n");printf("ttt2 -图书信息浏览n"); printf("ttt3 -图书信息查询n");printf("ttt4 -图书信息删除n");printf("ttt5 -图书信息修改n");printf("ttt0 -退出图书信息系统n");printf("tt*n");printf("ttPlease Enter Choose: ");fflush(stdin);s

33、canf("%d",&a);switch(a)case 1:putin();break;case 2:lookup();break;case 3:search();break;case 4:del();break;case 5:update();break;case 0:printf("nn退出nn");break;default:printf("n序号不对n"); while(a!=0); save();6、心得体会在这一个星期的实践中,通过编写这个图书管理系统,我体会到了c语言学习的实用性。将理论和实践结合在一起,用先进的

34、计算机工具方便人们的生活。C语言程序的编写首先要从大局考虑,把自己编写整个程序的思想都写在草稿上,这样有助于自己编写程序,在编写时要完善注释,方便其他人理解程序。编写的程序从理论上来说并没有错,但以上机就问题不断。甚至有些课本上的知识照搬不变,也不能得到正确的结果。有时一个程序改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单的程序题,在调试时却屡屡出错。经反复的修改后,结果正确了,这时所有的乏味都显得那么无力,一切都是值得的。我认为,开发一套系统,最重要的是细心,并且思考要全面,结合实际,充分考虑到客户的需求和现实意义。不管什么系统,只用运用到实际应用中,才具有先现实意义。 所以c语

35、言程序的实用性很强,我们以后还要更加努力认真地学习编程语言。7、参考文献:1 黄明等编著C语言课程设计北京:电子工业出版社2 郭翠英编著C语言课程设计案例精编北京:中国水利水电出版社3 宁正元数据结构(c语言) 南京:东南大学出版社。2000年6月第1版4 严蔚敏等 数据结构(c语言版) 北京:清华大学出版社,1997年4月第1版5 谭浩强编著C程序设计题解与上机指导(第3版) 北京:清华大学出版社6 谭浩强编著C程序设计(第3版) 北京:清华大学出版社7 洪国胜 等编著 C+ Builder程序设计轻松上手北京:清华大学出版社8 宁正元数据结构(c语言) 南京:东南大学出版社。2000年6月

36、第1版9 严蔚敏等 数据结构(c语言版) 北京:清华大学出版社,1997年4月第1版。10 明日科技 编著Visual C+程序开发范例宝典北京:人民邮电出版社。11 胡学钢等数据结构算法设计指导北京:清华大学出版社,1999年 第1版。12 刘大有数据结构(面向21世纪课程教材) 北京:高等教育出版社。2001年6月第1版。13 胡学钢等数据结构算法设计指导北京:清华大学出版社,1999年 第1版。二、单片机课程设计-按键次数计数器1、设计内容:a)用Proteus仿真实现对按键k计数的实时显示b)用Keil C51编程实现上述功能c)用Keil与Proteus联调2、电路图:3上机程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code Seg18=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x00,0x01;uch

温馨提示

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

评论

0/150

提交评论