版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于C#NET和SQLServer的数据库应用系统开发实训报告实训题目:学生信息管理系统一、课程设计目的课程设计是主要实践性教学环境之一,是围绕所学一门课程,综合运用所学知识进行实际应用设计的综合分析和设计的训练。通过C#.NET程序设计课程实习,以进一步巩固所学C#.NET程序设计和SQLServer2005数据库知识,初步掌握应用C#和数据库开发应用系统程序必备的技能,为今后进一步学习和从事软件方面的职业打下一定的基础。二、课程设计的任务、内容和要求1、任务学生根据老师指定的或自己拟订的经老师认可的运用C#和SQLServer2005知识进行中小型信息管理系统开发的项目,最终提交的解决方案
2、、课程设计报告和完整项目软件。三、实验步骤1、需求分析需求分析的重点在于调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性、与完整性的要求。然后在进行概念结构设计阶段。第一步:初始化工程,这一阶段的任务是从目的的描述和范围描述开始,确定建模目标;第二步:定义实体:实体集成员都有一个共同的特征和属性集,可以从收集的源材料基本的数据表中间接或直接的标识出大部分的实体;第三步:定义联系,根据实际的业务需求和规划,使实体联系矩阵来标识实体间的二元关系;第四步:定义码,唯一标识每一个实体的实例,从候选码中确定主码;第五步:定义属性,确定属性的所有者,定义非主码属性:第六步:定义其他对象和规则,
3、定义数据类型、长度、精度、是否非空、默认值、约束规则等。1.1功能需求分析根据数据库中存储的数据对登录的用户账号进行验证,再进行判断是否授予访问权限。管理员可以根据需要,对学生的基本信息进行查看、添加、修改以及删除,详细操作如下:(1)添加学生信息的功能主要包括对学生信息的输入,包括待输入学生的学号、姓名、年龄、性别、专业名。(2)查询学生信息的功能就是对已经添加的学生信息按学号进行查看,有利于管理者对学校学生信息的了解。(4)删除学生信息的功能是将整个系统的学生信息进行按学号进行删除。(5)修改学生信息的功能是输入要修改学生的学号分别修改学号、姓名、年龄、性别、所在学院和专业名。管理员可以根
4、据需要,对课程的基本信息进行查看、添加、修改以及删除,详细操作如下:(1)课程信息的全部查询和按条件查询;(2)课程信息的添加和删除.在数据库中要进行学生信息的编写包括学生的基本信息:学号、姓名、性别、出生日期和所在系;(3)课程基本信息:课程名、课程号、先行课和学分;(4)用户信息:用户名、用户密码和权限。学生根据自己的需要,对学生基本信息进行查看具体功能有(1)对课程表的查看、打印。(2)对自己信息的修改。为了编程的方便关系名和属性名通常用英文命名,下面是用英文命名的关系模式:Course(courseid,coursename,ecourse,coursepno);SC(stuid,co
5、urseid,grade);Student(sno,sName,sex,Birthday,sDept,remark)User(uname,upass,qx)1.2性能需求分析a)稳定性:软件应具备长期持续工作的能力。b)安全性:有良好的用户身份认证体制和灵活的密码更改模块。c)实用性:用户界面做到直观、友好,业务人员只需经过简单培训即可操作。d)可靠性:采用良好的操作软件和数据库,确保数据的一致性和完整性,并使软件免受病毒感染。1.3业务流程的分析通过业务流程的分析将业务流程逻辑与实现各业务的应用分离、协调流程参与者的相互关系、集成内部和外部资源以及监控和分析流程性能,实现对业务流程整个生存周
6、期的控制。它负责解释流程建模工具定义的业务流程逻辑,把任务分派给执行者,并根据任务执行的返回结果决定下一步的任务,控制并协调各种复杂工作流程的执行并且同步各个客户端的反应,根据组织机构模型中所定义的岗位分派策略获取实际的执行者,并同时获得所需的组织信息。本软件的业务流程是:用户登录软件前首先判断用户名和密码是否正确,如果不正确就停留在登录界面重新输入;如果输入的信息正确就可以顺利的进入服务器端进行软件管理。1.3.1软件数据流图数据流图(DFD)是一种描述数据流和加工的图形表示。当数据输入到软件后,经过一系列变换(加工),最后输出新的数据。所以它服务于两个目的:(1)指明数据在软件中移动时如何
7、被变换;(2)描述对数据流进行变换的功能(和子功能)。用户权限信息用户基本用户管理学生信息系统图1.1软件数据流图1.3.2软件数据字典数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。数据字典是关于数据的信息集合,也就是对数据流图中包含的所有元素定义的集合。经过上述软件功能分析和需求总结,考虑到将来功能上的扩展,设计如下面所示的数据项和数据结构。(1)学生信息包括的数据项有:学生姓名、学生学号、学生性别、学生生日、专业名称(2)管理员信息包括的数据项有:账号名、登录密码、权限1.4数据需求分析得到上面的
8、数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系。根据上面的设计规划出的实体有:学生实体、管理员实体、课程实体2软件的设计软件的数据库设计从软件的稳定性方面考虑,本软件使用SQLServer2005数据库软件。结合需求分析中的E-R图,设计了各数据表。学生表结构列名数据类型长度是否允许为空值默认值说明snochar10否无主键snamechar8否无sexchar2是无无birthdaysmalldatetime4是无sdeptvarchar26是无课程表结构列名数据类型长度是否允许为空值默认值说明enochar8否无主键cnamevarchar30是无prec
9、rochar10是无credittinyint1是无用户表结构列名数据类型长度是否允许为空值默认值说明unamechar10否无主键upasschar10是无3软件的实现在数据库中的配置创建表:进入SQLServerStudio中,在“对象资源管理器”窗口中展开“数据库”结点,再在展开所选择的具体数据库结点OnlineCS,右击“表”结点,在弹出的快捷菜单中选择“新建表”命令,此时将进入表设计器,即可进行表的定义;建完表之后,还要创建列名,设置数据类型,设置列是否允许为空。在表设计器的“列名”列中输入学生表的所有列名;在”数据类型”列中选择相应的数据类型;在“允许空”列中设置个列是否可以为空,
10、允许就打勾,不允许就不打;并且还要设置主键,主键的确定是唯一可以确定一个元组和其他元组不同的属性组。学生表、课程表、用户表和学生课程表都是由以上方法创建的。考虑到不同用户的登录界面不同因此要进行权限的设置如:学生登录时出现的是学生的登录界面,老师登录时出现的是老师的登录界面这样就防止了学生会篡改自己的信息,造成了信息的不安全性。在创建完表以后要对表中的列进行数据类型、数据长度、是否允许空值等方面的设置。要注意的是在学生表中对Brithday的设置事日期时间型在User表中对权限的设置是tinyint,在SC表中grade的数据类型的设置要设为smallint其他的根据实际情况来选择数据的类型和
11、长度。注意在是否允许空值这一方面,主键是不允许有空值出现的不然会报错。由于用户需要登录到数据库中因此要在服务器的安全性里添加用户,在数据库中的安全性中添加用户最后在每个表中右键单击属性设置每个登录的权限,综合考虑各方面的需求jwgl的用户允许所有的权限,dl的权限为Update和select,student的权限为Update设置好权限后数据库的任务就完成了,接下来的任务就是运用C#.net来进行编程,用来连接数据库。在Onlinecs中添加应用在登录窗体的后台程序上加上publicstaticstringsqlconn=System.Configuration.ConfigurationMa
12、nager.ConnectionStringsdl.ConnectionString;和usingSystem.Data.SqlClient;以调用数据库。3.1管理员登陆界面和设计对登录窗体的设置首先右击Onlinecs单击添加Windows窗体命名为loginfrm.cs在其中增加用户名框,密码框和两个按钮,在后台的程序中要注意由于是不同的权限登录因此要通过一个if语句来进行跳转:privatevoid按条件查询ToolStripMenuItem_Click(objectsender,EventArgse)antiaojianchaxunkechengtjcxkc=newantiaojia
13、nchaxunkecheng();tjcxkc.Show();this.Hide();privatevoid添加课程ToolStripMenuItem_Click(objectsender,EventArgse)tianjiakechengtjkc=newtianjiakecheng();tjkc.Show();this.Hide();privatevoid删除课程ToolStripMenuItem_Click(objectsender,EventArgse)shanchukechengsckc=newshanchukecheng();sckc.Show();this.Hide();priva
14、tevoid按条件查询ToolStripMenuIteml_Click(objectsender,EventArgse)antiaojianchaxunxueshengxinxintjcxxs=newantiaojianchaxunxueshengxinxin();tjcxxs.Show();this.Hide();privatevoid查询所有ToolStripMenuIteml_Click(objectsender,EventArgse)chaxunsuoyouxueshengxinxicxsyxsxx=newchaxunsuoyouxueshengxinxi();cxsyxsxx.Sho
15、w();this.Hide();privatevoid查询所有ToolStripMenuItem_Click(objectsender,EventArgse)chaxunsuoyoukechengcxsykc=newchaxunsuoyoukecheng();cxsykc.Show();this.Hide();privatevoid删除学生信息ToolStripMenuItem_Click(objectsender,EventArgse)shanchuxueshengxinxiscxsxx=newshanchuxueshengxinxi();scxsxx.Show();this.Hide();
16、privatevoid添加学生信息ToolStripMenuItem_Click(objectsender,EventArgse)tianjiaxueshengxinxitjxsxx=newtianjiaxueshengxinxi();tjxsxx.Show();this.Hide();privatevoid课程信息查询ToolStripMenuItem_Click(objectsender,EventArgse)privatevoid打印课程表ToolStripMenuItem_Click(objectsender,EventArgse)kechengbaobiaobaobiao=newke
17、chengbaobiao();baobiao.Show();this.Hide();privatevoid打印学生表ToolStripMenuItem_Click(objectsender,EventArgse)xueshengbaobiaostudent=newxueshengbaobiao();student.Show();EventArgse)EventArgse)EventArgse)this.Hide();privatevoid查询登录信息ToolStripMenuItem_Click(objectsender,gengxinstudentstudent1=newgengxinstu
18、dent();student1.Show();this.Hide();privatevoid更新课程信息ToolStripMenuItem_Click(objectsender,gengxincoursecourse=newgengxincourse();course.Show();this.Hide();privatevoid输入学生成绩ToolStripMenuItem_Click(objectsender,shuruxueshengchengjisr=newshuruxueshengchengji();sr.Show();this.Hide();3.2信息查询模块privatevoidb
19、utton1_Click(objectsender,EventArgse)kch=textBox1.Text;kechenghaochaxunkccx=newkechenghaochaxun();kccx.Show();this.Hide();privatevoidbutton2_Click(objectsender,EventArgse)kcm=textBox2.Text;kechengmingchaxunkcmcx=newkechengmingchaxun();kcmcx.Show();this.Hide();publicstaticinti=0;publicstaticintLastNu
20、m=0;publicstaticstringsqlconn=System.Configuration.ConfigurationManager.ConnectionStringsjwgl.ConnectionString;publicDataSetdsResult(intcurrentIndex)SqlConnectionconn=newSqlConnection(sqlconn);intpagesize=1;stringstrcmd=select*fromcoursewherecoursenamelike%+antiaojianchaxunkecheng.kcm+%;SqlDataAdapt
21、erda=newSqlDataAdapter(strcmd,conn);DataSetds=newDataSet(course);da.Fill(ds,currentIndex,pagesize,course);returnds;publicintMax()SqlConnectionconn=newSqlConnection(sqlconn);conn.Open();stringstrcmd=selectcount(*)fromcoursewherecoursenamelike%+antiaojianchaxunkecheng.kcm+%;SqlCommandcmd=newSqlCommand
22、(strcmd,conn);returnint.Parse(cmd.ExecuteScalar().ToString();privatevoidkechengmingchaxun_Load(objectsender,EventArgse)LastNum=Max();textBox1.Text=LastNum.ToString();if(LastNum0)DataSetdsNew=dsResult(0);this.textBox2.Text=dsNew.Tables0.Rows00.ToString();this.textBox3.Text=dsNew.Tables0.Rows01.ToStri
23、ng();this.textBox4.Text=dsNew.Tables0.Rows02.ToString();this.textBox5.Text=dsNew.Tables0.Rows03.ToString();antiaojianchaxunkecheng.kcm=dsNew.Tables0.Rows00.ToString();privatevoidbutton1_Click(objectsender,EventArgse)i=0;DataSetdsnew=dsResult(i);this.textBox2.Text=dsnew.Tables0.Rows00.ToString();this
24、.textBox3.Text=dsnew.Tables0.Rows01.ToString();this.textBox4.Text=dsnew.Tables0.Rows02.ToString();this.textBox5.Text=dsnew.Tables0.Rows03.ToString();antiaojianchaxunkecheng.kcm=dsnew.Tables0.Rows00.ToString();privatevoidbutton2_Click(objectsender,EventArgse)i-=1;if(i=0)DataSetdsnew=dsResult(i);this.
25、textBox2.Text=dsnew.Tables0.Rows01.ToString();this.textBox3.Text=dsnew.Tables0.Rows02.ToString();this.textBox4.Text=dsnew.Tables0.Rows03.ToString();this.textBox5.Text=dsnew.Tables0.Rows04.ToString();antiaojianchaxunkecheng.kcm=dsnew.Tables0.Rows00.ToString();elsei+=1;MessageBox.Show(这已经是第一条记录了!);pri
26、vatevoidbutton3_Click(objectsender,EventArgse)i+=1;if(i=(LastNum-1)DataSetdsnew=dsResult(i);this.textBox2.Text=dsnew.Tables0.Rows01.ToString();this.textBox3.Text=dsnew.Tables0.Rows02.ToString();this.textBox4.Text=dsnew.Tables0.Rows03.ToString();this.textBox5.Text=dsnew.Tables0.Rows04.ToString();anti
27、aojianchaxunkecheng.kcm=dsnew.Tables0.Rows00.ToString();elsei-=1;MessageBox.Show(这已经是最后一条记录了!);privatevoidbutton4_Click(objectsender,EventArgse)DataSetdsnew=dsResult(LastNum-1);this.textBox2.Text=dsnew.Tables0.Rows01.ToString();this.textBox3.Text=dsnew.Tables0.Rows02.ToString();this.textBox4.Text=ds
28、new.Tables0.Rows03.ToString();this.textBox5.Text=dsnew.Tables0.Rows04.ToString();antiaojianchaxunkecheng.kcm=dsnew.Tables0.Rows00.ToString();3.3信息添加模块publicstaticstringsqlconn=System.Configuration.ConfigurationManager.ConnectionStringsjwgl.ConnectionString;privatevoidbutton1_Click(objectsender,Event
29、Argse)privatevoidtianjiaxueshengxinxi_Load(objectsender,EventArgse)privatevoidbutton3_Click(objectsender,EventArgse)trySqlConnectionconn=newSqlConnection(sqlconn);conn.Open();SqlCommandcmd=newSqlCommand();cmd.CommandText=insertintostudent(sno,sname)values(+textBox6.Text+,+textBox7.Text+);cmd.Connect
30、ion=conn;cmd.ExecuteNonQuery();MessageBoxShow(添加成功!);catch(Exception)MessageBox.Show(添加失败!”);privatevoidtianjiaxueshengxinxi_Load_1(objectsender,EventArgse)SqlConnectionconn=newSqlConnection(sqlconn);stringstrcmd=select*fromstudent;SqlDataAdapterda=newSqlDataAdapter(strcmd,conn);DataTabledt=newDataT
31、able();da.Fill(dt);dataGridView2.DataSource=dt.DefaultView;3.4信息删除模块publicstaticstringsqlconn=System.Configuration.ConfigurationManager.ConnectionStringsjwgl.ConnectionString;DataSetds=newDataSet();privatevoidbutton1_Click(objectsender,EventArgse)trySqlConnectionconn=newSqlConnection(sqlconn);conn.O
32、pen();SqlCommandcmd=newSqlCommand();cmd.CommandText=deletefromcoursewherecourseid=+textBox1.Text+cmd.Connection=conn;cmd.ExecuteNonQuery();MessageBoxShow(删除成功!);catch(Exceptionee)MessageBox.Show(ee.Message.ToString();privatevoidshanchukecheng_Load(objectsender,EventArgse)SqlConnectionconn=newSqlConn
33、ection(sqlconn);stringstrcmd=select*fromcourse;SqlDataAdapterda=newSqlDataAdapter(strcmd,conn);DataTabledt=newDataTable();da.Fill(dt);dataGridView1.DataSource=dt.DefaultView;3.5信息修改模块DataSetds=newDataSet();publicstaticstringsqlconn=System.Configuration.ConfigurationManager.ConnectionStringsjwgl.Conn
34、ectionString;privatevoidgengxincourse_Load(objectsender,EventArgse)SqlConnectionconn=newSqlConnection(sqlconn);stringstrcmd=select*fromcourse;SqlCommandcmd=newSqlCommand(strcmd,conn);SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=cmd;da.Fill(ds,course);dataGridView1.DataSource=ds.Tables0;priv
35、atevoidbutton1_Click(objectsender,EventArgse)SqlConnectionconn=newSqlConnection(sqlconn);stringstrcmd=select*fromcourse;SqlCommandcmd=newSqlCommand(strcmd,conn);SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=cmd;da.Fill(ds,course);dataGridView1.DataSource=ds.Tables0;SqlCommandBuilderbuilder=newSqlCommandBuilder(da);da.Update(ds,course);3.5打印报表模块publicstaticstringsqlconn=System.Configuration.ConfigurationManager.ConnectionStringsjwgl.ConnectionString;privatevoi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工作计划新闻部第六届工作计划
- 睡美莲纺织品创业计划书创业计划书
- 脱贫攻坚帮扶工作总结计划及思路
- 初三数学教师教学工作计划
- 2025二年级新学期数学教研组的工作计划
- 工作计划it行业
- 四年美术下册教学计划
- 实习生教学工作计划锦集
- 《城市规划展厅》课件
- 《大学计算机基础》课件-第3章 操作系统与应用
- GB/T 4744-2013纺织品防水性能的检测和评价静水压法
- 借调人员年终总结模板【5篇】
- 期末复习必背作文 鲁教版八年级上册英语全册
- 《食品毒理学》教学PPT课件整套电子讲义
- 公路机电工程施工规范
- QUALITY MANUAL质量手册(英文版)
- 高考语文复习:诗歌意象专题训练
- 国开经济学(本)1-14章练习试题及答案
- 救助消防安全管理制度
- 历史人物:秦始皇简介
- 参展商实务(第二版)
评论
0/150
提交评论