C#课程设计学生选课系统论文.docx
《C#课程设计学生选课系统论文.docx》由会员分享,可在线阅读,更多相关《C#课程设计学生选课系统论文.docx(27页珍藏版)》请在冰豆网上搜索。
![C#课程设计学生选课系统论文.docx](https://file1.bdocx.com/fileroot1/2023-6/24/dd051b76-0cce-4192-bd50-8d857322ce67/dd051b76-0cce-4192-bd50-8d857322ce671.gif)
C#课程设计学生选课系统论文
摘要1
摘要
随着在校大学生的不断增加,学生选课也成为学校对学生管理中不可缺少的一部分。
以往的选课方法是使用人工的方法管理文件档案,这种管理方式存在许多的缺点:
效率低、保密差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来不少的困难。
随着科学技术的不断提高,计算机已经进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,实用技术绝对选课信息进行管理,具有手工管理所无法比拟的优点。
本文着重讨论了用ADO.NET技术和SQLServer2005开发选课系统的数据库的访问技术,并给出了一些可以实现的核心代码。
通过该系统,使学生可以很方便的在校园网上进行网上选课。
该系统使用C#作为ADO.NET的开发语言,SQLServer2005作为数据库,系统有较高的安全性和较好的性能。
关键词:
学生选课、C#、ADO.NET、SQLServer2005
Abstract
With the continuous increase in college students, students of students elective is becoming an integral part of management. Previous elective method is to use artificial methods to manage file archives, this management approach has many disadvantages:
low efficiency, poor security, while over time, will generate a large number of documents and data, which for finding, updating and maintenance of bring a lot of difficulties. With the continuous improvement of science and technology, the computer has access to all areas of human society, and play an increasingly important role. As a part of computer applications and practical management of information technology is absolutely elective, with manual management incomparable advantages.
This paper focused on using ADO.NET technology and SQL Server 2005 Developer elective system, access to the database technology, and give some of the core code can be achieved. Through the system so that students can easily online Online Course on campus. The
SystemC#astheADO.NETdevelopmentlanguage,SQLServer2005
as a database, System has a higher security and better performance. IC # as the ADO.NET development language, SQL Server 2005 as a database. System has a higher security and better performance. In which the database connection string can change at any time. The code to make use of the stored procedure and to minimize the database connection open time to improve performance.
Keywords:
Student elective, C#,ADO.NET, SQL Server 2005
1绪论
1.1课题背景
以往的选课方法是使用人工的方法管理文件档案,这种管理方式存在许多的缺点:
效率低、保密差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来不少的困难。
学生选课系统是一个针对高校学生选课而开发的学生选课信息管理系统,是为学生选课提供安全、快捷、方便的服务而建立的应用软件。
包括数据流程及存储、学生课程设置、选课修改及删除等。
还有较为先进的学生选课系统增加了学生成绩查询这一个功能,使学生能够方便快捷地查询成绩,系统可以使学生更方便的选课。
实现全校学生教师选课查询功能。
由于学生上课情况复杂,可以实现信息修改,及时调整学生的基本情况。
1.2系统设计目的与意义
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套软件成为很有必要的事情,
学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。
1.3系统开发的目标
建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。
帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。
2系统相关技术介绍
2.1C#技术简介
要了解C#,首先要了解Microsoft.NETFrmeWork。
Microsoft.NETFrameWork是微软公司提出的新一代软件开发模型,C#语言是.NETFrameWork中新一代的开发工具。
C#语言是一种现代的,面向对象的语言,它简化了C++语言在类、命名控件、方法重载和异常处理等方面的操作,摒弃了C++的复杂性,更易使用。
它使用组件编程,在这方面和VB类似。
在动态查阅、中间代码技术、参数传递、交叉语言处理、面向对象方面有自己的特点。
另外,由于C#中取消了指针的功能,这样可以有效防止病毒程序利用非法指针访问私有成员,也能避免指针的误操作产生的错误。
因此,其在安全性方面也有了很大的提高。
2.2SQL技术
2.2.1数据库的基本概念
SQL(StructuredQueryLanguge)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言包括:
数据定义语言、数据操作语言、数据查询语言、数据控制语言四部分。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所有具有完全不同底层结构的不同数据库系统,都可以使用相同的SQL语言作为数据输入与管理的接口。
它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能。
2.2.2本系统中数据库的访问
本系统的数据库访问过程实现主要通过六个步骤:
(1)建立数据库表,表中存储相应数据。
(2)使用SqlConnection或OleDbConnection类建立数据库应用程序和数据库连接对象。
(3)从数据库指定表中取出感兴趣的记录。
(4)从数据库指定表中取出的感兴趣记录组成一个新表,填充到DataSet类对象中,可填充多个表,并可在DataSet类对象中指定表和表的关系。
取出所感兴趣的记录后,断开数据库连接。
(5)用支持数据库绑定控件(例如DataGrid控件)显示DataSet类对象中的数据,供用户浏览、查询和修改。
(6)及时更新DataSet中内容,并把修改的数据存回源数据库。
3系统分析
3.1需求分析
3.1.1可行性分析
经济可行性:
由于本系统的主要背景是课程设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运MicrosoftVisualStudio2008软件的电脑便可,所以不用考虑到经济问题。
技术可行性:
本系统的开发使用数据库,只需考虑安装SQLsever数据库的问题,在技术上要求并不高,因此本系统在技术上是可行的。
运行可行性:
本系统是一个学生选课系统,所耗费的资源非常的小,现在一般的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。
3.1.2系统性能需求
实用性:
为学生选课提供方便,可以有效的管理学生选课。
先进性:
产品的系统设计和开发应紧跟着整个计算机发展潮流,采用当时最先进的设计思想,利用最新的开发技术和开发工具。
使系统能够无论在功能设计上,还是在技术实现上,都处于同行业的领先地位。
操作简单:
本系统应该适用于不同水平的使用者,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。
适应性:
应该能广泛应用于不同类型的大、中、小学院校,系统采用模块化设计,用户可以根据自己的实际情况自行组合,使系统在不同的硬件环境下都能得以应用。
代码可读性好:
文中的代码将尽可能简洁,易懂。
3.2系统流程图设计
条
件
为
假
类型
图3.2.1系统流程图
3.3数据存储分析:
实体联系图(E-R)
图3.3.1学生实体联系图
图3.3.2课表实体联系图
图3.3.3选课表实体联系图
图3.3.4登录表实体联系图
4系统总体设计
4.1系统总体功能层次图
图4.4.1总体功能图
4.2系统功能模块设计
本系统需要完成的功能主要有:
(1)有关学生信息的输入,包括输入学生基本信息、所选课程。
(2)学生信息的查询,包括查询学生基本信息、已学课程。
(3)学生信息的修改、删除。
(4)课程管理信息的添加、修改、删除和浏览等。
(5)学生选课管理信息的查询、添加、修改、删除。
(6)学生实现选择课程和退选课程的功能。
(7)教师实现查询自己课程被选择的情况。
4.3数据库设计
课程列表
登录表
学生信息表
学生选课表
4.4部分源代码的设计
登录窗体代码
publicpartialclasslogin:
Form
{
publiclogin()
{
InitializeComponent();
}
privatevoidlogin_Load(objectsender,EventArgse)
{
comboBox1.Items.Add("学生");
comboBox1.Items.Add("教师");
comboBox1.Items.Add("管理员");
comboBox1.SelectedIndex=0;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
sqlconnectionget=newsqlconnection();
if(textBox1.Text==""||textBox2.Text=="")
MessageBox.Show("请输入用户名和密码","提示");
else
{
SqlConnectioncon=newSqlConnection(get.getstring());
stringsql;
if(comboBox1.Text=="学生")
{
sql="select*fromloginwhere用户名='"+textBox1.Text+"'and密码='"+textBox2.Text+"'and类型='"+comboBox1.Text+"'";SqlCommandcmd=newSqlCommand(sql,con);
con.Open();
if(cmd.ExecuteScalar()!
=null)
{
this.Visible=false;
students=newstudent();
s.Show();
}
else
{
MessageBox.Show("请输入正确的用户名或密码","提示");
textBox2.Text="";
con.Close();
}
}
if(comboBox1.Text=="教师")
{
sql="select*fromloginwhere用户名='"+textBox1.Text+"'and密码='"+textBox2.Text+"'and类型='"+comboBox1.Text+"'";SqlCommandcmd=newSqlCommand(sql,con);
con.Open();
if(cmd.ExecuteScalar()!
=null)
{
this.Visible=false;
teachert=newteacher();
t.Show();
}
else
{
MessageBox.Show("请输入正确的用户名或密码","提示");
textBox2.Text="";
con.Close();
}
}
if(comboBox1.Text=="管理员")
{
sql="select*fromloginwhere用户名='"+textBox1.Text+"'and密码='"+textBox2.Text+"'and类型='"+comboBox1.Text+"'";SqlCommandcmd=newSqlCommand(sql,con);
con.Open();
if(cmd.ExecuteScalar()!
=null)
{
this.Visible=false;
managerm=newmanager();
m.Show();
}
else
{
MessageBox.Show("请输入正确的用户名或密码","提示");
textBox2.Text="";
con.Close();
}
}
}
学生选课代码
namespace学生选课系统1
{
publicpartialclassstudent:
Form
{
DataSetds;
SqlCommandcmd,cmd1;
SqlDataAdapteradp;
publicstudent()
{
InitializeComponent();
}
sqlconnectionget=newsqlconnection();
stringkeming,kehao,tname,tnum,keshi;
privatevoidstudent_Load(objectsender,EventArgse)
{
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
dataGridView1.SelectedRows.ToString();
keming=dataGridView1.CurrentRow.Cells[0].Value.ToString();
kehao=dataGridView1.CurrentRow.Cells[1].Value.ToString();
tname=dataGridView1.CurrentRow.Cells[2].Value.ToString();
tnum=dataGridView1.CurrentRow.Cells[3].Value.ToString();
keshi=dataGridView1.CurrentRow.Cells[4].Value.ToString();
SqlConnectioncon=newSqlConnection(get.getstring());
con.Open();
stringgetstring1="select*fromxuankewhere学号='"+textBox1.Text+"'and课程编号='"+kehao+"'";
cmd1=newSqlCommand(getstring1,con);
if(cmd1.ExecuteScalar()==null)
{
stringgetstring="insertintoxuanke(课程名称,课程编号,教师姓名,教师编号,课时)values('"+keming+"','"+kehao+"','"+tname+"','"+tnum+"','"+keshi+"')where学号='"+textBox1.Text+"''";
cmd=newSqlCommand(getstring,con);
cmd.CommandText=getstring;;
cmd.ExecuteNonQuery();
MessageBox.Show("选课成功!
");
this.Close();
}
else
{
MessageBox.Show("你已选择此课程!
","提示");
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
intdelRowIndex=dataGridView1.CurrentRow.Index;
this.dataGridView1.Rows.RemoveAt(delRowIndex);
SqlConnectioncon=newSqlConnection(get.getstring());
con.Open();
stringgetstring1="select*fromxuankewhere学号='"+textBox1.Text+"'and课程编号='"+kehao+"'";
SqlCommandcmd1=newSqlCommand(getstring1,con);
if(cmd1.ExecuteScalar()!
=null)
{
stringgetstring="updatexuankeset课程名称='',课程编号='',教师姓名='',教师编号='',课时=''where学号='"+textBox1.Text+"'and课程编号='"+kehao+"'";
SqlCommandcmd=newSqlCommand(getstring,con);
cmd.CommandText=getstring;
cmd.ExecuteNonQuery();
MessageBox.Show("删除成功!
");
con.Close();
}
else
{
MessageBox.Show("你没有选择此课程!
","提示");
}
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
if(textBox1.Text=="")
{
MessageBox.Show("请输入学号","提示");
}
else
{
SqlConnectioncon=newSqlConnection(get.getstring());
con.Open();
cmd=newSqlCommand("select*fromstudent",con);
if(cmd.ExecuteScalar()!
=null)
{
ds=newDataSet();
adp=newSqlDataAdapter("SELECT*FROMcourse",con);
adp.Fill(ds,"course");
dataGridView1.DataSource=ds.Tables["course"];
}
else
{
MessageBox.Show("信息错误!
!
","提示");
con.Close();
}
}
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.Close();
}
}
管理员管理课程代码
namespace学生选课系统1
{
publicpartialclassmgcourse:
Form
{
SqlDataAdapteradp;
DataSetds;
SqlCommandcmd,cmd1;
publicmgcourse()
{
InitializeComponent();
}
sqlconnectionget=newsqlconnection();
stringkm,kh,tname,tnum,ks;
privatevoidmgcumrse_Load(objectsender,EventArgse)
{
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
dataGridView1.SelectedRows.ToString();
km=dataGridView1.CurrentRow.Cells[0].Value.ToString();
kh=dataGridView1.CurrentRow.Cells[1].Value.ToString();
tname=dataGridView1.CurrentRow.Cells[2].Value.ToStr