




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库技专题(zhunt)训练I(2015年春)序号:数据库专题(zhunt)训练-数据库应用(yngyng)系统开发实验报告系别:计算机科学与技术班级:计12-1班姓名:刘杰学号:12101020128成绩:评语:指导教师签字: 日期:大学生选课管理系统需求(xqi)分析1.需求(xqi)说明教务处的管理人员录入全校的课程基本(jbn)信息和本学期的课程授课教师、地点、时间;在学生入学的时候,学院的管理人员录入学生基本信息;学生每学期自己上网登录系统选课,选课成功后信息存入数据库中,学生自己可以查询选课的情况;学生选课不成功的情况有:所选课程的先修课还没有记录,系统提示“缺先修课,选课失败”
2、;本学期所选课程的上课时间有冲突,系统提示“上课时间有冲突,选课失败”;学生一学期所选课程的学分最多不能超18学分学生可以注销所选课程。学院管理员可以查询学生前几学期的选课信息、可以查询课程基本信息、学生基本信息;当学生退学时,由教务处的管理人注销学生基本信息;如果开课之后,学生要求退课,则由教务处的工作人员为学生注销所选课程;允许学生休学,教务处为休学的退学做学籍冻结处理;复学后为其办理解冻处理;每学期教务处为学生办理学期注册手续;没有办理学期注册的学生不能选课;学期末,学院工作人员负责录入学生的成绩。2.数据流程图a.顶层数据流图b.分解(fnji)数据流图3.数据(shj)字典角色(ju
3、 s)信息=角色编号+角色名称角色编号=“1”.“4”角色(ju s)名称=2(汉字(Hnz)6用户(yngh)信息=用户编号+角色编号+用姓名+用户密码用户编号=2(字母或数字)18角色编号=“1”.“4”用户姓名=2(汉字)6用户密码=2(字母或数字)18学生基本信息=学号 +姓名+性别+民族+出生年月+学院+系+专业+入学时间+政治面貌+住址+备注学号=(数字)11姓名=2(汉字)6性别=“男”/“女”民族=2(汉字)6出生年月=年+月学院=2(字母或数字)11系=2(字母或数字)11专业=2(字母或数字)11入学时间=年+月+日政治面貌=“党员”/“预备党员”/“团员”/“群众”住址=
4、2(汉字)18备注=0(汉字或字母)100教师基本信息=工号 +姓名+密码+性别+年龄+民族+学院+住址+备注工号=2(字母或数字)11姓名=2(汉字)6密码=2(字母或数字)18性别=“男”/“女”年龄=“20“”60“民族=2(汉字)6学院=2(汉字)12住址=2(汉字)18备注=0(汉字或字母)100课程信息=课程号+课程名称+先修课+学分+学时+课程类别+开课学院课程号=2(字母或数字)11课程名称=2(汉字)15先修课=2(字母或数字)11学分=“1“”16“学时=“16“”128“课程类别=“专业选修“/”专业必修“/”公共选修“/”公共必修“开课学院=2(字母或数字)11课程任务
5、=任务编号+课程编号+课程名称+任课教师+课堂容量+选课人数+上课时间段+上课日期+上课地点+合班标志+开课季别+开始周+结束周+课程介绍任务编号=2(字母或数字)11课程编号=2(字母或数字)11课程名称=2(汉字(Hnz))15任课教师=2(字母(zm)或数字)11课堂(ktng)容量=“0“.”240“选课人数=“0“.”9999“上课时间段=“1-2节“”11-12节“上课日期=“周一“”周日“上课地点=2(汉字)15合班标志=2(汉字)15开课季别=“春季学期“/”秋季学期“开始周=“1“”20“结束周=“8“”28“课程介绍=0(汉字)100学生选课信息表=学号+课程号 +成绩+选
6、课年份+选课季别+中签标志学号=2(字母或数字)11课程号=2(字母或数字)11成绩=“0“”100“选课年份=年选课季别=“春季学期“/”秋季学期“中签标志=“0“/“1“留言=留言编号+发送者+接收者+日期+留言内容留言编号=“0“.”99999999“发送者=2(字母或数字)11接收者=2(字母或数字)11日期=年+月+日留言内容=2(字母或汉字)200文件信息=文件编号+课程编号+文件名称+文件路径文件编号=“0“”99999“课程编号=2(字母或数字)11文件名称=2(字母,数字或汉字)20文件路径=2(字母或数字)100学院信息=学院编号+学院名称学院编号=2(字母或数字)11学院
7、名称=5(汉字)20专业信息=专业编号+专业名称+所属学院专业编号=2(字母或数字)11专业名称=5(汉字)20所属学院=2(字母或数字)11班级信息=班级编号+班级名称+所属专业班级编号=2(字母或数字)11班级名称=5(汉字)20所属专业=2(字母或数字)114.系统(xtng)E-R图系统(xtng)设计(shj)1.系统模块结构图a.顶层模块结构图b.详细模块结构图2.系统(xtng)用例图a.学生(xu sheng)用例图b.教师(jiosh)用例图c.管理员用例图3.系统数据库详细(xingx)设计a.表字(bioz)段说明表名称:角色表 简称:t_role名称简称类型长度是否可为
8、空备注角色编号roleidint4否主键,自增角色名称rolenamenvarchar(50)50否表名称:用户表 简称:user_inf名称简称类型长度是否可为空备注用户编号useridnvarchar(50)50否主键用户类型roleidint4否外键用户密码pwdnvarchar(50)50否表名称:教师信息表 简称:teacher_inf名称简称类型长度是否可为空备注教师编号tnonvarchar(50)50否主键教师姓名tnamenvarchar(50)50否密码tpwdnvarchar(50)50否性别tsexnvarchar(50)50否年龄tageint4否民族tracenva
9、rchar(20)20否所属学院sdeptnoNvarchar20)20否外键家庭住址taddressnvarchar(60)60是其它anothernvarchar(100)100是表名称: 学生信息表 简称:stu_inf名称简称类型长度是否可为空备注学号Snonvarchar(50)50否主键姓名Snamenvarchar(50)50否密码Spwdnvarchar(50)50否性别Ssexnvarchar(20)20否民族Sracenvarchar(20)20否所属学院Sdeptnonvarchar(20)20否班级ClassNvarchar(50)50否专业Smajornvarchar
10、(50)50否入学时间Entertimenvarchar(50)50否毕业时间Graduatetimenvarchar(50)50否政治面貌Poli_statusnvarchar(20)20否住址saddressnvarchar(60)60是其它anothernvarchar(100)100是表名称:课程基本信息表 简称:course_inf名称简称类型长度是否可为空备注课程号Cnonvarchar(50)50否主键课程名称Cnamenvarchar(50)50否先修课Pro_cnonvarchar(50)50否学分Creditint4否学时Ctimeint4否课程类别Course_kindn
11、varchar(50)50否开课学院sdeptnvarchar(50)50否表名称:课程任务表 简称:course_task名称简称类型长度是否可为空备注任务编号tasknonvarchar(50)50否主键课程编号cnonvarchar(50)50否外键课程名称cnamenvarchar(50)50否任课教师cteachernvarchar(50)50否课堂容量capacityint4否选课人数Sel_personint4否上课时间段classtimenvarchar(50)50否上课日期weekdaysnvarchar(30)30否上课地点locationnvarchar(50)50否合班
12、标志classflagnvarchar(50)50否开课季别seasonnvarchar(50)50否开始周startweekint4否结束周endweekint4是课程介绍introductionnvarchar(200)200是表名称:选课记录表 简称:sel_course_record名称简称类型长度是否可为空备注学号snonvarchar(50)50否主键课程号cnonvarchar(50)50否成绩gradeint4是选课年份yearint4否中签标志flagint4否选课季别seasonnvarchar(50)50否表名称:留言记录表 简称:msg名称简称类型长度是否可为空备注留言
13、编号msgnoint4否主键,自增发送方sendernvarchar(50)50否接收方receivernvarchar(50)50否日期datenvarchar(50)50否留言内容msgnvarchar(200)200否表名称:文件信息表 简称:file_up名称简称类型长度是否可为空备注文件编号fileidint 4否主键,自增课程编号cnonvarchar(50)50否文件名称file_namenvarchar(50)50否文件路径file_pathnvarchar(100)100否表名称:学院信息表 简称:sdept_inf名称简称类型长度是否允许为空备注学院编号SdeptnoNva
14、rchar(20)20否主键学院名称SdeptnameNvarchar(50)50否表名称:专业信息表 简称:major_inf名称简称类型长度是否允许为空备注专业编号majornoNvarchar(20)20否主键专业名称majornameNvarchar(50)50否所属学院sdeptnoNvarchar(20)20否外键表名称:班级信息表 简称:class_inf名称简称类型长度是否允许为空备注班级编号ClassnoNvarchar(20)20否主键班级名称classnameNvarchar(50)50否所属专业majornoNvarchar(20)20否外键b.表创建(chungjin
15、)create table t_role( roleid int identity(1,1) not null primary key, rolename nvarchar(50) not null unique ) create table sdept_inf (sdeptno nvarchar(20) not null primary key,sdeptname nvarchar(50) not null ) create table major_inf( majorno nvarchar(20) not null primary key, majorname nvarchar(50) n
16、ot null, sdeptno nvarchar(20) not null foreign key(sdeptno) references sdept_inf(sdeptno) ) create table user_inf ( userid nvarchar(50) not null primary key, roleid int not null, pwd nvarchar(50) not null, foreign key(roleid) references t_role(roleid) ) create table teacher_inf ( tno nvarchar(50) no
17、t null primary key, tname nvarchar(50) not null, tpwd nvarchar(50) not null, tsex nvarchar(20) not null, tage int not null, trace nvarchar(20) not null, sdeptno nvarchar(20) not null, taddress nvarchar(60), another nvarchar(100) foreign key(sdeptno) references sdept_inf(sdeptno) ) /*学生(xu sheng)基本信息
18、*/ create table stu_inf( sno nvarchar(50) not null primary key, sname nvarchar(50) not null, spwd nvarchar(50) not null, ssex nvarchar(20) not null, sage int not null, srace nvarchar(20) not null, sdeptno nvarchar(20) not null, class nvarchar(50) not null, smajor nvarchar(50) not null, entrancetime
19、nvarchar(50) not null, graduattime nvarchar(50) not null, politicalstatus nvarchar(20) not null, saddress nvarchar(60), another nvarchar(100) foreign key(sdeptno) references sdept_inf(sdeptno) ) /*课程基本(jbn)信息*/ create table course_inf(cno nvarchar(50) not null primary key,pro_cno nvarchar(50) ,cname
20、 nvarchar(50) not null,credit int not null,ctime int not null,course_kind nvarchar(50) not null,sdept nvarchar(50) not null, ) /*学院(xuyun)开课信息*/ create table course_task ( taskno nvarchar(50) not null primary key, cno nvarchar(50) not null, cname nvarchar(50) not null, cteachar nvarchar(50)not null,
21、 capacity int not null, classtime nvarchar(50)not null, weekdays nvarchar(30) not null, location nvarchar(50)not null, classflag nvarchar(50) not null, season nvarchar(50) not null, startweek int not null, endweek int null, introduction nvarchar(200), ) /*选课记录表*/create table sel_course_record(sno nv
22、archar(50)not null,cno nvarchar(50)not null,grade int ,year int not null,flag int not null,/*中签(zhng qin)标志*/season nvarchar(50) not null,primary key(sno,cno)系统(xtng)实现系统主要(zhyo)功能界面设计登陆界面学生操作界面教师(jiosh)操作界面学院(xuyun)管理员操作界面系统管理员操作界面系统主要功能界面(jimin)代码实现登陆(dng l)界面namespace WindowsFormsApplication2 pub
23、lic partial class login : Form public login() InitializeComponent(); private void button1_Click(object sender, EventArgs e) /登陆(dng l)按钮 string userid = textBox1.Text;/用户名 string pwd = textBox2.Text; /密码 string rolename = comboBox1.Text; string conn_string = Data Source=MR_LIULIUJIE;Initial Catalog=
24、course_sel;Integrated Security=True; User ID=sa; pwd=liujie260593; SqlConnection con = new SqlConnection(); con.ConnectionString = conn_string; try con.Open(); /获取角色(ju s)编号 / Class_role role = new Class_role(); SqlCommand cm = new SqlCommand(select roleid from t_role where rolename=rolename , con);
25、 cm.Parameters.Add(new SqlParameter(rolename, rolename); Form_main.roleid= (int)cm.ExecuteScalar(); con.Close(); con.Open(); string str_sql = select count(userid) from user_inf where userid=userid and pwd=pwd and roleid=(select roleid from t_role where rolename=rolename);/执行(zhxng)的命令Sql SqlCommand
26、cmd = new SqlCommand(str_sql, con); cmd.Parameters.Add(new SqlParameter(userid, userid); cmd.Parameters.Add(new SqlParameter(pwd, pwd); cmd.Parameters.Add(new SqlParameter(rolename, rolename); int flag = (int)cmd.ExecuteScalar(); if (flag 0) Form_main.userid = textBox1.Text; Form_main f = new Form_m
27、ain(); f.Show(); this.Hide(); else MessageBox.Show(用户名或密码输入(shr)不正确!); catch (Exception ex) MessageBox.Show(ex.ToString(); finally con.Close(); private void login_Load(object sender, EventArgs e) string conn_string = Data Source=MR_LIULIUJIE;Initial Catalog=course_sel;Integrated Security=True; User
28、ID=sa; pwd=liujie260593; SqlConnection con = new SqlConnection(); con.ConnectionString = conn_string; SqlCommand cmd = new SqlCommand(); cmd.CommandText = select rolename from t_role; cmd.Connection = con; SqlDataReader dr = null; try con.Open(); dr = cmd.ExecuteReader(); int count = 0; while (dr.Re
29、ad() boBox1.Items.Add(new ListItem(drrolename.ToString(), count); count+; catch (Exception ex) MessageBox.Show(数据(shj)读取出错! + ex.ToString(); finally con.Close(); 选课操作(cozu) private void button1_Click(object sender, EventArgs e) int flag = 0; /int gradecount = 0; string sno = Form_main.userid; string
30、 cno = Student_Select_Course.courseno; string cname = boBox3.Text; string majorname = this.textBox1.Text; string weekdays = ; string classtime = ; string conn_string = Data Source=MR_LIULIUJIE;Initial Catalog=course_sel; User ID=sa; pwd=liujie260593; SqlConnection con1 = new SqlConnection(); con1.Co
31、nnectionString = conn_string; SqlConnection con2 = new SqlConnection(); con2.ConnectionString = conn_string; SqlDataReader dr1 = null; /冲突(chngt)判断 string sql_str1 = select * from course_task where cno= + cno + ; try con1.Open(); con2.Open(); SqlCommand cmd1 = new SqlCommand(sql_str1, con1); dr1 = c
32、md1.ExecuteReader(); while (dr1.Read() weekdays = dr1weekdays.ToString(); classtime = dr1classtime.ToString(); string sql_str2 = select count(*) from sel_course_record,course_task where weekdays= + weekdays + and classtime= + classtime + and sno= + sno + and course_o=sel_course_o; SqlCommand cmd2 =
33、new SqlCommand(sql_str2, con2); flag = (int)cmd2.ExecuteScalar(); if (flag 0) MessageBox.Show(存在(cnzi)选课冲突,请重新选课!); break; con1.Close(); con2.Close(); if (flag = 0)/学分限制(xinzh) int year = System.DateTime.Today.Year; int month=System.DateTime.Today.Month; string season_now = 秋季学期; if (2=month & month
34、 8) season_now = 春季学期; SqlConnection con3 = new SqlConnection(); con3.ConnectionString = conn_string; con3.Open(); SqlCommand cmd3 = new SqlCommand(select sum(credit) sum from sel_course_record,course_inf where year=+year+ and season=+season_now+ and course_o=sel_course_o and sno=+Form_main.userid+,
35、 con3); dr1=cmd3.ExecuteReader(); int coun=0; string strc=; while (dr1.Read() strc= dr1sum.ToString(); if (strc = ) coun = 0; else coun = Convert.ToInt32(strc); if (coun=40) /先修课判断(pndun) con3.Close(); int count = 0; con3.Open(); cmd3.CommandText = select count(*) from sel_course_record where sno=+s
36、no+ and cno=+Student_Select_C_cno+and not(year=+year+ and season=+season_now+); count = (int)cmd3.ExecuteScalar(); con3.Close(); if (Student_Select_C_cno.Equals()=false & count=0) MessageBox.Show(你还未选修该课程(kchng)的先修课,不能申请该课程!); else /将选课信息(xnx)加入选课记录表,同时添加课表 con3.Open(); cmd3.CommandText = insert int
37、o sel_course_record values( + sno + , + cno + , + + , + year + , + 0 + , + season_now + ); cmd3.ExecuteNonQuery(); con3.Close(); /更新课程任务表 sel_person += 1; con3.Open(); cmd3.CommandText = update course_task set sel_person= + sel_person + where cno= + cno + ; cmd3.ExecuteNonQuery(); con3.Close(); Mess
38、ageBox.Show(申请(shnqng)成功!); else MessageBox.Show(你所选课程学分总数(zngsh)已经超过40分,不能继续(jx)选课!); catch (Exception ex) MessageBox.Show(数据读取失败! + ex.Message); 抽签操作 private void button1_Click(object sender, EventArgs e) this.listView1.Items.Clear(); string cname=; int count = 0; int sel_count = 0; string conn_st
39、ring = Data Source=MR_LIULIUJIE;Initial Catalog=course_sel; User ID=sa; pwd=liujie260593; SqlConnection con = new SqlConnection(); con.ConnectionString = conn_string; SqlDataReader dr = null; SqlCommand cmd = new SqlCommand(); cmd.CommandText = select cname,sel_person,capacity from course_task where
40、 cno=+boBox1.Text+; cmd.Connection = con; try con.Open(); dr = cmd.ExecuteReader(); while (dr.Read() cname = dr0.ToString(); sel_count = Convert.ToInt16(dr1.ToString(); count = Convert.ToInt16(dr2.ToString(); con.Close(); con.Open(); cmd.CommandText = select sno,year,season from sel_course_record wh
41、ere cno= + boBox1.Text + ; dr = cmd.ExecuteReader(); while (dr.Read() this.listView1.Items.Add(new ListViewItem(new string (this.listView1.Items.Count + 1).ToString(), dr0.ToString(), cname, dr1.ToString(), dr2.ToString(), ); con.Close(); if (sel_count = count) for (int i = 0; i sel_count; i+) this.
42、listView1.Itemsi.SubItems5.Text = 中签(zhng qin); else int value; int flag = 0; Random r = new Random(); int num = 0; while (num count) value = r.Next(0, sel_count); for (int j = 0; j this.listView1.Items.Count; j+) if (Convert.ToInt16(this.listView1.Itemsj.SubItems0.Text) - 1 = value & this.listView1
43、.Itemsj.SubItems5.Text.Equals(中签(zhng qin) flag = 1; break; if (flag = 0) this.listView1.Itemsvalue.SubItems5.Text = 中签(zhng qin); num+; flag = 0; for (int i = 0; i this.listView1.Items.Count; i+) if (this.listView1.Itemsi.SubItems5.Text.Equals(中签(zhng qin) con.Open(); cmd.CommandText = update sel_c
44、ourse_record set flag= + 1 + where cno= + boBox1.Text + and sno= + this.listView1.Itemsi.SubItems1.Text + ; cmd.ExecuteNonQuery(); con.Close(); this.listView1.Items.Clear(); cmd.CommandText = select sno ,year,season from sel_course_record where cno= + boBox1.Text + and flag= + 1 + ; con.Open(); dr =
45、 cmd.ExecuteReader(); while (dr.Read() this.listView1.Items.Add(new ListViewItem(new string (this.listView1.Items.Count + 1).ToString(), dr0.ToString(), cname, dr1.ToString(), dr2.ToString(), 中签(zhng qin) ); con.Close(); catch(Exception ex) MessageBox.Show(ex.ToString(); finally con.Close(); boBox1.
46、Items.Remove(boBox1.SelectedItem); 教师(jiosh)上传课件 private void button3_Click(object sender, EventArgs e) /string a = DateTime.Now.ToString(yyyyMMddHHmmss); string FileName = openFileDialog1.SafeFileName; string filename = openFileDialog1.FileName; string desName = Application.StartupPath + upload; string b = desName + FileName; File.Copy(filename, b, true); string conn_string = Data Source=MR_LIULIUJIE;Initial Catalog=course_sel;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校厕所维修改造项目建议书(范文模板)
- 新课标下初中体育大单元教学策略研究
- 2025年中医药养生考试题及答案
- 2025年hr人才测评试题及答案
- 2025年gsp药品知识培训试题及答案
- 强电增容增配项目初步设计
- 汽车零配件智能制造项目商业计划书
- 2025年建筑c类人员试题及答案
- 奶牛养殖项目建议书
- 2025年poct血气分析仪试题及答案
- 直播眼镜行业现状分析
- 《漏电保护器》课件
- Ovation 系统硬件培训教材
- 15D501 建筑物防雷设施安装
- 彩色多巴胺夏日活动策划PPT模板
- 小学思政课教案(通用10篇)
- 2022年普洱市辅警招聘考试真题
- 万能中国地图模板(可自动设置省份颜色)课件
- 基础化工-石英砂行业深度报告:供需平衡偏紧砂源渐显稀缺-东北证券王小勇-20230227
- GB/T 10752-2005船用钢管对焊接头
- 整改情况报告书(填写范本)
评论
0/150
提交评论