学生选课系统实训报告

合集下载

选课系统实验报告

选课系统实验报告

信息系统分析与设计实验报告2012年4月实验一信息系统分析与设计开始工具一、实验目的熟悉信息系统分析与设计开始工具visio2007,Rational Rose 和Power Designer。

二、实验内容1、信息系统的需求分析2、对需要解决的问题、对象及约束条件进行分析3、安装好实验所需要的开发。

总共有三个:visio2007,Rational Rose和Power Designer。

4、熟悉这些开发工具,了解它们的具体操作。

然后用这些工具绘出一些简单的模型。

如用Rose绘制销售系统的一个用例图。

订货现金支付信用卡支付根据自己的选题,对系统进行分析,做出新的信息系统规划,对要开发的新信息系统的服务范围及要解决的问题进行分析和汇总。

三、实验总结通过这次实验,熟悉了系统分析与开发熟悉的工具,了解通过开发工具来辅助自己进行系统的分析和设计,而这可以让我分析和设计起来更加的方便和快捷。

但是对于这些工具,仅仅通过这短短的一节课并不能完全掌握的,只有通过以后的使用来熟悉它们。

实验二需求分析与建模一.实验目的1.通过对案例企业的战略分析,了解企业信息化现状,做出新的信息系统规划,对要开发的新信息系统的服务范围及要解决的问题进行分析和汇总。

2.在此基础上,对新信息系统需求建立用例模型。

二.实验内容:(一)信息系统需求分析1.问题陈述在二十一世纪的新时代,随着计算机技术的发展及计算机的日益普及,计算机技术在各行各业中都得到广泛的应用。

网络选课系统是高等院校安排教学必不可少的工具。

本文介绍基于网络环境下的本校学生网上选课系统的开发,对系统的结构、功能和关键技术进行了具体论述,并给出了在网络环境下进行选课。

本系统包括系统模块、学生模块、教师模块等其他功能模块。

系统的实际运用模式,能够适用于高等学校日常的选课管理,为师生提供诸多的便利。

同时具有良好的开放性,实用性强,保密性好,稳定性高,支持多用户操作。

2.系统目标本系统目标是实现选课系统所需的各种基本功能,包括学生选课、退课功能和教师查看选修课程、提交课程成绩功能以及管理员添加学生、维护学生信息、成绩管理、添加教师、维护教师信息、维护选修课程,还有公用的修改密码等功能。

大学生选课管理系统实验报告

大学生选课管理系统实验报告

数据库技专题训练I(2015年春)数据库专题训练------数据库应用系统开发实验报告系别:计算机科学与技术班级:计12-1班姓名:刘杰学号:12101020128成绩:评语:指导教师签字:日期:大学生选课管理系统1、需求分析1.需求说明☐教务处的管理人员录入全校的课程基本信息和本学期的课程授课教师、地点、时间;☐在学生入学的时候,学院的管理人员录入学生基本信息;☐学生每学期自己上网登录系统选课,选课成功后信息存入数据库中,学生自己可以查询选课的情况;☐学生选课不成功的情况有:☐所选课程的先修课还没有记录,系统提示“缺先修课,选课失败”;☐本学期所选课程的上课时间有冲突,系统提示“上课时间有冲突,选课失败”;☐学生一学期所选课程的学分最多不能超18学分☐学生可以注销所选课程。

☐学院管理员可以查询学生前几学期的选课信息、可以查询课程基本信息、学生基本信息;☐当学生退学时,由教务处的管理人注销学生基本信息;☐如果开课之后,学生要求退课,则由教务处的工作人员为学生注销所选课程;☐允许学生休学,教务处为休学的退学做学籍冻结处理;复学后为其办理解冻处理;☐每学期教务处为学生办理学期注册手续;没有办理学期注册的学生不能选课;☐学期末,学院工作人员负责录入学生的成绩。

2.数据流程图a.顶层数据流图b.分解数据流图3.数据字典角色信息=角色编号+角色名称角色编号=“1” (4)角色名称=2(汉字)6用户信息=用户编号+角色编号+用姓名+用户密码用户编号=2(字母或数字)18角色编号=“1” (4)用户姓名=2(汉字)6用户密码=2(字母或数字)18学生基本信息=学号+姓名+性别+民族+出生年月+学院+系+专业+入学时间+政治面貌+住址+备注学号=(数字)11姓名=2(汉字)6性别=“男”/“女”民族=2(汉字)6出生年月=年+月系=2(字母或数字)11专业=2(字母或数字)11入学时间=年+月+日政治面貌=“党员”/“预备党员”/“团员”/“群众”住址=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课程任务=任务编号+课程编号+课程名称+任课教师+课堂容量+选课人数+上课时间段+上课日期+上课地点+合班标志+开课季别+开始周+结束周+课程介绍任务编号=2(字母或数字)11课程编号=2(字母或数字)11课程名称=2(汉字)15任课教师=2(字母或数字)11课堂容量=“0“ (240)选课人数=“0“ (9999)上课时间段=“1-2节“…”11-12节“上课日期=“周一“…”周日“上课地点=2(汉字)15合班标志=2(汉字)15开课季别=“春季学期“/”秋季学期“开始周=“1“ (20)结束周=“8“ (28)课程介绍=0(汉字)100学生选课信息表=学号+课程号+成绩+选课年份+选课季别+中签标志学号=2(字母或数字)11成绩=“0“ (100)选课年份=年选课季别=“春季学期“/”秋季学期“中签标志=“0“/“1“留言=留言编号+发送者+接收者+日期+留言内容留言编号=“0“ (99999999)发送者=2(字母或数字)11接收者=2(字母或数字)11日期=年+月+日留言内容=2(字母或汉字)200文件信息=文件编号+课程编号+文件名称+文件路径文件编号=“0“ (99999)课程编号=2(字母或数字)11文件名称=2(字母,数字或汉字)20文件路径=2(字母或数字)100学院信息=学院编号+学院名称学院编号=2(字母或数字)11学院名称=5(汉字)20专业信息=专业编号+专业名称+所属学院专业编号=2(字母或数字)11专业名称=5(汉字)20所属学院=2(字母或数字)11班级信息=班级编号+班级名称+所属专业班级编号=2(字母或数字)11班级名称=5(汉字)20所属专业=2(字母或数字)114.系统E-R图2、系统设计1.系统模块结构图a.顶层模块结构图b.详细模块结构图2.系统用例图a.学生用例图b.教师用例图c.管理员用例图Query information(from Query for a score,course,personal information)Query information(from Query for a score,course,personal information)(from Pigeonhole)Pigeonhole3.系统数据库详细设计b.表创建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)not null,sdeptno nvarchar(20)not nullforeign 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)not 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) )/*学生基本信息*/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 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) )/*课程基本信息*/create table course_inf(cno nvarchar(50)not null primary key,pro_cno nvarchar(50),cname nvarchar(50)not null,credit int not null,ctime int not null,course_kind nvarchar(50)not null,sdept nvarchar(50)not null,)/*学院开课信息*/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,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 nvarchar(50)not null,cno nvarchar(50)not null,grade int,year int not null,flag int not null,/*中签标志*/season nvarchar(50)not null,primary key(sno,cno))3、系统实现1.系统主要功能界面设计a)登陆界面b)学生操作界面c)教师操作界面d)学院管理员操作界面e)系统管理员操作界面2.系统主要功能界面代码实现a)登陆界面namespace WindowsFormsApplication2{public partial class login : Form{public login(){InitializeComponent();}private void button1_Click(object sender, EventArgs e) //登陆按钮{string userid = textBox1.Text;//用户名string pwd = textBox2.Text; //密码string rolename = comboBox1.Text;string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel;Integrated Security=True; User ID=sa; pwd=liujie260593";SqlConnection con = new SqlConnection();con.ConnectionString = conn_string;try{con.Open();//获取角色编号// Class_role role = new Class_role();SqlCommand cm = new SqlCommand("select roleid from t_role whererolename=@rolename ", con);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)";//执行的命令SqlSqlCommand 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_erid = textBox1.Text;Form_main f = new Form_main();f.Show();this.Hide();}else{MessageBox.Show("用户名或密码输入不正确!");}}catch (Exception ex){MessageBox.Show(ex.ToString());}finally{con.Close();}}private void login_Load(object sender, EventArgs e){string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel;Integrated Security=True; User ID=sa; pwd=liujie260593";SqlConnection con = new SqlConnection();con.ConnectionString = conn_string;SqlCommand cmd = new SqlCommand();mandText = "select rolename from t_role";cmd.Connection = con;SqlDataReader dr = null;try{con.Open();dr = cmd.ExecuteReader();int count = 0;while (dr.Read()){boBox1.Items.Add(new ListItem(dr["rolename"].ToString(), count));count++;}}catch (Exception ex){MessageBox.Show("数据读取出错!" + ex.ToString());}finally{con.Close();}}}}b)选课操作private void button1_Click(object sender, EventArgs e){int flag = 0;//int gradecount = 0;string sno = Form_erid;string cno = Student_Select_Course.courseno;string cname = boBox3.Text;string majorname = this.textBox1.Text;string weekdays = "";string classtime = "";string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel; User ID=sa; pwd=liujie260593";SqlConnection con1 = new SqlConnection();con1.ConnectionString = conn_string;SqlConnection con2 = new SqlConnection();con2.ConnectionString = conn_string;SqlDataReader dr1 = null;//冲突判断string sql_str1 = "select * from course_task where cno='" + cno + "' ";try{con1.Open();con2.Open();SqlCommand cmd1 = new SqlCommand(sql_str1, con1);dr1 = cmd1.ExecuteReader();while (dr1.Read()){weekdays = dr1["weekdays"].ToString();classtime = dr1["classtime"].ToString();string sql_str2 = "select count(*) from sel_course_record,course_task where weekdays='" + weekdays + "' and classtime='" + classtime + "' and sno='" + sno + "' andcourse_o=sel_course_o";SqlCommand cmd2 = new SqlCommand(sql_str2, con2);flag = (int)cmd2.ExecuteScalar();if (flag > 0){MessageBox.Show("存在选课冲突,请重新选课!");break;}}con1.Close();con2.Close();if (flag == 0)//学分限制{int year = System.DateTime.Today.Year;int month=System.DateTime.Today.Month;string season_now = "秋季学期";if (2<=month && month <8)season_now = "春季学期";SqlConnection con3 = new SqlConnection();con3.ConnectionString = conn_string;con3.Open();SqlCommand cmd3 = new SqlCommand("select sum(credit) sum fromsel_course_record,course_inf where year='"+year+"' and season='"+season_now+"' andcourse_o=sel_course_o and sno='"+Form_erid+"'", con3);dr1=cmd3.ExecuteReader();int coun=0;string strc="";while (dr1.Read()){strc= dr1["sum"].ToString();}if (strc == "")coun = 0;elsecoun = Convert.ToInt32(strc);if (coun<=40){//先修课判断con3.Close();int count = 0;con3.Open();mandText = "select count(*) from sel_course_record wheresno='"+sno+"' and cno='"+Student_Select_Course.pro_cno+"'and not(year='"+year+"' andseason='"+season_now+"')";count = (int)cmd3.ExecuteScalar();con3.Close();if (Student_Select_Course.pro_cno.Equals("")==false && count==0){MessageBox.Show("你还未选修该课程的先修课,不能申请该课程!");}else{//将选课信息加入选课记录表,同时添加课表con3.Open();mandText = "insert into sel_course_record values('" + sno + "','"+ cno + "','" + "" + "','" + year + "','" + "0" + "','" + season_now + "')";cmd3.ExecuteNonQuery();con3.Close();//更新课程任务表sel_person += 1;con3.Open();mandText = "update course_task set sel_person='" +sel_person + "' where cno='" + cno + "'";cmd3.ExecuteNonQuery();con3.Close();MessageBox.Show("申请成功!");}}elseMessageBox.Show("你所选课程学分总数已经超过40分,不能继续选课!");}}catch (Exception ex){MessageBox.Show("数据读取失败!" + ex.Message);}}c)抽签操作private void button1_Click(object sender, EventArgs e){this.listView1.Items.Clear();string cname="";int count = 0;int sel_count = 0;string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel; User ID=sa; pwd=liujie260593";SqlConnection con = new SqlConnection();con.ConnectionString = conn_string;SqlDataReader dr = null;SqlCommand cmd = new SqlCommand();mandText = "select cname,sel_person,capacity from course_task wherecno='"+boBox1.Text+"'";cmd.Connection = con;try{con.Open();dr = cmd.ExecuteReader();while (dr.Read()){cname = dr[0].ToString();sel_count = Convert.ToInt16(dr[1].ToString());count = Convert.ToInt16(dr[2].ToString());}con.Close();con.Open();mandText = "select sno,year,season from sel_course_record where cno='" + boBox1.Text + "'";dr = cmd.ExecuteReader();while (dr.Read()){this.listView1.Items.Add(new ListViewItem(new string[]{ (this.listView1.Items.Count + 1).ToString(), dr[0].ToString(), cname, dr[1].ToString(), dr[2].ToString(), "" }));}con.Close();if (sel_count <= count){for (int i = 0; i < sel_count; i++)this.listView1.Items[i].SubItems[5].Text = "中签";}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.Items[j].SubItems[0].Text) - 1 == value && this.listView1.Items[j].SubItems[5].Text.Equals("中签")){flag = 1;break;}}if (flag == 0){this.listView1.Items[value].SubItems[5].Text = "中签";num++;}flag = 0;}}for (int i = 0; i < this.listView1.Items.Count; i++){if (this.listView1.Items[i].SubItems[5].Text.Equals("中签")){con.Open();mandText = "update sel_course_record set flag='" + 1 + "' where cno='" + boBox1.Text + "' and sno='" + this.listView1.Items[i].SubItems[1].Text + "'";cmd.ExecuteNonQuery();con.Close();}}this.listView1.Items.Clear();mandText = "select sno ,year,season from sel_course_record where cno='" + boBox1.Text + "' and flag='" + 1 + "'";con.Open();dr = cmd.ExecuteReader();while (dr.Read()){this.listView1.Items.Add(new ListViewItem(new string[]{ (this.listView1.Items.Count + 1).ToString(), dr[0].ToString(), cname, dr[1].ToString(), dr[2].ToString(), "中签" }));}con.Close();}catch(Exception ex){MessageBox.Show(ex.ToString());}finally{con.Close();boBox1.Items.Remove(boBox1.SelectedItem);}}d)教师上传课件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_LIU\\LIUJIE;Initial Catalog=course_sel;Integrated Security=True; User ID=sa; pwd=liujie260593";SqlConnection con = new SqlConnection();con.ConnectionString = conn_string;SqlCommand cmd = new SqlCommand();cmd.Connection = con;mandText = "insert into file_up values('" + boBox4.Text + "','" + FileName + "','"+desName+"')";con.Open();cmd.ExecuteNonQuery();con.Close();MessageBox.Show("文件上传成功!");this.dataGridView1.Rows.Clear();load_file();}e)系统管理员统计选课信息private void System_manage_Load(object sender, EventArgs e){string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel;Integrated Security=True; User ID=sa; pwd=liujie260593";SqlConnection con = new SqlConnection();con.ConnectionString = conn_string;SqlCommand cmd = new SqlCommand();mandText = "select distinct cno,cname,sel_person from course_task";cmd.Connection = con;SqlDataReader dr = null;con.Open();dr = cmd.ExecuteReader();while (dr.Read()){this.dataGridView5.Rows.Add(dr[0].ToString(),dr[1].ToString(),dr[2].ToString());}con.Close();int row = this.dataGridView5.Rows.Count - 1;int[] yval=new int[row];string [] xval=new string[row];for (int i = 0; i < row; i++){yval[i] = Convert.ToInt16(this.dataGridView5.Rows[i].Cells[2].Value.ToString());xval[i] = this.dataGridView5.Rows[i].Cells[1].Value.ToString();}this.chart1.Series["课程"].Points.DataBindXY(xval, yval);}4、系统测试1.系统主要功能测试用例2.系统主要功能测试结果1.学生选课2.学院操作3.教师操作4.学院选课统计。

web开发实验报告--《学生选课系统》 静态网页制作

web开发实验报告--《学生选课系统》 静态网页制作

一.问题描述本实验描述的是基于Windows环境的《学生选课系统》的静态网页制作,主要工具Microsoft Visual Studio 2017设计窗体,系统开发语言C#,实现学生选课页面的展示。

二.基本要求在实现该静态页面的操作时的基本要求如下:1、基于DevOps模板,设计完成菜单导航等公共部分功能。

2、设计实现学生信息列表,明细页面。

3、设计实现课程信息列表,明细页面。

4、设计实现学生选课页面,查询页面。

三.测试数据1.学生选课测试:输入学生账号和密码,选择student选项,登陆系统。

分别点击页面左侧的按钮,如:已选课程查询、信息查询、修改密码、选课。

观察页面跳转是否正常,布局与显示是否正常。

2.教师管理测试:输入教师账号和密码,选择teacher选项,登陆系统。

分别点击页面左侧的按钮,如:学生信息管理、课程信息管理。

观察页面跳转是否正常,布局与显示是否正常四.实现提示本次实验中,用户包括教师和学生两类,应注意当不同的人进入后页面的差异。

在学生登陆后,应显示的页面信息包括已选课程查询、信息查询、修改密码、选课等;而在教师登陆后,应显示的页面信息包括学生信息管理、课程信息管理等。

登陆页面对students和teacher的选择按钮的作用也不可忽略。

五.实验总结通过本次实验,我掌握了静态网页界面的制作;对MVC模型有了进一步的掌握;了解了网页的架构,对网页的制作和运行有了更深的理解;熟悉了DevOps模板,实现了实验要求。

六.实现代码见压缩包七.程序测试进入系统后,学生课程列表如下图3-1所示:图3-1 课程信息显示图进入系统后,学生成绩信息显示如图3-2所示:图3-2 学生成绩信息显示图进入系统中,用户信息显示如如图3-3所示:图3-3 学生成绩信息显示图。

数据库学生选课系统报告

数据库学生选课系统报告

课程设计题目:学生选课系统姓名:黄斌学号:3专业:计算机信息管理系别:东华理工高职院目录一:摘要二:课程设计任务的需求分析三:概念结构设计四:逻辑结构设计五:数据库维护六:图文与演示七:收获与总结一、摘要本文以一个具体的应用系统-学生选课信息系统的设计与实现来说明如何利用UML和EJB组件来设计和构建分布式软件的系统平台,现在的信息管理系统软件的开采,采用组件技术可以提高效率,信息管理系统的分析设计业可以采用UML来进行,两者的结合可以极大地体改开发效率,保证系统开发的易维护性。

随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨,运用计算机辅助选课,开发一套在线选课系统是十分必要的,技能实时的对大量选课数据进行检验和统计,十分方便的输出选课结果,同时也避免了人工处理时容易产生的错误。

二、课程设计需求分析作为数据库课程设计题目,鉴于设计时间有限,我们不追求大而全,只是把学生选课所涉及的核心内容作为数据库管理的对象来进行设计。

要完成对学生选课的管理,系统必须管理学校的教师信息,学生选修课程的信息,学生开设所有的课程信息,学校的院系信息,专业设置信息,教师开设课程信息等。

选课系统主要满足三类用户需求,这三类用户分别是教务处的系统管理员,教师和学生,他们所具备有的操作权限以及操作的内容是不同的。

要求选课系统可以满足以下功能:系统管理员能对学生信息,教师信息课程信息等进行有效的管理和维护,包括增加,删除,修改等基本的维护功能和灵活的查询功能,教师和学生能够对个人基本信息,教授,选课所涉及的有关信息进行查询,更新等操作。

需求分析如下。

(1)系统管理员1)维护学生的个人基本信息,实现对学生个人信息的增加,删除更新等。

学生信息包括学生的学号,姓名,性别,院系,专业,年龄,电话,EMAIL,地址等。

2)维护教师个人信息,实现对教师个人信息的增加,删除,更新等。

教师信息包括教师的工号,姓名,性别,院系,职称,年龄,电话,EMAIL地址等。

管理信息系统实验报告-选课系统

管理信息系统实验报告-选课系统
很多学校的学生选课信息管理还处在起步阶段,并不是很完善。通过关于选课问题的调查统计数据显示,同学们对网上选课系统有诸多不满意。其中,问题主要集中在选不上课,选课所需时间过长和网络选课系统容易出错等几方面。由于校园网带宽较窄,网络拥挤、网速慢,所以经常无法登录选课系统。教务处通常都在学期初校对上学期末学生所选的课程,从而极易导致学生选不上课,延误了及时纠正错误的时机。预警系统应该在期末及时校对,避免出现上述情况。教务处将专业必修课与选修课改在前一学期末确定,使同学们有更充裕的时间安排新学期的课程。学校实行学分制以来,网上
管理信息系统
课题名称:
一、项目概述
1.项目名称:学生选课管理信息系统
2.系统设计背景:
随着信息技术的日益发展和计算机网络的普遍应用,学校的学生人数不断增加,原有的学生信息管理的手工管理模式已无法更上时代的需要。随着社会的发展,培养计划也在不断地修改。学分制的实行给学生以更大的选择空间,但也增加了日常教务的管理工作量。因此,利用现代计算机和数据库开发技术,在网络环境下建立学生信息系统对于减轻学生信息管理人员的劳动强度、提高工作质量和效率、方便管理人员对信息的查询、提高信息资源的利用率和管理水平都具有重要意义。
(1)系代码
部门代码采取数字和字符混合编码的形式,具体如下:
①学院C O G* * *
②教务处JWC* * *
③系X X* *
2、人员代码
人员代码采取纯数字编码形式,具体如下:
①教师* ** *
②学生*********
(2)表单代码
表单代码仍采取数字和字符混合编码的形式,具体如下:
①课程文件X X***********
三、业务流程分析(TFD)
我们经过几天的网上、图书馆有关‘学生选课系统’资料的收集,结合传统的学生选课流程和现今已经运行的学生选课系统业务处理流程,再加上我们的一些看法和观点,初步总结和分析出学生选课系统的基本业务流程。

学生选课系统报告

学生选课系统报告

电子商务信息系统课程设计报告目录1 前言 (1)1.1 系统简介 (1)1.2 系统目标 (1)2 系统分析 (1)2.1 建立新系统的必要性分析 (1)2.2 业务流程分析 (3)2.3 数据流程分析 (3)2.4 数据字典定义 (4)2.5 新系统逻辑模型的提出 (4)3 系统设计 (4)3.1 系统功能模块详细设计 (4)3.2 系统物理配置方案设计 (5)3.3 代码设计 (5)3.4 数据库系统设计 (6)3.5 输入、输出设计 (9)4 系统实施 (10)4.1 程序主要界面 (10)4.2 程序核心代码 (10)5 系统使用说明 (22)5.1 运行环境 (22)5.2 使用说明 (22)6 参考文献 (23)附录:课设小结及工作分配 ............................... 错误!未定义书签。

1 前言1.1 系统简介学生选课系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对于前者要求建立起数据一致性和完整性强、数据安全性好的库。

而对于后者则要求具备应用程序功能完备,易使用等特点。

我们使用 作为开发工具,SQL SERVER 2005 作为后台数据库,开发出了以 B/S 为模式的基于 的学生选课系统。

此系统分为三大模块:学生模块,教师模块和管理员模块。

对于用户模块来说,分三个部分,首先学生用户可以通过输入账号密码在网上完成选课,查询课表并修改自己的信息;其次,教师用户在登录可以查看担任的课程,可以查看所选自己课程的学生信息。

而管理员模块,则可以添加、查询、修改、删除、查看所有学生和教师用户课程排布的信息,并且可以对其信息进行简单的管理。

1.2 系统目标本系统是一个基于的学生选课系统,它主要是对学生选课的一些信息进行详细的管理,并且对班级、科目和教师所开课程信息进行简单管理,最关键的是这些管理功能都必须能够在网上实现。

管理员可以通过自己的用户名和密码在因特网上对所有学生的选课信息。

学生选课系统实验报告 shh

学生选课系统实验报告 shh

计算机科学技术系《JavaEE框架技术》项目报告题目学生选课系统姓名学号专业班级2012年6月15日一功能1.1功能要求1.*用户登录2.*查看个人信息3.*修改个人信息4.*查看个人选课情况5.*查看所有课程信息,能够选定课程6.*退选课程7.DIV+CSS美化页面8.添加查询功能:如根据课程名进行模糊查询,课程开课学期进行查询9.国际化处理10.添加分页功能其中标*者为必做功能,其他为可选功能。

1.2功能模块设计二项目规范1.项目名称:StudentCourse10231105182.访问路径与项目名相同,如:http://localhost:8080/StudentCourse1023110518/3.包命名规范org.lx.studentcourse.entity 实体类 业务逻辑接口类.impl 业务逻辑实现类org.lx.studentcourse.dao DAO接口类org.lx.studentcourse.dao.impl DAO实现类org.lx.studentcourse.action 各个Action类org.lx.studentcourse.util 放HibernateSessionFactory.java类如下图所示:四开发流程1.面向对象分析和设计1.1 UML建模如下图所示:(1)学生表和专业表是单向多对多的关系(2)专业表与学生表是一对多的关系1.2 效果展示流程:2.给项目添加Hibernate支持,建立实体类及其所对应的映射文件2.1 Xsb.hbm.xml<?xml version="1.0"encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><!--Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping><class name="org.lx.studentcourse.entity.Xsb"table="xsb"catalog="studentcourse"><id name="xh"type="ng.String"><column name="XH"length="6"/><generator class="native"/></id><property name="xm"type="ng.String"><column name="XM"length="8"not-null="true"/> </property><property name="xb"type="ng.String"><column name="XB"not-null="true"/></property><property name="cssj"type="ng.String"><column name="CSSJ"length="19"/></property><property name="zjId"type="ng.Integer"insert="false" update="false"><column name="ZJ_ID"not-null="true"/></property><property name="zxf"type="ng.Integer"><column name="ZXF"/></property><property name="bz"type="ng.String"><column name="BZ"/></property><property name="zp"type="ng.String"><column name="ZP"length="255"/></property><set name="dlbs"inverse="true"><key><column name="xh"length="6"not-null="true"/></key><one-to-many class="org.lx.studentcourse.entity.Dlb"/> </set><many-to-one name="zyb"column="ZJ_ID"class="org.lx.studentcourse.entity.Zyb"></many-to-one><set name="kcb"table="xs_kcb"cascade="all"inverse="false"> <key column="xh"></key><many-to-many class="org.lx.studentcourse.entity.Kcb" column="kch"></many-to-many></set></class></hibernate-mapping>2.2 Kcb.hbm.xml<?xml version="1.0"encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><!--Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping><class name="org.lx.studentcourse.entity.Kcb"table="kcb"catalog="studentcourse"><id name="kch"type="ng.String"><column name="kch"length="3"/><generator class="native"/></id><property name="kcm"type="ng.String"><column name="kcm"length="12"/></property><property name="kxxq"type="ng.String"><column name="kxxq"/></property><property name="xs"type="ng.Integer"><column name="xs"/></property><property name="xf"type="ng.Integer"><column name="xf"/></property><set name="xsb"table="xs_kcb"cascade="all"><key column="kch"></key><many-to-many class="org.lx.studentcourse.entity.Xsb"column="xh"></many-to-many></set></class></hibernate-mapping>2.3 Zyb.hbm.xml<?xml version="1.0"encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><!--Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping><class name="org.lx.studentcourse.entity.Zyb"table="zyb"catalog="studentcourse"><id name="id" type="ng.Integer"><column name="id"/><generator class="native"/></id><property name="zym"type="ng.String"><column name="zym"length="11"not-null="true"/></property><property name="rs"type="ng.Integer"><column name="rs"/></property><property name="fdy"type="ng.String"><column name="fdy"length="8"/></property><set name="xsb"><key column="XH"></key><one-to-many class="org.lx.studentcourse.entity.Xsb"/></set></class></hibernate-mapping>2.4 Dlb.hbm.xml<?xml version="1.0"encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><!--Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping><class name="org.lx.studentcourse.entity.Dlb"table="dlb"catalog="studentcourse"><id name="id"type="ng.Integer"><column name="id"/><generator class="identity"/></id><many-to-one name="xsb"class="org.lx.studentcourse.entity.Xsb" fetch="select"><column name="xh"length="6"not-null="true"/></many-to-one><property name="kl"type="ng.String"><column name="kl"length="20"not-null="true"/></property></class></hibernate-mapping> 3.DAO层的设计与实现3.1.1 IXsDao接口3.1.2 IKcDao接口3.1.3 IZyDao接口3.1.4 IDlDao接口3.2 Dao接口实现类3.3.1 IXsDaoImpl3.3.2 IKcDaoImpl3.3.3 IZyDaoImpl3.3.4 IDlDaoImpl层的设计与实现4.1.1 IXsBiz接口4.1.2 IKcBiz接口4.1.3 IZyBiz接口4.1.4 IDlBiz接口4.2 Biz接口的实现4.2.1 IXsDaoImpl4.2.2 IKcDaoImpl4.2.3 IZyDaoImpl4.2.4 IDlDaoImpl5.1 Action类的实现5.1.1 XSAction5.1.2UpdateAction5.1.3 CourseAction5.1.3 CourseAction6 配置文件6.1 applicationContext.xml<?xml version="1.0"encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd"> <bean id="dataSource"class="mons.dbcp.BasicDataSource"><property name="driverClassName"value="com.mysql.jdbc.Driver"></property><property name="url"value="jdbc:mysql://localhost:3306/studentcourse?characterEncoding=gbk"></proper ty><property name="username" value="root"></property><property name="password" value="123456"></property></bean><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"><ref bean="dataSource"/></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop></props></property><property name="mappingResources"><list><value>org/lx/studentcourse/entity/Dlb.hbm.xml</value><value>org/lx/studentcourse/entity/Kcb.hbm.xml</value><value>org/lx/studentcourse/entity/Xsb.hbm.xml</value><value>org/lx/studentcourse/entity/Zyb.hbm.xml</value></list></property></bean><bean id="dlDaoImpl"class="org.lx.studentcourse.dao.impl.DlDaoImpl"> <property name="sessionFactory"ref="sessionFactory"></property></bean><bean id="dlBizImpl"class=".impl.DlBizImpl"> <property name="dlDao"ref="dlDaoImpl"></property></bean><bean id="loginAction"class="org.lx.studentcourse.action.LoginAction"> <property name="dlBiz"ref="dlBizImpl"></property></bean><bean id="xsDaoImpl"class="org.lx.studentcourse.dao.impl.XsDaoImpl"> <property name="sessionFactory"ref="sessionFactory"></property></bean><bean id="zyDaoImpl"class="org.lx.studentcourse.dao.impl.ZyDaoImpl"> <property name="sessionFactory"ref="sessionFactory"></property></bean><bean id="kcDaoImpl"class="org.lx.studentcourse.dao.impl.KcDaoImpl"> <property name="sessionFactory"ref="sessionFactory"></property></bean><bean id="xsBizImpl"class=".impl.XsBizImpl"> <property name="xsDao"ref="xsDaoImpl"></property></bean><bean id="zyBizImpl"class=".impl.ZyBizImpl"> <property name="zyDao"ref="zyDaoImpl"></property></bean><bean id="kcBizImpl"class=".impl.KcBizImpl"> <property name="kcDao"ref="kcDaoImpl"></property></bean><bean id="xsAction"class="org.lx.studentcourse.action.XsAction"><property name="xsBiz"ref="xsBizImpl"></property><property name="kcBiz"ref="kcBizImpl"></property></bean><bean id="updateStuAction"class="org.lx.studentcourse.action.UpdateStuAction"><property name="xsBiz"ref="xsBizImpl"></property><property name="zyBiz"ref="zyBizImpl"></property></bean><bean id="courseAction"class="org.lx.studentcourse.action.CourseAction"><property name="xsBiz"ref="xsBizImpl"></property><property name="kcBiz"ref="kcBizImpl"></property></bean></beans>6.2 struts.xml<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN""/dtds/struts-2.1.dtd"><struts><constant name="struts.objectFactory"value="spring"></constant><constant name="struts.i18n.encoding"value="gbk"></constant><package name="struts2"extends="struts-default"namespace="/"><action name="login"class="loginAction"><result name="success">/main.jsp</result><result name="error">/login.jsp</result></action><action name="xsInfo"class="xsAction"><result name="success">/xsInfo.jsp</result></action><action name="updateXsInfo"class="updateStuAction"method="updateStu"> <result name="success">/xsInfo.jsp</result></action><action name="update"class="updateStuAction"method="selStu"><result name="success">/updateXsInfo.jsp</result></action><action name="getAllCourse"class="courseAction"method="getAllCourse"> <result name="success">/allKcInfo.jsp</result></action><action name="getCourseById"class="courseAction"method="getCourseById"> <result name="success">/stuSelectCourse.jsp</result></action><action name="selCourse"class="xsAction"method="selCourse"><result name="success">/selectKc_success.jsp</result><result name="error">/selectKc_fail.jsp</result></action><action name="delCourse"class="xsAction"method="delCourse"><result name="success">/deleteKc_success.jsp</result></action></package></struts>五项目运行中出现的问题及解决办法问题1:再加入Spring框架支持之后,项目运行出现jar包冲突问题:ng.reflect.InvocationTargetException.该问题是由于导入数据包冲突造成的,该数据包在WEB-INF/lib文件夹内antlr-2.7.6 与antrl-2.7.2冲突导致。

c语言课程设计学生选课管理系统实验报告

c语言课程设计学生选课管理系统实验报告

课程设计报告课程设计题目:学生选课管理系统学号:09110712姓名:李唐松专业:软件工程班级: 091107指导老师:谢小林2009年1月5日星期二*实验题目:学分管理程序*实验时间与地点:2009年1月7日星期四软件楼508*实验目的:1综合运用所学的C语言知识进行编程。

2进一步了解掌握C的基本语法。

3开始逐步培养编程思维,完善编程思维漏洞。

4侧重对C中数组函数指针结构体和文件等相关内容的综合应用。

4进一步提升自己的编程能力,为以后学习开始奠基。

*实验要求:1学生选课信息的添加(学生选课信息包括学生学生学号、课程名称、学分)2学生选课信息的删除3学生选课信息的查询(查询每个学生的选课信息,每个学生选课的总学分,选具体某门课程(课程名输入)的学生名单)*实验思路:1.函数定义判断,调用函数实现函数功能。

2.首先自定义函数,做出主菜单。

3.运用do….while , switch 语句完成主函数。

4.主程序中调用函数,程序运行时实现菜单选择功能。

5.自定义函数主要if语句完成,注重函数的应用。

*流程图:A主干图B具体流程:*程序操作:#i n c l u d e<s t d i o.h>#i n c l u d e<s t r i n g.h>#i n d e f i n e s i z e10s t r u c t c o u r s e{l o n g n u m;c h a r c o u r s e1[20];i n t s c o r e1;c h a r c o u r s e2[20];i n t s c o r e2;c h a r c o u r s e3[20];i n t s c o r e3;c h a r c o u r s e4[20];i n t s c o r e4;}c o u r s e[s i z e];v o i d m e n u(){p r i n t f(“*************************\n”); p r i n t f(“学生选课管理系统\n”);p r i n t f(“************************\n”); p r i n t f(“0退出程序\n“);p r i n t f(“1学生选课信息的添加\n”);p r i n t f(“2学生选课信息的删除\n”);p r i n t f(“3学生选课信息的查询\n”);p r i n t f(“请输入0~3\n”);}v o i d s u r e(){i n t i;f o r(i=0;i<s i z e;i++)p r i n t f(“学号:\n”);s c a n f(“%l d”,c o u r s e[i].n u m);p r i n t f(“课程1:\n”);s c a n f(“%s”,c o u r s e[i].c o u r s e1);p r i n t f(“学分1:\n”);s c a n f(“%d”,c o u r s e[i].s c o r e1);p r i n t f(“课程2:\n”);s c a n f(“%s”,c o u r s e[i].c o u r s e2);p r i n t f(“学分2:\n”);s c a n f(“%d”,c o u r s e[i].s c o r e2);p r i n t f(“课程3:\n”);s c a n f(“%s”,c o u r s e[i].c o u r s e3);p r i n t f(“学分3:\n”);s c a n f(“%d”,c o u r s e[i].s c o r e3);p r i n t f(“课程4:\n”);s c a n f(“%s”,c o u r s e[i].c o u r s e1);p r i n t f(“学分4:\n”);s c a n f(“%d”,c o u r s e[i].s c o r e4);i f(s t r c m p(c o u r s e[i].c o u r s e1)==0)r e t u r n;i f(s t r c m p(c o u r s e[i].c o u r s e2)==0)r e t u r n;i f(s t r c m p(c o u r s e[i].c o u r s e3)==0)r e t u r n;i f(s t r c m p(c o u r s e[i].c o u r s e4)==0)r e t u r n;}v o i d d e l(){i n t i;l o n g n;p r i n t f(“请输入学号:\n”);s c a n f(“%l d”,&n);f o r(i=0;i<=s i z e;i++)i f(c o u r s e[i].n u m==n)c o u r s e[i].n u m=c o u r s e[i+1].n u ms t r c p y(c o u r s e[i].c o u r s e1,c o u r s e[i+1].c o u r s e1);c o u r s e[s i z e].c o u r s e1=”\o”c o u r s e[i].s c o r e1=c o u r s e[i+1].s c o r e2;c o u r s e[i].s c o r e2=c o u r s e[i+1].s c o r e3;c o u r s e[i].s c o r e3=c o u r s e[i+1].s c o r e4;}v o i d o p e n(){i n t i;l o n g n;i n t s c o r e;p r i n t f(“请输入学号:”);s c a n f(“%l d”,&n);f o r(i=0;i<s i z e;i++)i f(c o u r s e[i].n u m==n){p r i n t f(“学号:%l d”,c o u r s e[i].n u m);p r i n t f(“课程1:%s”,c o u r s e[i].c o u r s e1);p r i n t f(“学分1:%d”,c o u r s e[i].s c o r e1);p r i n t f(“课程2:%s”,c o u r s e[i].c o u r s e2);p r i n t f(“学分2:%d”,c o u r s e[i].s c o r e2);p r i n t f(“课程3:%s”,c o u r s e[i].c o u r s e3);p r i n t f(“学分3:%d”,c o u r s e[i].s c o r e3);p r i n t f(“课程4:%s”,c o u r s e[i].c o u r s e4);p r i n t f(“学分4:%d”,c o u r s e[i].s c o r e4);s c o r e=c o u r s e[i].s c o r e1+c o u r s e[i].s c o r e2+c o r s e[i].s c o r e3+c o u r s e[i].s c o r e4; p r i n t f(“总学分:%d”,s c o r e);}v o i d m a i n(){i n t n;s c a n f(“%d”,&n);d o{me n u();s w i t c h(n){c a s e1:s u r e();b r e a k;c a s e2:de l();b r e a k;c a s e3:o p e n();b r e a k;}}w h i l e(n!=0)}实验总结:1.运用该程序可以顺利完成学生选课的添加、删除以及查询。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实训报告 实训题目:学生选课管理系统

指导教师: 赵双柱 班 级:14级 软件技术班 专 业: 软件技术专业 第一组成员: 组长:丁娟涛 组员:单晶晶,安星儒,才让草,曹义红,白月娥,陈林,陈小花

时间:2015年12月21日---2015年12月31日 一.实训项目概括 随着社会经济的快速发展,学校的教学质量也在不断的提高,大学期间有很多的公共选修课,我们现在做学生选课系统,希望对学生的选课以及管理提供更容易的方法,选课系统做好之后,学生可以再查看和更改,管理起来也比较方便,摆脱学生以往的课堂报名,也就可以在网上进行选课。鉴于它的重要性,这就迫切需要研制开发一 功能强大,操作简单,具有人性化的学生选课管理系统。 该系统包括以下五个模块:选课模块,课程模块,教室模块,学生信息模块,教师信息模块。 关键词:查询,选课,用户,录入。 实训目的: 通过对java语言、sql数据库的应用以及sql语言的复习和锻炼,并且通过使用MyEclipse开发平台设计管理项目,以达到充分熟悉开发平台及应用设计。同时掌握并实践软件项目设计规范及其开发流程:需求分析、概要设计、详细设计、代码编写等,以便提前适应软件公司开发流程、环境和工作要求。 实训内容: 1. 项目:学生选课管理系统 2. 完成:登录列表 删除、修改 功能 3. 数据库设计、SQL应用 4. 项目实战 5.程序要求 6. 功能介绍 7. 功能说明 7.1 登陆界面 7.1.1 管理员登陆 7.1.2 教师登陆 7.1.3 学生登陆 7.2 管理员模块 7.2.1管理学生信息 7.2.1.1 添加学生信息 7.2.1.2 删除学生信息 7.2.1.3 修改学生信息 7.3管理教师信息 7.3.1 添加教师信息 7.3.2 删除教师信息 7.3.3 修改教师信息 7.4查看自身信息 7.4.1修改密码 7.5 教师模块 7.5.1 查看自身信息 7.5.2 修改学生成绩 7.5.3 修改密码 7.6 学生模块 7.6.1 查看自身信息 7.6.2 选课 7.6.3 修改密码 7.7 文件的读出与读入 7.7.1 读出 7.7.2 读入 8 详细设计 8.1 构造信息 8.2 公用函数 8.3 主菜单 8.4 用户登陆 8.5 用户功能函数 8.5.1 管理员相关函数 8.5.2 教师相关函数 8.5.3 学生相关函数 9 开发和运行环境 7.1 硬件环境 7.2 软件环境 10基本流程 11、 系统设计 系统的模块划分为如图所示,分别为:用户登录、学生信息管理、课程信息管理、选课成绩管理、用户管理5 个模块。每个模块负责相应的功能。系统采用ADO.NET 技术实现对数据库的访问操作,使用Server 200 作为后台数据库。

11.1. 用户登录模块 提供用户登录界面,输入用户名,密码进行登录。 11.2 学生信息管理模块 学生信息管理模块,用于管理学生的基本信息,所包括的字段有:学号、姓名、性别、年龄、班级,提供对学生信息的录入、查询、修改和删除的操作。

11.3 课程信息管理模块

学生 教师 课程 授课

选择

老师 选择

1

1 n 1 n m 课程信息管理模块用于管理课程的信息,所包含的字段有:课程号、课程号、先行课和学分,提供对课程信息的录入、查询、修改和删除的操作。

11.4 选课成绩管理模块 选课成绩管理模块用于管理学生的选课与成绩,所包含的字段有:学号、课程号和成绩,提供对选课成绩信息的录入、查询、修改和删除的操作。

11.5 用户管理模块 用户管理模块用于用户账号和密码的管理,其功能包括添加用户,注销用户和修改密码。 12.数据库设计: 12.1 数据库列表:班级表 教师表 学生表 管理员表 教师任课表 教学计划表 系部表 专业表 课程收费表 课程注册表 课程表 13系统需求分析

1 服务器端系统分析 与现有系统整合,使用XML跨平台标注语音为系统之间提供公共的数据使用接口,完成原有系统中重数据的XML导出以及现有XML数据的导入,实现数据共享。 输入 存放批量数据的XML源文件、映射数据库的SCHEMA文件。 输出 行记录并插入数据库。 要求 XML源文件中的数据来自于原由系统中的重复数据。

2 客户端系统分析 提供学生选课界面,完成对排课系统编排课程的选择,并在界面上反映当前学生的课程和学分选择情况。 输入 学生学号及其密码。 输出 学生学号、姓名、专业、已选学分总数、可选课程列表、已选课程列表以及当前课程选择情况(以图形形式描述)。 要求 (1)学生选课需要进行身份验证,授权后才能选课。 (2)允许学生能够查看没门课程的详细信息(包括课程编号、课程名称、上课时间、上课地点、任课教师、任课教师学历、职称、专业、课程学分数、可选人数以及已选人数等)。 (3)允许学生查询对应课程编号的记录。 (4)允许学社对指定课程进行选择并修改相应记录,并反映在数据表中。 (5)允许学生当次选课过程中取消已选课程,并反映在数据表中。 (6)能够对学生选择的重复课程、时间冲突课程、以满选的课程进行选择限制并提示。

3 总体功能分析 提供良好的应用程序界面查看已选课课表的功能。 输入 学生学号以及密码。 输出 已选课课表,以表格的形式反映在程序界面中。 要求 (1) 登录界面允许进行身份验证,授权后才能查看课表。 (2) 课表以表格形式显示。 (3) 系统相关参数(如数据库的连接参数)存放于XML文档,通过对XML进行解析完成对系统环境的设置。 因此,高校选课系统应具有以下基本功能: (1)XML数据的导入导出。 (2)课程的选择与取消。 (3)已选课表的实时输出。

14系统设计 1 选课系统功能及其说明 (1)身份验证功能,课程选择、课表查询等需要在授权的情况下完成。 (2)批量数据处理功能,与原有系统相同的数据不要重复输入,支持对公共接口类型数据XML的批量导入导出。 (3)课程选择与取消功能,支持课程选择、查询、取消和课表输出。

2 选课系统功能划分及其流程 选课系统可以分为XML数据处理系统、客户端选课系统和课表发布系统(逻辑关系如下图所示)

2.1选课系统逻辑功能之间的关系 2.2选课系统及课表发布功能模块 2.3 XML数据处理系统完成XML数据的批量处理

用户管理 课表输出 取消选择 课程选择 课程信息查询

中心数据库 课表发布

Internet

学生

数据处理系统 中心数据库

客户端选课系统

课表发布系统

教务管理员

学生 学 15 客户端学生选课系统设计 15.1 学生登录窗体设计 15.2 选课主窗体设计 16 选课流程

N Y

Y

开始 时间冲突吗? 已经选满了吗? 更新SLLesPlan的AlreadySel字段,将已选课人数增加1,已选课程列表ListBox中增加该门课程信息,PaintBox1上绘制该门课程,形成选课预览图,在表SLSelLesson中增加该选课记录,更新学分文本框Edit4

结束

N

XML源文件

映射SHEMA文件

中心数据库

教务管理SQLXMLBulkLoad 17 系统运行 第一步:编译并运行应用程序,出现登录窗口 第二步 : 正确输入学号和密码,单击确定 第三步: 在【课程编号】文本框输入要查询的课程编号,单击【查询】按钮,将返回该课程编号对应的第一条排课记录 第四步:单击【细目】按钮将出现课程详细信息窗体,显示当前查询课程安排的相关信息 第五步: 在DBGrid1中选择课程记录,然后单击【选课】按钮,将实施选择,并在ListBox1列表框中显示选课信息,同时在PaintBox1中绘制出课表示意图 第六步:需要撤消已选课程按钮时,选择ListBox1列表框中对应课程项,然后单击【撤消】按钮即可取消对该门课程的选择,若列表框中的音乐欣赏需要撤消,可选中该项,单击【撤消】按钮出现如下所示窗口,该门课程被取消

18 总结 为了完成我的数据库课程设计,我从上学期就开始做了。了解到 C++ 在数据库方面的应用比较麻烦,也考虑到想在课程设计的过程中学到更多的东西,于是我从开头开始学 C# ,一门全面的面向对象的编程语言。我从图书馆借了大量关于 C# 的书,并在短时间内把 C# 的基本语句和功能看懂,之后就开始看 C# 在数据库方面的应用。前期知识准备差不多的时候,就开始动工做我的课程设计。 在开始的时候,总会遇到这样或那样的问题,在做的过程中,慢慢摸索和研究,把其中的一个个问题逐个解决。为了更好地完成课程设计,我利用了软件工程的思想,对系统进行需求分析,系统设计,数据库设计等。使程序设计的过程更加合理化、系统化,同时也提高了我的编程思想和应用能力。 对于每一次课程设计,我都独立地去完成。这一次也不例外,课程设计从上学期期末就已经开展。在暑假的时候,我要到外地去实习,时间不是很充裕,但我尽了一切的可能,挤出时间来做完我的课程设计。这个过程是艰苦的,但我从这个过程中,学到了很多的东西。不但可以巩固我的数据库应用方面的知识,我又学会了一门新的语言。提高了自己动手实践的能力,把书本的知识转化为实际应用中去,丰富了自己的实践经验

相关文档
最新文档