数据库课设(数据库设计实验报告).doc_第1页
数据库课设(数据库设计实验报告).doc_第2页
数据库课设(数据库设计实验报告).doc_第3页
数据库课设(数据库设计实验报告).doc_第4页
数据库课设(数据库设计实验报告).doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学号: 0806410212数据库课程设计报告2010年 秋 季学期学 院: 信息技术与控制工程学院 专业班级: 计算机科学与技术08-2班 姓 名: 宋军民 设计日期: 2010年12月20日12月25日 课程设计成绩: 评 阅 教 师: 评 阅 日 期: 目录1.问题描述.21.1背景21.2数据需求21.3事务需求22.解决方案.22.1 E-R模型设计.22.2 设计数据库32.2.1创建数据库.32.2.2创建数据表.32.2.3连接数据库.42.3主窗体设计.52.3.1设计登录界面52.3.2添加数据组件52.3.3生成数据集52.3.4设计代码52.4读者信息.52.4.1设计显示界面52.4.2添加数据组件62.4.3功能实现62.5显示报表.62.5.1添加读者信息报表62.5.2添加借阅情况报表72.6综合查询的实现.72.6.1添加数据组件72.6.2窗体功能实现83.系统实现.83.1开发环境83.2系统流程图83.3程序调试情况83.4 功能显示.83.5 结论.114.结束语11附录:源代码清单.111.问题描述1.1背景本系统利用.NET处理数据库的功能,实现对图书馆信息的管理。主要功能为管理有关读者、出版社、书籍、借阅和管理者的信息等。本系统的结构分为读者信息管理模块、书籍信息管理模块、借阅信息管理模块、管理者管理信息模块、查询处理模块。1.2数据需求根据系统的需求,首先将要记录的信息分类,要记录的信息如下。(1)读者信息:包括卡号、姓名、性别、单位、读者类型和级别等。(2)书籍信息:包括书号、书名、作者、价格、出版社、备注、是否借出。(3)借阅信息:包括借阅日期、应归还日期、书号和证号等。(4)管理者信息:包括管理者名称、对应密码和对应权限等。根据这些需要,本系统需要“读者信息”表,“出版社信息”表,“书籍信息”表,“借阅信息”表和“管理者信息”表。1.3事务需求(1)在读者信息管理部分,要求如下。可以浏览读者信息。可以对读者信息进行维护,包括添加及删除等操作。(2) 在书籍信息管理部分,要求如下可以浏览书籍信息。可以对书籍信息进行维护,包括添加及删除等操作。(3) 在借阅信息管理部分,要求如下。可以浏览借阅信息。可以对借阅信息进行维护操作。2.解决方案2.1 E-R模型设计2.2 设计数据库2.2.1创建数据库(1)在服务器资源管理器中的任一节点右击。(2)执行快捷菜单中的“新建数据库”命令,并在打开的“创建数据库”对话框中输入数据库名databasecs。(3)单击“确定”按钮,则新建的数据库就会出现在服务器上。2.2.2创建数据表创建数据库后,为databasecs数据库添加数据表,步骤如下。(1)在服务器资源管理器中右击数据库databasecs下的“表”文件夹。在弹出的快捷菜单中执行“新建表”命令,出现表设计器。(2)添加表的字段和其他详细资料。各表数据结构如表1所示。表名列名数据类型长度读者卡号nchar10姓名nvarchar20性别nchar2单位nvarchar50类型int4级别bit1借阅书号nchar10卡号nchar10借书时间datetime16还书时间datetime16书籍信息书号nchar10书名nvarchar50作者nvarchar50价格float10出版社nvarchar50备注nvarchar50借出情况nchar2管理者信息用户名nvarchar20密码nvarchar20姓名nvarchar20性别nchar2职务nvarchar20表1 - 图书管理系统各表数据结构2.2.3连接数据库为数据库databasecs和本系统之间建立一个数据连接。定义字符串 constr = server=.;database=databasecs;uid=sa;password=19890417; 定义SqlConnection conn;在主窗体载入时加入conn = new SqlConnection(constr); 2.3主窗体设计创建一个新的“Windows应用程序”类型的项目,名为“Form1”。将默认创建的窗体命名为“主窗体”,把“主窗体”作为本系统中的主界面。一共制作一个可变窗体,将所有控件载入其中操作。2.3.1登录时状态2.3.2图书查找状态2.3.3用户操作状态2.3.4增删状态3.系统实现3.1开发环境本系统使用Visual C#.NET语言进行开发。3.2系统流程图4.结束语通过做课程设计,有几点感想,经过整理如下。1. 扎实的基础。如果不掌握他们,很难写出高水平的程序。而这一点又是我们所缺乏的。 2. 不钻牛角尖。当遇到障碍的时候,暂时远离电脑,当重新开始工作的时候,也许会发现那些难题现在竟然可以迎刃而解。 3. 多与别人交流。三人行必有我师。 4. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。如果注释和代码不一致,那就更加糟糕。 附录:源代码清单using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Windows.Forms;using System.Data.SqlClient;namespace databaseclassset public partial class Form1 : Form public Form1() InitializeComponent(); this.TransparencyKey = Color.Red; private Timer timer0, timer1, timer2, timer3, timer4,timer5 ; private const int changeInterval = 1; private int flag = 0; private int sign = 0,error=0; private int sizex, sizey,chax,chay; private int signn = 0,signnn=0,mousesign = 0; SqlCommand pscom; string constr = server=.;database=databasecs;uid=sa;password=19890417; string sqlZ,infor1,infor2,infor3,name,username; SqlConnection conn; SqlDataReader psrd; SqlDataAdapter ad; DataTable ta; private void Form1_Load(object sender, EventArgs e) conn = new SqlConnection(constr); this.DoubleBuffered = true; chushi(); private void timer1_Tick(object sender, System.EventArgs e) this.timer1.Stop(); if (this.Opacity 0) this.Opacity = this.Opacity - 0.04; this.timer0.Start(); else this.Close(); private void timer2_Tick(object sender, System.EventArgs e) /this.timer2.Stop(); if (flag 39) zuoxia.Top = zuoxia.Top + 10; youxia.Top = youxia.Top + 10; xia.Top = xia.Top + 10; /xia.Visible = false; sizey = sizey + 10; this.Size = new Size(sizex, sizey); this.Top = this.Top - 5; flag+; / this.timer2.Start(); else this.timer2.Stop(); this.timer2.Enabled = false; enterbutton.Text = 注销; userlabel.Visible = false; pslabel.Visible = false; usertb.Visible = false; passwordstb.Visible = false; usernamelabel.Visible = true; usersexlabel.Visible = true; userzhiwulabel.Visible = true; usernamelabel.Text = 姓名: + infor1; usersexlabel.Text = 性别: + infor2; userzhiwulabel.Text = 职务: + infor3; private void timer3_Tick(object sender, System.EventArgs e) /this.timer3.Stop(); if (flag 10) youshang.Visible = true; you.Left = you.Left + 30; youshang.Left = youshang.Left + 30; youxia.Left = youxia.Left + 30; sizex = sizex + 30; this.Size = new Size(sizex, sizey); this.Left = this.Left - 15; flag+; / this.timer3.Start(); else this.timer3.Stop(); sign = 1; dataGridView1.Visible = true; this.timer3.Enabled = false; private void timer4_Tick(object sender, System.EventArgs e) / this.timer4.Stop(); if (flag 10) you.Left = you.Left - 30; youshang.Left = youshang.Left - 30; youxia.Left = youxia.Left - 30; sizex = sizex - 30; this.Size = new Size(sizex, sizey); this.Left = this.Left + 15; flag+; / this.timer4.Start(); else this.timer4.Stop(); youshang.Visible = false; sign = 0; this.timer4.Enabled = false; private void timer5_Tick(object sender, System.EventArgs e) /this.timer5.Stop(); if (mousesign = 1) this.Left = Control.MousePosition.X - chax; this.Top = Control.MousePosition.Y - chay; else if (mousesign = 2) this.timer5.Stop(); this.timer5.Enabled = false; private void exitbutton_Click(object sender, EventArgs e) timer0 = new Timer(); timer0.Interval = changeInterval; timer0.Tick += new System.EventHandler(this.timer0_Tick); this.timer0.Start(); private void button1_Click(object sender, EventArgs e) if (enterbutton.Text = 确定) entermessage.Text = 请稍等; sqlZ = select * from 用户信息 where 用户名= + usertb.Text + and 密码= + passwordstb.Text + ; pscom = new SqlCommand(sqlZ, conn); conn.Open(); psrd = pscom.ExecuteReader(); if (psrd.Read() username = usertb.Text; entermessage.Text = 已核实通过; infor1 = psrd2.ToString(); infor2 = psrd3.ToString(); infor3 = psrd4.ToString(); flag = 0; timer2 = new Timer(); timer2.Interval = changeInterval; timer2.Tick += new System.EventHandler(this.timer2_Tick); timer2.Start(); else entermessage.Text = 错误!账号密码不匹配!; conn.Close(); else if (enterbutton.Text = 注销) chushi(); private void bookbutton_Click(object sender, EventArgs e) qingchu(); book_gobutton.Visible = true; book_label1.Visible = true; book_label2.Visible = true; book_nametb.Visible = true; book_numertb.Visible = true; book_message.Visible = true; dataGridView1.Visible = true; if (sign = 0) flag = 0; timer3 = new Timer(); timer3.Interval = changeInterval; timer3.Tick += new System.EventHandler(this.timer3_Tick); this.timer3.Start(); private void chushi() this.Opacity = 0; timer1 = new Timer(); sign = 0; signn = 0; signnn = 0; username = ; this.Top = 300; this.Left = 500; zuoxia.Top = 176; youxia.Left = 290; youxia.Top = 176; xia.Top = 176; youshang.Top = 204; youshang.Left = 290; you.Left = 290; you.Top = 204; enterbutton.Text = 确定; userlabel.Visible = true; pslabel.Visible = true; usertb.Visible = true; passwordstb.Visible = true; usernamelabel.Visible = false; usersexlabel.Visible = false; userzhiwulabel.Visible = false; passwordstb.Text = ; usertb.Text = ; qingchu(); sizex = 330; sizey = 206; this.Size = new Size(sizex, sizey); timer1.Interval = changeInterval; timer1.Tick += new System.EventHandler(this.timer1_Tick); timer1.Start(); private void qingchu() signn = 0; book_gobutton.Visible = false; book_label1.Visible = false; book_label2.Visible = false; book_nametb.Visible = false; book_numertb.Visible = false; book_message.Visible = false; people_label1.Visible = false; people_textbox.Visible = false; people_bknumtb.Visible = false; people_button1.Visible = false; people_button2.Visible = false; people_button3.Visible = false; people_label2.Visible = false; people_label3.Visible = false; people_label4.Visible = false; people_label5.Visible = false; people_label6.Visible = false; people_label7.Visible = false; manage_button.Visible = false; manage_button1.Visible = false; manage_button2.Visible = false; manage_button3.Visible = false; manage_button4.Visible = false; manage_l1.Visible = false; manage_l2.Visible = false; manage_l3.Visible = false; manage_l4.Visible = false; manage_l5.Visible = false; manage_l6.Visible = false; manage_tb1.Visible = false; manage_tb2.Visible = false; manage_tb3.Visible = false; manage_tb4.Visible = false; manage_tb5.Visible = false; manage_tb6.Visible = false; manage_message.Visible = false; key_button1.Visible = false; key_label1.Visible = false; key_textBox1.Visible = false; key_message.Visible = false; key_message.Text = ; key_textBox1.Text = ; manage_message.Text = ; people_label2.Text = ; people_label3.Text = ; people_label4.Text = ; people_label5.Text = ; people_label6.Text = ; people_textbox.Text = ; people_bknumtb.Text= ; book_message.Text = ; book_nametb.Text = ; book_numertb.Text = ; dataGridView1.Visible = false; dataGridView1.DataSource = ; private void book_gobutton_Click(object sender, EventArgs e) book_message.Text = 请稍等; if (book_nametb.Text = & book_numertb.Text = ) book_message.Text = 未输入书名或书号; error = 1; else if(book_nametb.Text =) sqlZ = select * from 图书 where 书号= + book_numertb.Text+; else if(book_numertb.Text =) sqlZ = select * from 图书 where 书名 like % + book_nametb.Text + %; else sqlZ = select * from 图书 where 书号= + book_numertb.Text + and 书名 like % + book_nametb.Text + %; if (error = 0) ad = new SqlDataAdapter(sqlZ, conn); ta = new DataTable(); ad.Fill(ta); dataGridView1.DataSource = ta; book_nametb.Text = ; book_numertb.Text = ; book_message.Text = 查询结果数:+dataGridView1.RowCount.ToString(); error = 0; private void peoplebutton_Click(object sender, EventArgs e) qingchu(); name = ; people_label1.Visible = true; people_label2.Visible = true; people_label3.Visible = true; people_label4.Visible = true; people_label5.Visible = true; people_label6.Visible = true; people_label7.Visible = true; people_button1.Visible = true; people_button2.Visible = true; people_button3.Visible = true; people_bknumtb.Visible = true; people_textbox.Visible = true; dataGridView1.Visible = true; book_message.Visible = true; if (sign = 0) flag = 0; timer3 = new Timer(); timer3.Interval = changeInterval; timer3.Tick += new System.EventHandler(this.timer3_Tick); this.timer3.Start(); private void people_button1_Click(object sender, EventArgs e) book_message.Text = 请稍等; if (people_textbox.Text = ) book_message.Text = 请输入卡号; else sqlZ = select * from 读者 where 卡号= + people_textbox.Text + ; pscom = new SqlCommand(sqlZ, conn); conn.Open(); psrd = pscom.ExecuteReader(); if (psrd.Read() signn = 1; name = people_textbox.Text; people_label2.Text = 姓名: + psrd1.ToString(); people_label3.Text = 性别: + p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论