软件工程课程设计-学生选课系统.docx_第1页
软件工程课程设计-学生选课系统.docx_第2页
软件工程课程设计-学生选课系统.docx_第3页
软件工程课程设计-学生选课系统.docx_第4页
软件工程课程设计-学生选课系统.docx_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

软件工程课程设计 -学生选课系统姓名:班级:学号:指导教师:摘 要摘要内容:随着社会的发展,学生的人数和课程的种类急速增加,传统的选课管理模式已经无法满足当前的实际需求,为此,有必要开发了学生选课管理系统。系统可以实现学生选课的一些重要功能,如:课程的添加、删除等。 关键词:选课系统;数据库;SQL Server 2008;C#目录1 绪论21.2 课题的设计22.1 系统分析22.1.1 用户要求22.1.2 系统实体E-R图分析23.2 数据库连接23.3 主要模块实施23.3.1 登录模块的开发25 系统说明25.1 开发环境25.2 系统安装、配置与发布应用程序的步骤26 总 结27 参考文献21 绪论数据库是数据管理的最新技术,是计算机科学的重要分支。因此,作为信息系统核心和基础的数据库技术得到越来越广泛的应用。越来越多新的应用领域采用数据库存储和处理他们的信息资源。1.1 课题的背景学生选课作为一种信息资源的集散地,包含很多的信息数据的管理。 由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。基于这个问题,有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。1.2 课题的设计本系统就学生选课系统的设计与制作展开分析。设计系统时,先从系统的数据流程开始分析,设计系统的业务流程图、系统的数据流程图、系统的E-R图。根据开题报告的设计要求开始进入系统的总体设计,接着制定系统的设计思想,分析系统的功能并设计系统的功能模块,这些都是系统制作前的准备工作;准备工作完成后,开始系统数据库的建立,主要有各个功能窗口的设计,将设计好的窗口集中到主菜单上,通过用户的用户名和密码的登录可以进入到主窗口,这样就完成系统的制作。最后,对系统进行调试,性能分析。2 系统分析2.1 系统分析 大学一般都有上千名学生,每学期开始学生都要选课,因而产生了大量的课程信息。考虑到用户使用的方便和处理的信息量系统要完成录入,保存,查询,修改和删除课程信息的各种过程,能打印出课程信息表。所以系统的基本体系结构采用C/S模式。2.1.1 用户要求系统的主要使用对象是需要选课的学生。学生在选课是要察看各个课程的详细信息,还要选择一些感兴趣的课程,需要生成课表,在发现课程有冲突后能够修改先前选择的信息。需要随学生选课的变化,计算相应的总学分。在全部选定后,打印报表。系统还需要管理员来查看和修改学生的总体选课情况,课程信息和学生信息。2.1.2 系统实体E-R图分析经过上述系统功能分析和需求总结,设计如下所示的实体和属性的定义:课程信息(课程代号,课程名称,总课时,学分);学生登录信息(用户名,密码);本系统根据上面的设计规划出的实体有:课程信息实体,学生信息实体,学生登录信息实体,学生选课信息实体。实体之间关系的E-R图如图1所示:课程信息选课学生信息登陆信息选课信息图1 系统E-R图课程信息实体E-R图,如图2所示:课时课程名学分课程号课程信息图2 课程信息E-R图学生信息实体E-R图,如图3所示:密码姓名学生信息图3 学生信息E-R图3 系统设计3.1 建立数据库1.建立学生信息表2.建立课程信息表3.2 数据库连接打开Visual Studio 2010,创建一个Windows窗体应用程序,打开“工具”选项,点击“连接到数据库”,如下图所示:服务器名输入“YUMIN-PCSQLEXPRESS”,数据库选择“学生选课系统”,单击确定连接到数据库,如下图:3.3 主要模块实施3.3.1 登录模块的开发本模块使用到了WindowsForm开发中常见的控件:Lable、Button、TextBox。界面如下图所示:3.3.2 选课模块的开发本模块使用到了WindowsForm开发中常见的控件:datagridView,Button。界面如下图所示:4 系统测试4.1 软件测试的对象 软件测试的对象是学生选课系统。4.2 软件测试的结果4.2.1登陆模块的测试 输入正确的用户名和密码后,会弹出“登陆成功”的界面,点击“确定”后,进入选课界面,结果如下图所示:4.2.2选课模块的测试1)选择课程测试选择课程,点击“确定”,课程会在datagridView2中显示,如下图所示2)删除课程测试选择要删除的课程,点击“删除课程”,效果如下图所示5 系统说明5.1 开发环境 本系统的是在.NET平台下开发的,系统的后台数据库为SQL SERVER数据库;因此在使用本系统前,应先安装.NET框架和SQL SERVER数据库,否则该系统无法运行。5.2 系统安装、配置与发布应用程序的步骤 系统的原文件直接复制到机器上后,在数据库管理系统上建立一个名为Design的数据库后,系统便可以运行。6 总 结整个课程设计工作做起来没有想象中的复杂,这也和做出来的系统复杂性有关,在决定做学生选课系统之后,就开始思考需要建哪些表、如何去建这些表以及表与表之间的联系。整个设计过程用了大概三个小时,不过还是停留在简单地层面。做出来的学生选课系统具有简单地数据操作功能,比如数据添加、数据删除等功能。这次的课程设计让我基本掌握了做一般数据库的基本步骤,也熟悉了对一些相关软件的使用。 最后对所有指导教师和其他有关教师和同学的表示感谢。7 参考文献1AndrewTroelsen著朱晔译C#与.NET4高级程序设计2011年4月人民邮电出版社2张俊崔海波著ADO.NET数据库应用开发2008年1月机械工业出版社3张越廷顾彦玲著ASP.NET从入门到精通2008年9月清华大学出版社4徐孝凯贺佳英著数据库基础与SQLServer应用开发2008年4月清华大学出版社附录:部分源代码1. 登陆界面源代码19using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.SqlClient;namespace sscspublic partial class Form1 : Formprivate string connectionstring = Data Source=YUMIN-PCSQLEXPRESS;Initial Catalog=学生选课系统;Integrated Security=True;private SqlConnection conn = null;private SqlCommand cmd = null;/ private SqlDataAdapter dataadapter = null;/private DataSet dataset = null;public Form1()InitializeComponent();private void Form1_Load(object sender, EventArgs e)private void button1_Click(object sender, EventArgs e)string StrSQL = SELECT * FROM userpassword where user= + textBox1.Text + and password= + textBox2.Text + ;if(textBox1.Text = | textBox2.Text = )MessageBox.Show(请正确输入用户登录信息!, 警告!, MessageBoxButtons.OK, MessageBoxIcon.Warning);elsetryconn = new SqlConnection(connectionstring);conn.Open(); cmd = new SqlCommand(StrSQL, conn);int n=cmd.ExecuteNonQuery();DataSet dataset=new DataSet ();SqlDataAdapter DataAdapter = new SqlDataAdapter(StrSQL,conn); DataAdapter.Fill(dataset,userpassword); if (n!=0)MessageBox.Show(登陆成功!, 提示!, MessageBoxButtons.OK, MessageBoxIcon.Warning);conn.Close();Form2 form = new Form2();form.Show();elseMessageBox.Show(用户名或密码错误!,警告!,MessageBoxButtons.OK,MessageBoxIcon.Warning);catch (Exception E)MessageBox.Show(登陆失败!, 警告!, MessageBoxButtons.OK, MessageBoxIcon.Warning);finallyif (conn != null) conn.Close();private void button2_Click(object sender, EventArgs e)this.Close();2. 选课及删除课程源代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.SqlClient;namespace sscs public partial class Form2 : Form public string connectionstring = Data Source=YUMIN-PCSQLEXPRESS;Initial Catalog=学生选课系统;Integrated Security=True; public SqlConnection conn = null; private SqlCommand cmd = null; public SqlDataAdapter dataadapt = null; public DataSet dataset = null; public Form2() InitializeComponent(); private void showdata() try conn = new SqlConnection(connectionstring); /if(conn = null) conn.Open(); dataadapt = new SqlDataAdapter(select * from course,conn); dataset = new DataSet(); dataadapt.Fill(dataset, course); dataGridView1.DataSource = dataset; dataGridView1.DataMember = course; catch (Exception ex) MessageBox.Show(ex.ToString(); finally if (conn != null) conn.Close(); dataadapt.Dispose(); dataset.Dispose(); private void Form2_Load(object sender, EventArgs e) / TODO: 这行代码将数据加载到表“学生选课系统DataSet.course”中。您可以根据需要移动或删除它。 this.courseTableAdapter.Fill(this.学生选课系统DataSet.course); showdata(); dt.Columns.Add(A, typeof(String); dt.Columns.Add(B, typeof(String); dt.Columns.Add(C, typeof(String); dt.Columns.Add(D, typeof(String); /private void button1_Click(object sender, EventArgs e) / /*int index = dataGridView1.CurrentRow.Index; this.dataGridView1.CurrentCell = this.dataGridView1.Rowsindex.Cells0; string sql = select * from course where 课程号=; SqlDataAdapter dataadapt1 = new SqlDataAdapter(sql,conn); DataSet dataset1 = new DataSet(); dataadapt1.Fill(dataset1);*/ /string cno = dataGridView1.SelectedRows0.Cells0.Value.ToString(); /string cname = dataGridView1.SelectedRows0.Cells1.Value.ToString(); /string ctime = dataGridView1.SelectedRows0.Cells2.Value.ToString(); /string cscore = dataGridView1.SelectedRows0.Cells3.Value.ToString(); /string sql = string.Format(insert course1 values(0,1,2,3), cno , cname , ctime ,cscore); /string sql = select * from course ; /conn.Open(); /SqlCommand cmd = new SqlCommand(sql,conn); /if(cmd.ExecuteNonQuery() 0) / / MessageBox.Show(添加成功!); / string sql1 = select * from course; / SqlDataAdapter sda = new SqlDataAdapter(sql1, conn); / DataSet ds = new DataSet(); / sda.Fill(ds); / dataGridView2.AutoGenerateColumns = false; / dataGridView2.DataSource = ds.Tables0; / /conn.Close(); /*SqlDataAdapter dataadapt1 = new SqlDataAdapter(sql, conn); DataSet dataset1 = new DataSet(); dataadapt1.Fill(dataset1); dataGridView2.AutoGenerateColumns = false; dataGridView2.DataSource = dataset1.Tables0;*/ / public DataTable dt = new DataTable(); private void button4_Click(object sender, EventArgs e) /try / / conn = new SqlConnection(connectionstring); / conn.Open(); / string Curcno = ; / int ind = dataGridView1.CurrentCell.RowIndex; / Curcno = this.dataGridView1.Rowsind.Cells0.Value.ToString(); / string Sqlstr = select * from course where 课程号= + Curcno + ; / /string Sqlstr = select * from course; / /SqlCommand command = new SqlCommand(Sqlstr, conn); / /SqlDataReader reader = command.ExecuteReader(); / /object row = new objectreader.FieldCount; / /DataTable dt = new DataTable(); / /DataRow dr = dt.NewRow(); / /while (reader.Read() = true) / / / / reader.GetValues(row); / / for (int i = 0; i reader.FieldCount; i+) / / / / dt.Rows.Add(rowi); / / / / / /dataGridView2.DataSource = dt; / DataSet dataset2 = new DataSet(); / DataSet datacopy = new DataSet(); / SqlDataAdapter dataApdapter = new SqlDataAdapter(Sqlstr, conn); / dataApdapter.Fill(dataset2, table); / datacopy = dataset2.Copy(); / DataTable dt = new DataTable(); / DataRow dr = dt.NewRow(); / dr = datacopy.Tablestable.Rows0; / DataRow dr1 = dt.NewRow(); / dr1 = dr; / dt.Rows.Add(dr1); / dataGridView2.DataSource = dt; / / dataGridView2.DataMember = table; / /catch (Exception err) / / MessageBox.Show(err.Message); / /finally / / conn.Close(); / dataset.Dispose(); / try conn = new SqlConnection(connectionstring); conn.Open(); string Curcno = ; int ind = dataGridView1.CurrentCell.RowIndex; Curcno = this.dataGridView1.Rowsind.Cells0.Value.ToString(); string Sqlstr = select * from course where 课程号= + Curcno + ; SqlCommand command =

温馨提示

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

评论

0/150

提交评论