1、1软件开发技术实践报告导读:就爱阅读网友为您分享以下“软件开发技术实践报告”资讯,希望对您有所帮助,感谢您对 的支持!软件开发技术实践设计报告上海应用技术学院课程设计任务书指导教师(签名):教研室主任(签名):2015 年 12 月 21 日 2015 年 12 月 21日软件开发技术实践设计报告目录1.课程设计说明 3 2. 需求分析 32.1 教务员需求描述 2. 32.2 学生需求描述 . 33. 系统分析 43.1 系统开发工具 . 44. 数据库设计 54.1 数据库表设计 . 54.2 逻辑结构设计 . 64.3 物理结构设计 . 65. 系统开发设计 75.1 初始界面设计模块
2、 . 75.2 学生管理界面 . 735.3 课程管理界面 . 116. 课程设计总结 147. 附录 . 147.1 参考文献 . 147.2 程序清单 . 14软件开发技术实践设计报告上海应用技术学院课程设计报告 课程名称软件开发技术实践设计题目学生管理选课管理 姓名李善佳专业班级 13122112 学号 1312211214 指导教师徐继延日期 2015/12/21 成绩1. 课程设计说明1) 设计目的:通过课程设计,加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对4数据库中数据进行查询,更改等操
3、作)的方法;具体应用方面,对 SQL 语言要有较深入的了解和掌握,对数据库的管理要有一定程度的了解;2) 结果要求:设计的最终结果为学生设计和完成具有较完善功能和一定规模的数据库应用系统(后台) 、以及部分前台功能,并提交设计报告。2. 需求分析随着计算机系统功能的日益强大,越来越多的服务都依赖计算机来完成,充分利用计算机强大的统计和计算功能不仅能提高优质的服务,而且还能提高我们的效率。为了充分利用计算机资源,提高老师对学生管理能力及学生选课管理,减少学生、老师的工作负担,做好一个效率高,信息化强的学生信息与选课系统是非常必要的设计。本系统的用户分为教务员和学生,不同的用户有不同的功能需求,下
4、面主要对用户的需求进行描述。2.1 教务员需求描述教务员的需求描述如下:1) 可以输入一个新学生并可更新和查询学生信息:包括学生姓名,学生学号,学生性别,学生生日,学生所在学院 ID 。2) 可以输入一门新课程并可更新和查询课程的信息:包5括课程名称,课程序号。软件开发技术实践设计报告教务员的功能需求结构图如下图 2-1 所示:图 2-1 教务员功能结构图分析2.2 学生需求描述学生的需求描述如下:学生的主要功能是查询可选课课程信息,可以按课程名称或者课程序号任一条件查询课程信息。多样的查询方式,让学生及时了解课程的信息,便于学生浏览。学生的功能需求结构图如下图 2-2 所示:图 2-2 学生
5、功能结构图分析3. 系统分析3.1 系统开发工具1) Visual Studio 2010 开发环境介绍软件开发技术实践设计报告Visual Studio 2010 是微软公司推出的比较完善的集成化开发工具,是目前技术开发中比较流行的 Windows 平台应6用程序开发环境。它主要针对 ASP.NET Web 应用程序、移动应用程序和桌面应用程序等方面应用程序进行集成化开发。虽然目前微软已经推出了 Visual Studio 2015 集成开发应用工具,但是考虑到 Visual studio 2010 的兼容性好,而且操作也比较简单,所以我们比较喜欢使用它来进行窗体应用开发,同时在该集成开发环
6、境中,# Visual Basic ,Visual C+,Visual C+中使用相同的集成开发环境(IDE ) ,所以它可以很好的实现工具分享,而且轻松解决了混合语言开发中遇到的不兼容问题。目前,微软推出的Visual Studio 2015 能开发安卓应用、苹果系统的移动应用程序,大大提高了我们的工作效率。因此,熟练掌握和使用 Visual Studio 是我们作为计算机科学与技术专业学生,这是我们即将走上工作岗位所应该具备的最基本技能之一。2) SQL Server 2005 开发环境介绍SQL Server 2005 是微软公司开发的一个大型关系数据库服务和管理系统,它提供了一个安全性
7、高、可靠性强、方便初学者入门开发的数据库开发平台。通常,我们会将数据库的中心数据库放在一个中心计算机上,该计算机我们就叫做服务器。我们一般进行访问客户端上的程序来获取服务器上的数据。在被允许访问之前,SQL Server 将判断用户的访问身份,只有通过验证才能进入数据库进行相关的基本数据库操作,并且会将用户请求的内容的处理结果7返回到客户端的程序。SQL Server 2005 也是当前相当流行的,越来越多的编程人员使用它作为数据库管理系统的入门开发平台,同时它的开发成本相对较低,受到越来越多的中小企业的青睐。在今天这个大数据时代,数据库管理系统的作用是很重要的。SQL Server 和 OR
8、ALCE 数据库比较流行,但是ORALCE 数据库配置很麻烦,而且所要求的环境特别高,不适合我们用来做课程设计,而 SQL Server 配置相对简单,容易操作。4. 数据库设计4.1 数据库表设计1) 学生信息表设计如图 4-1 所示软件开发技术实践设计报告图 4-1 学生信息数据库表图2) 课程信息表设计如图 4-2 所示:图 4-2 课程信息数据库表图4.2 逻辑结构设计关系模式设计: 学生(学生学号,学生姓名,学生生日,学生性别,学院 ID ) 其中学生学号为主键。 课程(课程8序号,课程名称)其中课程序号为主键。4.3 物理结构设计1) 学生关系,关系名:Student 信息表如下软
9、件开发技术实践设计报告2) 课程关系,关系名:Course 信息表如下5. 系统开发设计5.1 初始界面设计模块初始界面如下图 5-1 所示:图 5-1 系统初始界面5.2 学生管理界面“学生管理”菜单下界面如下图 5-21 所示:软件开发技术实践设计报告图 5-21“学生管理”菜单界面“学生管理”菜单下“增加/修改”界面如下图 5-22 所示:图 5-22 学生信息编辑窗口界面“学生管理”菜单下“查询”界面如下图 5-23 所示:9软件开发技术实践设计报告图 5-23 学生信息查询窗口界面学生信息查询窗口界面演示如下图 5-24、5-25、5-26 所示:图 5-24 按学生名称查询结果软件
10、开发技术实践设计报告图 5-25 按学生学号查询结果界面图 5-26 按学生生日查询结果界面进入学生管理系统后可以增加、修改、查询学生信息,其中可以通过学生姓名查询,学生学号查询,学生生日等任意一种方式查询。10软件开发技术实践设计报告5.3 课程管理界面“选课管理”菜单界面如下图 5-31 所示:图 5-31“选课管理”菜单界面“选课管理”菜单下“增加/修改”界面如下图 5-32 所示:图 5-32 课程编辑窗口界面“选课查询”菜单下界面如下图 5-33 所示:软件开发技术实践设计报告图 5-33 课程查询窗口界面课程查询窗口界面演示如下图 5-34、5-35 所示:图 5-34 按课程名称
11、查询结果界面软件开发技术实践设计报告图 5-34 按课程序号查询结果界面11学生登录选课系统后可以查询课程信息,主要是通过课程序号查询或课程名称查询。同时教务员可以对课程信息进行编辑,增加课程信息,修改课程信息。6. 课程设计总结本系统能够为学生管理及学生选课带来效率提升,错误减少,管理方便等多种好处。且在实施上具有相当可行性,故应立即开始实施。现在学到的只是一点点皮毛,许多的控件是我们没用到的,甚至有些是需要使用者自己去添加,要学会去使用,并能熟练的运用,往往一个小小的属性对程序都是至关重要的,还有方法和事件更加不能忽视。这个月的课程设计不仅帮助我们巩固课本上的知识,而且学到许多课本上没有的
12、知识。现在做的程序也只是小小的结构,不成体系,往往大的项目需要许多人去做,才能做好。通过这次课程设计,心中对生活当中遇到的程序有一定的思考,可以想到运用 VS 将其做出来,思考其中使用到的方法。这次课程设计对自己来说,比较有挑战性,本想把这个程序做的更加完善,增加个登录功能,将教师与学生功能完全区分开,但后来发现功能之间交叉,自身能力不足,问题有所增加,并没有达到自己想要的效果,于是又把一些功能去掉。程序需要长时间才能做好,自己肯定还需要12提高,多去实践操作,提高自己。不仅如此,感觉到自己想了好久都没想出的问题结果被老师一下语出惊人,那感觉不错,虽说也证明了自己的不足之处,重要的是发现问题并
13、解决问题。从此次软件开发技术实践设计报告的程序设计中,我们在生活中对待每一件事都必须有认真的态度,面对困难的时候我们只有迎难而上才会找到成功的方向。7. 附录7.1 参考文献1王珊,陈红. 数据库系统原理教程M .北京:清华大学出版社,2008.2明日科技. Visual Basic 从入门到精通M .北京:清华大学出版社,2012.3姜力,高群. SQL Server 数据库设计与管理M .北京:中国林业出版社,2006.4王小科,王军,赵会东.C#项目开发案例全程实录M.北京:清华大学出版社,2011.7.2 程序代码1) Form1(初始界面 )13using nTierStudent.
14、StudentManager;using nTierStudent.CourseManager;using nTierStudent.Xuankejieguo;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace nTierStudentpublicpartialclass For
15、m1 : Formpublic Form1()InitializeComponent();privatevoid 14studentBindingNavigatorSaveItem_Click(object sender, EventArgs e)软件开发技术实践设计报告this .Validate();this .studentBindingSource.EndEdit();this .tableAdapterManager.UpdateAll(this .lishanjiaDataSet);privatevoid Form1_Load(object sender, EventArgs e)
16、this .studentTableAdapter.Fill(this .lishanjiaDataSet.Student);privatevoid bindingNavigatorAddNewItem_Click(object sender, EventArgs e) 15privatevoid button1_Click(object sender, EventArgs e)privatevoid 增加 ToolStripMenuItem_Click(object sender, EventArgs e) InputStudentForm isf = new InputStudentFor
17、m ();isf.ShowDialog();privatevoid 增加 ToolStripMenuItem1_Click(object sender, EventArgs e) CourseManagerForm cmf = new CourseManagerForm ();cmf.ShowDialog();privatevoid 查询 ToolStripMenuItem1_Click(object sender, EventArgs e) 16privatevoid 查询 ToolStripMenuItem_Click(object sender, EventArgs e) xueshen
18、gchaxunForm xscxf = new xueshengchaxunForm ();xscxf.ShowDialog();软件开发技术实践设计报告privatevoid 退出 ToolStripMenuItem_Click(object sender, EventArgs e)xuankejieguoForm xkjgf = new xuankejieguoForm ();xkjgf.ShowDialog();privatevoid 退出 ToolStripMenuItem1_Click(object sender, EventArgs e) this .Close();172) In
19、putStudentForm(学生信息编辑窗口)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using nTierStudent.StudentManager;namespace nTierStudentpublicpartialclass InputStudentForm : Formpu
20、blic InputStudentForm()InitializeComponent();18privatevoid studentBindingNavigatorSaveItem_Click(object sender, EventArgs e) this .studentBindingSource.EndEdit();this .tableAdapterManager.UpdateAll(this .lishanjiaDataSet);privatevoid InputStudentForm_Load(object sender, EventArgs e)软件开发技术实践设计报告this
21、.studentTableAdapter.Fill(this .lishanjiaDataSet.Student);privatevoid bindingNavigatorAddNewItem_Click(object sender, EventArgs e) 19privatevoid button1_Click(object sender, EventArgs e)this .studentBindingSource.AddNew();privatevoid deptIDTextBox_TextChanged(object sender, EventArgs e) privatevoid
22、listView1_SelectedIndexChanged(object sender, EventArgs e) privatevoid button2_Click(object sender, EventArgs e)20this .studentBindingSource.EndEdit();this .tableAdapterManager.UpdateAll(this .lishanjiaDataSet);privatevoid button3_Click(object sender, EventArgs e)this .studentBindingSource.MoveFirst
23、();privatevoid button4_Click(object sender, EventArgs e)this .studentBindingSource.MovePrevious();privatevoid button5_Click(object sender, EventArgs e)this .studentBindingSource.MoveNext();软件开发技术实践设计报告21privatevoid button6_Click(object sender, EventArgs e)this .studentBindingSource.MoveLast();privat
24、evoid button7_Click(object sender, EventArgs e)if (MessageBox .Show(“ 要删除此记录吗?” , “ 提示”, MessageBoxButtons .YesNo) = DialogResult .Yes)studentBindingSource.RemoveCurrent();privatevoid studentDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)22privatevoid button8_Click(object s
25、ender, EventArgs e)this .Close();3) xueshengchaxunForm(学生信息查询窗口)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace nTierStudent.StudentManagerpublicpartialclass xues
26、hengchaxunForm : Form23public xueshengchaxunForm()InitializeComponent();软件开发技术实践设计报告privatevoid studentBindingNavigatorSaveItem_Click(object sender, EventArgs e)this .Validate();this .studentBindingSource.EndEdit();this .tableAdapterManager.UpdateAll(this .lishanjiaDataSet);privatevoid xueshengchaxu
27、nForm_Load(object sender, EventArgs e)this .studentTableAdapter.Fill(this 24.lishanjiaDataSet.Student);privatevoid button1_Click(object sender, EventArgs e)this .studentBindingSource.EndEdit();this .tableAdapterManager.UpdateAll(this .lishanjiaDataSet);privatevoid button1_Click_1(object sender, Even
28、tArgs e)this .studentTableAdapter.Adapter.SelectCommand.CommandText = “select * from Student where (studentNo= “ + textBox1.Text + “or studentName = “ + textBox2.Text + “or sex = “ + textBox3.Text + “or birthday = “ + textBox4.Text + “or deptID = “ + textBox5.Text + “)” ;this .studentTableAdapter.Ad
29、apter.Fill(lishanjiaDataSet, 25“xscx” );dataGrid1.DataSource = lishanjiaDataSet.Tables“xscx” ;privatevoid button2_Click(object sender, EventArgs e)this .Close();4) CourseManagerForm(课程编辑管理窗口)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Draw
30、ing;软件开发技术实践设计报告using System.Linq;using System.Text;using System.Windows.Forms;26namespace nTierStudent.CourseManagerpublicpartialclass CourseManagerForm : Formpublic CourseManagerForm()InitializeComponent();privatevoid courseBindingNavigatorSaveItem_Click(object sender, EventArgs e) this .Validate(
31、);this .courseBindingSource.EndEdit();this .tableAdapterManager.UpdateAll(this .lishanjiaDataSet);privatevoid CourseManagerForm_Load(object sender, EventArgs e)27this .courseTableAdapter.Fill(this .lishanjiaDataSet.Course);privatevoid button2_Click(object sender, EventArgs e)this .courseBindingSourc
32、e.AddNew();privatevoid button1_Click(object sender, EventArgs e)this .courseBindingSource.EndEdit();this .tableAdapterManager.UpdateAll(this .lishanjiaDataSet );privatevoid listView1_SelectedIndexChanged(object sender, EventArgs e) 28privatevoid button3_Click(object sender, EventArgs e)软件开发技术实践设计报告t
33、his .courseBindingSource.MoveFirst();privatevoid button4_Click(object sender, EventArgs e) this .courseBindingSource.MovePrevious();privatevoid button5_Click(object sender, EventArgs e) this .courseBindingSource.MoveNext();privatevoid button6_Click(object sender, EventArgs e) this .courseBindingSour
34、ce.MoveLast();29privatevoid button7_Click(object sender, EventArgs e) this .Close();5) xuankejieguoForm(课程查询窗口)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace nTi
35、erStudent.Xuankejieguopublicpartialclass xuankejieguoForm : Form30public xuankejieguoForm()InitializeComponent();软件开发技术实践设计报告privatevoid selectCourseBindingNavigatorSaveItem_Click(object sender, EventArgs e) this .Validate();this .selectCourseBindingSource.EndEdit();this .tableAdapterManager.UpdateAll(this .lishanjiaDataSet);privatevoid xuankejieguoForm_Load(object sender, EventArgs e)this .selectCourseTableAdapter.Fill(this .lishanjiaDataSet.SelectCourse);