燕山大学课程设计说明书

燕山大学课程设计说明书
燕山大学课程设计说明书

燕山大学课程设计说明书

课程设计名称:操作系统

题目:多道程序缓冲区协调操作

班级:应用(3)班

开发小组名称:FENGNIAO

课题负责人:王晓峰

课题组成员:姓名: 王晓峰学号: 0901********

班级: 应用3班自评成绩:A

姓名:王燕学号: 0901********

班级: 应用3班自评成绩:B

课题开发日期:2012年1月

1概述:

1.1目的:通过信号量实现多道程序缓冲区协调操作。

1.2主要完成的任务:

1.2.1根据同步机制,编写一个解决类似生产者消费者问题的程序,可显示buffer状态,put、move、get等操作。向buffer1中put信息,buffer2和buffer3从bufer1中取数据。假定这些put和move相互等效,只要buffer1未满,就可以向buffer1中存入信息,只要buffer1未空,就可以move取走一个消息。

1.2.2 显示Buffer的操作过程;

1.2.3程序运行结束,显示汇总数据:

总的运行时间;

Buffer中数据的个数;

已放入BUFFER的数据个数;

已放已取的数据个数;

1.3主要使用的开发工具:VC2010。

2使用的基本概念和原理:

2.1同步与互斥原理

进程互斥是进程之间发生的一种简介性作用,一般是程序不希望的。通常的情况是两个或两个以上的进程需要同时访问某个共享变量。我们一般将发生能够稳共享变量的程序段为临界区。两个进程不能同时进入临界区,否则就会导致数据的不一致性,产生与时间有关的错误。解决互斥问题应该满足互斥与公平俩个原则,即任意时刻只能允许一个进程处于同一共享变量的临界区,而且不能让任意进程无限期地等待。互斥问题可以用硬件方法解决,我们不做展开。

同步是指在互斥的基础上,通过其他机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必须是互斥的。少数情况下可以允许多个访问者同时访问资源。

2.2线程

线程,有时被称为轻量级进程,是程序执行的最小单元。一个标准的线程有线程ID,当前指令指针(PC),寄存器集合和堆栈组合。另外,此案成是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不用有系统资源,只拥有一点在运行中必不可少的资源,但他可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。每一个程序都至少有一个线程,那就是程序本身。

线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。

2.3多道程序

多道程序设计是指在主存中同时存放多道用户作业,使他们都处于执行的开始点和开始点之间,这些程序共享计算机系统资源。

多道程序设计的主要优点有:

(1)提高CPU利用率。在多道程序环境下,多个程序共享计算机资源当某个程序等待I/O操作时,CPU可以执行其他程序,大大提高CPU的利用率。

(2)提高设备的利用率。在多道程序环境下,多个程序共享系统的设备,大大提高系统设备的利用率。

(3)提高系统的吞吐量。在多道程序环境下,减少了程序的等待时间,提高了系统的吞吐量。

3总体设计:

面向过程进行设计,分别创建五个函数DWORD WINAPI Put(LPVOID),DWORD WINAPI Move1(LPVOID),DWORD WINAPI Move2(LPVOID,DWORD WINAPI Get1(LPVOID),DWORD WINAPI Get2(LPVOID);

然后创建各个互斥信号g_hMutexBuffer1,g_hFullSemaphore1,g_hEmptySemaphore1 ,定义put、move、get函数,调整数值发现,当put个数多余get个数时,put速度快,put经常等待get,反之put经常等待。然后分别创建线程:

for (int i=0;i

hThreads[i]=CreateThread(NULL,0,Put,NULL,0,&putID[i]);

if (hThreads[i]==NULL) return -1;

for (int i=0;i

hThreads[MOVE1_COUNT+i]=CreateThread(NULL,0,Move1,NULL,0,&move1ID[i]);

if (hThreads[i]==NULL) return -1;

}

for (int i=0;i

hThreads[MOVE2_COUNT+i]=CreateThread(NULL,0,Move2,NULL,0,&move2ID[i]);

if (hThreads[i]==NULL) return -1;

}

for (int i=0;i

hThreads[GET1_COUNT+i]=CreateThread(NULL,0,Get1,NULL,0,&get1ID[i]);

if (hThreads[i]==NULL) return -1;

}

for (int i=0;i

hThreads[GET2_COUNT+i]=CreateThread(NULL,0,Get2,NULL,0,&get2ID[i]);

if (hThreads[i]==NULL) return -1;

}

实现循环,然后设置回车结束。

while (g_continue)

{

if (getchar()) {

g_continue = false;

exit(0);

} 流程图:

4程序分析:

4.1设计思路上先编写了五个函数DWORD WINAPI Put(LPVOID),DWORD WINAPI Move1(LPVOID),DWORD WINAPI Move2(LPVOID,DWORD WINAPI Get1(LPVOID),DWORD WINAPI Get2(LPVOID);

4.2创建put 线程,在线程中实现循环,其他类似。

for (int i=0;i

hThreads[i]=CreateThread(NULL,0,Put,NULL,0,&putID[i]);

if (hThreads[i]==NULL) return -1;

4.3定义输出函数

void shuChu()

{

std::cout<<"Buffer1"<

for (int i=0;i

std::cout << i <<": " << g_buffer1[i];

if (i==in1) std::cout << " <-- put";

if (i==out1) std::cout << " <-- move";

std::cout << std::endl;

}

std::cout<<"Buffer2"<

for (int i=0;i

std::cout << i <<": " << g_buffer2[i];

if (i==in2) std::cout << " <-- move1";

if (i==out2) std::cout << " <-- get1";

std::cout << std::endl;

}

std::cout<<"Buffer3"<

for (int i=0;i

{

std::cout << i <<": " << g_buffer3[i];

if (i==in3) std::cout << " <-- move2";

if (i==out3) std::cout << " <-- get2";

std::cout << std::endl;

}

clock_t time=clock();

std::cout<<"时间是"<

}

4.4定义各个函数,详见源代码。

void Puts()

{ std::cerr << "put ... ";

PutID++;

g_buffer1[in1] = PutID;

in1 = (in1+1)%SIZE_OF_BUFFER1;

std::cerr << "Succeed" << std::endl;

shuChu();

}

DWORD WINAPI Put(LPVOID lpPara)

{

while (g_continue) {

WaitForSingleObject(g_hFullSemaphore1,INFINITE);

WaitForSingleObject(g_hMutexBuffer1,INFINITE);

Puts();

Sleep(1500);

ReleaseMutex(g_hMutexBuffer1);

ReleaseSemaphore(g_hEmptySemaphore1,1,NULL);

}

return 0;

}

5源代码及函数注释:

#include"stdafx.h"

#include

#include

#include

const unsigned short SIZE_OF_BUFFER1 = 10;

const unsigned short SIZE_OF_BUFFER2 = 10;

const unsigned short SIZE_OF_BUFFER3 = 10;

unsigned short PutID = 0;

unsigned short Move1ID = 0;

unsigned short Move2ID = 0;

unsigned short Get1ID = 0;

unsigned short Get2ID = 0;

unsigned short in1 = 0;

unsigned short out1 = 0;

unsigned short in2 = 0;

unsigned short out2 = 0;

unsigned short in3 = 0;

unsigned short out3 = 0;

int g_buffer1[SIZE_OF_BUFFER1];

int g_buffer2[SIZE_OF_BUFFER2];

int g_buffer3[SIZE_OF_BUFFER3];

bool g_continue = true;

HANDLE g_hMutexBuffer1;

HANDLE g_hFullSemaphore1;

HANDLE g_hEmptySemaphore1;

HANDLE g_hMutexBuffer2;

HANDLE g_hFullSemaphore2;

HANDLE g_hEmptySemaphore2;

HANDLE g_hMutexBuffer3;

HANDLE g_hFullSemaphore3;

HANDLE g_hEmptySemaphore3;

DWORD WINAPI Put(LPVOID);

DWORD WINAPI Move1(LPVOID);

DWORD WINAPI Move2(LPVOID);

DWORD WINAPI Get1(LPVOID);

DWORD WINAPI Get2(LPVOID);

int main()

{

g_hMutexBuffer1 = CreateMutex(NULL,FALSE,NULL);

g_hFullSemaphore1 = CreateSemaphore(NULL,SIZE_OF_BUFFER1-1,SIZE_OF_BUFFER1-1,NULL);

g_hEmptySemaphore1 = CreateSemaphore(NULL,0,SIZE_OF_BUFFER1-1,NULL);

g_hMutexBuffer2 = CreateMutex(NULL,FALSE,NULL);

g_hFullSemaphore2 = CreateSemaphore(NULL,SIZE_OF_BUFFER1-1,SIZE_OF_BUFFER1-1,NULL);

g_hEmptySemaphore2 = CreateSemaphore(NULL,0,SIZE_OF_BUFFER1-1,NULL);

g_hMutexBuffer3 = CreateMutex(NULL,FALSE,NULL);

g_hFullSemaphore3

= CreateSemaphore(NULL,SIZE_OF_BUFFER1-1,SIZE_OF_BUFFER1-1,NULL);

g_hEmptySemaphore3 = CreateSemaphore(NULL,0,SIZE_OF_BUFFER1-1,NULL);

const unsigned short PUT_COUNT = 3;

const unsigned short MOVE1_COUNT = 3;

const unsigned short MOVE2_COUNT = 3;

const unsigned short GET1_COUNT = 3;

const unsigned short GET2_COUNT = 3;

Const unsigned short THREADS_COUNT = PUT_COUNT+MOVE1_COUNT+MOVE2_COUNT+GET1_COUNT+GET2_COUNT;

HANDLE hThreads[THREADS_COUNT];

DWORD putID[PUT_COUNT];

DWORD move1ID[MOVE1_COUNT];

DWORD move2ID[MOVE2_COUNT];

DWORD get1ID[GET1_COUNT];

DWORD get2ID[GET2_COUNT];

for (int i=0;i

hThreads[i]=CreateThread(NULL,0,Put,NULL,0,&putID[i]);

if (hThreads[i]==NULL) return -1;

}

for (int i=0;i

hThreads[MOVE1_COUNT+i]=CreateThread(NULL,0,Move1,NULL,0,&move1ID[i]);

if (hThreads[i]==NULL) return -1;

}

for (int i=0;i

hThreads[MOVE2_COUNT+i]=CreateThread(NULL,0,Move2,NULL,0,&move2ID[i]);

if (hThreads[i]==NULL) return -1;

}

for (int i=0;i

hThreads[GET1_COUNT+i]=CreateThread(NULL,0,Get1,NULL,0,&get1ID[i]);

if (hThreads[i]==NULL) return -1;

}

for (int i=0;i

hThreads[GET2_COUNT+i]=CreateThread(NULL,0,Get2,NULL,0,&get2ID[i]);

if (hThreads[i]==NULL) return -1;

}

while (g_continue)

{

if (getchar()) {

g_continue = false;

exit(0);

}

}

return 0;

}

void shuChu()

{

std::cout<<"Buffer1"<

for (int i=0;i

std::cout << i <<": " << g_buffer1[i];

if (i==in1) std::cout << " <-- put";

if (i==out1) std::cout << " <-- move"; std::cout << std::endl;

}

std::cout<<"Buffer2"<

for (int i=0;i

std::cout << i <<": " << g_buffer2[i];

if (i==in2) std::cout << " <-- move1";

if (i==out2) std::cout << " <-- get1"; std::cout << std::endl;

}

std::cout<<"Buffer3"<

for (int i=0;i

{

std::cout << i <<": " << g_buffer3[i];

if (i==in3) std::cout << " <-- move2";

if (i==out3) std::cout << " <-- get2"; std::cout << std::endl;

}

}

clock_t time=clock();

std::cout<<"时间是"<

{

std::cerr << "put ... ";

g_buffer1[in1] = PutID;

PutID++;

in1 = (in1+1)%SIZE_OF_BUFFER1;

std::cerr << "Succeed" << std::endl;

shuChu();

}

void MoveTo1s()

{

std::cerr << "Move1 ... ";

Move1ID = g_buffer1[out1];

out1 = (out1+1)%SIZE_OF_BUFFER1;

g_buffer2[in2] = Move1ID;

in2 = (in2+1)%SIZE_OF_BUFFER2;

std::cerr << "Succeed" << std::endl;

shuChu();

}

void MoveTo2s()

{

std::cerr << "Move2 ... ";

Move2ID = g_buffer1[out1];

out1 = (out1+1)%SIZE_OF_BUFFER1;

g_buffer3[in2] = Move2ID;

in3 = (in3+1)%SIZE_OF_BUFFER3;

std::cerr << "Succeed" << std::endl;

shuChu();

}

void Get1s()

{

std::cerr << "get1 ";

Get1ID = g_buffer2[out2];

out2 = (out2+1)%SIZE_OF_BUFFER2;

std::cerr << "Succeed" << std::endl;

shuChu();

}

void Get2s()

{

std::cerr << "get2 ";

Get2ID = g_buffer3[out3];

out3 = (out3+1)%SIZE_OF_BUFFER3;

std::cerr << "Succeed" << std::endl;

shuChu();

}

DWORD WINAPI Put(LPVOID lpPara)

{

while (g_continue) {

WaitForSingleObject(g_hFullSemaphore1,INFINITE);

WaitForSingleObject(g_hMutexBuffer1,INFINITE);

Puts();

Sleep(1500);

ReleaseMutex(g_hMutexBuffer1);

ReleaseSemaphore(g_hEmptySemaphore1,1,NULL);

}

return 0;

}

DWORD WINAPI Get1(LPVOID lpPara)

{

while (g_continue) {

WaitForSingleObject(g_hEmptySemaphore2,INFINITE);

WaitForSingleObject(g_hMutexBuffer2,INFINITE);

Get1s();

Sleep(1500);

ReleaseMutex(g_hMutexBuffer2);

ReleaseSemaphore(g_hFullSemaphore2,1,NULL);

}

return 0;

}

DWORD WINAPI Get2(LPVOID lpPara)

{

while (g_continue) {

WaitForSingleObject(g_hEmptySemaphore3,INFINITE);

WaitForSingleObject(g_hMutexBuffer3,INFINITE);

Get2s();

Sleep(1500);

ReleaseMutex(g_hMutexBuffer3);

ReleaseSemaphore(g_hFullSemaphore3,1,NULL);

}

return 0;

}

DWORD WINAPI Move1(LPVOID lpPara)

{

while (g_continue)

{

WaitForSingleObject(g_hEmptySemaphore1,INFINITE);

WaitForSingleObject(g_hMutexBuffer2,INFINITE);

WaitForSingleObject(g_hMutexBuffer1,INFINITE);

WaitForSingleObject(g_hFullSemaphore2,INFINITE);

MoveTo1s();

Sleep(1500);

ReleaseMutex(g_hMutexBuffer2);

ReleaseMutex(g_hMutexBuffer1);

ReleaseSemaphore(g_hFullSemaphore1,1,NULL);

ReleaseSemaphore(g_hEmptySemaphore2,1,NULL);

}

return 0;

}

DWORD WINAPI Move2(LPVOID lpPara)

{

while (g_continue) {

WaitForSingleObject(g_hEmptySemaphore1,INFINITE);

WaitForSingleObject(g_hMutexBuffer3,INFINITE);

WaitForSingleObject(g_hMutexBuffer1,INFINITE);

WaitForSingleObject(g_hFullSemaphore3,INFINITE);

MoveTo2s();

Sleep(1500);

ReleaseMutex(g_hMutexBuffer3);

ReleaseMutex(g_hMutexBuffer1);

ReleaseSemaphore(g_hFullSemaphore1,1,NULL);

ReleaseSemaphore(g_hEmptySemaphore3,1,NULL);

}

return 0;

}

6运行结果

7总结:

能实现要求的功能,能进行数据的输入可以模仿一个进程可以不断地随机产生页面存取序列,也可以输入一个页面存取序列,可以设置输入留驻页面的个数,可以设置内存、快表、缺页中断的时间,并提供省缺值。能实时显示一个进程逻辑页面的状态和内存的使用状况。能计算FIFO、LRU、OPT页面置换算法的置换次数;能计算计算每种页面置换算法每个页面的存取时间。能直观的从输出结果中看到和比较3种算法的不同之处。

缺点:因为不太懂mfc没有对c++源程序进行可视化窗口改写,使用上可能不太方便。

8收获及经验心得:

通过这次课程设计,我们巩固了使用多线程编程的方法,和使用信号量同步进程的技巧。本次课程设计的程序的运行结果跟预期一致,说明改程序能顺利解决多道程序缓冲区协调操作问题实现了本次课程设计的目的。同时使我们体会到任何一门知识的掌握,紧靠学习理论知识是远远不够的,要与实际动手操作相结合才能达到功效。短短的课程设计就要结束了,不但对专业知识有了更深的理解,更使我们认识到实践的重要性。只有理论与实践相结合才能达到更好的学习效果。

9参考文献:

西安电子科技大学出版社计算机操作系统(第三版)清华大学出版社C++面向对象程序设计教程(第三版)

单片机课程设计题目

《单片机原理与应用》课程设计题目 1.基于单片机的电子秒表 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,即□□8—>□8□—>8□□—>□□8—>…,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0~99.9秒。 要求按键输入采用中断方式,按键A接INT0,按键B接INT1。 2.智能电动百叶窗 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,用一台直流电机控制百叶窗叶片的旋转(正转/反转),用一个光敏电阻传感器测量室内光强度,并用两位数码管显示测量结果,设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态,自动状态时二极管亮。 设置两个极限位置保护行程开关,用于保护百叶窗叶片:当正转到极限位置压下行程开关时,电机停止正转,但还可以反转;当反转到极限位置压下行程开关时,电机停止反转,但还可以正转。 按键输入采用中断方式,按键中断请求信号接INT0. 单片机根据设定光强S1和S2(S2 > S1)和实测光强P控制电机M的动作:当P<=S1时,控制M正转以增加进光量; 当P>S2时,控制M反转以减少进光量; 当S1S+1时,控制R断开电加热回路; 当S-1

单片机课程设计选题

单片机课程设计选 题

单片机原理与接口技术课程设计题目 以下题目任选其一,1-2人一组,自由组合,组内各人必须有明确的分工,原则上同一组最多一个同学得优。 可使用任何单片机或ARM,1-4要求自己设计全部硬件和焊接电路板,5-10题可用现成的单片机开发板,5-6题亦可用proteus仿真。自拟题的根据题目难度由指导老师决定能否用现成的单片机开发板。 一、PC机看门狗(每班最多6人选此题,难度系数:低) 功能:当PC机死机时能自动使其重新启动。 硬件:可使用串口或USB与PC机通讯。 软件:PC机上软件编程可选用任何一种面向对象开发软件,如VC,Delphi等。 实现原理:PC机正常时,每隔一段时间经过串口向单片机发送一些固定的数据,单片机如果收到此数据,说明PC机正常,如果超时未收到,则控制PC机重新启动。 二、电子琴设计(每班最多6人选此题,难度系数:中) 使用4×4行列式键盘和蜂鸣器实现电子琴的功能。键盘符号定义如下: 按下1-7,实验箱上的蜂鸣器发出对应的音调(中音),当同时按下L和1-7时是,蜂鸣器发出低音,同时按下H和1-7时,蜂鸣

器发高音。只要按键没松开,蜂鸣器一直发声,直到松开按键。 扩展功能:在彩屏LCD上显示电子琴图片,用触摸屏控制发音,就像真正弹电子琴一样。 三、自行车测速仪 (难度系数:中偏高) 基本功能:能实时显示自行车的行驶速度 附加功能:实时时钟,行驶里程累计 要求具备一定的实用价值,即要考虑如下问题(也是答辩时的考察和评分指标): 1、体积要做到尽量小 2、为了省电,要使用低电压工作的单片机,比如使用2.0-3.3V 工作电压的单片机 3、供电采用可充电的聚合物锂电池(普通手机电池),一次充 电后的使用时间最少12小时 4、最好能直接用单车轮子的旋转为电池充电(选做)。 四、计算器设计 1、使用4×4行列式键盘和1602液晶(其它液晶亦可)或数码 管,实现普通十进制计算器的功能,键盘符号定义如下:

单片机课程设计实习报告

【最新】单片机课程设计实习报告 单片机课程设计实习报告 实训任务: 做单一灯的左移右移,八个发光二极管l1-l8分别接在单片机的p1.0 p1.2 p1.3┅ p1.7 p1.6 ┅ p1.0亮,重复循环3次.然后左移2次,右移2次,闪烁2次(延时的时间0.2秒). 一. 实训目的和要求: (1)熟练掌握keil c51集成开发环境的使用方法 (2)熟悉keil c51集成开发环境调试功能的使用和dp?https://www.360docs.net/doc/7a18181951.html,单片机仿真器.编程器.实验仪三合一综合开发平台的使用. (3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口. (4)了解掌握单片机芯片的烧写方法与步骤. (5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用. (6)掌握利用protel 99 se绘制电路原理图及pcb图. (7)了解pcb板的制作腐蚀过程. 二.实训器材: pc机(一台)http://shi_i.e_am8/ pcb板(一块) 5_ 电阻(八只) 10k电阻(一只) led发光二极管(八只) 25v 10 f电容(一只) 单片机ic座(一块) at89c51单片机芯片(一块) 热转印机(一台) dp?https://www.360docs.net/doc/7a18181951.html,单片机仿真器.编程器.实验仪三合一综合开发平台(一台) 三.实训步骤: (1)根据原理图(下图所示),用导线把单片机综合开发平台a2区的j61接口与d1区的j52接口相连.

(2)将流水灯程序编写完整并使用tkstudy ice调试运行. (3)使用导线把a2区j61接口的p1口7个口分别与j52接口的八个led 相连. (4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求. (5)观察运行结果,若能实现功能,则将正确编译过的he_文件通过easypro51编程器写入mcu片内存储器,然后将烧写的芯片a2区的圆孔ic座进行最终实验结果的演示. (6)制板.首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净. (7)焊接.将所给元器件根据原理图一一焊至pcb板相应位置. _3下一页

燕山大学软件工程课程设计

燕山大学 课程设计报告自习室座位管理系统 学院信息科学与工程学院年级专业09级计算机科学2班学生姓名XXX 090104010XXX XXX 090104010XXX XXX 090104010XXX 指导教师XXX 提交日期2012-6-14

摘要 本次课程设计在Windows 7平台上,以VS2010作为界面开发工具,分析设计了“图书馆自习室座位管理系统”。学生可以通过终端进行座位申请、座位退还、座位保留操作;管理员可以通过账户登录获取管理权限,对数据库进行更新和修改。 本报告中首先说明了该系统的特点与业务需求,构造了系统的数据模型、功能模型和动态模型,之后详细说明了系统的业务流程和系统开发流程,重点介绍了系统各模块的功能及相关功能的实现方向。 关键词座位管理系统;座位;数据库;VS2010;动态模型;模块

目录 摘要 (1) 第1章绪论 (2) 1.1 课题背景 (3) 1.2 课题意义 (4) 1.3 选题依据 (5) 第2章系统需求分析 (10) 2.1 系统功能描述 (10) 2.2 系统功能需求 (11) 2.3系统功能模块图 (12) 第3章系统总体设计 (13) 2.1 系统方案选取 (14) 2.2 系统功能设计 (15) 2.3数据库设计 (16) 结论 (18) 参考文献 (53)

第一章绪论 1.1 背景和意义 在大学中,公共自习室的座位管理是一个很重要的问题,因为它牵扯到能否让每个同学公平地享用到其应有的公共资源,同时更好的做好配合学校教学的服务工作,所以一个有力的图书馆座位管理系统不可或缺。由于图书馆的座位是免费使用,所以必须要做到公平;但是,图书馆的座位资源有限,应该得到最大限度地使用,所以必须讲究效率。每到学期末或考试周,图书管的公共自习室就变成了紧俏资源,一系列因为管理上的不力所产生的问题接踵而至,例如:一些座位被长期占用却得不到回收,一人同时占用多个座位,座位信息不能及时反馈给同学等等。一个有力的座位管理系统可以公平管理和分配公共资源,使其得以充分利用,并节省人力物力,避免人为因素所导致的错误,同时还可以实时更新信息使得信息统一从而为同学节省宝贵时间。 现代信息技术的飞速发展给我们生活带来了极大的便利,尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。作为计算机应用的一部分,管理信息系统具有着手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、寿命长、实时性好、成本低等。如果我们将信息技术运用至自习室座位管理系统,那么再给我们带来方便的同时,也能让我们时刻体会到数字化的乐趣。 1.2 主要内容和工作 (1)前期准备:做好需求分析工作,作为一个座位管理系统,使用者应该以学生为主,自习室座位信息更新界面应简单易用,输入方便,针对学生对系统的实时性要求较高的特点,要做好数据库的设计。需求分析之后要进一步明确问题域,站在用户人群的角度进行开发。进行可行性分析,从经济、技术、操作等方面入手,看问题能否解决。 (2)设计实施:对系统功能进行调查分析,逐步抽象,构造功能模块,建立系统的功能模型、数据模型、动态模型。然后进行总体设计,完成系统的大致框架,画出层次图。然后再进行详细设计工作,完成数据编码工作,设计出数据库和人机界面。

单片机课程设计计算器

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:四位数加法计算器的设计学院名称:电气信息学院 专业班级: 学生学号:

学生姓名: 学生成绩: 指导教师: 课程设计时间:至

格式说明(打印版格式,手写版不做要求) (1)任务书三项的内容用小四号宋体,倍行距。 (2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。 (3)章的标题用四号黑体加粗(居中排)。 (4)章以下的标题用小四号宋体加粗(顶格排)。 (5)正文用小四号宋体,倍行距;段落两端对齐,每个段落首行缩进两个字。 (6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。 (8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。 (9)标题编号应统一,如:第一章,1,,……;论文中的表、图和公式按章编号,如:表、表……;图、图……;公式()、公式()。

课程设计任务书 一、课程设计的任务和基本要求 (一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏) 1. 系统通过4x4的矩阵键盘输入数字及运算符。 2. 可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E。 3. 可以进行加法以外的计算(乘、除、减)。 4. 创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。 (二)基本要求 1.有硬件结构图、电路图及文字说明; 2.有程序设计的分析、思路说明; 3.有程序流程框图、程序代码及注释说明; 4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus 软件中仿真模拟); 5.有程序运行结果的截屏图片。

机械设计制造及其自动化专业_百度文库(精)

机械设计制造及其自动化专业 业务培养目标: 业务培养目标:本专业培养具备机械设计制造基础知识与应用能力,能在工业生产第一线从事机械制造领域内的设计制造、科技开发、应用研究、运行管理和经营销售等方面工作的高级工程技术人才。 业务培养要求:本专业学生主要学习机械设计与制造的基础理论,学习微电子技术、计算机技术和信息处理技术的基本知识,受到现代机械工程师的基本训练,具有进行机械产品设计、制造及设备控制、生产组织管理的基本能力。 毕业生应获得以下几方面的知识和能力: 1.具有较扎实的自然科学基础、较好的人文、艺术和社会科学基础及正确运用本国语言、文字的表达能力; 2.较系统地掌握本专业领域宽广的技术理论基础知识,主要包括力学、机械学、电工与电子技术、机械工程材料、机械设计工程学、机械制造基础、自动化基础、市场经济及企业管理等基础知识; 3.具有本专业必需的制图、计算、实验、测试、文献检索和基本工艺操作等基本技能; 4.具有本专业领域内某个专业方向所必要的专业知识,了解其科学前沿及发展趋势; 5.具有初步的科学研究、科技开发及组织管理能力; 6.具有较强的自学能力和创新意识。 主干课程: 主干学科:力学、机械工程。

主要课程:工程力学、机械设计基础、电工与电子技术、微型计算机原理及应用、机械工程材料、制造技术基础。 主要实践性教学环节:包括军训,金工、电工、电子实习,认识实习,生产实习,社会实践,课程设计,毕业设计(论文等,一般应安排40周以上。 修业年限:四年 授予学位:工学学士 相近专业:机械设计制造及其自动化材料成型及控制工程工业设计过程装备与控制工程车辆工程机械工程及自动化机械电子工程汽车服务工程机械类车辆保险与理赔专业 ====推荐图书=== 高考专业详解与填报指南 开办院校 北京 [比较]华北电力大学(北京 [比较]中国农业大学[比较]中国地质大学[比较]北京化工大学 [比较]北京林业大学[比较]北京信息科技大学[比较]北方工业大学[比较]北京石油化工学院 [比较]北京物资学院 天津 [比较]天津大学[比较]天津工程师范学院[比较]天津城市建设学院 上海

单片机课程设计题目汇总(全)

单片机课程设计题目汇总(一) 说明:为便于同学提前探讨开发思路,自学相关内容,特将本课程设计的可选题目发给大家。本次题目为其一部分,稍后会有另一部分。鼓励大家自己设计题目。 要求:每个小组2-3人,每个题目最多限两个小组选;课程设计考核内容包括:C51源程序;现场显示结果;设计报告文档(文档的格式稍后公布,请注意查收)。 一、基于单片机的交通灯显示系统(一) 设计内容:1、东西方向、南北方向均有红、黄、绿三种信号灯;(30分) 2、带紧急制动按钮,按钮按下,所有方向亮红灯;再次按下, 恢复正常显示(20分) 3、夜间模式按钮按下,所有方向显示黄灯闪烁(20分) 4、实时提醒绿灯亮的剩余时间(30分) 图示: 二、基于单片机的交通灯显示系统(二) 设计内容:1、东西干道和南北干道的通行分左行、右行、直行,其中左行、右行固定15秒;直行固定30秒(40分) 2、信号灯分绿灯(3种)、红灯、黄灯,每次绿灯换红灯时,黄 灯亮3秒钟。(30分) 3、东西干道和南北干道交替控制,每次干道绿灯交替时,有3 秒钟所有干道的交通灯都是黄灯闪烁3秒钟,提示已经进入路口的车辆迅速通过。(30分) 4、其他创新内容。(10分) 图示: 三、基于单片机的波形发生器设计 设计内容:1、设计一款能产生3种以上波形的波形发生器(30分) 2、设计波形选择按钮(采用3个独立按键)(10分) 3、点阵显示波形图案(20分) 4、能同时输出两种波形(30分)

5、显示频率(10分) 图示: 四、基于单片机的LED点阵广告牌设计 设计内容:1、能显示不同字符、图形的LED点阵广告牌(30分) 2、用独立按键控制不同字符的切换效果(如闪烁、静止、平移) (30分) 3、可通过串口从电脑下载更新需要显示的字符(30分) 4、其他创新功能(10分) 图示:略 五、基于单片机的篮球计分器设计 设计内容:1、设计LCD显示篮球比分牌(30分) 2、通过加分按钮可以给A队或B队加分(20分) 3、设计对调功能,A队和B队分数互换,意味着中场交换场地。 (20分) 4、显示比赛倒计时功能(20分) 5、创新内容:如显示第几小节(10分) 显示: 六、基于单片机的电子贺卡设计 设计内容:1、设计基于单片机的伴奏乐曲(30分) 2、设计基于单片机的彩屏图片(30分) 3、通过矩阵键盘按键显示不同彩屏图片,并伴有不同乐曲(30 分) 4、创新部分(自主设计)(10分) 显示:(略) 七、电风扇模拟控制系统设计 设计内容:1、3个独立按键分别控制“自然风”、“睡眠风”、“常风”,(三者的区别是直流电机的停歇时间不同),并在数显管上显示出区别(30分) 2、每种类型风可以根据按下独立按键次数分为4个档的风力调 节。(30分) 3、设计风扇的过热保护,用继电器实现。即当风扇运行一段时 间后,暂停10秒。(30分) 4、其他创新内容(如报警提示)(10分)

燕山大学操作系统课程设计说明书

燕山大学课程设计说明书课程设计名称:操作系统 题目:多道程序缓冲区协调操作 (模拟生产者消费者问题) 课题负责人: 学院:信息科学与工程学院 班级: 姓名: 学号: 课题开发日期:2014年1月13日 自评成绩: A

目录 1概述-------------------------------------------------------------------- ------------------3 目的--------------------------------------------------------3 主要完成的任务----------------------------------------------3 使用的开发工具、开发语言------------------------------------3 本软件解决的主要问题 ---------------------------------------4 2 设计的基本理念、概念和原理------------------------------------------------4 设计的基本理念----------------------------------------------4 基本概念----------------------------------------------------4 基本原理----------------------------------------------------5 3 总体设计----------------------------------------------------5 基本的技术路线:面向对象--------------------------------------------------------5 模块关系及总体流程-------------------------------------------5 4 详细设计----------------------------------------------------7 变量设计----------------------------------------------------7 线程的设计--------------------------------------------------7 button按钮的设计-------------------------------------------8 5编码设计----------------------------------------------------9 开发环境----------------------------------------------------9 注意事项----------------------------------------------------9 主要代码设计------------------------------------------------9 PUTTER线程的设计---------------------------------------------------9 MOVER1线程的设计---------------------------------------------------10 GETTER1线程的设计--------------------------------------------------11 “开始”按钮的设计--------------------------------------------------12 “结束”按钮的设计--------------------------------------------------14 解决的主要难题----------------------------------------------16 6测试出现的问题及其解决方案-------------------------------16 7工程总结----------------------------------------------------16 8参考文献----------------------------------------------------16

单片机课程设计题目汇总(全)

单片机原理与接口技术课程设计题目汇总 说明:为便于同学提前探讨开发思路,特将本课程设计的可选题目发给大家。 每个同学可以在以下题目中选一题要求:课程设计考核内容包括:源程序;设计报告文档基于单片机的电子时钟设计设计内容:1、用LCD液晶作为显示设备(30分) 2、可以分别设定小时,分钟和秒,复位后时间为:00: 00:00 (30 分) 3、能实现日期的设置,年、月、日(30分) 4、其他创新内容(10分)如:闹钟功能;显示星期;整点音乐报时等。 图示: 2010-04-09 MON 11:06:42 基于单片机的交通灯显示系统(一) 设计内容:1、东西方向、南北方向均有红、黄、绿三种信号灯;(30 分) 2、带紧急制动按钮,按钮按下,所有方向亮红灯;再次按下,恢复正常显 示(20分) 3、夜间模式按钮按下,所有方向显示黄灯闪烁(20分) 4、实时提醒绿灯亮的剩余时间(30分)图示: 基于单片机的交通灯显示系统(二) 设计内容:1、东西干道和南北干道的通行分左行、右行、直行,其中左行、右行固定15秒;直行固定30秒(40分) 2、信号灯分绿灯(3种)、红灯、黄灯,每次绿灯换红灯时,黄灯亮3秒 钟。(30分) 3、东西干道和南北干道交替控制,每次干道绿灯交替时,有 3 秒钟所有干道的交通灯都是黄灯闪烁3秒钟,提示已经进入路口的车辆迅速通过。(30分)

4、其他创新内容。(10分) 图示: 四、基于单片机的波形发生器设计 设计内容:1、设计一款能产生3种以上波形的波形发生器(30分) 2、设计波形选择按钮(采用3个独立按键)(10分) 3、点阵显示波形图案(20分) 4、能同时输出两种波形(30分) 5、显示频率(10分) 图示: 五、基于单片机的LED点阵广告牌设计 设计内容:1、能显示不同字符、图形的LED点阵广告牌(30分) 2、用独立按键控制不同字符的切换效果(如闪烁、静止、平移)(30 分) 3、可通过串口从电脑下载更新需要显示的字符(30分) 4、其他创新功能(10分) 图示:略 六、基于单片机的篮球计分器设计 设计内容:1、设计LCD显示篮球比分牌(30分) 2、通过加分按钮可以给A队或B队加分(20分) 3、设计对调功能,A队和B队分数互换,意味着中场交换场地。(20 分) 4、显示比赛倒计时功能(20分) 5、创新内容:如显示第几小节(10分) 显示: A 083: B 079 4th Period 10:25

燕山大学金属材料工程专业焊接方向培养计划

金属材料焊接专业培养计划 学制:四年起用年级:2008 培养目标: 金属材料焊接专业:本专业培养能坚持社会主义道路、德智体全面发展、适应社会主义市场经济发展需要的、高素质的复合型金属材料焊接专业的高级工程技术人才。要求学生具有良好的物理、化学基础及较高的外语水平、掌握计算机应用技术,掌握金属材料及焊接的基本知识、同时在两者的结合领域受到严格的训练。学生毕业后可到工矿企业、科研院所、大专院校等企事业单位从事现代金属材料的焊接生产、管理和开发新材料、新工艺、新产品等工作,也可以继续攻读材料科学与工程专业及相关学科的硕士、博士学位。 培养要求: 金属材料焊接专业:本专业主要学习金属材料及焊接技术方面的基本理论和基本知识,受到焊接基本方法的训练,具有分析和解决金属材料的的结构、性能和焊接生产等问题的基本能力。 毕业生应获得以下几方面的知识和能力: 1. 掌握金属材料的物理冶金、制备和焊接工艺以及相关设备的基本理论、基本知识; 2. 掌握金属材料组织和性能的研究方法; 3. 具有较强的分析和解决金属材料及其热处理质量问题的基本能力; 4. 了解本学科的理论前沿和发展动态; 5. 掌握文献检索、资料查询基本方法,具有一定的科学研究和实际工作能力。 主干学科:金属材料焊接 学位课:毛泽东思想、邓小平理论和“三个代表”重要思想概论、高等数学、材料近代分析测试方法、金属力学性能、金属物理性能、金属腐蚀与防护、计算机在材料科学中的应用、大型铸锻件材料及热加工工艺。 金属材料焊接专业:金属学与热处理、焊接冶金学、金属焊接性、弧焊方法及工艺、焊接结构、压力焊与钎焊。 集中实践教学环节:国防教育与军事训练、课程设计、金工实习、专业调研、材料专业实验、生产实习、毕业设计。 授予学位:工学学士

STC12C5A60S2单片机课程设计报告

一、课程设计基本情况介绍 1.1课程设计的基本目的与任务 本课程设计旨在驾驭本专业学生理论指导实践能力以及电子产品工程设计与开发能力。本实践课所要达到的主要目的是: 1、通过本次课程设计,是对学生综合能力的检,提高学生综合运用专业知识,强化单片机 应用系统设计与防震能力。 2、本次课程设计是在生产实习所完成的“单片机核心板+电子钟模块+MP3模块+RFID模块+无线传输模块+GPS模块+脉搏传感模块”的基础上设计该硬件系统的工作程序。 1.2课程设计的基本内容 1、在生产实习设计单片机硬件系统的基础上,设计相应的应用软件系统。 2、在LCD1602上显示学号程序设计。 3、基于DS1302的实时时钟软件设计。 4、基于DS18B20的温度测量软件设计。 5、基于TL1838A的红外遥控解码软件设计。 6、设计应用软件系统框图和流程图,完成所设计软件的调试。 1.3课程设计的教学要求 1、通过资料查阅及学习了解单片机应用系统的软件设计方法及单片机编程、软硬件联机调 试技巧。 2、独立设计并编写下列应用程序: (1)LCD1602学号显示程序; (2)DS1302实时时钟程序; (3)DS18B20温度测量程序; (4)TL1838A红外遥控解码程序; 3、独立完成所设计程序与硬件系统的联机仿真。 二、整机系统框图(硬件、软件) 该设计方案是以STC12C5A60S2单片机为核心,采用LCD液晶屏幕显示模块、实时时钟模块、温度测量模块、红外遥控解码等模块所构建的系统,能在LCD1602液晶屏上显示当前的日期(年、月、日)、时间(时、分、秒)数据、当前环境温度值和红外遥控解码值。用户可通过遥控器或单片机核心板上的按键来进行日期和时间的设置。本系统设计大部分功能由软件来实现,电路简单明了,系统稳定性也得到大大提高。 1、总体硬件设计框架图: 2、总体软件设计框架图 /////// 三、整机硬件电路原理图(见99SE图) 1、核心板电路原理图 2、蜂鸣器驱动电路 3、按键电路 4、单片机复位电路 5、LCD1602液晶显示电路 6、电子钟模块接口电路 四、软件系统设计思想 //////////// 五、系统软件资源分配表(调试程序、工作程序) ////////////// 六、显示学号的调试程序流程图、程序源代码

燕山大学发电厂电气部分课程设计 大型骨干电厂电气主接线

目录 第一章原始资料的分析 (1) 1.1电压等级 (1) 第二章电气主接线方案 (1) 2.1 电气主接线设计的基本原则 (1) 2.2 具体方案的拟定 (2) 第三章主要电气设备的选择 (4) 3.1 发电机 (4) 3.2 主变压器 (4) 3.4 断路器和隔离开关 (5) 3.5电压互感器 (8) 3.6电流互感器的选择 (9) 3.7 母线的导体 (10) 第四章方案优化 (11) 第五章短路电流计算 (12) 5.1 等效阻抗网络图 (12) 5.2阻抗标幺值计算 (12) 5.3 短路点短路电流计算 (14) Q的计算 (15) 5.4 短路电流热效应 K 第六章校验动、热稳定(设备) (17) 6.1断路器稳定校验 (18) 6.2 隔离开关稳定校验 (18) 6.3电流互感器稳定校验 (19) 6.4 母线导体稳定校验 (20) 第七章心得体会 (20) 参考资料 (21)

大型骨干电厂电气主接线 第一章原始资料的分析 1.1电压等级 根据原始资料的分析可知,需要设计的是一个大型骨干凝汽电厂,共有两个电压等级:220KV,500KV 1.2 系统(电源)、负荷 电压等级进出线回数负荷(max) 负荷(min) 220kv 4 600MW 300MW 500kv 6 1.3 发电机、主变压器容量及台数 发电机容量和台数为6× 300MW (QFSN-300-2) 因此主变压器的台数选为6台。 1.4 联络变压器 选择三绕组变压器,连接两个电压等级,剩余一端引接备用电源。 第二章电气主接线方案 2.1 电气主接线设计的基本原则 电气主接线设计的基本原则是以设计任务书为依据,以国家的经济建设方针、政策、技术规定、标准为准绳,结合工程实际情况,在保证供电可靠、调度灵活、满足各项技术要求的前提下、兼顾运行、维护方便,尽可能的节省投资,就近取材,力争设备元件和设计的先进性与可靠性,坚持可靠、先进、适用、经济、美观的原则。 电气主接线是由高压电器通过连接线,按其功能要求组成接受和分配电能的电路,成为传输强电流,高电压的网络,它要

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

机械设计说明书

燕山大学 机械设计课程设计说明书题目:带式输送机传动装置 学院(系):机械工程学院 年级专业: 13级锻压2班 学号: 130101020076 学生姓名:张建雷 指导教师:周玉林

目录 一、机械设计课程设计任务书 (1) 二传动方案的拟定 (1) 三、电动机的选择及传动装置的运动和动力参数计算 (1) 四、传动零件的设计计算 (3) 4.1第一级直齿圆锥齿轮的设计 (3) 4.2第二级斜齿圆柱齿轮的设计 (6) 五、轴的设计及校核 (10) 5.1轴的机构设计 (10) 5.2输出轴的校核 (13) 六、轴承的选择和寿命计算 (17) 七、键的选择和校核 (19) 八、联轴器的选择 (20) 九、箱体的结构尺寸 (20) 十、传动装置的附件及说明 (21) 十一、润滑和密封说明 (22) 十二、三维设计 (23) 十三、设计小结 (24) 十四、参考文献 (25)

计算及说明结果一、机械设计课程设计任务书 一、设计题目:带式输送机传动装置 二、传动装置简图: v F D 图1-1传动装置简图 三、原始数据及要求 F=1611N D=0.27m v=1.28m/s 四、其他条件: 使用地点:室外生产批量:小批 载荷性质:微振使用年限:八年一班 二、传动方案的拟定 圆锥齿轮减速器相对于其他减速器机构可以改变力矩方向,可以把横向传动转为竖直传动,用于输入轴与输出轴垂直方向布置的传动装置。而且承载能力高,噪音低,传动相对平稳,箱体体积小,节省空间,重量轻,传动效率高,可靠耐用,使用寿命长。针对本题目的设计要求,决定采用圆锥—圆柱齿轮的设计方案。 三、电动机的选择及传动装置的运动和动力参数的计算。 1、电动机类型和结构方式,选择Y系列IP44 2、选择电动机功率,所选电动机的额定功率稍大于工作功率P d,即P ed≥P d. 卷筒的输出功率P w=FV/1000ηw=2.148KW 其中卷筒的工作效率ηw=0.96 则电动机的输出功率P d=P w/ηa=2.148KW/0.85=2.527KW 其中传动总效率ηa=η12η22η34=0.85 η1为联轴器效率0.99, η2为齿轮传动啮合效率(弹性联轴器)0.97 η3为滚动轴承传动效率0.98. 3、电动机转速的确定 卷筒转速n w=60V/πD=90.6r/min 传输带牵引力:F=1611N 传输带工作速度: v=1.28m/s 滚筒直径:D=0.271m P d=2.527 KW

单片机课程设计报告书----电子秤

一、设计任务及要求: 设计任务: 完成一个简单的使用数字电子秤的硬件与软件部分的设计。 设计要求: 1.利用单片机实现对所设计的电子秤的各项功能的控制。 2.电子秤能够LCD液晶显示出商品的名称、价格,重量、总价等信息。 3.电子秤具有储存几种简单商品价格的功能。 4.电子秤的测量范围要求达到5KG,测量精度要求达到0.001。 5.电子秤能够自动完成商品的价格计算。 指导教师签名: 2010 年6月16 日二、指导教师评语: 指导教师签名: 2010 年7月3日三、成绩 验收盖章 2010 年7 月日

基于单片机的实用电子秤的设计 1 设计目的 单片机以其功能强,体积小,功耗低,易开发等很多优势被广泛应用。本 次数字电子秤的设计就是需要通过选择合适的单片机来进行主控,再结合A/D 转换、键盘、液晶显示、复位电路和蜂鸣器报警驱动电路的知识,同时在软件 的设计过程中用到键盘扫描、液晶显示驱动、模数转换程序及汉字库的的设计, 做到对我们所学数电、模电、单片机等知识的综合应用,最终实现所设计数字 电子秤的各项功能,达到“巩固知识,培养技能,学而用之”的实践目的。通过这次课程设计,不但要提高我们在工作中的学习能力、探究能力、应用能力和动 手能力,还要历练我们不畏艰难、不懂便学、有漏必补的认真严谨的工作态度,强化我们的社会适应力和社会竞争力,为走向社会提前试水,完善自我。 2 设计的主要内容及要求 本设计主要完成一个简单实用数字电子秤的硬件电路部分和软件部分的设计。硬件部分包括数据采集、最小系统板、人机交互界面三大部分。其中,数 据采集部分由压力传感器和A/D 转换部分组成;人机界面部分为键盘输入、 液晶显示。软件部分应用单片机 C 语言实现了本设计的全部控制功能。本设 计的数字电子秤要求能够显示商品的名称、价格、总量、总价等;能够自动完 成商品的价格计算;能够储存几种简单商品的价格;能够具有超重提醒功能, 一旦重量超出了自身重量的测量的范围,发出警报;同时对数字电子秤的测量 范围要达到5KG,测量精度要求达到0.001。 3 整体设计方案 整个数字电子秤电路由压力传感电路(ADC0832采样)、模数转换系统、单 片机主控制电路、LM4229显示电路、蜂鸣器报警电路和4*4键盘电路6 个部

燕山大学11计算机编译原理课程设计安排

大校11计算机《编译原理》课程设计安排 时间:18周(12月30日-1月3日)地点:信息馆317、318实验室 一、设计目的:研究、改进或自行设计、开发一个简单的编译程序或其部分功能,加深对编译理论和编 译过程的理解。编程语言不限。 二、设计任务 (学号最后一位%4+1): 1.扩展PL/0编译程序功能 目的:扩充PL/0编译程序功能, 要求:(1)阅读、研究PL/0编译程序源文件。 (2)在上述工作基础上,可有选择地补充、完善其中词法分析、语法分析、语义分析、目标代码生成、目标代码解释执行等部分的功能。如以语法分析部分为例,则可以增加处理更多语法成分的功能,如可处理一维数组、++、--、+=、-=、*=、/=、%(取余)、!(取反)、repeat、for、else、开方、处理注释、错误提示、标示符或变量中可以有下划线等。还可以增加类型,如增加字符类型、实数类型;扩充函数如有返回值和返回语句的,有参数函数等; (3)设计编制典型的运行实例,以便能反映出自己所作的改进。 2. 基于LL(1)方法的语法分析程序 目的:设计、编制和调试一个典型的语法分析方法,进一步掌握常用的语法分析方法。 要求: (1)根据LL(1)分析法编写一个语法分析程序,可根据自己实际情况,选择以下一项作为分析算法 的输入:a.直接输入根据已知文法构造的分析表M; b.输入文法的FIRST(α)和FOLLOW(U)集合,由程序自动生成文法的分析表M; c.输入已知文法,由程序自动构造文法的分析表M。 (2)所开发的程序可适用于不同的文法和任意输入串,且能判断该文法是否为LL(1)文法。 (3)如完成前两项,可增加运行实例,对于输入的文法和符号串,所编制的语法分析程序应能正确判断此串是否为文法的句子,并要求输出分析过程。 3.基于LR(0)方法(或SLR(1)方法、或LR(1)方法)的语法分析程序 要求: 可根据自己实际情况,选择以下一项作为分析算法的输入: (1)直接输入根据己知文法构造的LR(0)(或SLR(1) 、或LR(1))分析表。 (2)输入已知文法的项目集规范族和转换函数,由程序自动生成LR(0) ( 或SLR(1) 、或LR(1))分析表; (3)输入已知文法,由程序自动生成LR(0) ( 或SLR(1) 、或LR(1))分析表。 目的和其它要求参考“基于LL(1)方法的语法分析程序” 4.词法分析程序设计 目的:设计、编制和调试一个具体的词法分析程序,加深对词法分析的理解。 要求: 通过对PL/0词法分析程序(GETSYM)的分析,编制一个具有以下功能的词法分析程序: a.输入为待进行词法分析的源程序,输出为单词串,即由(单词,类别)所组成的二元组 序列; b.有一定的错误检查能力,例如能发现2a这类不能作为单词的字符串。 选作题目:若以上题目均不感兴趣,可申请做选作题目。 ①基于Lex和Y acc的C-Minus编译器。 基于W indows环境下的Lex和Yacc集成环境Parser Generator, 实现了以C _ M inus ( C 语言子集) 语言为源语言的编译器。主要从编译技术的角度对C _ M inus语言的词法分析、语法分析、符号表的建立以及目标代码生成的过程进行详细的阐述。 ②利用Lex和Yacc工具制作一个小型的计算器编译器。 功能如下:1. 分别能够完成十进制、八进制、十六进制的一些基本运算。可以通过DEC_ON,OCT_ON,HEX_ON三个开关进行控制。 2.能够完成一些基本的算术运算和逻辑运算,如:加、减、乘除、乘方、取模、与、或、非等运算。 3.提供帮助提示操作,如:HELP命令,清屏命令CLEAR等,错误提示信息等。

燕山大学里仁学院专业介绍

燕山大学里仁学院专业介绍 机械设计制造及其自动化专业 本专业培养具备机械设计、制造及其自动化基础知识和专业知识,能在工业生产第一线从事机械工程及其自动化领域内的技术、经营和管理的,具有综合素质,创新精神和专业技术能力的应用型高级专门人才。本专业的学生按机械设计制造及其自动化的宽口径专业培养、并设有现代冶金机械工程、流体传动及控制工程、机电一体化工程、现代制造工程、现代设计工程等特色专业方向的课程模块供学生修读。 本专业的主要课程有:高等数学、理论力学、材料力学、工程制图、机械原理、机械设计、控制工程基础、电工与电子技术、微机原理与数控技术、液压与气压传动、计算机文化基础、基础英语等课程。 学生毕业后,可在高等院校、科研单位及工矿企业等部门从事相关的教学、科研、开发、生产与管理等工作。 材料成型及控制工程专业 本专业属于机械、材料和计算机交叉渗透的综合性工程技术学科,主要培养具备现代设计方法、计算机辅助设计(CAE/CAD/CAM)及材料加工方面知识与应用能力、能从事技术开发、材料成型质量控制、相关设备及模具设计于制造、企业管理与经营销售等方面工作,具有综合素质,创新精神和专业技术能力的应用型高级专门人才。 本专业的主要课程有:高等数学、理论力学、材料力学、工程制图、机械原理、机械设计、控制工程基础、塑性成形原理、机械CAD/CAM、冲压工艺及模具设计、塑性成形工艺及模具设计、现代成形设备、现代材料成形技术等。 学生毕业后,可在高等院校、科研单位及工矿企业等部门从事相关的教学、科研、开发、生产与管理等工作。 建筑环境与设备工程专业 本专业培养从事采暖供热、通风除尘、空气调节、制冷技术及锅炉房工艺设计、施工、运行调节、技术经济管理工作的应用型高级技术人才。 本专业的专业课程有:传热学、流体力学、工程热力学、建筑环境学、流体输配管网、供热工程、空调工程、工业通风、空调用制冷技术、锅炉与锅炉房设备、安装工程概预算、自动控制理论、建筑环境测量、建筑给排水等。 学生毕业后,可在设计单位、建筑安装工程公司、工程监理公司、物业管理公司等单位从事室内环境设备系统及建筑公共设施系统的设计、安装调试、运行管理等工作。 土木工程专业 本专业培养掌握坚实土木工程基本理论,熟悉全面土木工程知识结构,具有基本人文科学素养,具备从事土木工程项目规划、设计、研究开发、施工及管理的能力,能在土木工程的设计、研究、施工、教育、管理、投资、开发部门从事技术和管理工作的应用型高级工程技术人才。本专业设有建筑工程、工程管理和道路桥梁工程三个专业方向。 本专业的主要课程有:工程力学、结构力学、建筑材料、工程测量、工程制图、地基基础、混凝土结构、钢结构、房屋建筑工程、道桥工程、工程管理、施工技术等。 学生毕业后可从事建筑工程、市政工程和房地产等部门的设计、规划、开发及管理。也可在高等院校、科研单位从事教学与科研工作。 国际经济与贸易专业 本专业以经济学、管理学、国际金融、国际经济贸易理论为基础,掌握进口业务、国际商法、基本理论、基本知识与基本技能,培养具有国际市场营销、国际投资与技术转让、商务谈判技巧以及跨国公司经营等业务知识,熟悉通行的国际交易规则和国际惯例,以及中国对外贸易的政策法规,并能熟练地运用外语从事对外经济贸易工作的应用型高级专门人才。

相关文档
最新文档