




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中南大学Oracle课程设计报告学生姓名 林晓锋 学 号 1302140121 专业班级 信科1401 指导老师 陈明 数学与统计学院一基础题3(30分)(1) 创建这三个表 建表截图如下:查看三个表的创建情况如下:向Book表添加数据:向borrow表中插入下列数据:向record表中插入下列数据:三个表的数据如下图:(2) 查询借书超过5本的读者的借书卡号及所借图书册数。(3) 查询借阅了水浒一书的读者的姓名及班级。、(4) 查询出过期未还的图书,显示借阅者卡号、书名及作者。(5) 查询出书名包括网络关键词的图书,显示其书号、书名、作者。 (6)将图书表中当前无人借阅的图书记录删除。可以发现第七本书已被删除。二综合题(40分)n 点歌台系统需求分析随着KTV行业的迅猛发展,点歌系统在KTV里的重要性越来越大,特别是在量版式KTV,投资方在选系统的时候无不练就一双火眼金睛,千挑万选,而且更是在配套上重金投入,确保营造出一个更好的消费环境。点歌系统中的专业版被广泛应用于KTV、酒店、酒吧等娱乐场所中,它是全电脑操作,无需DJ操作,无需换碟,无盘片磨损之忧,不存在花碟、死机等现象。考虑到点歌系统主要是搜索歌曲以及选择歌曲,故该系统着重在这两方面下功夫,而在插入歌曲、删除歌曲等方面不做设计。并且多数点歌台都需要由管理员开启,才能让用户使用,故设计了验证用户名和密码的界面。主要具有以下功能:l 登录系统:验证登录的用户名和密码l 更改密码:更改用户的密码l 添加用户:验证用户名和密码后可以添加用户l 管理员操作:添加或删除后台的歌曲l 查看歌曲:查看所有歌曲列表l 歌名搜索:按歌名搜索歌曲l 歌手搜索:按歌手搜索歌曲l 排行榜:按不同语种查看排行榜,其中包括总榜、华语榜、粤语榜、韩语榜、欧美榜等l 点歌:从查找的列表中选择要播放的歌曲,若该歌曲不在播放列表,则选择成功,否则跳出重复提示l 显示播放信息:在状态栏显示当前播放信息和下一曲,并显示当前歌曲的剩余时间l 删除歌曲:从播放列表删除要剔除出列表的歌曲系统数据流如下:管理员登录后台oracle数据用户点歌台 歌曲数据 操作欧美榜韩语榜粤语榜总排行华语榜歌手搜索歌曲搜索 点歌播放列表n 系统设计系统模块设计 根据系统功能分析和KTV点歌台的特点,经过模块化的分析,得到如下系统功能模块结构图。点歌系统图2 系统功能结构模块图系统登录系统登录 取消登录歌曲查询歌名搜索歌手搜索排行榜数据库设计1. 数据字典根据系统功能模块结构图和KTV点歌台点歌流程,以及管理系统的需求,总结出如下的数据字典: 系统用户数据:KTV内部人员使用点歌系统的身份数据,包含的数据项有用户编号、登录口令、权限代码。 歌曲数据:用于点歌使用的歌曲数据,包含的数据项有歌曲ID、歌曲名、歌手名、语种、歌曲长度、歌曲点播频率。 操作日志数据:包含的数据项有歌曲ID、歌曲名、歌手名、点播时间。2. 数据库结构设计根据系统模块设计和数据字典,设计出KTV点歌系统数据库中的各个数据表。数据表名称与结构如下:本系统共创建4个数据表:(1) music数据表。该表主要保存书籍资料信息,如表序号列名数据类型宽度说明1Mid整型5主键2Mname文本20歌曲名3Msinger文本20歌手名4Mtype文本10语种5Mlength整型5歌曲长度6mfreq整型5点歌频率表1 music数据表(2)mag数据表。该表主要保存管理员的信息序号列名数据类型宽度说明1Name文本20管理员登录名2password文本20密码表2 mag数据表(3)record数据表。该表主要保存读者信息序号列名数据类型宽度说明1Rid整型5以music(mid)为外键2rname文本20歌名3rdate日期点歌日期表3 record数据表n 系统实现本系统按功能分为两大块,主要包括系统登录模块、歌曲查询与点歌模块。大部分功能模块均采用独立的窗体设计。前台主要使用VS2010的C#,后台为Oracle11g数据库。l 登录界面检测用户名跟密码是否来自oracle数据库中mag表中的name和password相同,若无该用户或者密码有误则提示输入错误,否则进入点歌界面。提示信息错误的界面如下:主要代码如下(注释说明了各部分代码的作用):namespace music public partial class Form1 : Form public Form1() InitializeComponent(); /设置按回车后的默认按钮为登录键 this.AcceptButton = button_login; private void button_login_Click(object sender, EventArgs e) string connStr; string queryString; /连接到oracle数据库 connStr = Data Source=localhost/ORCL;User ID=SCOTT;PassWord=tiger; string user = textBox_user.Text; string password = textBox_password.Text; /设置查询语句,查询该用户名的密码 queryString = SELECT password FROM mag where name = + + user + ; OracleConnection conn = new OracleConnection(connStr); OracleCommand orclComd = conn.CreateCommand(); orclComd.CommandText = queryString; orclComd.Connection = conn; orclComd.CommandType = CommandType.Text; /打开数据库连接 conn.Open(); Form2 form2 = new Form2(); object obj = orclComd.ExecuteScalar(); /若无该用户或者密码有误,则跳出错误提示,否则登录到点歌界面 if (obj = null | !obj.Equals(password) MessageBox.Show(用户名或密码不正确, 登陆失败); else form2.ShowDialog(); /关闭数据库连接 conn.Close(); /点击取消后关闭登录界面 private void button_cancel_Click(object sender, EventArgs e) this.Close(); 修改密码验证输入的用户名和密码正确后,可进入修改密码的界面:若输入的密码不相同,跳出错误提示:否则修改成功(如两个文本框都输入“123456”):可从后台查看修改前后的结果:可以看到feng 的密码已修改成功。主要代码如下(注释说明了各部分代码的作用):/重载构造函数,传入窗口1的用户名和密码 public Form4(string str1,string str2) InitializeComponent(); user = str1; password = str2; /设置回车的默认按钮 this.AcceptButton = button_commit; private void button_commit_Click(object sender, EventArgs e) string connstr = Data Source=localhost/ORCL;User ID=SCOTT;PassWord=tiger; string changestr = update mag set password= + textBox_newpassword.Text.ToString() + where name = + user + ; /如果两次输入的密码相同且不为空则执行修改密码的SQL语句 if (textBox_newpassword.Text.Equals(textBox_newpassword2.Text) & textBox_newpassword.Text != ) OracleConnection orclConn = new OracleConnection(connstr); OracleCommand oracmd = new OracleCommand(); oracmd.CommandText = changestr; oracmd.Connection = orclConn; orclConn.Open(); oracmd.ExecuteNonQuery(); /跳出修改成功的窗口 MessageBox.Show(密码修改成功, 修改成功); orclConn.Close(); this.Close(); /否则提示输入有误,清空两个文本框的内容 else MessageBox.Show(请输入相同的密码, 密码输入有误); textBox_newpassword.Clear(); textBox_newpassword2.Clear(); private void button_cancel_Click(object sender, EventArgs e) this.Close(); 创建用户若验证用户名和密码成功,可进入创建用户的界面:若输入的用户名已存在,或者没有输入密码,则跳出错误提示: 否则创建新用户:可从后台查看新添加的用户:可以看见新添加了lin这个用户。主要代码如下(注释说明了各部分代码的作用):/重载构造函数,传入窗口1的用户名 public Form5(string str) InitializeComponent(); user = str; /设置回车的默认按钮 this.AcceptButton = button_commit; private void button_commit_Click(object sender, EventArgs e) string connstr = Data Source=localhost/ORCL;User ID=SCOTT;PassWord=tiger; /搜索已有的管理员信息 string selectstr = select * from mag; OracleConnection orclConn = new OracleConnection(connstr); OracleCommand selectcomd = orclConn.CreateCommand(); OracleCommand insertcomd=orclConn.CreateCommand(); selectcomd.CommandText = selectstr; selectcomd.Connection = orclConn; orclConn.Open(); OracleDataReader ord = selectcomd.ExecuteReader(); string ans = new string100; int i = 0; bool ok=true; /将管理员的用户名存到ans字符串数组中 while (ord.Read() ansi+ = ord0.ToString(); /密码为空时不创建新用户 if(textBox_password.Text=) ok=false; /若用户名已存在则不创建 for(int k=0;ki;k+) if(textBox_user.Text.Equals(ansk) ok=false; break; /判断是否创建新用户 if (ok) /创建新用户 string insertstr = insert into mag values( + textBox_user.Text + , + textBox_password.Text + ); insertcomd.CommandText = insertstr; insertcomd.Connection = orclConn; insertcomd.ExecuteNonQuery(); MessageBox.Show(添加新用户成功, 添加成功); this.Close(); else /跳出输入有误的提示 MessageBox.Show(该用户已存在或者未输入密码, 添加失败); textBox_user.Clear(); textBox_password.Clear(); private void button_cancel_Click(object sender, EventArgs e) this.Close(); 管理员操作验证用户名和密码通过后可以添加歌曲或者删除歌曲:若信息不完整,则不能添加歌曲:歌曲ID已存在,同样添加失败:否则添加成功:可从后台Oracle查看是否已添加:同样可以删除该歌曲,不同的是删除歌曲的时候需要并且仅需要输入ID,若没有输入ID则提示错误:否则删除相应的歌曲:可从后台查看ID为1000的歌曲已被删除:主要代码如下(注释说明了各部分代码的作用):/添加歌曲 private void button_add_Click(object sender, EventArgs e) /若有其中一项未输入,则跳出提示 if (textBox_mid.Text = | textBox_mname.Text = | textBox_msinger.Text = | textBox_mtype.Text = | textBox_mlength.Text = ) MessageBox.Show(请输入完整的歌曲信息, 信息不完整); return; string connstr = Data Source=localhost/ORCL;User ID=SCOTT;PassWord=tiger; string judgestr = select mid from music; string insertstr = insert into music values( + textBox_mid.Text + , + textBox_mname.Text + , + textBox_msinger.Text + , + textBox_mtype.Text + , + textBox_mlength.Text + ,0); OracleConnection orclConn = new OracleConnection(connstr); OracleCommand oracmd = new OracleCommand(); oracmd.CommandText = judgestr; oracmd.Connection = orclConn; orclConn.Open(); OracleDataReader ord = oracmd.ExecuteReader(); string ans = new string1000; int i = 0; bool ok = true; /ans字符串数组存储已有的歌曲ID while (ord.Read() ansi+ = ord0.ToString(); /若要添加的歌曲ID有重复,则不添加 for (int k = 0; k i; k+) if (textBox_mid.Text.Equals(ansk) ok = false; break; /判断是否添加歌曲 if (ok) oracmd.CommandText = insertstr; oracmd.ExecuteNonQuery(); MessageBox.Show(添加歌曲成功, 添加成功); else MessageBox.Show(该歌曲ID已存在, ID已存在); /删除歌曲 private void button_cut_Click(object sender, EventArgs e) /若歌曲ID未输入,跳出提示 if (textBox_mid.Text = ) MessageBox.Show(请输入歌曲ID, 缺少歌曲ID); return; string connstr = Data Source=localhost/ORCL;User ID=SCOTT;PassWord=tiger; /删除歌曲的SQL语句 string deletestr = delete music where mid= + textBox_mid.Text + ; OracleConnection orclConn = new OracleConnection(connstr); OracleCommand oracmd = new OracleCommand(); oracmd.CommandText = deletestr; oracmd.Connection = orclConn; orclConn.Open(); oracmd.ExecuteNonQuery(); MessageBox.Show(该歌曲已删除成功, 删除成功); orclConn.Close(); l 点歌界面查看所有歌曲点击显示所有歌曲可以显示后台有的所有歌曲信息,结果如下:该部分的主要代码如下:/显示所有歌曲信息 private void button_showmusic_Click(object sender, EventArgs e) string connstr; string queryString; connstr = Data Source=localhost/ORCL;User ID=SCOTT;PassWord=tiger; queryString = SELECT * FROM music order by mid; OracleConnection orclConn = new OracleConnection(connstr); OracleCommand orclcomd = orclConn.CreateCommand(); orclcomd.CommandText = queryString; orclConn.Open(); OracleDataAdapter oraDA = new OracleDataAdapter(orclcomd); DataSet ds = new DataSet(); oraDA.Fill(ds); orclConn.Close(); DataTable dtbl = ds.Tables0; this.dataGridView_showmusic.DataSource = dtbl; orclConn.Close(); 歌曲搜索 选择不同关键字搜索歌曲,可选择按歌曲名搜索或者按歌手名搜索,如图所示: 选择歌名,并在右方文本框中输入要搜索的歌曲,如输入“背对背拥抱”,则列表框1可现实搜索结果,如图所示:若没有选择关键字直接点击查看或按回车,则跳出提示:按歌手名搜索情况类似,如输入“周杰伦”并按回车或者点击查找,结果如下图:该部分的主要代码如下(注释说明了各部分代码的作用):/设置搜索的关键字 private void comboBox_type_SelectedIndexChanged(object sender, EventArgs e) if (comboBox_type.SelectedIndex = 0) type1 = 1; else if (comboBox_type.SelectedIndex = 1) type1 = 2; else type1 = 0; /搜索歌曲 private void button_select_Click(object sender, EventArgs e) listBox_Selectedmusic.Items.Clear(); string connstr,queryString; connstr = Data Source=localhost/ORCL;User ID=SCOTT;PassWord=tiger; /设置搜索内容 string selectstr = textBox_song.Text; string typestr=mname; if (type1 = 1) typestr = mname; /按歌名搜索 else if (type1 = 2) typestr = msinger; /按歌手搜索 else MessageBox.Show(请选择搜索关键字,未选择); /未选择搜索关键字,跳出提示 /搜索语句 queryString = SELECT mid,mname,msinger,mtype,mlength,mfreq FROM music where + typestr + = + selectstr + ; OracleConnection orclConn = new OracleConnection(connstr); OracleCommand orclcomd = orclConn.CreateCommand(); orclcomd.CommandText = queryString; orclcomd.Connection = orclConn; orclcomd.CommandType = CommandType.Text; orclConn.Open(); OracleDataReader ord = orclcomd.ExecuteReader(); int j=0; /读取搜索到的歌曲信息 while (ord.Read() string str=; for (int i = 0; i = 5; i+) if (i = 3) str += ; str += ordi.ToString(); resultj, i = ordi.ToString(); j+; /显示搜索到的歌曲信息 listBox_Selectedmusic.Items.Add(str); ord.Close(); orclConn.Close(); /显示搜索到的歌曲数目 textBox_Selectedcount.Text = listBox_Selectedmusic.Items.Count.ToString(); 查看排行榜可按照不同语种查看排行榜,可选择的选项有:总排行、华语榜、粤语榜、韩语榜、欧美榜等。如图(其中测试组是为了测试状态栏的歌曲倒计时设置的,并无实际含义,因为大部分歌曲长度都为三四分钟,该测试组的歌曲长度设置为十秒内,方便快速查看状态栏信息是否正确): 如选择华语,然后按回车或者点击查看,结果如下图:若没有选择关键字,则弹出提示,如图: 该部分主要代码如下(其中注释说明各部分代码的作用):/设置排行榜类型 private void comboBox_hot_SelectedIndexChanged(object sender, EventArgs e) if (comboBox_hot.SelectedIndex = 0) type2 = -1; else if (comboBox_hot.SelectedIndex = 1) type2 = -2; else if (comboBox_hot.SelectedIndex = 2) type2 = -3; else if (comboBox_hot.SelectedIndex = 3) type2 = -4; else if (comboBox_hot.SelectedIndex = 4) type2 = -5; else if (comboBox_hot.SelectedIndex = 5) type2 = -6; else type2 = 0; /查看排行榜 private void button_hot_Click(object sender, EventArgs e) listBox_Selectedmusic.Items.Clear(); string connstr; string queryString; connstr = Data Source=localhost/ORCL;User ID=SCOTT;PassWord=tiger; string typestr = mname; if (type2 = -1) typestr=; else if (type2 = -2) typestr = 华语; else if (type2 = -3) typestr = 粤语; else if (type2 = -4) typestr = 韩语; else if (type2 = -5) typestr = 欧美; else if(type2=-6) typestr = 火星语; else MessageBox.Show(请选择排行关键字, 未选择); /未选择排行关键字,跳出提示 /分不同情况设置查询语句 if(type2=-1) queryString = SELECT mid,mname,msinger,mtype,mlength,mfreq FROM music order by mfreq desc; else queryString = SELECT mid,mname,msinger,mtype,mlength,mfreq FROM music where mtype = + +typestr + order by mfreq desc; OracleConnection orclConn = new OracleConnection
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省成安县2025年上半年公开招聘城市协管员试题含答案分析
- 2025年度网络直播平台虚拟礼物充值合作协议
- 2025年汽车行业车辆安全检测服务合同样本
- 2025年度航空航天测试加工服务合同签订细则
- 2025版货运司机安全押金担保合同书
- 2025版现代服务业商铺分租管理协议
- 2025年私车公用车辆维修保养与保险协议书
- 2025版机械设备借出及操作培训合同
- 2025版体育产业赛事运营委托合同
- 贵州省望谟县2025年上半年公开招聘村务工作者试题含答案分析
- 2025年职工职业技能竞赛(制图员赛项)参考试题库(含答案)
- 2025年学校取暖煤炭采购合作协议书
- 胖东来管理制度
- 学费分期付款申请书
- 二零二四年危险废物填埋场土地租赁合同3篇
- 学校教育用地土地租赁合同
- 胸腰椎围手术期护理
- 甲状腺的科普宣教课件
- 《数据结构》期末考试试卷试题及答案
- 2.3.1 匀变速直线运动的位移与时间的关系 课件高一上学期物理人教版(2019)必修第一册
- 统编版二年级上册语文《 妈妈睡了》 课件完整版
评论
0/150
提交评论