计算机工程学院数据库原理及应用课程设计报告课题名称:学生档案治理系统专业:计算机科学与技术(网络技术)班级:网络1111 姓名:周泽成学号: 1111311104 指导老师:周泓、刘金岭、王新华、高丽2013 年 6 月 22 号课程设计任务及进度表摘要学生档案治理系统是典型的信息治理系统(MIS),其开发要紧包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
关于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而关于后者则要求应用程序功能完备,易使用等特点。
通过分析,我使用 MICROSOFT公司的 VISUAL STUDIO开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,能够在短时刻内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,用ODBC连接数据库,直到形成最终的可行系统。
关键词控件,窗体,数据库,Microsoft Visual Studio 2010目录1 引言 (7)2 需求分析 (7)2.1 系统目标 (7)2.2 功能划分 (8)3 概念设计 (9)3.3 数据流图 (11)4 逻辑结构设计 (11)4.1 ER模型向关系模式转换 (11)4.2 数据库表结构设计 (12)5 应用程序设计 (16)6 编码(要紧功能介绍) (17)6.1登陆界面176.2新生档案录入416.3学生档案查询486.4更新学生档案537 项目测试 (61)结论 (62)致谢 (64)参考文献 (65)附录 (67)1 引言电子档案是档案工作中的新事物,具有传统纸质档案不具备时代进展的潮流,正确积极地认识电子档案的特点,加强对电子实、完整、可靠的保管。
2 需求分析2.1 系统目标一直以来人们使用传统人工的方式治理文件档案,这种治理方式存在着许多缺点,如:效率低、保密性差,另外时刻一长,将产生大量的文件和数据,这关于查找、更新和维护都带来了许多的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生档案信息进行治理,具有着手工治理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生档案治理的效率,也是企业的科学化、正规化治理,与世界接轨的重要条件。
治理信息系统在最初级时期是统计系统,所研究的内容是数量数据间表面的规律,他能够分成较相关和不相关的组,然后把数据转换成信息。
第二个时期的数据更新系统,比如它不能告诉你以现在的售票的速度何时把票售完,从而采取补救措施。
因而它也是治理信息系统的低级时期。
第三时期是状态报告时期系统,它能够分为生产状态报告、服务状态报告和研究状态报告。
比如生产状态报告系统,它的典型代表是IBM公司的生产治理系统。
众所周知,它是世界上最大的计算机公司,1964年它生产出中型计算机IBM360,使计算机的水平提高了一个台阶,但同时组织生产工作却大大的复杂化了。
一台计算机超过了15000个不同的部件,每一个部件又有若干个元件,加上IBM的工厂遍及美国各地,不同的定货有不同的元件和不同的部件。
如此的以来治理就特不复杂了。
在1968年,建立了公用制造信息系统CMIS 运行专门成功。
状态报告系统还有一种形式是数据处理系统。
要紧是用来处理日常业务和生产报告。
把手工作业自动化,提高效率和节约人力。
最后的时期是决策支持系统,它是用来辅助决策的信息系统。
该系统能够打算、分析解答,它有较好的人机对话,但不强调全面的治理功能。
因此,开发如此一套治理软件成为专门有必要,我们将以开发一套学生档案治理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
2.2 功能划分学生档案治理系统包括登陆权限治理、学生档案的查询修改录入、班级信息的录入、学生成绩的录入与更新等功能。
3 概念设计本系统规划出的实体有:课程信息实体、学生信息实体、成绩信息实体,它们之间的关系如下图所示。
图3.1 学生选课E-R 图生家庭地址 性不 课程学习 1N 学分课程名 政治面貌 班级职务所学专业 成绩 添加M 教务秘书N图3.2 教务秘书添加学生信息E-R 图图3.3 教务秘书添加班级信息E-R 图学生属性:学生号、学生姓名、性不、出生年月、祖籍、班级号、入学日期、家庭地址、政治面貌、身份证号码、班级职务、所学专业等;、班级添加 M 班级名 学分教务秘书N班级属性:课程编号、课程名称、学分等;一个学生能够上多门课程,因此是1:N 的关系;多个教务秘书能够添加多个学生的信息,因此是N :M 的关系;多个教务秘书能够添加多个班级的信息,因此是N :M 的关系。
3.3 数据流图图3.3.1 查找数据流图图3.3.2 学生档案数据流图图3.3.3 档案添加修改数据流图4 逻辑结构设计4.1 ER 模型向关系模式转换 课程实体集能够转换为关系: 课程(课程编号,课程名称,学分) 学生实体集能够转换为关系:班级、学生信息页面 新信息学生(学生编号,学生姓名,性不,出生年月,祖籍,班级号,入学日期,家庭地址,政治面貌,身份证号码,班级职务,所学专业)成绩实体集能够转换为关系:4.2 数据库表结构设计表4.1 course列名数据类型长度描述Course_id int 8课程号,定义为主键,自动编号Course_name Nvarchar(20)20 课程名,不同意Null值Credit smallint 1 学分,同意Null值表4.2 class表4.3 Student_course列名数据类型 长度描述Course_id int 8 班级号,学生号,共同定义为主键,自动编号 student_id int 8 Grade int 4 成绩,不同意为Null 值 Creditsmall1学分,同意为空列名 数据类型长度描述Class_id int 4 班级号,定义为主键,自动编号Class_na me nvarcha r(40) 40 班级名字,不同意Null 值GradeChar(10)10 年级名,同意Null 值SumStuint2 班级现有人数,同意Null值MaxNum int 2 班级人数上限,同意Null值int SC_semestersmallint 学期,不同意为Null 值School_yearsmallint8 学年,不同意为Null 值表4.4 SyUser表4.5 student列名数据类型长度描述Use_idint4 用户号,定义为主键,自动编号Use_name char(10)10用户名字,同意Null 值Use_role char(10)10用户角色,同意Null 值 Password char(6) 6密码,同意Null 值列名数据类型长度描述Student_id int 8学生号,定义为主键,自动编号Student_namenvarchar(10) 10学生姓名,不同意为Null值Sex char(2) 2性不(男/女),同意为Null值Birthsmalldatetime 出生年月,同意为Null值Nation char(8) 12 祖籍,同意为Null值Class_id int 15班级号,定义为外键,不同意为Null值Entrance_date smalldatetime入学日期,不同意为Null值homenvarchar(40) 40家庭地址,同意为Null值politic char(10) 50政治面貌,同意为Null值IDnvarchar(18) 18身份证号码,同意为Null值Job nvarchar20 班级职务,同意为Null(20) 值specialtynvarchar(20)20所学专业,同意为Null 值5 应用程序设计图 5.1 验证模块流程图 图5.2 系统功能模块图执行服务操作 退出学生档案治理系统权限修改模块治理员登录模块 班级治理模块 新生档案录入模块学生档案查询模块 更新学生档案模块 课程治理模块 学生成绩录入模块 学生成绩查询模块6 编码(要紧功能介绍)6.1登陆界面本窗体采纳换肤小程序使得界面得意更美观,同时能够依照鼠标的移动进行窗体移动,有放大不失确实效果。
private void login_butt_Click(object sender, System.EventArgs e){try{strconn="select * from syuser where Use_name="+"'"+er_name.Text.ToString().Trim()+"' ";//依照用户输入的用户名和密码初始化查询更新数据库字符串myconn=new SqlConnection(connstr);sqlda=new SqlDataAdapter(strconn,myconn);dset.Clear();sqlda.Fill(dset,"syuser");mytable=dset.Tables[0];//查询的结果在Tables[0]中。
for(int j=0;j<mytable.Rows.Count;j++){Userrows=mytable.Rows[j];if(Userrows[1].ToString().Trim()==er_name.Tex t.ToString().Trim()&&Userrows[3].ToString().Trim()==thi s.Passwords.Text.ToString().Trim()) {loginOrnot=true;Username=Userrows[1].ToString().Trim();this.Close();}else{MessageBox.Show("用户名/密码错误!请重试!","确认",MessageBoxButtons.OK);loginOrnot=false;er_name.Text="";this.Passwords.Text="";}}}catch(Exception ex){MessageBox.Show(ex.ToString(),"确认",MessageBoxButtons.YesNoCancel);}return;}private void Logout_butt_Click(object sender, System.EventArgs e){loginOrnot=false;this.Close();}private void 紫色小花ToolStripMenuItem_Click(object sender, EventArgs e){this.panel_Top.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\top.png");this.panel_Left.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\left.png");this.panel_Right.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\right.png");this.panel_Bottom.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\bottom.png");this.picMinimize.BackgroundImage = Image.FromFile(strImagesPath +@"\images\purple\min.png");if (bol == true){this.picMaximize.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\max.png");}else{this.picMaximize.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\max_normal.png");}this.picClose.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\close.png");this.紫色小花ToolStripMenuItem.Checked = true;this.蓝色经典ToolStripMenuItem.Checked =false;this.绿色家园ToolStripMenuItem.Checked = false;this.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\background.gif");}private void 蓝色经典ToolStripMenuItem_Click(object sender, EventArgs e){this.panel_Top.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\top.png"); this.panel_Left.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\left.png");this.panel_Right.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\right.png");this.panel_Bottom.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\bottom.png");this.picMinimize.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\min.png"); if (bol == true){this.picMaximize.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\max.png"); }else{this.picMaximize.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\max_normal.png");}this.picClose.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\close.png");this.紫色小花ToolStripMenuItem.Checked = false;this.蓝色经典ToolStripMenuItem.Checked = true;this.绿色家园ToolStripMenuItem.Checked = false;this.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\background.gif");}private void 绿色家园ToolStripMenuItem_Click(object sender, EventArgs e){this.panel_Top.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\top.png");this.panel_Left.BackgroundImage =Image.FromFile(strImagesPath + @"\images\green\left.png");this.panel_Right.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\right.png");this.panel_Bottom.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\bottom.png");this.picMinimize.BackgroundImage=Image.FromFile(strImagesPath + @"\images\green\min.png");if (bol == true){this.picMaximize.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\max.png");}else{this.picMaximize.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\max_normal.png");}this.picClose.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\close.png");this.紫色小花ToolStripMenuItem.Checked = false;this.蓝色经典ToolStripMenuItem.Checked = false;this.绿色家园ToolStripMenuItem.Checked = true;this.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\background.gif");}private void picClose_Click(object sender, System.EventArgs e){Application.Exit();}//最大化事件。