网络数据库课程设计报告题目:学生信息管理系统学号:0903032250姓名:彭玉亭专业:网络技术班级:09网络2班2010年1月第一章系统需求分析1.1学生信息管理系统分析学生信息管理是实现对学生信息的管理,从实用的角度考虑,要求系统实现如下的功能。(1)用户管理模块:主要实现用户登录、添加用户和修改用户密码等功能。录入用户的用户名称、用户密码和用户描述。(2)学籍信息管理模块:该模块主要实现对学生基本信息的录入、修改、删除和查询等操作。录入学生的学号、姓名、性别、入学时间、出生日期、联系电话和家庭住址等信息,以学号作为唯一关键字。(3)课程信息管理模块:实现学校课程信息的录入、修改、删除和查询操作。录入课程的课程号、课程名、学分、教师、选修或必修等信息。(4)学生成绩管理模块:实现学生成绩的录入、修改、删除和查询操作。录入学生成绩的学号、课程编号、分数。第二章系统需求设计2.1客户端设计一、学生信息管理系统的系统模块:图2-1:系统功能模块图二、系统主要模块流程图学生信息管理系统学生信息课程信息成绩信息用户管理帮助添加用户信息修改用户密码删除用户信息录入学生信息修改学生信息删除学生信息查询学生信息录入课程信息修改课程信息删除课程信息查询课程信息录入成绩信息修改成绩信息删除成绩信息查询成绩信息用户登录图2-2添加信息流程图登录添加信息输入用户名密码名添加信息到库输入新记录是否与库中原记录重复错误:记录重复是否图2-3添加信息流程图2.2服务器端设计一、数据需求分析主要对系统所用的数据信息的分析,从而确定系统所用表和表的字段登录浏览学籍信息输入用户名密码名系别查询库中符合条件的记录性别选择条件显示提示:没有符合条件的记录找到符合条件的记录未找到符合条件的记录如图2-4学生表实体E-R图如图2-5成绩表实体E-R图如图2-6课程表E-R图二、逻辑设计1、数据库的创建此系统创建studentmang数据库,库中包含一个主日志文件(idf),一个辅助文件(ndf),一个主文件(mdf)createdatabasestudentmange学生入学时间姓名性别出生日期联系电话家庭住址成绩分数课程学分课程名选修或必修教师学号学号课程号课程号on(name='data1',filename='e:\SQLServer2008\sql课程设计\studentmange\data1.mdf',size=10mb,maxsize=50mb,filegrowth=10%),(name='data2',filename='e:\SQLServer2008\sql课程设计\studentmange\data2.ndf',size=5mb,maxsize=40mb,filegrowth=3mb)logon(name='data3',filename='e:\SQLServer2008\sql课程设计\studentmange\data3.idf',size=13mb,maxsize=50mb,filegrowth=5mb)gousestudentmangego2、数据库中表和关系的创建情况此系统包含四个表,用户名登录表tb_user,学生信息表S_Info,学生课程表S_Course,学生成绩表S_Score,以下是这些表的结构:1、用户登录信息表tb_user表2-1用户登录信息表字段名数据类型空值约束用户名Varchar(10)NotnullPrimarykey用户密码Varchar(10)Notnull描述Varchar(10)Notnull2、学生信息表S_Info表2-2学生信息表字段名数据类型空值约束编号IntNotnullIdentity(1,1)学号Varchar(10)NotnullPrimarykey姓名Varchar(20)NotnullUnique性别Varchar(4)NotnullCheck(‘男’or’女’)入学时间Varchar(20)Null出生日期Varchar(20)null联系电话Varchar(26)NotnullCheck家庭住址Varchar(20)NotnullDefault‘石家庄’3、课程信息表S_Course表2-3课程信息表字段名数据类型空值约束课程号Varchar(10)NotnullPrimarykey课程名Varchar(20)NotnullUnique学分Varchar(10)NotnullCheck教师Varchar(10)Null选修或必修Varchar(4)NotnullCheck(‘是’or’否’)4、成绩信息表S_Score表2-4成绩信息表字段名数据类型空值约束学号Varchar(10)NotnullPrimarykey来自S_Info(学号)课程号Varchar(10)NotnullPrimaykey来自S_Course(课程号)分数Varrchar(10)Notnullcheck第三章系统详细设计3.1SQLServer服务器端数据处理一、在服务器端和主界面的连接1、存储过程的部分主要SQL代码:/*添加课程时应用的存储过程*/ifexists(select*fromsysobjectswherename='AddC')dropprocAddCgocreateprocAddC@CIDvarchar(10),@Cnamevarchar(20),@Cscorevarchar(10),@Ctearchervarchar(20),@Cxuanvarchar(20)asinsertintoS_Coursevalues(@CID,@Cname,@Cscore,@Ctearcher,@Cxuan)go2.要C#中的主要代码:SqlCommandcmd=newSqlCommand(select*froms_scorewhere课程号='+txtCid.Text.Trim()+',con);stringcid=txtCid.Text.ToString();stringcname=txtCname.Text.ToString();stringcsore=txtCscore.Text.ToString();stringcterarcher=txtCteacher.Text.ToString();stringcxuan=txtCchoice.Text.ToString();stringsql=execAddCourse'+cid+','+cname+','+csore+','+cterarcher+','+cxuan+';cmd.CommandText=sql;cmd.ExecuteNonQuery();MessageBox.Show(添加课程信息成功!,提示);txtCchoice.Clear();txtCid.Clear();txtCname.Clear();txtCscore.Clear();txtCteacher.Clear();3.触发器的部分主要SQL代码:/*删除学生表信息时自动删除成绩表的信息*/ifexists(select*fromsysobjectswherename='DeleteS'andtype='tr')droptriggerDeleteSgocreatetriggerDeleteSons_infoafterdeleteasbegindeclare@sidvarchar(10)select@sid=学号fromdeleteddeletefroms_scorewhere学号=@sidendgo/*删除成绩表信息时自动删除成绩表的信息*/ifexists(select*fromsysobjectswherename='DeleteC'andtype='tr')droptriggerDeleteCgocreatetriggerDeleteConS_Courseafterdeleteasbegindeclare@cidvarchar(10)select@cid=课程号fromdeleteddeletefroms_scorewhere课程号=@cidendgo3.2客户界面的实现一、用户登录管理为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。用户登录窗体中放置了两个文本框(Textbox),用来输入用户名和密码;两个按钮(Button)用来确定或者取消登录。登录界面如图3-1所示。图3-1用户登录界面添加一个ToolTip组件,提示用户输入正确的用户名和密码形式,提示用户密码是否正确。用户登录代码如下所示:con.Open();stringsql=select*fromtb_userwhere用户名='+textBox1.Text.Trim()+'and用户密码='+textBox2.Text.Trim()+';SqlCommandcmd=newSqlCommand(sql,con);SqlDataReaderdr=cmd.ExecuteReader();if(dr.Read()){MessageBox.Show(登录成功!,提示);Frmmainf=newFrmmain();f.Show();this.Hide();dr.Close();}else{MessageBox.Show(用户名或密码错误!,提示);textBox1.Clear();textBox2.Clear();dr.Close();}二、系统主界面登陆成功后,即可进入,系统主界面模块。窗体名称为界面功能介绍。主界面为进入学生管理系统各模块的入口,用户可根据MenuStrip上面各个模块名称单击进入各个管理模块,从而进行对系统的管理操作。界面如图3-2所示。图3-2学生信息管理系统主界面主界面入口主要代码:AddStudentfriAddStudent;privatevoid添加学生ToolStripMenuItem_Click(objectsender,EventArgse){if(friAddStudent==null||friAddStudent.IsDisposed){friAddStudent=newAddStudent();for(intx=0;xthis.MdiChildren.Length;x++){FormtempChild=(Form)this.MdiChildren[x];tempChild.Close();}friAddStudent.MdiParent=this;friAddStudent.Show();}}BrowseStudentfriBrowseStudent;privatevoid浏览学生ToolStripMenuItem_Click(objectsender,EventArgse){if(friBrowseStudent==null||friBrowseStudent.IsDisposed){friBrowseStudent=newBrowseStudent();for(intx=0;xthis.MdiChildren.Length;x++){FormtempChild=(Form)this.MdiChildren[x];tempChild.Close();}friBrowseStudent.MdiParent=this;friBrowseStudent.Show();}}三、用户信息管理在此模块中可以对用户信息添加,浏览,修改,删除,查询。1、添加用户图3-3添加用户信息SqlCommandcmd=newSqlCommand(select*fromtb_userwhere用户名='+txtUname.Text.Trim()+',con);if(cmd.ExecuteScalar()!=null)MessageBox.Show(用户名重复,请重新输入,提示);else{stringsql=insertintotb_uservalues('+txtUname.Text.Trim()+','+txtU