学生管理系统说明文档_第1页
学生管理系统说明文档_第2页
学生管理系统说明文档_第3页
学生管理系统说明文档_第4页
学生管理系统说明文档_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

学生信息管理系统详细设计说明书班级:14计本高二姓名:姚仕梁学号言1.1编写目的建立学生信息管理系统,采用计算机对学生成绩进行管理,帮助广阔师生提高工作效率,实现学生成绩管理工作流程的系统化、标准化和自动化,减少人力财力投资。1.2背景该工程的名称为“学生信息管理系统〞。随着学校的规模不断扩大,专业、班级、学生的数量急剧增加,有关学生课的各种信息量也成倍增长,而目前许多高校的学生成绩管理仍停留在人工管理阶段,重复工作较多,工作量大,效率低。因此,迫切需要开发基于网络的学生信息管理系统来提高管理工作的效率。1.3定义学生成绩管理:对学生的根本信息、课程选择、成绩的录入、修改、删除、查询等一系列的操作。2总体设计2.1需求分析本软件主要提供以下功能:本地应用方面:1、录入功能:提供有权限的人员登入对系统进行管理2、查询功能:成绩模糊查询;课表查询;3、修改功能:用户可以修改自己的资料,学号不能为空〔在权限范围内的〕;4、添加功能:增加一个新记录;5、删除功能:删除一个学生记录;6、查询核对人员对系统进行访问;网络应用:7、学生查询:提供学生查询自己的成绩;8、其他查询:提供他人访问学生成绩数据库;2.2软件结构〔如图〕3.1登录模块功能:是用户可以进行各种操作的必须前提。输入工程:用户名、密码。输出工程:浏览区和根本资料区。程序逻辑:P1:检查用户名、密码与数据库是否吻合〔完整性和一致性〕。P2:产生提示用户名或密码错误的消息窗口;P3:用户确认后退出程序运行;P4:进入主窗体;P5:进入事件等待状态;3.2关闭系统模块功能:关闭并退出系统,保存相应状态数据。输入工程:全局变量;输出工程:更新后的数据库文件和配置文件。程序逻辑:P1:设置数据库和配置文件;P2:释放系统资源并退出系统;3.3浏览模块功能:维护窗口中浏览区中信息的更新和刷新。性能:这是经常使用的一个模块,对性能要求在很短时间内作出反响。输入工程:鼠标或键盘事件。输出工程:从新设置的浏览区中信息3.4刷新浏览模块功能:从新经过修改的浏览区。3.5查询模块功能:完成查询功能。性能:相应时间应尽量快。输入工程:无。输出工程:无。程序逻辑:P1:进入查询窗体;P2:假设用户取消,那么返回;P3:获得查询结果;P4:查询结果显示在主窗体上,并等待用户确认;P5:假设查询结果项数等于零,返回;3.6修改模块功能:完成修改功能。输入工程:各种修改。输出工程:修改后的根本资料程序逻辑:P1:点击要修改的表;P2:产生窗体;P3:等待用户修改;3.7添加模块功能:完成增加功能。输入工程:无。输出工程:无。3.8限制条件1硬件条件。该软件要求的具体设备配置必须是奔腾以上的CPU、内存128MB以上、硬盘10GB以上。2软件限制。Windows9x/2000/XP操作系统,效劳器安装SQLServer2005效劳器版4.1数据库设计本系统的数据库是SQLserver数据库,在SQL环境下创立数据库学生信息库.mdf文件。该数据库包括学生信息表、成绩信息表、用户登录信息表用于纪录学生的根本信息数据库表结构如下所示:4.1.1各表的物理结构4.2数据库链接4.2.1数据库链接代码实例化关键词SqlDataAdapter,SqlCommand,DataSetSqlDataReader数据阅读器数据库链接字符串publicstaticclassDB{///</summary>staticstringconstr;publicstaticstringgetConnection(){constr="DataSource=.;AttachDbFilename=|DataDirectory|\\学生信息管理.mdf;IntegratedSecurity=True";returnconstr;}}数据库数据集DATASET驻存在内存中离线stringSQLStr="select*from用户表〞;try{SqlConnectionmyCon=newSqlConnection(CString);myCon.Open();//翻开数据库SqlCommandMyCom1=newSqlCommand();//实例化数据库操作对象MyCom1.Connection=myCon;MyCom1.CommandType=CommandType.Text;MyCom1.CommandText=SQLStr;SqlDataAdaptermydataAdapter1=newSqlDataAdapter();//实例化适配器mydataAdapter1.SelectCommand=MyCom1;DataSetmyds=newDataSet();mydataAdapter1.Fill(myds,“用户表〞);stringinformation="select*from学生表where学号='"+yhm+"'";myCon=newSqlConnection(DB.getConnection());myCon.Open();MyCom=newSqlCommand();MyCom.Connection=myCon;MyCom.CommandType=CommandType.Text;MyCom.CommandText=information;//设置要执行的命令SqlDataAdapterMyDataAdapter=newSqlDataAdapter();//生成SqlDataAdapter对象//设置MyDataAdapter对象的SelectCommand属性值为创立的SqlCommand对象名MyDataAdapter.SelectCommand=MyCom;MyDs=newDataSet();//产生新的数据集MyDataAdapter.Fill(MyDs,"学生表");//填充数据集Navigator=this.BindingContext[MyDs,"学生表"];//用Navigator绑定Student表SqlDataReaderMyDataReader=MyCom.ExecuteReader();DispValue();//显示当前记录的值sqlcommand类的属性1.CommandText获取或设置要对数据源执行的Transact—SQL语句或存储过程。[1]2.CommandType获取或设置一个值,该值指示如何解释CommandText属性。3.Connection获取或设置SqlCommand的实例使用的SqlConnection。SelectCommand获取或设置一个Transact-SQL语句或存储过程,用于在数据源中选择记录。

Fill(DataSet,String)在

DataSet

中添加或刷新行以匹配使用

DataSet

DataTable

名称的数据源中的行。

〔继承自DbDataAdapter。〕4.2.2数据库链接操作第一步:附加数据库〔对已经建好的数据库进行附加〕点击数据库右键附加。第二部:平安性设置,展开平安性,sa用户点击右键属性,进行平安性设置〔密码设置、默认数据库设置〕,状态选择登录启用。第三步:效劳器属性设置,右击效劳器属性,进行平安性设置。第四步:重启效劳器。右击效劳器,选择重启效劳器。4.3数据库调试数据库成功附加、平安性设置、重启。5.1登录界面设计过程:用于输入用户名和密码登录,选择相应的用户类型进入系统,假设是用户类型选择错误那么不能进入系统。输入用户名和密码后点击确定判断数据库中的用户是否为合法用户。设计代码:stringCString=DB.getConnection();stringSQLStr="select*from用户表";try{SqlConnectionmyCon=newSqlConnection(CString);myCon.Open();SqlCommandMyCom1=newSqlCommand();MyCom1.Connection=myCon;MyCom1.CommandType=CommandType.Text;MyCom1.CommandText=SQLStr;SqlDataAdaptermydataAdapter1=newSqlDataAdapter();mydataAdapter1.SelectCommand=MyCom1;DataSetmyds=newDataSet();mydataAdapter1.Fill(myds,"用户表");inti;boolflag=false;for(i=0;i<myds.Tables["用户表"].Rows.Count;i++){if(username.Text==""||password.Text==""){MessageBox.Show("用户名密码不能为空","警告");username.Text="";password.Text="";username.Focus();flag=true;break;}elseif(username.Text!=myds.Tables["用户表"].Rows[i][0].ToString().Trim()||password.Text!=myds.Tables["用户表"].Rows[i][3].ToString().Trim()){flag=false;}elseif(username.Text==myds.Tables["用户表"].Rows[i][0].ToString().Trim()&&password.Text==myds.Tables["用户表"].Rows[i][3].ToString().Trim()){stringyhm=username.Text;mm=password.Text;Mainf1=newMain(username.Text,password.Text);this.Hide();for(i=0;i<myds.Tables["用户表"].Rows.Count;i++){if(yhm==myds.Tables["用户表"].Rows[i][0].ToString().Trim()&&myds.Tables["用户表"].Rows[i][1].ToString().Trim()=="管理员"){f1.教师操作ToolStripMenuItem.Visible=false;f1.学生操作ToolStripMenuItem.Visible=false;f1.toolStrip1.Visible=false;}elseif(yhm==myds.Tables["用户表"].Rows[i][0].ToString().Trim()&&myds.Tables["用户表"].Rows[i][1].ToString().Trim()=="教师"){f1.toolStripButton2.Visible=false;f1.toolStripButton3.Visible=false;f1.管理员操作ToolStripMenuItem.Visible=false;f1.学生操作ToolStripMenuItem.Visible=false;}elseif(yhm==myds.Tables["用户表"].Rows[i][0].ToString().Trim()&&myds.Tables["用户表"].Rows[i][1].ToString().Trim()=="学生"){f1.toolStripButton1.Visible=false;f1.教师操作ToolStripMenuItem.Visible=false;f1.管理员操作ToolStripMenuItem.Visible=false;}}flag=true;f1.ShowDialog();this.Close();break;}}if(flag==false){MessageBox.Show("输入有误!请重新输入!","警告");username.Text="";password.Text="";username.Focus();}myCon.Close();}catch(SqlExceptionOleDbe){MessageBox.Show(OleDbe.Message,"连接失败")根本控件Form窗体Login控件的属性值截图代码实现功能区或事件驱动实现直接利用Login的属性获取键盘enter的值5.2学生个人信息查询界面主要根本控件DataGridViewComboBox控件的属性值截图MDI属性代码实现功能区或事件驱动button5.Enabled=true;button4.Enabled=true;stringSQLStr;if(comboBox1.Text=="学生"){if(textBox1.Text==""){SQLStr="select*from学生表";}else{SQLStr="select*from学生表where学号='"+textBox1.Text+"'";}Myda=newSqlDataAdapter(SQLStr,myCon);Myds=newDataSet();Myda.Fill(Myds,"学生表");this.dataGridView1.DataSource=Myds.Tables[0];}if(comboBox1.Text=="教师"){if(textBox1.Text==""){SQLStr="select*from教师表";}else{SQLStr="select*from教师表where教师号='"+textBox1.Text+"'";}Myda=newSqlDataAdapter(SQLStr,myCon);Myds=newDataSet();Myda.Fill(Myds,"教师表");this.dataGridView1.DataSource=Myds.Tables[0];//把缓存中的表赋值到dataGridView1使用皮肤引擎控件的属性值截图代码实现功能区及事件驱动privatevoidwf_denglu_Load(objectsender,EventArgse)//加载{skinEngine1.SkinFile="MP10.ssk";}根本控件控件的属性值截图代码实现功能区及事件驱动privatevoid退出系统ToolStripMenuItem_Click(objectsender,EventArgse){if(MessageBox.Show("是否退出系统!","系统提示",MessageBoxButtons.YesNo)==DialogResult.Yes){Application.Exit();}}privatevoid重新登录ToolStripMenuItem_Click(objectsender,EventArgse){Logindl=newLogin();this.Hide();dl.ShowDialog();this.Close();}privatevoid用户信息管理ToolStripMenuItem_Click(objectsender,EventArgse){if(childFormNumber==0){MemberManageyhgl=newMemberManage();//MDI的窗体yhgl.MdiParent=this;childFormNumber++;yhgl.Show();}else{MessageBox.Show(this,"请先关闭正在运行的窗口,再进行操作!","错误提示");}}privatevoid排课管理ToolStripMenuItem_Click(objectsender,EventArgse){if(childFormNumber==0){CourseManagepkgl=newCourseManage();pkgl.MdiParent=this;childFormNumber++;pkgl.Show();}else{MessageBox.Show(this,"请先关闭正在运行的窗口,再进行操作!","错误提示");}}5.3学生信息管理5.3.1学生信息查询数据绑定及数据导航BindingManagerBase抽象类使用BindingManagerBase,可以对Windows窗体上绑定到相同数据源的数据绑定控件进行同步。〔有关将控件简单绑定到数据源的更多信息,请参见Binding类。〕例如,假定窗体包含两个绑定到相同数据源的不同列的TextBox控件。数据源可能是一个包含客户姓名的DataTable,其中的列可能包含名字和姓氏。这两个控件必须同步以便一起显示同一客户的正确姓名。从BindingManagerBase类继承的CurrencyManager通过维护指向数据源中当前项的指针来完成此同步。TextBox控件被绑定到当前项,因此它们显示同一行的信息。在当前项更改时,CurrencyManager通知所有绑定控件,以便它们能够刷新它们的数据。此外,可以设置Position属性来指定控件所指向的DataTable中的行。假设要确定数据源中存在的行数,请使用Count属性。publicpartialclassStudentSearch:Form{privateBindingManagerBaseNavigator;//用来对记录导航privateSqlConnectionmyCon;//连接对象privateSqlCommandMyCom;//命令对象//privateSqlDataAdapterMyDataAdapter;//数据适配器对象privateDataSetMyDs;//数据集对象publicstringyhm;publicStudentSearch(stringzm){InitializeComponent();yhm=zm;//学号}privatevoidbutton2_Click(objectsender,EventArgse){this.Close();}privatevoidDispValue()//把当前记录的值显示在文本框中{for(inti=0;i<MyDs.Tables["学生表"].Rows.Count;i++){Navigator.Position=i;textBox1.Text=MyDs.Tables["学生表"].Rows[Navigator.Position]["学号"].ToString();textBox2.Text=MyDs.Tables["学生表"].Rows[Navigator.Position]["姓名"].ToString();textBox3.Text=MyDs.Tables["学生表"].Rows[Navigator.Position]["性别"].ToString();textBox4.Text=MyDs.Tables["学生表"].Rows[Navigator.Position]["班级"].ToString();textBox5.Text=MyDs.Tables["学生表"].Rows[Navigator.Position]["出生日期"].ToString();textBox6.Text=MyDs.Tables["学生表"].Rows[Navigator.Position]["家庭所在地"].ToString();textBox7.Text=MyDs.Tables["学生表"].Rows[Navigator.Position]["是否团员"].ToString();}}privatevoidStudentSearch_Load(objectsender,EventArgse){stringinformation="select*from学生表where学号='"+yhm+"'";myCon=newSqlConnection(DB.getConnection());myCon.Open();MyCom=newSqlCommand();MyCom.Connect

温馨提示

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

最新文档

评论

0/150

提交评论