第一篇:《C51程序设计A》第五次作业------交通灯控制系统学习总结范文
交通灯控制系统学习总结
C51程序设计这门课程前段时间我们学习交通灯控制系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。系统包括东西南北方向红绿黄灯以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、分时段调整信号灯的点亮时间等功能。
综合这几周的学习让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,我通过查阅相关书籍、资料以及和周围同学交流。在课程设计中碰到了很多的问题,我遇到的问题是我们的设计是以使用单片机作为核心的控制元件,红灯和绿灯的切换还不够迅速,红绿灯不规则、效率还不是很高等等,这需要在实践中进一步完善。还有就是自己以前从来不注重流程图的设计与制作,现在发现要想把自己的思路理清,流程图很重要的,通过这次的学习我将要加强流程图的设计以及就是我们只是用一个仿真软件进行调试。并没有用实质的实验。
发现的问题:
1、使用中断比较麻烦,在试验中需要两次加载初始化程序和中断服务程序。
2、没有设计附加的电源。
3、这次的设计还是基于一些比较简单和基础,没有考虑到一些应急和一些现在比较先进的功能。
优化的方案:
在已有方案的基础上,我觉得延时应该把软件延时和中断延时的有点都要提取出来,既要把软件延时的简单,又要把中断延时的精确应用到项目里。添加一个额外的电源,以防因意外的情况断电,而造成交通混乱。还应该搞一个医院急救救护车让道优先通过的额外功能。增加一个交通指示灯,比如是十字灯。当有急救车通过事能有光电传感器感应,即是路口的信号灯全部变成十字灯!只容许救护车通过,还有就是能够增加一个能够报警功能,当有车辆闯红灯,那个交通灯会报警,当行人闯红灯也会自行报警。还有一个就是能够增加一个交通事故地点定位功能,通过交通灯能及时把交通事故现场信息反馈到电脑。同时能自动报警!
应电0933班 左兴华
第二篇:c程序设计作业
1、分析下面程序: # include
c1=97;
c2=98;
printf(“c1=%c,c2=%cn”c1,c2);
printf(“c1=%d,c2=%dn”,c1,c2);
return 0;}(1)运行时会输出什么信息?为什么?(2)如果将程序第4,5行改为
c1=197;c2=198;运行时会输出什么信息?为什么?(3)如果将程序第3行改为
int c1,c2;运行时会输出什么信息?为什么?
答:(1)程序运行不了,因为程序存在错误。正确的程序为:
#include
char c1,c2;
c1=97;
c2=98;
printf(“c1=%c,c2=%cn”,c1,c2);
printf(“c1=%d,c2=%dn”,c1,c2);
return 0;}
(2)如果将程序第4,5行改为
c1=197;c2=198;
运行时会输出:
(3)如果将程序第3行改为
int c1,c2;运行时会输出:
因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=98
2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上如何输入?
#include
int a,b;
float x,y;
char c1,c2;
scanf(“a=%db=%d”,&a,&b);
scanf(“%f%e”,&a,&y);
scanf(“%c%c”,&c1,&c2);
return 0;} 答:输入如图:
输出如图:
第三篇:智能交通灯控制系统 毕业设计总结
无
锡
职
业
技
术
学
院
毕业设计总结 毕业设计总结
本次毕业设计,我的指导老师是李丽老师,首先,我们进行总体规划,包括控制系统组成、控制系统工作过程、控制系统功能、控制系统技术指标;之后,进行了硬件系统设计,学习单片机原理与接口技术,网上搜索下载AT89C51、数码显示管、点亮LED技术资料,并学习消化,设计硬件控制原理,用Protel绘图软件设计出控制器原理图,并对控制器硬件进行了调试;接着,研究设计六线四相步进电机控制方式和方法;而后,规划出了控制软件结构图,设计出了主控模块程序流程图、各功能模块程序流程图,并逐功能模块编辑、编译、连接、测试控制程序,在编程过程中,我一边学习C51程序设计,一边熟悉Keil C51开发平台,一边编程设计控制程序;最后,对控制程序进行了测试和修改完善。
本次毕业设计创新点一是提出了六线四相步进电机启动加速控制技术方案,二是研究了六线四相步进电机各种运行控制方式。
本次毕业设计体会一是深刻认识到专业理论对指导实践工作的重要性,上学期间,专业理论学的不够扎实,不够深入、不够全面、不懂用途;二是现有的技能不能胜任实际工作,实际动手能力欠缺;三是不知道如何进行课题需求分析、课题总体规划;四是不知道如何进行软件结构设计;五是实际编程经验欠缺,缺少排除故障能力。所以,我们即将毕业的大学生需要与时俱进,克服不足,勤学苦练,迎接挑战,为国争光。
在该课题后续研究设计时,应重视步进电机特性研究,重视控制方法、控制方式研究;增加联网控制功能;增加LCD数据显示功能。
在这篇毕业设计论文即将完成的时候,我突然意识到自己的校园生活即将画上一个句号。当我踏上工作岗位的时候即将面对的是完全不同于之前十几年校园生活的新的旅程。如果说之前的日子是学会如何做人、如何做事、如何认识和理解世界、如何学会感恩,那么,今后的日子,我将真正成为一个有用的人,一个能与别人合作或者独立完成任务的人,一个真正懂得世界、懂得感恩并真正付出的人。
我要感谢我存在的这个世界赋予我的认知和理解,感谢父母给了我机会认识并引导抚育我这个世界,感谢二十几年来成百上千的老师与朋友让我能够在正确的道路上走得更远并且激励我成为一个坚定信念不做让自己后悔事情的人。
“穷则独善其身,达则兼济天下”,古训教导我们不做自私人,懂得尽己所能,知恩图报。一切来之不易,珍惜且能尽其用,算是在自己能力有限的时候对社会,对生活最大的慰藉和回报。今年的二月份,在经历了将近一年的苦苦寻觅之后,我终于遇到了一个适合自己发展的岗位,也终于能够将全部的精力投入到这次毕业设计之中。首先我非常感谢我的导师李老师对我的支持和宽容,因为这次毕设的题目来源于我在生活的灵感,并且有着强烈的愿望,期望它能够成为现实,期望在离开校园之前见证自己所学是有用的学问。李老师在我的毕设过程中给予我鼎力的支持,因而有机会实现这个愿望。同时,在漫长的设计和实践过程中,身边的同学和朋友都给了我很多支持和帮助,这也证明了即便是一个人的任务也需要集体的力量,庆幸自己在离开校园之前学到了很多今后可能及其重要的东西。
回顾自己的学习历程,感觉今天的生活与状态是由一系列的偶然与必然串联成的结果。在这个过程中自己承受了比别人更多的挫折,但也学到了更多的感悟,获得了比别人更大的成就。我体会了人生的正弦曲线,知道很多情况下结果是之前很长时间的累积,很有趣的是,我的这些感悟在大学的专业课学习的时候得到
/ 2
无
锡
职
业
技
术
学
院
毕业设计总结
了理论上描述的一致。因为我的每一次成功的获得都比别人晚了许多,但也都是在最关键的时候比别人得到了更多的收获,也比别人体会到更多的付出后的充实。很庆幸自己在过去岁月中每一次困难抉择中做出的选择,以及在不断地激励中为目标而不断奋斗的坚持。
“来到社会做什么?毕业后做一个怎样的人?”虽然即将毕业,但是这两个问题将常伴左右。第一个问题的答案已经深深写在自己三年大学生活的美好回忆之中,而第二个问题,将是我今后不断反省自我并思考未来的信条。
学无止境,无论每天往返于公司和住所,还是奔走于实验室与宿舍之间,作为一个职员或者学生,无时无刻不在接受新的知识、观点、理念。即便是创造社会价值,也仍需要不断补给养分。于此,作为刚刚走出校园的人,我将牢记于心。
最后,真诚期望每一个已经出现在或是即将出现在我不同人生阶段却是同一条生活轨迹的师长、亲友、战友们,能够始终拥有美好幸福的生活状态、以及一颗热忱于探索未知和真理的心,同时也是对自己未来生活的期冀。
第四篇:C语言程序设计--大作业
C语言程序设计大作业
编写程序,实现单链表的插入、删除、输出、查找、统计以及销毁功能。
单链表的每个结点存储一名学生的信息,包括:学号、姓名、性别、年龄、三门课程(高数、英语、C语言)的成绩、三门功课的平均分。
结构体类型声明如下: typedef struct student {
char sno[8];
char name[20];
char sex;
int age;double score[3];double avg;
struct student *next;} STUDENT, *PSTUDENT;
要求:
⑴一律使用 STUDENT 声明学生结构体的变量,一律使用 PSTUDENT 声明指向学生结构体的指针变量
⑵程序运行过程中要有菜单提示,菜单如下:
*************************************************************** *
1.Insert a student
* *
2.Delete a student
* *
3.Display the link list
* *
4.Display excellent students
* *
5.Search a student by the name
* *
6.Display the average score of three courses * *
0.Exit the program
* ***************************************************************
“Insert a student”:插入一个学生记录,要求按平均分从高到低插入 “Delete a student”:删除指定学号的学生 “Display the link list”:输出单链表中所有学生的信息 “Display excellent students”:输出链表中三门功课平均成绩高于85分(含85分)的学生信息 “Search a student by the name”:根据输入的姓名,输出链表中相应学生的信息 “Display the average score of three courses”:输出链表中所有学生的高数平均分、英语平均分以及C语言平均分 “Exit the program”:销毁单链表,结束程序运行
第五篇:程序设计(C)第三次作业
题目1
给定下列程序,则运行结果为()#include
void main(){ int a, b, c;
fun(11, 5, &a);
fun(8, a, &b);
fun(a, b, &c);
printf(“%d, %d, %dn”, a, b, c);}
A.2, 6, 4
B.2,4,6
C.6,4,2
D.6, 2, 4
题目2
两个指针变量不能()
A.指向同一地址
B.相加
C.比较
D.相减
题目3
C 语句int *func();中,func 表示的是()
A.返回值为指针的函数名称
B.指向数组的指针
C.指向整型变量的指针
D.指向函数的指针
题目4
下列说法中不正确的是()
A.C 语言规定,不能在一个函数的内部再定义函数
B.函数的类型可以是整型、实型、字符型,但不能是指针类型
C.在没有声明函数返回值类型的情况下,默认函数返回值类型为int 型
D.函数可以没有形参,但函数名后的括号不能省略
题目5
阅读下列程序段,其执行结果为()#include
x += a++;
printf(“%d,”, x);}
void main(){ int a = 3, x = 1;
fun(a);
x += a++;
printf(“%dn”, x);}
A.8,5
B.8,4
C.8,3
D.8,2
题目6
下列说法中正确的是()
A.如果形参与实参的类型不一致,则以实参类型为准
B.return 后面的值不能为表达式
C.定义函数时,形参的类型说明可以放在函数体内
D.如果函数值类型与return 后的返回值类型不一致,则以函数值类型为准
题目7
下列说法中错误的是()
A.在一个函数的复合语句中定义的变量只在本函数范围内有效
B.在不同的函数中可以使用相同名字的变量
C.函数中的形参是局部变量
D.在一个函数内定义的变量只在本函数范围内有效 题目8
给定下列程序,则其运行结果为()#include
{ static int array[][4] = {{1,3,5,7},{9,11,13,15},{17,19,21,23}};
int(* p)[4], i, j, sum[3];
p = array;
for(i = 0;i < 3;i++)
{ sum[i] = 0;
for(j = 0;j < 4;j++)
sum[i] += *(*(p + i)+ j);
printf(“%d,”, sum[i]);
} }
A.80
B.164880
C.144
D.16, 48, 80
题目9
若已定义的函数有返回值,则以下关于该函数调用的叙述错误的是()A.函数调用可以作为一个函数的实参
B.函数调用可以作为独立语句存在C.函数调用可以出现在表达式中
D.函数调用可以作为左值而被赋值
题目10
下列程序的输出结果是()#include void main()
{ char a[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', ' ' };
int i, j;
i = sizeof(a);
j = strlen(a);
printf(“%d, %dn”, i, j);}
A.9,8
B.9,9
C.1,8
D.8,9
题目11
已有定义char a[] = “xyz”, b[]={ 'x', 'y', 'z' } , 以下叙述正确的是()a.上述说法均不正确
b.数组a 的存储空间长度大于数组b 的存储空间长度
c.数组a 的存储空间长度小于数组b 的存储空间长度
d.数组a 和b 的存储空间长度相同
题目12
以下不能正确定义二维数组的选项是()
A.int a[2][] = {{1, 2}, {3, 4}};
B.int a[][2] = {1, 2, 3, 4};
C.int a[2][2] = {{1}, {2}};
D.int a[2][2] = {{1}, 2, 3};
题目13 下列叙述中错误的是()a.可以通过赋初值的方式确定数组元素个数
b.在程序执行过程中,当数组元素下标超出定义的下标范围时,系统将给出“下标”越界的错误提示
c.数组名代表数组所占存储区的首地址,其值不可变
d.对于double 类型数组,不可直接用数组名对数组进行整体输入或输出
题目14
在C语言中,对变量的访问方式是()
A.不能直接访问,能间接访问
B.直接、间接均不能
C.能直接访问,不能间接访问
D.能直接访问,也能间接访问
题目15
C语言规定,若未对函数返回类型加以说明,则函数的隐含类型为()A.void
B.double
C.char
D.int 题目16
给定下列程序,假定从键盘输入数据1、2,则执行结果为()#include
p2 = p2 + * p1;}
void main(){ int a, b, *p1;
scanf(“%d, %d”, &a, &b);
p1 = &a;
swap(p1, b);
printf(“a = %d, b = %dn”, a, b);}
A.a = 3, b = 5
B.3, 2
C.a = 3, b = 2
D.3,5
题目17
阅读下列程序段,其执行结果为()#include void main()
{ int a = 4, b = 6, c = 7;
double d;
double fun(int, int, int);
printf(“d = %lfn”, fun(a, b, c));}
double fun(int a, int b, int c){ return a % b * c;}
A.27
B.28
C.28.000000
D.27.000000
题目18
一个变量的指针就是()
A.变量的名称
B.变量的地址
C.变量的类型
D.变量的值
题目19
以下能正确定义一维数组的选项是()
A.int num[];
B.int num[0..100];
C.int N = 100;int num[N];
D.#define N 100 int num[N];
题目20
C语句: int(* pa)[5];中,pa 表示的是一个()
A.指针数组的名称
B.指向整型变量的指针
C.指向包含5个整型元素的一维数组的指针
D.指向函数的指针