java程序设计课程简介

java程序设计课程简介,第1张

一 JAVA程序设计课程讲什么内容

《Java程序设计》课程是使用Java语言进行应用程序设计的课程。课程的主要目标有三:一、掌握Java语言的语法,能够较为深入理解Java语言机制,掌握Java语言面向对象的特点。 二、掌握JavaSE中基本的API,掌握在 、线程、输入输出、文本处理、图形用户界面、网络等方面的应用。三、能够编写有一定规模的应用程序,养成良好的编程习惯。 本课程要对Java语言的一些机制会详细讲解,所以具有系统性。本课程还注重实践性,要讲Java语言在文本、文件、窗体界面、图形、数据库、多线程、并行编程方面的应用。还会讲到编好代码的经验与技巧,包括面向对象的思想、软件开发工具的使用等。 在教学中,采用教师讲授、学生自测、学生讨论、编程实践相结合的方法。

二 千锋JAVA课程介绍

Java语言的发展及相关技术的介绍,Java技术和平台在网络计算及电子商务中的应用介绍;Java语言的基础知识:Java语言的主要特点,设计思想,Java虚拟机,垃圾回收机制,安全性的保证机制;Java语言的基本语法规范,包括标识符、关键字、数据类型、表达式和流控制,程序基本结构;面向对象技术的基本特点,Java语言的面向对象特性,类和对象的概念,封装性、继承性、多态性,Java语言的特殊属性;Java程序的例外处理机制和方法;

Java语言的输入/输出处理机制和方法,常用的输入/输出方法,输入/输出处理的应用;

Java语言的图形用户界面设计:AWT界面设计的基本方法,常用的组件类库,图形用户界面的事件处理模型和方法,JFC介绍,Swing图形界面设计;Java Applet程序设计,Applet程序的特点,运行机制,与浏览器的集成,安全机制的使用;

多线程程序设计,进程和线程的联系和区别,多线程程序设计的一般方法,线程的生命周期,线程状态的控制,多线程的互斥和同步;Java语言的网络编程技术和应用,Socket程序设计,Client/Server程序设计;Java的Servlet和JSP(JavaServerPage)技术;

JavaBeans和RMI。

三 java程序设计的介绍

《java程序设计》是2006年清华大学出版社 北京交通大学出版社出版的图书,作者是吴萍、蒲鹏、朱丽娟。主要讲述了本书通过对Java编程语言的全面介绍,引导读者快速地掌握Java编程语言的核心内容并学会灵活运用所学的语言知识及面向对象的编程思想。全书共分9章,内容包括Java语言概述、面向对象编程初步、Java的基本语法、类库与数组、面向对象编程深入、Applet程序、图形用户界面编程、异常处理和输入输出及多线程编程。

四 java程序设计的内容简介

本书采用任务驱动教学模式,通过任务的实施,使读者在读程序、版学知识、写程序的过程中,权逐渐掌握面向对象的Java程序设计思想和技能。本书共分12个单元,主要包括Java程序设计过程、基本语法规则、面向对象技术、数组与字符串、异常处理、GUI编程、输入/输出处理、多线程编程以及基础网络编程等内容。

本书适合作为高等职业院校计算机相关专业“Java程序设计”或者“面向对象程序设计”课程的教材,也可作为相关技术人员学习Java的参考用书。

五 java程序设计的内容简介

本书是依据本科和高职高专院校的培养目标及基本要求,结合作者多专年来的教学经验和工程实践属基础,为实施教学改革,使计算机教学进一步面向软件编程实践而编写的一本教材。包括的主要内容有:面向对象程序设计语言,Java程序设计入门,程序控制流程,JAVA的方法、类与对象、继承与派生,JAVA的异常处理,JAVA包的组成和使用,设计APPLET程序、JAVA的多线程、I/O流、网络程序设计等。每章后都配有上机实战和理论巩固题,实现教与学的统一。

本书语言通俗易懂,内容丰富翔实,突出了以实用为中心的特点。使用本书进行学习,可帮助读者用最少的时间掌握最多的知识及工作经验与技巧,是本科和高职高专院校理想的教学教材,同时也可作为软件和信息技术工程人员的参考用书。

六 《JAVA程序设计》课程设计

1 package studypart02;

2 import javautilCalendar;

3 import javaawt;

4 import javaxswing;

5 import javaawtevent;

6 import javalangThread;

7 public class Clock extends JFrame implements ComponentListener,

8 ItemListener,Runnable{

9 Thread timer;

10 private JComboBox bobox_color;

11 public void start(){

12 if(timer==null)

13 timer=new Thread(this,"ShowTime");

14 timerstart();

15 }

16 public void run(){

17 while(true){

18 try{

19 timersleep(1000);

20 }catch(InterruptedException e){}

21 repaint();

22 }

23 }

24 public void stop(){

25 timerstop();

26 }

27 public Clock(){

28 super("Clock");

29 thissetSize(600,600);

30 thissetDefaultCloseOperation(EXIT_ON_CLOSE);

31 thissetLayout(new FlowLayout());

32

33 thissetVisible(true);

34 }

35 public void paint(Graphics g){

36 Calendar cal=CalendargetInstance();

37 int year=calget(CalendarYEAR);

38 int month=calget(CalendarMONTH);

39 int day=calget(CalendarDATE);

40 int hour=calget(CalendarHOUR);

41 int minute=calget(CalendarMINUTE);

42 int second=calget(CalendarSECOND);

43 int a,b;

44 a=thisgetWidth()/2;

45 for(int i=1;i<=360;i++){

46 double angle=iMathPI/180;

47 double radius=a-50;

48 int x=(int)Mathround(radiusMathsin(angle));

49 int y=(int)Mathround(radiusMathcos(angle));

50 if(i%30==0){

51 int j=i/30;

52 String str=StringvalueOf(j);

53 gsetColor(Colorblack);

54 // gfillOval(a+x,a+y,1,1);

55 gdrawString(str,a+x,a-y);

56 }

57 double radh=a-200;

58 angle=hourMathPI/30;

59 int xh=(int)Mathround(radhMathsin(angle));

60 int yh=(int)Mathround(radhMathcos(angle));

61 gsetColor(Colorred);

62 gdrawLine(a,a,a+xh,a-yh);

63 double radm=a-150;

64 angle=minuteMathPI/30;

65 int xm=(int)Mathround(radmMathsin(angle));

66 int ym=(int)Mathround(radmMathcos(angle));

67 gsetColor(Colorblue);

68 gdrawLine(a,a,a+xm,a-ym);

69 double rads=a-100;

70 angle=secondMathPI/30;

71 int xs=(int)Mathround(radsMathsin(angle));

72 int ys=(int)Mathround(radsMathcos(angle));

73 gsetColor(Coloryellow);

74 gdrawLine(a,a,a+xs,a-ys);

75 //gdrawString(calget(CalendarHOUR)+":"+calget(Calendar

76 // MINUTE)+":"+calget(CalendarSECOND));

77 }

78 }

79 public void itemStateChanged(ItemEvent e){

80 repaint();

81 }

82 public void ponentResized(ComponentEvent e){

83 repaint();

84 }

85 public void ponentMoved(ComponentEvent e){}

86 public void ponentHidden(ComponentEvent e){}

87 public void ponentShown(ComponentEvent e){}

88

89 public static void main(String[] args){

90 Clock show=new Clock();

91 showstart();

92 }

93 }

七 java程序设计的内容简介

本书讲解了copyJava语言的基本知识及程序设计的基本方法,使读者掌握面向对象程序设计的基本概念,从而具有利用Java语言进行程序设计的能力,为将来从事软件开发,特别是Web应用系统开发打下良好基础。全书共分10章,从内容上大致分为三个部分:第一部分为第1章~第3章,介绍Java程序设计的基础知识,包括Java语言概述、Java语言基础以及算法与程序控制结构。第二部分为第4章~第6章,介绍Java面向对象程序设计的基本方法与技术,这是Java的核心与特色内容,包括类与对象、封装、继承与多态以及异常处理与输入/输出。第三部分为第7章~第10章,介绍Java的实际应用,包括多线程、网络程序设计、数据库应用以及图形用户界面开发技术。

本书内容讲解详细,程序代码均经过调试,案例实用。

本书适合作为高等院校计算机程序设计课程的教材,也可作为具有一定程序设计基础和经验的读者的参考用书。

八 java程序设计的内容简介

本书共分四篇15章来阐述Java语言。其中,第一篇介绍了Java的基础知识,包括Java的历史和特征、Java的开发环境和工具、Java语言的基本语法知识;第二篇介绍了面向对象编程的思想和相关概念,Java中类的定义和对象的创建,Java继承、接口和包,数组与字符串,异常处理及JDK类库的应用;第三篇介绍了Java的AWT和Swing图形包的使用以及Java的多线程编程支持;第四篇通过一些简单的例子介绍了Java在网络和数据库方面的编程。本书的篇章内容采用循序渐进、由简到繁、由易到难的学习思维特征进行编排,书中例子以人们学习与认知过程为基础,以实际开发的需求为目标。书中内容通俗易懂,丰富易学,每章都附有习题,帮助读者及时了解与掌握相应章节的知识点并将其应用到实践中。

本书适合作为高职院校各专业学习Java语言的基础教材,也可作为相关工程技术人员和科技工作者的参考用书。

九 JAVA程序设计课程主讲老师是谁

JAVA程序设计主讲老师是北京大学信息科学技术学院教师,在程序设计方面有多年的项目开发经验和教学经验,任教育部计算机教指委分委专家组成员。出版的教材包括《Java程序设计》(曾获第六届全国高校出版社优秀畅销书奖)、《C#程序设计教程》、《VB程序设计》、《Visual C++NET程序设计》等。在北京大学开设多门程序设计课程,课程内容以系统知识与实践应用相结合,注重培养对知识体系的深入理解,在与实际工作生活相结合的应用实践中分析问题、解决问题的能力。

十 Java程序设计与Web应用程序设计哪门课简单

java程序设计主要讲解java的基础知识,它是一种语言性的课程。

web应用设计则是一种方向性的课程,这个web的设计你可以使用asp,也可以使用jsp,如果是通过jsp来进行web开发的话,需要java的知识作为基础。

因此,如果你有asp的相关知识的话,可以不学习java直接学习web应用程序设计,如果没有的话,建议你先学习java程序设计,然后再学习web应用程序设计。

在 Python 中创建一个类及其对象

在 Python 中创建一个空类

在 Python 中使用 Type 创建类

在 Python 中创建和调用类的方法

使用 __init__() 方法为数据属性赋值

在 Python 中更新对象属性

在 Python 中删除对象属性和对象

在 Python 中检查和比较对象的类型

在Python中将对象的所有属性复制到另一个对象

在 Python 中迭代对象属性

在 Python 中打印对象的所有属性

在python中在运行时创建类的数据属性

在函数中将对象的实例作为参数传递

在 Python 中创建和使用自定义 Self 参数

使用self参数来维护对象的状态

在 Python 中创建和使用静态类变量

在 Python 中的一个函数上使用多个装饰器

在 Python 中的方法中同时访问 cls 和 self

从装饰器访问实例方法的类

使用给定的装饰器获取 Python 类的所有方法

装饰一个 class

将类字段作为参数传递给类方法上的装饰器

在 Python 中创建多个传入参数列表的类变量

Python 中的 wraps 装饰器

使用可选参数构建装饰器

在 Python 中将参数传递给装饰器

@property 装饰器

类和函数的装饰器

Python 中带参数和返回值的装饰器

Python 使用参数 wraps 装饰器

Python 装饰器获取类名

简单装饰器示例

在 Python 中使用 print() 打印类的实例

在 Python 中的类中将装饰器定义为方法

获取在 Python 中修饰的给定类的所有方法

带参数和不带参数的 Python 装饰器

Python 中带有 self 参数的类方法装饰器

在 Python 中的另一个类中使用隐藏的装饰器

装饰器内部的 self 对象

在 Python 中将多个装饰器应用于单个函数

Python 装饰器获取类实例

__init__ 和 __call__ 有什么区别

在 Python 中使用 __new__ 和 __init__

Python 中的迭代重载方法

在 Python 中使用迭代器反转字符串

Python 中 __reversed__ 魔术方法

Python 中的 __getitem__ 和 __setitem__

在 Python 中使用 __getattr__ 和 __setattr__ 进行属性赋值

什么是 __del__ 方法以及如何调用它

创建类的私有成员

一个 Python 封装的例子

一个 Python 组合的例子

一个Python聚合的例子

Python 中的单级、多级和多级继承

在 Python 中获取一个类的父类

Python 中的多态性

访问 Child 类中的私有成员

Python 中的抽象类

创建一个抽象类来覆盖 Python 中的默认构造函数

使一个抽象类继承另一个抽象类

Python 中的 super 是做什么的

super() 如何在多重继承中与 __init__() 方法一起工作

将 super 与类方法一起使用

mro 是做什么的

Python 中的元类是什么

元类的具体案例

在 Python 中使用元类的单例类

@staticmethod 和 @classmethod 有什么区别

Python 中的装饰器是什么

制作函数装饰器链

毕业综合训练

(毕业论文/设计形式用)

课题名称 单片机打铃系统设计

学 院 信息工程学院

专 业 电子信息工程设计

班 级 13专电子1班

姓 名 李跃 学号 2013242638

指导老师 何健

江西科技学院

毕业综合训练任务书

学院 信息工程学院 专业 电子信息工程技术 年级 13 班级 电子专1班 姓名 李跃 起止日期 题目 单片机打铃设计

1.毕业综合训练任务及要求(根据题目性质对学生提出具体要求)

设计基于单片机的打铃装置,用DS1302对时、分、秒计时和设置打铃时间,采

用三线串行数据传输接口与STC89C52进行同步通信,用矩阵键盘来设置时间值,

并通过8255芯片读入设置值,最后通过89C52单片机芯片综合控制[1],把当前

时间送到数码管显示,到点把信号送入蜂鸣器,实现打铃,撰写毕业论文。

2.毕业综合训练的原始资料及依据(包括做调研的背景,研究条件、

应用环境等)

3.主要参考资料、文献

[1] 张鑫 单片机原理及应用[M]北京:电子工业出版社,20058

[2] 康光华 电子技术基础 模拟部分[M]北京:高等教育出版社,20061

[3] 康光华 电子技术基础 数字部分[M]北京:高等教育出版社,20061

[4] 祁伟, 杨亭 单片机C51程序设计教程与实验[M]北京:北京航空航天大学出版社,

2006

[5] 楼然苗 李光飞 单片机课程设计指导[M]北京:北京航空航天大学出版社,20074

[6] 单片机学习网

指导教师

年 月 日

摘 要

随着科学技术的飞速发展,单片机应用的范围越来越广,本设计正是基于STC89C52型单片机为核心,加上适当的外围部件,设计而成的简易自动打铃系统。

简易自动打铃系统的设计以STC89C52单片机芯片和8255芯片的拓展I/0引脚为核心部件,用定时器中断系统进行计时、数码管显示当前时间、蜂鸣器实现打铃功能、矩阵键盘调整显示时间、电源电路为整个系统提供5V 工作电压,由以上模块构成了本系统。根据设计要求,该简易自动打铃系统可以进行计时和显示,设置当前时间,实现定点打铃等功能。该设计简单、实用、 *** 作便捷。

关键字:单片机;自动定点打铃;设置时间;中断;矩阵键盘;I/O扩展;

目录

摘 要 I

第一章 方案论证与对比 1

11方案一 采用时钟芯片和键盘实现功能 1

12方案二:采用中断定时实现功能 1

13方案比较 2

第二章 单元电路设计与论证 3

21单片机、I/O拓展 3

22打铃电路设计 4

23数码管电路设计 4

第三章 程序设定 5

31主程序工作流程 5

32定时器中断子程序 5

33时间设定子程序 6

第四章 系统功能实际测试 7

41程序实际编译测试 7

42系统实际测试 7

43 软件调试步骤 7

44子程序调试步骤 7

45调试结果 8

46系统误差及性能分析 8

第五章 设计总结 9

第六章 详细仪器清单 10

参考文献 11

附录1 详细程序 12

第一章 方案论证与对比

11方案一 采用时钟芯片和键盘实现功能

方案一原理框图如图11所示:

图 11 采用时钟芯片定时实现功能

该系统用DS1302对时、分、秒计时和设置打铃时间,采用三线串行数据传输接口与STC89C52进行同步通信,用矩阵键盘来设置时间值,并通过8255芯片读入设置值,最后通过89C52单片机芯片综合控制[1],把当前时间送到数码管显示,到点把信号送入蜂鸣器,实现打铃。

12方案二:采用中断定时实现功能

方案二原理框图如图12

所示:

图 12 采用中断定时实现功能

该系统以STC89C52单片机为核心控制部件。用8255做I/O拓展芯片,数码管接8255的PA 、PB 引脚,用动态扫描的方式显示当前时间。蜂鸣器与单片机的P33口相连,当打铃时间到时,由STC89C52发出打铃指令。以外部INT0和INT1中断按钮实现调时功能。

13方案比较

本设计要求能实现基本计时和打铃功能。计时和打铃时间设计,方案一中用到了DS1302时钟芯片计时和打铃时间设置;方案二中采用定时器中断来计时并结合软件设置打铃时间。上述两种方案中:方案一的外围硬件电路设计复杂,而且时钟芯片没有得到充分利用,而方案二的软件计时具有硬件开销小,成本低,外围电路设计简单等优点。上述两种方案中:方案一的软件设计比方案二的难度系数大,使程序易读性不强。综合对计时的精密程度要求不高的本系统,本设计采用方案一来实现功能。

第二章 单元电路设计与论证

21硬件设计总框图

本设计主要由STC89C52单片机芯片与8255芯片组成的模块为控制核心、蜂鸣器电路模块实现打铃功能、矩阵键盘模块调整当前时间、数码管显示模块显示时间,由以上四大模块构成了本系统,详细电路图见附录一,硬件设计总框图如图21:

图21硬件设计总框图

21单片机、I/O拓展

图 22 主控电路框图

STC89C52RC 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP的可反复擦写1000次的Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的STC89C52可为许多嵌入式控制应用系统提供高性价比的解决方案。STC89C52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM ),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时/计数器,2个全双工串行通信口,看门狗

(WDT )电路,片内时钟振荡器。其主要特性[1]如有:与MCS-51 兼容;8k 可反复擦写(>1000次)Flash ROM;全静态工作:0Hz~24MHz;三级程序存储器锁定;2568位内部RAM ;32可编程I/O线;2个16位可编程定时/计数器;5个中断源;可编程串行通道;低功耗的空闲和掉电模式。I/O拓展采用8255芯片,单片机用89C52,电路框图如图2-2所示。

22打铃电路设计

采用P 型三极管为蜂鸣器提供5V 电源,并把STC89C52的P20口与三极管的基极相连接,当P20口有低电平输入出时,三极管导通[2],蜂鸣器响应,从而实现打铃功能。电路框图如图24所示:

图23打铃电路框图

23数码管电路设计

8255的PA 口控制数码管的位选,低电平有效;PB 口做为段选输出,接1K 欧姆的限流电阻[3]。如图24所示:

图24数码管显示电路框图

第三章 程序设定

31主程序工作流程

主程序首先设置8255模式,并打开中断0,设置中断为边沿触发模式;其次在死循环中执行读秒显示子程序,当定时器满一秒时,在显示缓冲区中时间加一,等待送入数码管显示;再次按键扫描子程序,如果有中断0或中断1按钮被按下时,则转入相应功能的子程序中;最后如果当前显示时间满足预设打铃条件,通过打铃判断子程序跳入对应的打铃方式中执行[4]。详细主程序见附录二,主程序流程图如图31。

图 31 主程序流程图

32定时器中断子程序

此子程序为本设计的核心之一,首先初始化定时器T0,设置T0为工作方式1,其初始值为3CB0H (既每次溢出定时50ms ),并对其循环20次,然后把时间加1s ,并送入显示缓冲区等待显示[5]。显示时,先取出内存地址中的数据,然后查得对应的显示用段码从PB 口输出,PA 口将对应的数码管选中供电,就能显示缓冲区中的数据值。为了显示秒位和上下午标志在数码管显示上特加了“—”、“A ”、“P ”这三个特殊字符子。程序流程图如图32:

图 32定时器中断显示子程序流程图

33时间设定子程序

时间设定模块的设计要点是按键的去抖处理与“一键多态”

[5]

的处理。即

只涉及2个键完成了6位时间参数的设定。“一键多态”即多种功能的实现思想史,根据按键时刻的系统状态,决定按键采取何种动作,即何种功能。

图 33 键盘扫描子程序流程图

第四章 系统功能实际测试

41程序实际编译测试

在Keil C51编译环境下编译过程中所产生的误差主要是在重装初值的过程中大约需要8个机器周期,本设计采用在程序开始时对定时器赋初值多加8个机器周期来消除此误差。

最后在Keil C51编译环境下编译通过,0警告,0错误。

42系统实际测试

通过实验测试,数码管显示,按键调时,定时打铃均符合预期,测试成功。

43 软件调试步骤

1、打开软件后, 在Project 菜单中选择New Project命令,打开一个新项目。保存此项目,输入工程文件名后,并保存工程文件的目录。

2、为项目文件选择一个目标器件,即选择8051的类型。在Data base 列表框中选择“ATML 89C52”,确定。

3、上述设置好后,创建源程序文件并输入程序代码。输入好代码后点击“文件/保存”。

4、把源文件添加到项目中,用鼠标指在目标工作区的目标1,点击右键在d出的菜单中选择添加文件到源代码组,在d出的添加文件框中,选择需要添加到项目中的文件。

5、开始编译,对项目文件进行编译。若没有错误后进行硬件调试。

44子程序调试步骤

子程序调试应一个模块一个模块地进行,首先单独调试各功能子程序,检查程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来进行总调试。故调试步骤[6]如下:

A 、蜂鸣器的调试

调试方法:先把打铃程序下载到单片机,让蜂鸣器发声,看是否在正确的时间内实现打铃。

B 、数码管程序调试

正确的显示时间是整个程序的关键之一。调试方法:先把程序下载到单片机,让数码管显示,是否正确的显示时间的变化。

C 、键盘调时序

正确的显示所调的时间是整个程序的关键之一。调试方法:先把键盘程序和显示程序下载到单片机,让数码管显示,是否正确的所调时间的变化。

45调试结果

实现计时和显示功能(12小时制),可设置当前时间(包括上下午标志,时、分的数字显示),能在上午7:45和下午10:00定点打铃,且每次打铃均为响铃3s ,停1s ,再响3s 。

46系统误差及性能分析

经测试该简易自动打铃系统在一天内会出现时间误差,该误差主要是由于晶振自身的误差所造成的。另外在中断的过程中,只会在第一次计时时产生时间的偏移,而它所产生累积误差很小,可以忽略。

第五章 设计总结

通过这次课程设计,我们得到了很多收获和体会,懂得了团队合作的重要性和必要性,以及工程设计的大体过程。第一,巩固和加深了对单片机基本知识和理解,提高了综合运用所学知识的能力。第二,增强了根据课程需要选学参考资料,查阅手册,图表和文献资料的自学能力。通过独立思考,深入研究有关问题,学会自己分析解决问题的方法。第三,通过实际方案的分析比较,设计计算,安装调试等环节,初步掌握了简单使用电路的分析方法和工程设计方法。第四,在这次课程设计过程中,光有理论知识是不够的,还必须懂一些实践中的知识。所以在课程设计的实践中,我们应将实验课与课堂教学结合起来,锻炼自己的理论联系实际的能力与实际动手能力。第五,掌握了比较常用的仪器的使用方法,提高了动手能力。第六,培养了严谨的工作作风和科学态度。

总之这次课程设计,培养了我们综合应用单片机原理及应用的理论知识和理论联系实际的能力;在设计的过程中还培养了我们的团队精神,同学共同协作,一齐商量讨论,解决了许多问题。这一切都令我们受益匪浅,在今后的学习工作中我们会一如既往,不断努力。

第六章 详细仪器清单

图61详细仪器清单

参考文献

[1] 张鑫 单片机原理及应用[M]北京:电子工业出版社,20058 [2] 康光华 电子技术基础 模拟部分[M]北京:高等教育出版社,20061 [3] 康光华 电子技术基础 数字部分[M]北京:高等教育出版社,20061

[4] 祁伟, 杨亭 单片机C51程序设计教程与实验[M]北京:北京航空航天大学出版社,2006 [5] 楼然苗 李光飞 单片机课程设计指导[M]北京:北京航空航天大学出版社,20074 [6] 单片机学习网

附录1 详细程序

#include #include

#define uchar unsigned char #define uint unsigned int

sbit RING=P3^3;

#define HOR_UP 0x18 //定义键值意义 #define MIN_UP 0x28 #define HOR_DOWN 0X14 #define MIN_DOWN 0x24 #define AM_PM 0X48 #define NO_KEY_DOWN 0XFF

uchar xdata PA _at_ 0xD9FF, PB _at_ 0XDBFF, PC _at_ 0XDDFF, //定义外部变量,强制分配地址 EX_PORT_CON _at_ 0XDFFF;

uchar code LED_CODE[]={0XA0,0XBB,0X62,0X2A,0X39,0X2C,0X24,0XBA, //LED段码(0~9外加一个全灭, 一个A ,一个P) 0X20,0X28,0XFF,0X30,0X70};

uint code RING_TIME[]={465,1320}; //开启时间(分)

uchar COUNT=0,KEY=NO_KEY_DOWN,HOR=0,MIN=0,SEC=0; //软计时-光标-键值

void Display(); //显示 void Time_Go(); //时间进位 void Time_Set(); //时间设置 void Ring_Control(); //继电器控制 void Delay(uint A); //简单延时 uchar Key_Scan(); //键盘扫描

void main() {

EX_PORT_CON=0X81; //8255初始化(PA,PB ,PC_H输出,PC_L输入)

PC=0xF0; //键盘初始化 TH0=0X3C; //定时器初始化

TH1=TL1=0; TR1=0;

TMOD=0X21;

EA=ET0=TR0=ET1=1; while(1) { Display(); Time_Go();

KEY=Key_Scan(); Ring_Control(); Time_Set(); } }

void Display() {

PB=0XFF; //消影 PA=0XFe; //发送位码

if(HOR>=12)PB=LED_CODE[12]; //发送段码 else PB=LED_CODE[11]; Delay(200); //延时

PB=0XFF; //消影 PA=0XFd; if(HOR>12) //发送位码 PB=LED_CODE[(HOR-12)/10]; else PB=LED_CODE[HOR/10]; //发送段码 Delay(200); //延时

PB=0XFF; PA=0xfb;

if(HOR>12)PB=LED_CODE[(HOR-2)%10]; else PB=LED_CODE[HOR%10]; Delay(200);

PB=0XFF; //中间横杆 PA=0XF7;

if(COUNT>10)//在显示实时时钟时闪烁,为01秒/周期 PB=0XFF; else

Delay(200);

PB=0XFF; PA=0Xef;

PB=LED_CODE[MIN/10]; Delay(200);

PB=0XFF; PA=0XdF;

PB=LED_CODE[MIN%10]; Delay(130); }

void Timer() interrupt 1 {

TH0=0X3C; //重装初值 TL0=0XB2;

COUNT++; //软计时 }

void Ring() interrupt 3 {

RING=~RING; }

void Time_Go() //时间进位 {

if(COUNT>=20) //计数到达20次,即:定时器50MS20=1S { COUNT=0; //软计时清零 SEC+=1; // 秒加1 if(SEC>=60) //秒是否到达60 { SEC=0; //清秒位 MIN+=1; //分钟加1 if(MIN>=60)//分钟是否到达60 { MIN=0; //清分位 HOR+=1; //小时加1 if(HOR>=24)//小时是否到达24 HOR=0; //清小时位 } } }

}

void Time_Set() {

if(KEY==HOR_UP){if(HOR>=23)HOR=0;else HOR++;}

else if(KEY==HOR_DOWN){if(HOR==0)HOR=23;else HOR--;} else if(KEY==MIN_UP){if(MIN>=59)MIN=0;else MIN++;} else if(KEY==MIN_DOWN){if(MIN==0)MIN=59;else MIN--;} else if(KEY==AM_PM){if(HOR>=12)HOR-=12;else HOR+=12;} }

void Ring_Control() //继电器控制 {

uint RTC_MIN;

RTC_MIN=HOR60+MIN; //将实时时钟 化成 分钟 if((RTC_MIN==RING_TIME[0])||(RTC_MIN==RING_TIME[1])) { if(((SEC>=3)&&(SEC=7)){TR1=0;RING=1;} else TR1=1; } }

void Delay(uint A) {

while(A--); }

uchar Key_Scan() {

uchar A=4,ROW=0x08,T=NO_KEY_DOWN; if(PC!=0XF0) //是否有键按下 {Delay(200); //消抖 if(PC!=0XF0) while(A--) //查询,逐列 { ROW

if(T!=0X00) //但前列是否有键被按下

{

T=(T+(ROW&0XF0)); //计算键值

do {Display();Time_Go();} //防止数码管在按键按下时闪烁

while((PC&0X0F)!=0); //松手检测 peak; //跳出循环

}

} PC=0xf0; //键盘初始化

}

return T;

} //返回键值

16

如果你直接没有任何基础,一天是突击不完的。建议你至少提前一个月开始做准备,每天看一些要点,逐步巩固提高。

C语言二级不需要太多的实际 *** 作,应试不变的真理就是做题,多做几套真题就行了。但是一定要在最后留出一天把教材的公共基础部分过一遍,考试分数高不高考的是程序填空题,而能不能通过就得靠公共基础部分。

C语言二级基本要求及考试内容:

基本要求

1 掌握算法的基本概念。

2 掌握基本数据结构及其 *** 作。

3 掌握基本排序和查找算法。

4 掌握逐步求精的结构化程序设计方法。

5 掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。

6 掌握数据的基本知识,了解关系数据库的设计。

考试内容

一、 基本数据结构与算法

1 算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。

2 数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。

3 线性表的定义;线性表的顺序存储结构及其插入与删除运算。

4 栈和队列的定义;栈和队列的顺序存储结构及其基本运算。

5 线性单链表、双向链表与循环链表的结构及其基本运算。

6 树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。(前序、中序和后序遍历有考到,每年都有)

7 顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。

二、 程序设计基础

1 程序设计方法与风格。

2 结构化程序设计。

3 面向对象的程序设计方法,对象,方法,属性及继承与多态性。

三、 软件工程基础

1 软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。

2 结构化分析方法,数据流图,数据字典,软件需求规格说明书。

3 结构化设计方法,总体设计与详细设计。

4 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。

5 程序的调试,静态调试与动态调试。

四、 数据库设计基础

1 数据库的基本概念:数据库,数据库管理系统,数据库系统。

2 数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。

3 关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。

4 数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。

考试方式

1、 公共基础的考试方式为笔试,与C语言(VisualBASIC、Visual FoxPro、Java、Access、Visual C++)的笔试部分合为一张试卷。公共基础部分占全卷的30分。

2、 公共基础知识有10道选择题和5道填空题。

C语言程序设计

基本要求

1熟悉TURBO C集成环境。

2熟练掌握结构化程序设计的方法,具有良好的程序设计风格。

3掌握程序设计中简单的数据结构和算法。

4TURBO C的集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。

考试内容

一、C语言的结构

       1程序的构成,MAIN函数和其他函数。

2头文件,数据说明,函数的开始和结束标志。

3源程序的书写格式

4C语言的风格。

二、数据类型及其运算(基础)

1C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。

2C运算符的种类、运算优先级和结合性。

3不同类型数据间的转换与运算。

4C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。

三、基本语句(基础)

1表达式语句,空语句,复合语句。

2数据的输入和输出,输入输出函数的调用。

3复合语句。

4GOTO语句和语句标号的使用。(这个了解即可)

四、选择结构程序设计

1用if语句实现选择结构。(基础)

2用switch语句实现多分支选择结构。(笔试有)

3选择结构的嵌套。

五、循环结构程序设计 (基础)

1for 循环结构。

2while和do while循环结构。

3continue语句和break语句。

4循环的嵌套。(基础)

六、数组的定义和引用

1一维数组和多维数组的定义、初始化和引用。

2字符串与字符数组。

七、函数 (基础)

1库函数的正确调用。

2函数的定义方法。

3函数的类型和返回值。

4形式参数与实在参数,参数值的传递。

5函数的正确调用,嵌套调用,递归调用。

6局部变量和全局变量。

7变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生存期。

8内部函数与外部函数。

八、编译预处理     (基础,笔试有考到宏替换)

1宏定义:不带参数的宏定义;带参数的宏定义。

2“文件包含”处理。

九、指针   (这个很重要,上机题有这方面的)

1指针与指针变量的概念,指针与地址运算符。

2变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各类型数据。

3用指针作函数参数。

4返回指针值的指针函数。

5指针数组,指向指针的指针,MAIN函数的命令行参数。

十、结构体(即“结构”)与共用体(即“联合”)

1结构体和共用体类型数据的定义方法和引用方法。

2用指针和结构体构成链表,单向链表的建立、输出、删除与插入。

十一、位运算

1位运算符的含义及使用。

2简单的位运算。

十二、文件 *** 作(了解,上级题有,只要知道什么意思就行了)

只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。

1文件类型指针(FILE类型指针)。

2文件的打开与关闭(fopen,fclose)。

3文件的读写(fputc,fgetc,fputs,fgets,fread,frwite,fprintf,fscanf函数),文件的定位(rewind,fseek函数)。

以上就是关于java程序设计课程简介全部的内容,包括:java程序设计课程简介、如何获取python编程基础及应用实验教程的实验文件、【单片机打铃系统设计】 c51语言单片机打铃系统设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9274637.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存