搜档网
当前位置:搜档网 › c#大文件读取和写入数据库(带进度条的源代码)

c#大文件读取和写入数据库(带进度条的源代码)

c#大文件读取和写入数据库(带进度条的源代码)
c#大文件读取和写入数据库(带进度条的源代码)

protected int state = 0; //表示进度条当前处理的事件类型,1表读取word,2表写入word,3表doc转pdf,4表txt转pdf

private System.Windows.Forms.Form getDialog(string strFormName,System. Drawing.Icon ico,string strShowContent)

{

System.Windows.Forms.Form frm = new Form();

//初始化窗体

frm.Text = strFormName;

frm.Icon = ico;

frm.MaximizeBox = false;

frm.MinimizeBox = false;

frm.TopMost = true;

frm.ShowInTaskbar = false;

frm.Height = 168;

frm.Width = 544;

frm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScree n;

//添加控件

https://www.sodocs.net/doc/216494117.html,bel lblContent = new Label();

lblContent.Text = strShowContent;

lblContent.Left = 30;

lblContent.Top = 20;

lblContent.Text = strShowContent;

frm.Controls.Add(lblContent);

System.Windows.Forms.ProgressBar prgLoader = new ProgressBar(); prgLoader.Left=30;

prgLoader.Top = lblContent.Top + lblContent.Height + 5;

prgLoader.Width = frm.Width - 2 * 30;

frm.Controls.Add(prgLoader);

https://www.sodocs.net/doc/216494117.html,bel lblShowPercent = new Label();

lblShowPercent.TextAlign = System.Drawing.ContentAlignment.MiddleRight; lblShowPercent.Left = prgLoader.Width + 30 - lblShowPercent.Width;

lblShowPercent.Top = prgLoader.Height + prgLoader.Top + 5;

lblShowPercent.Text = prgLoader.Value.ToString() + "%";

https://www.sodocs.net/doc/216494117.html, = "lblShowPercent";

frm.Controls.Add(lblShowPercent);

System.Windows.Forms.Button btnOK = new Button();

btnOK.Text = "取消";

btnOK.Left = prgLoader.Width + 30 - btnOK.Width;

btnOK.T op = frm.Height - 30 - btnOK.Height;

btnOK.Click +=new EventHandler(btnOk_Click);

frm.Controls.Add(btnOK);

return frm;

}

private void btnOk_Click(object sender,System.EventArgs e)

{

//获取控件信息

System.Windows.Forms.Button btnOk = (System.Windows.Forms.Button)se nder;

System.Windows.Forms.Form frm = (System.Windows.Forms.Form)btnOk .Parent;

System.Windows.Forms.ProgressBar prgLoader = null;

foreach(System.Windows.Forms.Control control in frm.Controls)

{

if(control.GetType().ToString() == "System.Windows.Forms.ProgressBar") {

prgLoader = (System.Windows.Forms.ProgressBar)control;

}

}

//判断当前的完成情况

if(prgLoader.Value == 100)

{

frm.Close();

}

else

{

System.Windows.Forms.DialogResult dr = MessageBox.Show(frm,"是否停止当前操作?","提示",System.Windows.Forms.MessageBoxButtons.YesNo,

System.Windows.Forms.MessageBoxIcon.Warning);

if(dr == System.Windows.Forms.DialogResult.Yes)

{

state = 0;

frm.Close();

}

}

}

///

///写入word到数据库

///

///sql连接类

///直接将目标内容写入数据库的sql,

"insert into 表名(目标列名) values (@block)"

///获取目标内容的句柄的sql,"select @content=textptr(目标列名) from 目标表名 where 条件" ///目标表名

///目标列名

///要读取word的路径

///定义块大小

///是否显示进度条

///窗体名称

///窗体图标

///显示内容

///true表成功

public bool WriteWordDocument(System.Data.SqlClient.SqlConnection sqlco n,string strTargetInsert,string strTargetHandle,string strTableName,string strC olumnName,string strPath,int intSetBlock,bool bolShowDialog,string strFormN ame,System.Drawing.Icon ico,string strShowContent)

{

//初始化SqlCommand

System.Data.SqlClient.SqlCommand sqlcmd = new System.Data.SqlClient.S qlCommand();

sqlcmd.Connection = sqlcon;

https://www.sodocs.net/doc/216494117.html,mandType = https://www.sodocs.net/doc/216494117.html,mandType.Text;

int intBlock = intSetBlock; //块大小

int intCount = 0; //分快数

int intLength = 0; //获取文件内容的长度

string strSelect = ""; //要执行的sql查询语句

byte []bytContent = null; //定义内容数组

//比例

int intPercent = 0;

//建立要输入的文件流

System.IO.FileStream fs = null;

//建立二进制读取

System.IO.BinaryReader br = null;

try

{

fs = new FileStream(strPath,System.IO.FileMode.Open);

}

catch

{

return false;

}

br = new BinaryReader((Stream)fs);

//为关键参数赋值

try

{

//是否显示进度

if(bolShowDialog)

{

//获取精度窗体,引用窗体中的进度条和按钮控件

System.Windows.Forms.Form frmProgress = getDialog(strFormName,ico,s trShowContent);

System.Windows.Forms.ProgressBar prgLoader = null;

System.Windows.Forms.Button btnOk = null;

https://www.sodocs.net/doc/216494117.html,bel lblShowPercent = null;

foreach(System.Windows.Forms.Control control in frmProgress.Controls) {

if(control.GetType().ToString() == "System.Windows.Forms.ProgressBar") {

prgLoader = (System.Windows.Forms.ProgressBar)control;

}

if(control.GetType().ToString() == "System.Windows.Forms.Button")

{

btnOk = (System.Windows.Forms.Button)control;

}

if(control.GetType().ToString() == "https://www.sodocs.net/doc/216494117.html,bel" && co https://www.sodocs.net/doc/216494117.html, == "lblShowPercent")

{

lblShowPercent = (https://www.sodocs.net/doc/216494117.html,bel)control;

}

}

frmProgress.Show();

//启动转换

state = 2;

if(fs.Length > 2147483647 || fs.Length == 0) //因为image列最多只能存储2,147,483,647个字节,所以这里做限定

{

return false;

}

intLength = (int)fs.Length;

intCount = intLength / intBlock;

if(intCount == 0)

{

strSelect = strTargetInsert;

bytContent = new byte[intLength];

bytContent = br.ReadBytes(intLength);

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

sqlcmd.Parameters.Add("@block",System.Data.SqlDbType.Image).Value

= bytContent;

sqlcmd.ExecuteNonQuery();

}

else

{

strSelect = strTargetInsert;

bytContent = new byte[intBlock];

bytContent = br.ReadBytes(intBlock);

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

sqlcmd.Parameters.Add("@block",System.Data.SqlDbType.Image).Value

= bytContent;

sqlcmd.Parameters.Add("@length",System.Data.SqlDbType.Int).Value = 0; sqlcmd.ExecuteNonQuery();

int i = 1;

while(i != intCount)

{

if(state == 0)

{

strSelect = "delete from " + strTableName + strTargetHandle.Substring( https://www.sodocs.net/doc/216494117.html,stIndexOf(" where "));

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

sqlcmd.ExecuteNonQuery();

bytContent = null;

fs.Close();

return false;

}

strSelect = "declare @content varbinary(16) ";

strSelect += strTargetHandle;

strSelect += " updatetext " + strTableName + "." + strColumnName + " @content @length 0 @block";

bytContent = br.ReadBytes(intBlock);

sqlcmd.Parameters["@block"].Value = bytContent;

sqlcmd.Parameters["@length"].Value = i * intBlock;

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

sqlcmd.ExecuteNonQuery();

intPercent = (int)(((double)(i * intBlock)) / ((double)intLength) * 100); prgLoader.Value = intPercent;

lblShowPercent.Text = prgLoader.Value.ToString() + "%";

++i;

Application.DoEvents();

}

int intResidual = intLength % intBlock;

if(intResidual > 0)

{

strSelect = "declare @content varbinary(16) ";

strSelect += strTargetHandle;

strSelect += " updatetext " + strTableName + "." + strColumnName + " @content @length 0 @block";

bytContent = new byte[intResidual];

bytContent = br.ReadBytes(intResidual);

sqlcmd.Parameters["@block"].Value = bytContent;

sqlcmd.Parameters["@length"].Value = intCount * intBlock;

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

sqlcmd.ExecuteNonQuery();

}

}

prgLoader.Value = 100;

lblShowPercent.Text = prgLoader.Value.ToString() + "%";

btnOk.Text = "关闭";

}

else

{

if(fs.Length > 2147483647 || fs.Length == 0) //因为image列最多只能存储2,147,483,647个字节,所以这里做限定

{

return false;

}

intLength = (int)fs.Length;

intCount = intLength / intBlock;

if(intCount == 0)

{

strSelect = strTargetInsert;

bytContent = new byte[intLength];

bytContent = br.ReadBytes(intLength);

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

sqlcmd.Parameters.Add("@block",System.Data.SqlDbType.Image).Value = bytContent;

sqlcmd.ExecuteNonQuery();

}

{

strSelect = strTargetInsert;

bytContent = new byte[intBlock];

bytContent = br.ReadBytes(intBlock);

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

sqlcmd.Parameters.Add("@block",System.Data.SqlDbType.Image).Value

= bytContent;

sqlcmd.Parameters.Add("@length",System.Data.SqlDbType.Int).Value = 0; sqlcmd.ExecuteNonQuery();

int i = 1;

while(i != intCount)

{

strSelect = "declare @content varbinary(16) ";

strSelect += strTargetHandle;

strSelect += " updatetext " + strTableName + "." + strColumnName + " @content @length 0 @block";

bytContent = br.ReadBytes(intBlock);

sqlcmd.Parameters["@block"].Value = bytContent;

sqlcmd.Parameters["@length"].Value = i * intBlock;

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

sqlcmd.ExecuteNonQuery();

++i;

}

int intResidual = intLength % intBlock;

if(intResidual > 0)

strSelect = "declare @content varbinary(16) ";

strSelect += strTargetHandle;

strSelect += " updatetext " + strTableName + "." + strColumnName + " @content @length 0 @block";

bytContent = new byte[intResidual];

bytContent = br.ReadBytes(intResidual);

sqlcmd.Parameters["@block"].Value = bytContent;

sqlcmd.Parameters["@length"].Value = intCount * intBlock;

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

sqlcmd.ExecuteNonQuery();

}

}

}

bytContent = null;

fs.Close();

}

catch

{

state = 0;

bytContent = null;

fs.Close();

return false;

}

state = 0;

return true;

}

///

///从数据库读取word

///

///sql连接类

///直接获取目标内容的sql,"select 目标列名 from 目标表名 where 条件"

///获取目标内容的长度的sql,"select datalength(目标列名) from 目标表名 where 条件" ///获取目标内容的句柄的sql,"select @content=textptr(目标列名) from 目标表名 where 条件" ///目标表名

///目标列名

///要导出并保存的word的路径

///定义块大小

///是否显示进度条

///窗体名称

///窗体图标

///显示内容

///true表成功

public bool ReadWordDocument(System.Data.SqlClient.SqlConnection sqlcon ,string strTargetSelect,string strTargetLength,string strTargetHandle,string str TableName,string strColumnName,string strPath,int intSetBlock,bool bolShow Dialog,string strFormName,System.Drawing.Icon ico,string strShowContent) {

//初始化SqlCommand

System.Data.SqlClient.SqlCommand sqlcmd = new System.Data.SqlC lient.SqlCommand();

sqlcmd.Connection = sqlcon;

https://www.sodocs.net/doc/216494117.html,mandType = https://www.sodocs.net/doc/216494117.html,mandType.Text;

int intBlock = intSetBlock; //块大小

int intCount = 0; //分快数

int intLength = 0; //获取的image列中的内容的长度

string strSelect = ""; //要执行的sql查询语句

byte []bytContent = null; //定义内容数组

int intPercent = 0; //获取读取的比例

//建立要输出的文件流

System.IO.FileStream fs = new FileStream(strPath,System.IO.FileMode.Cre ate);

try

{

//获取指定image列中的内容长度

https://www.sodocs.net/doc/216494117.html,mandText = strTargetLength;

intLength = (int)sqlcmd.ExecuteScalar();

//如果长度为0

if(intLength == 0)

{

return false;

}

//获得分快数

intCount = intLength / intBlock;

//是否显示精度

if(bolShowDialog)

{

//获取精度窗体,引用窗体中的进度条和按钮控件

System.Windows.Forms.Form frmProgress = getDialog(strFormName,ico,s trShowContent);

System.Windows.Forms.ProgressBar prgLoader = null;

System.Windows.Forms.Button btnOk = null;

https://www.sodocs.net/doc/216494117.html,bel lblShowPercent = null;

foreach(System.Windows.Forms.Control control in frmProgress.Controls) {

if(control.GetType().ToString() == "System.Windows.Forms.ProgressBar") {

prgLoader = (System.Windows.Forms.ProgressBar)control;

}

if(control.GetType().ToString() == "System.Windows.Forms.Button")

{

btnOk = (System.Windows.Forms.Button)control;

}

if(control.GetType().ToString() == "https://www.sodocs.net/doc/216494117.html,bel" && co https://www.sodocs.net/doc/216494117.html, == "lblShowPercent")

{

lblShowPercent = (https://www.sodocs.net/doc/216494117.html,bel)control;

}

}

frmProgress.Show();

//启动转换

state = 1;

if(intCount == 0)

{

strSelect = strTargetSelect;

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

bytContent = new byte[intLength];

bytContent = sqlcmd.ExecuteScalar() as byte[];

fs.Write(bytContent,0,intLength);

prgLoader.Value = 100;

lblShowPercent.Text = prgLoader.Value + "%";

btnOk.Text = "关闭";

}

else

{

int i = 0;

bytContent = new byte[intBlock];

while(i < intCount)

{

if(state == 0)

{

bytContent = null;

System.IO.File.Delete(strPath);

fs.Close();

return false;

}

strSelect = "declare @content varbinary(16) "; //再sql中声明获取目标image列内容的句柄变量

strSelect += strTargetHandle; //获取句柄

//锁定并读取指定长度的数据

strSelect += " readtext " + strTableName + "." + strColumnName + " @ content @start @count HOLDLOCK";

if(i == 0)

{

//添加@start和@count变量,分别表偏移变量和取的长度

sqlcmd.Parameters.Add("@start",System.Data.SqlDbType.Int).Value = 0 ;

sqlcmd.Parameters.Add("@count",System.Data.SqlDbType.Int).Value = i ntBlock;

}

else

{

sqlcmd.Parameters["@start"].Value = i * intBlock;

sqlcmd.Parameters["@count"].Value = intBlock;

}

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

bytContent = sqlcmd.ExecuteScalar() as byte[];

fs.Write(bytContent,0,intBlock);

intPercent = (int)(((double)(i * intBlock)) / (double)(intLength) * 100); prgLoader.Value = intPercent;

lblShowPercent.Text = prgLoader.Value.ToString() + "%";

Application.DoEvents();

++i;

}

//将剩余的字节写入流

int intResidual = intLength % intBlock;

if(intResidual > 0)

{

strSelect = "declare @content varbinary(16) "; //再sql中声明获取目标image列内容的句柄变量

strSelect += strTargetHandle; //获取句柄

//锁定并读取指定长度的数据

strSelect += " readtext " + strTableName + "." + strColumnName + " @ content @start @count HOLDLOCK";

bytContent = new byte[intResidual];

sqlcmd.Parameters["@start"].Value = intCount * intBlock;

sqlcmd.Parameters["@count"].Value = intResidual;

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

bytContent = sqlcmd.ExecuteScalar() as byte[];

fs.Write(bytContent,0,intResidual);

}

prgLoader.Value = 100;

lblShowPercent.Text = prgLoader.Value.ToString() + "%";

btnOk.Text = "关闭";

}

}

else

{

if(intCount == 0)

{

strSelect = strTargetSelect;

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

bytContent = new byte[intLength];

bytContent = sqlcmd.ExecuteScalar() as byte[];

fs.Write(bytContent,0,intLength);

}

else

{

int i = 0;

bytContent = new byte[intBlock];

while(i < intCount)

{

strSelect = "declare @content varbinary(16) "; //再sql中声明获取目标image列内容的句柄变量

strSelect += strTargetHandle; //获取句柄

//锁定并读取指定长度的数据

strSelect += " readtext " + strTableName + "." + strColumnName + " @ content @start @count HOLDLOCK";

if(i == 0)

{

//添加@start和@count变量,分别表偏移变量和取的长度

sqlcmd.Parameters.Add("@start",System.Data.SqlDbType.Int).Value = 0 ;

sqlcmd.Parameters.Add("@count",System.Data.SqlDbType.Int).Value = i ntBlock;

}

else

{

sqlcmd.Parameters["@start"].Value = i * intBlock;

sqlcmd.Parameters["@count"].Value = intBlock;

}

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

bytContent = sqlcmd.ExecuteScalar() as byte[];

fs.Write(bytContent,0,intBlock);

++i;

}

//将剩余的字节写入流

int intResidual = intLength % intBlock;

if(intResidual > 0)

{

strSelect = "declare @content varbinary(16) "; //再sql中声明获取目标image列内容的句柄变量

strSelect += strTargetHandle; //获取句柄

//锁定并读取指定长度的数据

strSelect += " readtext " + strTableName + "." + strColumnName + " @ content @start @count HOLDLOCK";

bytContent = new byte[intResidual];

sqlcmd.Parameters["@start"].Value = intCount * intBlock; sqlcmd.Parameters["@count"].Value = intResidual;

https://www.sodocs.net/doc/216494117.html,mandText = strSelect;

bytContent = sqlcmd.ExecuteScalar() as byte[];

fs.Write(bytContent,0,intResidual);

}

}

}

bytContent = null;

fs.Close();

}

catch

{

state = 0;

System.IO.File.Delete(strPath);

bytContent = null;

fs.Close();

return false;

}

state = 0;

return true;

}

C#从SQL 数据库中读取和存入图片

C#从SQL 数据库中读取和存入图片 本实例主要介绍如何将图片存入数据库。将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类、BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用 ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中。主要代码如下: private void button1_Click(object sender, EventArgs e) { openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP"; if(openFileDialog1.ShowDialog()==DialogResult.OK) { string fullpath =openFileDialog1.FileName;//文件路径 FileStream fs = new FileStream(fullpath, FileMode.Open); byte[] imagebytes =new byte[fs.Length]; BinaryReader br = new BinaryReader(fs); imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length)); //打开数据库 SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05"); con.Open(); SqlCommand com = new SqlCommand("insert into tb_08 values(@ImageList)",con); com.Parameters.Add("ImageList", SqlDbType.Image); com.Parameters["ImageList"].Value = imagebytes; com.ExecuteNonQuery(); con.Close();

数据库上机实验报告

数据库实验 (第三次) 题目1 实验内容: 1. 检索上海产的零件的工程名称; 2. 检索供应工程J1零件P1的供应商号SNO; 3. 检索供应工程J1零件为红色的供应商号SNO; 4. 检索没有使用天津生产的红色零件的工程号JNO; 5. 检索至少用了供应商S1所供应的全部零件的工程号JNO; 6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数 量QTY降序排列。

1 select jname from j where jno in (select jno from spj where sno in (select sno from s where city ='上海' ) ); 2 select sno from spj where jno ='j1'and pno ='p1' 3

selectdistinct sno from spj where pno in (select pno from p where color='红'and pno in (select pno from spj where jno ='j1' ) ); 4 selectdistinct jno from spj where pno notin (select pno from p where color ='红'and pno in (select pno from spj where sno in (select sno from s where city ='天津' ) ) )

5 select jno from spj where sno ='s1' 6 select jno,qty from spj where pno ='p1' orderby qty desc 四﹑思考题 1.如何提高数据查询和连接速度。 建立视图 2. 试比较连接查询和嵌套查询 有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比 嵌套查询高出很多 当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。

第8章 微机原理习题库

一.填空题 1.类型码为()的中断所对应的中断向量存放在0000H:0058H开始的4个连续单元中,若这4个单元的内容分别为(),则相应的中断服务程序入口地址为5060H:7080H。 2.CPU在指令的最后一个时钟周期检测INTR引脚,若测得INTR为()且IF为(),则CPU在结束当前指令后响应中断请求。 3.从CPU的NMI引脚产生的中断叫做(),它的响应不受()的影响。 4.中断类型码为15H的中断,其服务程序的入口地址一定存放在()四个连续的单元中,若这四个单元的的内容为:66H、50H、88H、30H,则其服务程序的入口地址为()。5.中断控制器8259A中的中断屏蔽寄存器IMR的作用是()。 6.CPU响应可屏蔽中断的条件是()、()和()。 7.在8086/8088微机系统中,INT20H指令中断向量存放在()中。 8.CPU在响应中断时,首先是保护(),然后将中断服务程序入口地址送入()。9.在8086/8088微机中,实现CPU关中断的指令是(),实现开中断的指令是()。10.如果CPU同时接收到中断请求和总线请求,则CPU应先响应()。 11.当用8259A管理INTR中断时,要发出EOI命令结束中断是操作()命令字。12.执行INTn指令时,其中断类型号由()提供,响应INTR时,中断类型号由()提供,响应NMI时,中断类型号由()提供,执行BOUND指令时,中断类型号由( )提供。 13.INTR、NMI均属于外中断,其中INTR被称为()中断,NMI被称为()中断。 14.80486在实模式下,当某中断源的中断类型码为70H时,中断服务程序的偏移地址和段基址将分别填入()单元和()单元。 15.CUP复位时,由于()被清零,使从INTR输入的可屏蔽中断不被响应。 16.2片8259A级联可管理()个可屏蔽中断。 17.INTR输入是()有效。 18.级连系统中,从8259A中的INT引脚应与主8259A的()连接。 19.()时,使用8259A的CS2~CS0引脚。 20.用二片8259A级连后,CPU的可屏蔽方式硬中断可扩充到()级。

数据库大作业设计题目分析

《数据库原理及技术》大作业大纲 类同卷,网上抄袭,大作业格式不正确一律0分处理 一、课程设计的目的和要求 (1)培养学生运用所学课程《数据库原理及技术》的理论知识和技能,深入理解《数据库原理及技术》课程相关的理论知识,学会分析实际问题的能力。 (2)培养学生掌握用《数据库原理及技术》的知识设计计算机应用课题的思想和方法。 (3)培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。 (4)通过课程大作业,要求学生在教师的指导下,独立完成大作业要求的相关内容,包括: ①通过调查研究和运用Internet,收集和调查有关资料、最新技术信息。 ②基本掌握撰写小论文的基本步骤和写作方法。 ③根据课题的要求基本理解和掌握E-R图的设计方法和关系模式的转换。 ④根据课题的要求基本理解和掌握数据流图(DFD)和数据字典(DD)的设计方法。 ⑤创建数据库及各种数据库对象。 二、课程设计题目 要求: (1)任选下列一个题目,调查分析一个具体的或模拟的实例; (2)描述该实例的业务信息和管理工作的要求; (3)列出实体、联系; (4)指出实体和联系的属性; (5)画出E-R图; (6)将E-R图转换成关系模式,并注明主码和外码; (7)建立数据字典; (8)创建数据库; (9)根据题目的要求写查询、存储过程、触发器等。 题目: (1)学校图书借阅管理系统 功能要求: ●实现图书信息、类别、出版社等信息的管理; ●实现读者信息、借阅证信息的管理; ●实现图书的借阅、续借、归还管理; ●实现超期罚款管理、收款管理; ●创建触发器,分别实现借书和还书时自动更新图书信息的在册数量;

数据库原理例题及解答

一、实验目的: 1、了解SQL语言的特点和基本概念。 2、能够针对某种具体的DBMS(本实验采用Access2003),熟练地运用单表查询、连接查询、嵌套查询、集合 查询等各种SQL查询语句对数据库中的表进行操作。 3、对相同的查询要求,能够采用多种查询方法实现,并能分析各种方法的优劣,从中选择合适的方法。 二、实验过程: 1、Print the names of professors who work in departments that have fewer than 50 PhD students. 解:(1)分析:本题是查询在博士生人数少于50个人的系工作的教师名字。查询教授名字可以通过prof 表,而所查询的教授名字是有限制条件的, 他所工作的系名要属于特定的集合(所有系名的一个子集),显然这个子集可以通过查询 dept表获得,所以带有谓词in的嵌套子查询可以实现题目要求。 (2)语句实现: ' SELECT Prof.字段1 FROM Prof WHERE Prof.字段2 IN (SELECT Dept.字段1 FROM Dept WHERE Dept.字段2 < 50); ****************************************************; (3)查询结果: | 2、Print the name(s) of student(s) with the lowest gpa 解:(1)分析:本题是查询成绩点最低的学生的名字。最低的成绩点可以在student表中通过函数min(gpa)获得,而所查询学生的名字的限制为成绩点等于min(gpa), 因此可用如下嵌套子查询实现。 (2)语句实现: > SELECT Student.字段2

SQL数据库期末大作业

学校:北京联合大学 系别:信息管理系 姓名:孙超 学号:2013110444006 《餐饮业信息管理系统的开发》 1、本项目的需求分析 随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。 为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。不同的设计从而达到不同的功能,实现信息的有效传达与管理。 第一:在员工使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.查询菜单 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 第二:管理员使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.添加修改查询菜单信息,最好能看到菜品图片 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 6.设定具体的打折方法 7.添加职员信息,权限也可以定为管理员。 8.可以查询使用者的现金收款金额。 二、餐饮业管理数据库管理系统的E-R模型(概念结构设计) 1.用户(员工)的信息:

编号、密码、类型、姓名、电话、收款金额 2.客户信息: 用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额 3.食谱: 类型、名称、价格、配料、照片 4.预定: 用户编号、日期、预定时间、客户姓名、类型、预定食谱、桌号5桌台管理: 桌号、使用情况、 6.点餐管理: 用户编号、类型、菜品、数量、价格、照片 7.盈利管理: 日期、日支出金额、店内收入、外卖收入、盈利额度 各对象之间的联系图: 用户E-R图 主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。

读取数据库内容

MySQL数据库操作步骤 第一步:登录到MySQL服务器 第二步:选择当前要操作的数据库 第三步:设置请求和返回数据的字符集 第四步:执行SQL语句 ?增加记录:INSERT INTO news(title,content) VALUES(‘标题’ , ‘内容’) ?删除记录:DELETE FROM news WHERE id=180 ?修改记录:UPDATE news SET title = ‘新标题’ , content = ‘新内容’ WHERE id=180?查询记录:SELECT id,title,hits FROM news WHERE id<100 ORDER BY id desc LIMIT 10,10 导入测试数据saixinjituan.sql步骤

PHP+MySQL数据库编程的步骤 ?第一步:PHP连接MySQL服务器 ?第二步:选择当前要操作的数据库 ?第三步:设置请求或返回的数据的字符集 ?第四步:执行各种SQL语句。 PHP连接MySQL服务器 1、mysql_connect() ?描述:PHP连接MySQL服务器。 ?语法:resource $link = mysql_connect($hostname,$username,$password) ?参数: ?$hostname:是MySQL服务器的域名或IP地址。也可以加端口号(3306)。 如:localhost:3306 ?$username:是MySQL服务器的用户名。如:root ?$password:是MySQL服务器用户密码。如:root ?返回值:如果执行成功,返回一个资源标识符。如果执行失败,返回FALSE。 2、exit() ?描述:输出一个提示信息,并中止脚本继续向下运行。 ?语法:void exit([$msg]) ?参数:$msg是可选项。如果省略,只中止脚本运行。 ?举例:exit(“PHP连接出错了”)

c语言程序设计-向艳-书上例题源代码教学提纲

第五章函数 1.定义一个求两个整数和的函数 int sum(x,y) int x,y; { int z; z=x+y; return(z); } 2.编写函数求两个数的最大值 #include float max(float x,float y) { float z; if(x>y) z=x; else z=y; return (z); } void main() { float a,b,c; scanf("%f%f",&a,&b); c=max(a,b); printf("max=&f\n",c); } 3.计算并输出一个圆台两底面积之和 #include float area(float x,float y) { float s; s=3.1415*(x*x+y*y); return s; } void printstar() { int i; for(i=0;i<30;i++) printf("*"); printf("\n"); } void main() {

float r1,r2,s; printstar(); scanf("%f,%f",&r1,&r2); s=area(r1,r2); printf("s=%.2f\n",s); printstar(); } 4.实参求值顺序的例子 #include int fun(int a,int b) { if (a>b) return 1; else if (a==b) return 0; else return -1; } void main() { int k=3,s; s=fun(k,++k); printf("s=%d\n",s); } 5.计算Σn i=1 i #include void main() { void s(int); int n; printf("input number\n"); scanf("%d",&n); s(n); printf("n=%d\n",n); } void s(int n) { int i; for(i=n-1;i>=1;i--) n=n+i; printf("n=%d\n",n); } 6.全局变量被“屏蔽” #include

数据库原理及应用 练习题及参考答案

数据库原理与应用练习题及参考答案 一、选择题 1.一下关于关系的说法正确的是( A ) A.一个关系就是一张二维表 B.在关系所对应的二维表中,行对应属性,列对应元组。 C.关系中各属性不允许有相同的域。 D.关系的各属性名必须与对应的域同名。 2.关系数据表的关键字可由( D )属性组成。 A.一个 B.两个 C.多个 D.一个或多个 3.进行自然连接运算的两个关系( A ) A.至少存在一个相同的属性名 B.可不存在任何相同的属性名 C.不可存在个相同的属性名 D.所有属性名必须完全相同 4.概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的( B )。 A.数据模型 B.概念模型 C.层次模型 D.关系模型 5.Access 2010 数据库具有很多特点,下列叙述中,正确的是( B )。 A. Access 2010数据表可以保存多种数据类型,但是不包括多媒体数 B. Access 2010可以通过编写应用程序来操作数据库中的数据 C. Access 不能支持 Internet/Intranet 应用 D. Access 2010 使用切换面板窗体管理数据库对象 6.数据表的基本对象是( A ) A.表 B.查询 C.报表 D.窗体 7.利用Access 2010 创建数据库文件,其扩展名是( B ) A.mdb B.accdb C.xlsx D. acc 8.启动Access 2010 后,最先显示的是什么界面( C ) A.数据库工作界面 B.“打开”窗口 C. Backstage D导航窗格 9.在 Access 数据库对象中,不包括的是( B ) A.表 B.向导 C.窗体 D.模块 10.表的组成内容包括( C ) A.查询和字段 B.报表和字段 C.字段和记录 D.记录和窗体 11.在 Access 2010 数据库的表设计视图中,不能进行的操作是( A ) A.修改字段类型 B.设置索引 C.增加字段 D.删除记录

javascript读取数据库中的数据表记录

javascript读取数据库中的数据表记录 Html代码 1 2 3读取数据库中的数据表记录 4 5 6

表格显示数据表记录

7
8 35 36

第06章_MATLAB数值计算_例题源程序汇总

第6章 MATLAB 数值计算 例6.1 求矩阵A 的每行及每列的最大和最小元素,并求整个矩阵的最大和最小元素。 1356 78256323578255631 01-???? -? ?=???? -??A A=[13,-56,78;25,63,-235;78,25,563;1,0,-1]; max(A,[],2) %求每行最大元素 min(A,[],2) %求每行最小元素 max(A) %求每列最大元素 min(A) %求每列最小元素 max(max(A)) %求整个矩阵的最大元素。也可使用命令:max(A(:)) min(min(A)) %求整个矩阵的最小元素。也可使用命令:min(A(:)) 例6.2 求矩阵A 的每行元素的乘积和全部元素的乘积。 A=[1,2,3,4;5,6,7,8;9,10,11,12]; S=prod(A,2) prod(S) %求A 的全部元素的乘积。也可以使用命令prod(A(:)) 例6.3 求向量X =(1!,2!,3!,…,10!)。 X=cumprod(1:10) 例6.4 对二维矩阵x ,从不同维方向求出其标准方差。 x=[4,5,6;1,4,8] %产生一个二维矩阵x y1=std(x,0,1) y2=std(x,1,1) y3=std(x,0,2) y4=std(x,1,2) 例6.5 生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。 X=randn(10000,5); M=mean(X) D=std(X) R=corrcoef(X)

例6.6 对下列矩阵做各种排序。 185412613713-?? ??=?? ??-?? A A=[1,-8,5;4,12,6;13,7,-13]; sort(A) %对A 的每列按升序排序 -sort(-A,2) %对A 的每行按降序排序 [X,I]=sort(A) %对A 按列排序,并将每个元素所在行号送矩阵I 例6.7 给出概率积分 2 (d x x f x x -? e 的数据表如表6.1所示,用不同的插值方法计算f (0.472)。 x=0.46:0.01:0.49; %给出x ,f(x) f=[0.4846555,0.4937542,0.5027498,0.5116683]; format long interp1(x,f,0.472) %用默认方法,即线性插值方法计算f(x) interp1(x,f,0.472,'nearest') %用最近点插值方法计算f(x) interp1(x,f,0.472,'spline') %用3次样条插值方法计算f(x) interp1(x,f,0.472,'cubic') %用3次多项式插值方法计算f(x) format short 例6.8 某检测参数f 随时间t 的采样结果如表6.2,用数据插值法计算t =2,7,12,17,22,17,32,37,42,47,52,57时的f 值。 T=0:5:65; X=2:5:57;

c#大文件读取和写入数据库(带进度条的源代码)

protected int state = 0; //表示进度条当前处理的事件类型,1表读取word,2表写入word,3表doc转pdf,4表txt转pdf private System.Windows.Forms.Form getDialog(string strFormName,System. Drawing.Icon ico,string strShowContent) { System.Windows.Forms.Form frm = new Form(); //初始化窗体 frm.Text = strFormName; frm.Icon = ico; frm.MaximizeBox = false; frm.MinimizeBox = false; frm.TopMost = true; frm.ShowInTaskbar = false; frm.Height = 168; frm.Width = 544; frm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScree n; //添加控件 https://www.sodocs.net/doc/216494117.html,bel lblContent = new Label(); lblContent.Text = strShowContent; lblContent.Left = 30; lblContent.Top = 20; lblContent.Text = strShowContent; frm.Controls.Add(lblContent); System.Windows.Forms.ProgressBar prgLoader = new ProgressBar(); prgLoader.Left=30; prgLoader.Top = lblContent.Top + lblContent.Height + 5;

SQL数据库期末大作业91411

Hefei University 《数据库期末大作业》 餐饮业信息管理系统的开发 专业:电子信息工程 班级:13电子1班 姓名:李云 学号:1305011005

指导老师:史俊朗 完成时间:2016-12-28 一、本项目的需求分析 随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。 为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。不同的设计从而达到不同的功能,实现信息的有效传达与管理。 第一:在员工使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.查询菜单 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 第二:管理员使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.添加修改查询菜单信息,最好能看到菜品图片

3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 6.设定具体的打折方法 7.添加职员信息,权限也可以定为管理员。 8.可以查询使用者的现金收款金额。 二、餐饮业管理数据库管理系统的E-R模型(概念结构设计) 1.用户(员工)的信息: 编号、密码、类型、姓名、电话、收款金额 2.客户信息: 用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额 3.食谱: 类型、名称、价格、配料、照片 4.预定: 用户编号、日期、预定时间、客户姓名、类型、预定食谱、桌号5桌台管理: 桌号、使用情况、 6.点餐管理: 用户编号、类型、菜品、数量、价格、照片 7.盈利管理: 日期、日支出金额、店内收入、外卖收入、盈利额度 各对象之间的联系图:

如何读取并处理数据库表

读取并处理数据库表 概览 内容 数据库表和 SQL 概念 .............................. 2从数据库表读取数据 .............................. 3定义选择的结果................................. 3指定将读取的数据库表.......................... 7为选定数据指定目标区........................... 8选择立即读取的行............................. 11给行分组...................................... 16指定行的顺序................................. 17更改数据库表的内容 ............................ 17向数据库表添加行............................. 18在数据库表中更改行........................... 20添加或更改行................................. 22从数据库表中删除行........................... 23使用光标从数据库表中读取行.................... 25打开光标...................................... 25用光标读取数据............................... 26假如 FETCH 语句没有读取任何行, SY-SUBRC 就设置为

第2章例题源程序

例2.1 计算表达式 i 27147cos 5-++? 的值,并将结果赋给变量x ,然 后显示出结果。 x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) %计算表达式的值 例2.2 利用M 文件建立MYMAT 矩阵。 (1)启动有关编辑程序或MATLAB 文本编辑器(见第4章),并输 入待建矩阵: MYMAT=[101,102,103,104,105,106,107,108,109 ; 201,202,203,204,205,206,207,208,209; 301,302,303,304,305,306,307,308,309]; (2)把输入的内容存盘(设文件名为mymatrix.m)。 (3)在MATLAB 命令窗口中输入mymatrix ,即运行该M 文件,就会自动建立一个名为MYMAT 的矩阵,可供以后使用。 例2.3 建立5阶方阵A ,判断A 的元素是否能被3整除。 A =[24,35,13,22,63;23,39,47,80,80; ... 90,41,80,29,10;45,57,85,62,21;37,19,3 1,88,76] P=rem(A,3)==0 %判断A 的元素是否可以被3整 除 例2.4 在[0,3π]区间,求y=sin(x)的值。要求: (1)消去负半波,即(π,2π)区间内的函数值置0。

2 (2) (3π,32π)和(37π,38π)区间内取值均为sin 3 π。 方法1: x=0:pi/100:3*pi; y=sin(x); y1=(x2*pi).*y; %消去负半波 q=(x>pi/3&x<2*pi/3)|(x>7*pi/3&x<8*pi/3); qn=~q; y2=q*sin(pi/3)+qn.*y1; %按要求处理第 (2)步 方法2: x=0:pi/100:3*pi; y=sin(x); y1=(y>=0).*y; %消去负半波 p=sin(pi/3); y2=(y>=p)*p+(y=10 & A<=20) ans = 3 6 7 例2.6 建立一个字符串向量,然后对该向量做如下处理:

ACCESS数据库的连接和读取记录

ACCESS数据库的连接和读取记录 今天要学习的内容有一点枯燥,但是很重要。在这里大家不需要知道命令具体的运行情况,外面的很多书籍之所以不适合入门就是因为介绍了太多的理论知识,让初学者一头雾水。下面开门见山,看两句话: <% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb") %> 第一句话定义了一个adodb数据库连接组件,第二句连接了数据库,大家只要修改后面的数据库名字就可以了。是不是很简单? 下面再看三句: <% exec="select * from guestbook" set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 %> 这三句加在前面两句的后面,第一句:设置查询数据库的命令,select后面加的是字段,如果都要查询的话就用*,from后面再加上表的名字,我们前面建立的是不是一个gustbook表阿?第二句:定义一个记录集组件,所有搜索到的记录都放在这里面,第三句是打开这个记录集,exec就是前面定义的查询命令,conn就是前面定义的数据库连接组件,后面参数“1,1”,这是读取,后面讲到修改记录就把参数设置为1,3,好了接下来我们读取记录。

<%do while not rs.eof%><% rs.movenext loop %>
<%=rs("name")%> <%=rs("tel")%> <%=rs("message")%> <%=rs("time")%>
在一个表格中,我们用4列分别显示了上次建立的表里面的四个字段,用do循环,not rs.eof 的意思是条件为没有读到记录集的最后,rs.movenext的意思是显示完一条转到下面一条记录,<%=%>就等于<%response.write%>用于在html代码里面插入asp代码,主要用于显示变量。 学会数据库的基本操作1(写入记录) 数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。今天我们先学习写入记录。

SQL大数据库期末大作业

学校:联合大学 系别:信息管理系 :超 学号:06 《餐饮业信息管理系统的开发》 1、本项目的需求分析 随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业围,增加知名度等。 为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。不同的设计从而达到不同的功能,实现信息的有效传达与管理。 第一:在员工使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.查询菜单 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 第二:管理员使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.添加修改查询菜单信息,最好能看到菜品图片 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 6.设定具体的打折方法 7.添加职员信息,权限也可以定为管理员。 8.可以查询使用者的现金收款金额。 二、餐饮业管理数据库管理系统的E-R模型(概念结构设计) 1.用户(员工)的信息:

编号、密码、类型、、、收款金额 2.客户信息: 用户编号、客户编号、、、密码、开卡时间、卡余额 3.食谱: 类型、名称、价格、配料、照片 4.预定: 用户编号、日期、预定时间、客户、类型、预定食谱、桌号 5桌台管理: 桌号、使用情况、 6.点餐管理: 用户编号、类型、菜品、数量、价格、照片 7.盈利管理: 日期、日支出金额、店收入、外卖收入、盈利额度 各对象之间的联系图: 用户E-R图 主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。

(完整版)vb连接access数据库及数据读写操作

ACCESS数据库和VB的连接 Edited by Ryan 2013 1、建立Access数据库 2、启动VB,建立标准EXE 图1 3、添加ActiveX控件 鼠标指向任意VB控件,单击右键,选择“部件(O)”,出现图3所示界面 图2

图3 选择部件“Microsoft ADO Data Control 6.0 (OLEDB)”,出现如图4所示控件 图4

4、添加控件Adodc 图5 4、在控件Adodc上添加数据源 鼠标指向控件Adodc1,单击右键,选择“ADODC 属性”,弹出如图7所示界面 图6

图7 单击“生成(U). . .”,弹出如图8所示界面 图8 选择“Microsoft Jet 4.0 OLE DB Provider”,单击“下一步(N) >>”,弹出如图9所示界面

图9 单击“. . .”,添加数据源(第一步所建Access 数据库),如图10所示 图10 单击“测试连接(T)”,出现提示框,如图11所示 图11 之后点击“确定”,退回到如图12所示界面

图12 单击“记录源”,弹出如图13所示界面 图13 在“命令类型”下,选择“1 - adCmdText”,在“命令文本(SQL)”下,输入“Select * from test1”,最后单击“应用”,“确定”即可 之后,进入程序书写部分 程序部分需要注意接头形式及简单例子如下: Private Sub Command1_Click() ‘VB按钮控件 Dim mydb As New ADODB.Connection ‘定义新的数据库连接 mydb.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\read database\test1\test1.mdb" ‘数据库绝对路径 Dim rs As New ADODB.Recordset ‘定义数据库的一个对象 mydb.Open ‘打开数据库 rs.Open "select * from test1", mydb, 3, 3 ‘打开数据库中的表test1

第十章 输入输出系统习题

第十章输入输出系统习题 一、单项选择题: 1、“总线忙”信号是由__ __建立的。 A.获得总线控制权的设备B.发出“总线请求”的设备 C.总线控制器D.CPU 2、在不同速度的设备之间传送数据__ __。 A.必须采用同步控制方式B.必须采用异步控制方式 C.可以选用同步方式,也可选用异步方式D.必须采用应答方式 3、挂接在总线上的多个部件___ _。 A.只能分时向总线发送数据,并只能分时从总线接收数据 B.只能分时向总线发送数据,但可同时从总线接收数据 C.可同时向总线发送数据,并同时从总线接收数据 D.可同时向总线发送数据,但只能分时从总线接收数据 4、总线从设备是____。 A.掌握总线控制权的设备 B.申请作为从设备的设备 C.被主设备访问的设备D.总线裁决部件 5、假设某系统总线在一个总线周期中传输4个字节信息,一个总线周期占用2个时钟周期,总线时钟频率为10MHz,则总线带宽是__ __。 A.10 MB/s B.20 MB/s C.40 MB/s D.80 MB/s 6、波特率表示传输线路上____。 A.信号的传输速率B.有效数据的传输速率 C.校验信号的传输速率D.干扰信号的传输速率 7、中断系统中的断点是指____。 A.子程序入口地址B.中断服务子程序入口地址 C.中断服务程序入口地址表D.中断返回地址 8、显示器的主要参数之一是分辨率,其含义是____。 A.显示屏幕的水平和垂直扫描频率 B.显示屏幕上光栅的列数和行数 C.可显示不同颜色的总线 D.同一个画面允许显示不同颜色的最大数目 9、下列选项中,能引起外部中断的事件是____。 A.键盘输入B.除数为0 C.浮点运算下溢D.访存缺页 10.CPU响应中断时,最先完成的两个步骤是_ __和保护现场信息。 A.开中断 B.恢复现场 C.关中断 D.不可屏蔽中断 11、在独立编址方式下,存储单元和I/O设备是靠来区分的。 A.不同的地址代码B.不同的地址总线 C.不同的指令和不同的控制信号D.上述都不同 12、计算机系统的输入/输出接口通常是__ __。 A.CPU与存储器之间的交界面B.存储器与打印机之间的交界面 C.主机与外围设备之间的交界面D.CPU与系统总线之间的交界面 13.根据连线的数量,总线可分为串行总线和_____ ___总线

SQL2008数据库大作业

数据库基础 ------大作业 题目:学生信息管理系统 教学系:数学与统计学院 专业班级: 071121 学生姓名: 8888

一、系统设计 在进行系统的详细设计之前,首先应该设计好系统的模式并确定好系统的功能目标和具体页面,下面就是学生信息管理的系统设计。 从系统的设计目标上来看,学生信息管理系统的主要功能如下:(1)登录验证功能。 (2)学生信息查看功能。 (3)信息编辑删除和添加功能。 (4)成绩查看和搜索功能。 (5)课程浏览搜索功能。 (6)密码修改功能。 从系统的实现上来看,共有十七个页面,每个页面的功能实现和说明如下所示。 页面说明

下面介绍在系统设计之前数据库的需求分析和设计。 二、数据库设计 1.需求分析 学生信息管理系统是各大高校所不可缺少的一部分,随着计算机水平的快速提高,学生信息管理系统也在不断地发展和完善。管理信息系统主要包括了学生的信息管理以及课程和成绩管理,基本上实现了管理系统所必须的功能,下面介绍学生信息管理系统数据库的设计。 2.概念设计 2.1数字词典 数据词典如下表所示:

数据词典

2.2E-R图 根据以上的需求分析,E-R图如图下图所示: E-R图如下 2.3关系模式 E-R图转换成关系模式如下: 学生(学号、姓名、性别、民族、出生年月、入学时间、班级、生源地、备注) 课程(课程号、课程名称、学时、学分、课程类型、授课老师) 成绩(ID、学号、课程号、考试成绩) 选修(学号、课程号、选修时间) 查询(学号、课程号、查询时间)

3.逻辑设计 根据前面的E-R图转换的关系模式一共有以下几个表: Student(学生表) Course(课程表) Score(成绩表) Elective(选修表)

相关主题