二位计数器实验报告
王林 2013141444014
一、实验目的:
1.设计一个二位的计数器;
2.熟悉QuartusII软件的功能及环境。
二、详细设计:
设计步骤如下:
1.设计一个任意进制二位的计数器,包含有时钟信号clk,实现计数功能;在本实验设计了一种二位二十四进制的计数器,当个位计数到9时,十位加一,当十位达到2,个位达到3时,将执行清零,从而达到二十四进制计数的功能。
2.编译、查找错误并仿真,并下载到板子上验证结果。
三、源程序代码:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity qua1 is --定义实体,它说明输入/输出端口
port(clk:in std_logic; --计数时钟
q:out std_logic_vector(7 downto 0); --计数输出
c:out std_logic);
end qua1;
architecture a of qua1 is --定义结构体,它说明具体的功能
signal qa:std_logic_vector(3 downto 0);
signal qb:std_logic_vector(3 downto 0);
signal cy:std_logic; --申明变量
begin
process(clk)
begin
if clk'event and clk='1' then --异步清零
if (qa=9) or (qa=3 and qb=2) then --当代表个位的qa=9或者qa=3且qb=2时qa清零
qa<="0000";
cy<='0';
elsif qa=8 then --qa=8时qa加一,cy=1
qa<=qa+1;
cy<='1';
else --其他情况qa++,cy=0
qa<=qa+1;
cy<='0';
end if;
end if;
end process; --结束
process(clk,cy)
begin
if clk'event and clk='1' then—异步清零
if (qa=3 and qb=2) then ?qa=3且qb=2时qb清零c=1
qb<="0000";
c<='1';
elsif cy='1' then --cy=1时qb进一位
qb<=qb+1;
c<='0';
else ?其他情况c=0
c<='0';
end if;
end if;
end process;
q(7 downto 4)<=qb; --输出
q(3 downto 0)<=qa;
end a;
四、仿真结果:
五、实验感想:
通过这次实验,让我熟悉了VHDL语言的应用,在做计数器的过程中出现了很多问题和困难,在和同学交流和查阅了相关资料后解决了这个问题,在这个过程中也提高了自己。
第二篇:c#计算器编写实验报告
课 程 设 计
设计题目:C#环境下的ACCESS表格查询
学生姓名:李伟
学号:20095378
专业班级:电子商务09-1班
指导教师:惠刚
20## 年 10 月 13 日
数据库查询
一、实验目的
通过点击面板上的特定按钮,弹出提示框显示出access表格中相对应按钮的内容。
二、程序编制流程
1.新建解决方案—windows应用程序—将其命名为sjk2,如图所示:
2.程序中使用了标签、按钮控件,以及按钮的Click事件,在此过程中使用语句解释如下:
privatevoidInitializeComponent()
{
x=newSystem.Windows.Forms.Button();语句用于初始化按钮
x=newSystem.Windows.Forms.Label();语句用于初始化标签
x.Location=newSystem.Drawing.Point(a,b);语句用于定义控件位置
x.Size=newSize(a,b);语句用于定义控件大小
x.Text="a";语句用于定义控件的文本内容
this.Controls.Add(x);语句用于将控件加入到面板当中
x.Click+=newSystem.EventHandler(x_Click);语句用于按钮Click事件的声明
this.Text = "Access表格查询";语句用于面板栏文本内容
}
privateSystem.Windows.Forms.Button x;语句用于声明button控件
privateSystem.Windows.Forms.Label x;语句用于声明标签控件
privatevoidbut1_Click(object sender,EventArgs e)
{}用于Click事件的具体内容,{}内添实现内容代码
3.Click事件具体内容:Access表格的链接、显示,过程如下:
该Access表格中有ID、学号、姓名、性别、年级信息;
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\aa.mdb";
语句用于连接Access表格的字符串
OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
语句用于创建OleDbConnection对象
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
语句用于创建OleDbCommand对象
string commandString = "Select ID,学号,姓名,性别,年级 From 1 Where 学号 = 20090001";
myOleDbCommand.CommandText = commandString;
myOleDbConnection.Open();
用Connection对象的open()方法打开Access表格
OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();
创建OleDbDataReader对象并执行ExecuteReader()方法
myOleDbDataReader.Read();
读取每行记录
MessageBox.Show("[ID]="+myOleDbDataReader["ID"]+"[学号] = "
+ myOleDbDataReader["学号"]+"[姓名] = "
+ myOleDbDataReader["姓名"]+"[性别]="
+myOleDbDataReader["性别"] +"[年级] = "
+ myOleDbDataReader["年级"]);
将列属性值输出在对话框中
myOleDbDataReader.Close();
关闭myOleDbDataReader对象
myOleDbConnection.Close();
关闭数据库链接
三、实验结果
查询20090001学生信息,点击20090001按钮;
查询20090002学生信息,点击20090002按钮;
四、实验体会
实验中遇到了很多问题,也是请教了很多同学才得到解决,首先就是数据库访问这块儿,编程序是发现与Access2007不兼容。而对于string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\aa.mdb";现在才知道DataSource就是Access表格所在路径。
"Select ID,学号,姓名,性别,年级 From 1 Where 学号 = 20090001";当初编写这行SQL语句时,我会在Where 学号=2009001的20009001上加个' ',也是因为看到书上有这么个程序,但是在编译时就会提示编译程序发生了无法处理的异常,找了半天才知道是这个问题。
在using那里一开始usingSystem.Data.OleDb;也没有添加,出现了问题。
还有个问题现在也没解决,就是编写面板那里,有一次调整按钮位置、大小、文本不论怎么改,倒可以显示,但都是一开始的那个样子,改了没用,只能重新新建了一个应用程序复制进去就好了。
虽然用的是MessageBox.Show()来做的显示,但是还是觉得数据库访问查询并输出还是用一个文本框获取用户输入信息并根据此来查询并用文本框来显示的方式更好,但文本框控件的事件的使用不是很熟悉,就没有使用了,因此感觉编程一定得多编写,涉猎面还要广,常用的一定得熟练,对于我来讲真的要多多练习。
五、程序代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Drawing;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
namespacesjk2
{
partial class MainForm
{
privateSystem.ComponentModel.IContainer components =null;
protectedoverride voidDispose(booldisposing)
{
if(disposing) {
if(components !=null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
privatevoidInitializeComponent()
{
but1=newSystem.Windows.Forms.Button();
but2=newSystem.Windows.Forms.Button();
but3=newSystem.Windows.Forms.Button();
ts=newSystem.Windows.Forms.Label();
but1.Location=newSystem.Drawing.Point(29,58);
but2.Location=newSystem.Drawing.Point(29,100);
but3.Location=newSystem.Drawing.Point(29,142);
ts.Location=newPoint(27,21);
but1.Size=newSize(75,23);
but2.Size=newSize(75,23);
but3.Size=newSize(75,23);
ts.Size=newSize(170,120);
but1.Text="20090001";
but2.Text="20090002";
but3.Text="20090003";
ts.Text="请选择您要查询的学生学号:";
this.Controls.Add(but1);
this.Controls.Add(but2);
this.Controls.Add(but3);
Controls.Add(ts);
but1.Click+=newSystem.EventHandler(but1_Click);
but2.Click+=newEventHandler(but2_Click);
but3.Click+=newEventHandler(but3_Click);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "Access表格查询";
this.Name = "MainForm";
}
privateSystem.Windows.Forms.Button but1;
privateSystem.Windows.Forms.Button but2;
privateSystem.Windows.Forms.Button but3;
privateSystem.Windows.Forms.Label ts;
privatevoidbut1_Click(object sender,EventArgs e)
{
String connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\aa.mdb";
OleDbConnection myOleDbConnection =newOleDbConnection(connectionString);
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
string commandString = "Select ID,学号,姓名,性别,年级 From 1 Where 学号 = 20090001";
myOleDbCommand.CommandText = commandString;
myOleDbConnection.Open();
OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();
myOleDbDataReader.Read();
MessageBox.Show("[ID]="+myOleDbDataReader["ID"]+"[学号] = "
+ myOleDbDataReader["学号"]+"[姓名] = "
+ myOleDbDataReader["姓名"]+"[性别]="+myOleDbDataReader["性别"]
+
"[年级] = "
+ myOleDbDataReader["年级"]);
myOleDbDataReader.Close();
myOleDbConnection.Close();
}
privatevoidbut2_Click(object sender,EventArgs e)
{
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\aa.mdb";
OleDbConnection myOleDbConnection =newOleDbConnection(connectionString);
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
string commandString = "Select ID,学号,姓名,性别,年级 From 1 Where 学号 = 20090002";
myOleDbCommand.CommandText = commandString;
myOleDbConnection.Open();
OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();
myOleDbDataReader.Read();
MessageBox.Show("[ID]="+myOleDbDataReader["ID"]+"[学号] = "
+ myOleDbDataReader["学号"]+"[姓名] = "
+ myOleDbDataReader["姓名"]+"[性别]="+myOleDbDataReader["性别"]
+
"[年级] = "
+ myOleDbDataReader["年级"]);
myOleDbDataReader.Close();
myOleDbConnection.Close();
}
privatevoidbut3_Click(object sender,EventArgs e)
{
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\aa.mdb";
OleDbConnection myOleDbConnection =newOleDbConnection(connectionString);
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
string commandString = "Select ID,学号,姓名,性别,年级 From 1 Where 学号 = 20090003";
myOleDbCommand.CommandText = commandString;
myOleDbConnection.Open();
OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();
myOleDbDataReader.Read();
MessageBox.Show("[ID]="+myOleDbDataReader["ID"]+"[学号] = "
+ myOleDbDataReader["学号"]+"[姓名] = "
+ myOleDbDataReader["姓名"]+"[性别]="+myOleDbDataReader["性别"]
+
"[年级] = "
+ myOleDbDataReader["年级"]);
myOleDbDataReader.Close();
myOleDbConnection.Close();
}
}
}