资源描述
软件工程课程设计报告 课程名称: 软件工程 作者姓名: 专业班级: 指导教师: 完成时间: 年 月目录前 言1一 系统概述21.1现状描述21.2系统目标21.3系统开发方法21.4开发计划2二 系统分析32.1软件范围定义32.2系统特性概述3三 系统设计43.1系统基本架构43.2用户管理模块43.3学生信息管理模块53.4班级信息管理模块63.5课程信息管理模块73.6学生成绩信息管理模块83.7界面设计9四 系统实现104.1开发环境与工具104.2软件界面114.3代码开发134.4代码修改与完善19五 收获和体会19参考资料1919 / 21文档可自由编辑打印前 言“软件工程”既是高校教学中的软件工程,又是著书立说中的软件工程,更是IT企业软件开发和软件管理中的软件工程。我们将运用软件工程课所学进行一次课程设计。学校作为教育与科技的先行者,那些先进的、优秀的技术往往会为学校所率先采用,网络技术不外如此。优秀的学校管理决策者一定会毫不犹豫地选择或者自主开发一个适合本校校情的学生信息管理系统。不同学校所要求的学生信息管理系统自然有所不同,我们准备利用软件工程课上所学知识,开发流程,开发一个相对简单适用的学生信息管理系统。这个系统我们设想的是可以进行学生基本信息,成绩信息,班级信息,课程信息等相关操作。开发设计一个“学生信息系统”,这是一项软件工程。为了完成这项任务,我们首先要选择软件开发模型、确定软件开发方法、准备开发工具、设计开发环境和运行环境,然后进行需求分析、概要设计、详细设计、编程、测试、试运行、正式运行、验收和交付,最后是系统维护或系统升级换代。这样按照所选择的开发模型,走完了一个软件生存周期。这一系列的软件开发过程和管理过程就是软件工程。这其中会包含用户需求说明书、概要设计说明书、开发进度表、测试报告、程序代码、课程设计报告。设计题目:学生管理系统班级:课题组成员学号、姓名、分工 开发人员:测试人员:程序经理: 一 系统概述1.1现状描述由于学生信息的庞大,人们发现原来的手写记录,已经不能满足学生信息快速更新的需求了,要想实时地更新学生的相关信息,就必须利用计算机系统,来协助完成这些功能。而本产品正是这样一个能方便完成这些需求的系统,主要为学生管理部门而开发,拥有权限的相关人员可通过此软件对学生信息、学生成绩、课程信息、班级信息,进行增加、删除、修改和查询等操作。 1.2系统目标本系统主要的目的是就学生管理系统编写一套程序,使其能实现基本的增加、删除、修改和查询任务,可以方便灵活的进行各项操作。要求当增加一条学生信息记录时,不管输入的信息详细与否,均能添加成功;当删除一条发票信息时,先选择删除条件,可以是按详细的学号代码来删除,也可以就学生姓名,先选出相关的记录,再在这些记录中删除目标记录;当修改一条学生信息时,先选择要修改的该条记录,按下修改即可;当要查询一条学生信息时,先选择查询条件,主窗口栏中会有详细显示。 1.3系统开发方法该系统运用了C/S开发方法。要先行装有VS2005,SQL2005,这2个软件的前提下,才能正常运行.1.4开发计划本次课设主要是开发一个学生管理系统,在实际开发之前首先要制定一个计划,主要有以下几个方面:第一最基本的一条就是复习和巩固书本上的知识,并且借阅相关的书籍为自己充电,了解本次实验的要求、内容、目的与意义。第二分组分工,各司其职。一个软件项目小组由开发人员,程序经理和测试人员组成,开发人员负责代码的编写,程序经理负责各类需求分析,概要设计等,测试人员则根据开发人员的代码进行测试,找出不足与错误,再递交开发人员加以改正。第三找出适合本次课设的开发工具、技术与环境,其中相应用到的工具有Visual Studio 2005,MS SQL Server 2005 ,WindowsXP 第四程序经理先就问题作出需求分析,书写需求规格说明书,为学生管理系统设定界面、功能、性能、接口各方面的要求。第五继需求规格说明书之后,程序经理书写概要设计说明书,更加细化工作。第六开发人员根据程序经理的需求规格说明书、概要设计说明书编写代码。(边开发边测试)第七测试人员根据开发人员的代码,测试系统的可用性与完整性,找出系统的不足与错误,递交开发人员加以修改与完善,最后书写测试计划与用例,测试报告。第八以上第47条需反复实行,反复修改,以确保系统零缺陷、零漏洞。第九完成课设后必须递交一份课程设计报告。二 系统分析2.1软件范围定义2.1.1 开发意图 a. 为了学生管理系统更完善; b. 为了教学办公室对学生档案的管理更方便; c. 为了减轻行政人员的工作负担。 2.1.2 应用目标 通过本系统软件,能帮助教研人员利用计算机,快速方便的对学生学生管理进行管理、输入、输出、查找的所需操作,使散乱的人事档案能够具体化,直观化、合理化。 2.1.3 作用及范围 本软件适用于教育界,它是比较完善的系统管理软件,对学生的学生可以随时输入、输出、查找。 2.1.4 背景 现今学生管理的繁索给具有强烈时间观念的行政人员带来了诸多不便,教学办公室缺少一种完善的学生管理软件,为了对学生档案的管理方便,因此开发了本软件。2.2系统特性概述系统特性名称系统特性描述优先级系统用户管理用户登录、添加用户、修改用户密码、设置用户权限学生管理添加、修改、查询学生信息班级信息管理添加、修改班级课程设置添加、修改课程成绩管理添加、修改、查询成绩三 系统设计3.1系统基本架构学生数据表学生信息录入数据库成绩数据表学生档案管理人员成绩信息录入班级数据表班级信息录入课程数据表课程信息录入学生管理系统大致架构图本学生管理系统的构架很简单,登陆系统后,主要实现4个内容,学生信息,成绩信息,班级信息,课程信息这4个模块的相关添加、查询、删除等处理,还有一个用户管理模块,直接关系到使用该系统的用户,密码,相关权限等3.2用户管理模块系统用户管理模块主要实现以下功能:用户登录添加用户修改用户密码输入输出:系统启动后,将首先出现用户登录窗体,用户首先输入用户名,然后输入密码,如果用户输入密码不正确,将跳错,不能进入系统。各个用户都有相应不同的用户权限。数据结构设计:t_user 系统用户表列名数据类型可否为空说明f_usernameCHAR(10)NOT NULL用户名称(主键)f_passwordCHAR(10)NULL用户密码f_limitCHAR(10)NULL用户权限用户一般用户、超级用户用户添加用户信息管理系统管理人员 用户信息系统数据表用户权限 系统管理数据流图(图5)3.3学生信息管理模块学生信息管理模块主要实现以下功能:添加学生信息修改学生信息查询学生信息数据结构设计:t_student 学生基本信息表 列名数据类型可否为空说明f_snoCHAR(10)NOT NULL学生学号(主键)f_snameCHR(10)NULL学生姓名f_sexCHAR(10)NULL学生性别f_ageCHAR(10)NULL年龄f_cl_noCHAR(10)NULL班号学生数据表学生信息录入查询条件成绩信息录入成绩数据表学生档案管理人员班级信息录入班级数据表查询结果课程信息录入课程数据表学生信息查询流图(图3)3.4班级信息管理模块班级信息管理模块主要实现以下功能:班级信息管理模块主要实现以下功能:添加班级信息修改班级信息数据结构设计:t_class 班级信息表格列名数据类型可否为空说明f_cl_noCHAR(10)NOT NULL班号(主键)f_cl_nameCHAR(10)NULL班级全名f_dnoCHAR(10)NULL所属院系f_memoCHAR(10)NULL专业备注班级信息录入班级录入 学生班级管理人员班级学生名单及成绩学生数据表班级信息查询按班号班级数据表班级管理数据流图(图8)3.5课程信息管理模块 课程设置模块主要实现以下功能:添加课程信息修改课程信息设置年级课程数据结构设计:t_course 课程基本信息表列名数据类型可否为空说明f_cnoCHAR(10)NOT NULL课程编号(主键)f_cnameCHAR(10)NULL课程名称f_creditCHAR(10)NULL课程分数f_co_noCHAR(10)NULL开设该课程的院系课程安排课程开课信息课程信息管理课程数据表课程管理人员 课程信息课程信息查询班级查询条件课程数据表 课程管理数据流图(图6)3.6学生成绩信息管理模块成绩管理模块主要实现以下功能:添加成绩管理修改成绩管理查询成绩管理数据结构设计:t_sc 学生成绩信息表列名数据类型可否为空说明f_snoCHAR(10)NOT NULL学生学号f_cnoCHAR(10)NOT NULL课程编号f_gradeCHAR(10)NULL学生成绩成绩管理成绩数据表成绩录入学生成绩管理人员课程数据表成绩查询按学号按科目按班号成绩管理数据流图(图7)3.7界面设计此界面为设计之前的理想化界面,主要包括四个部分:登陆界面、主界面、操作栏以及主窗口界面。登陆界面:欢迎登入系统!用户名密码登陆取消主界面:学生管理信息班级管理信息课程管理信息班级管理信息用户管理信息成绩管理信息开发组相关信息退出系统该学生管理系统主要分两个界面:登陆界面和主界面。登陆界面的作用是防止没有用户名与密码的外部人员非法进入学生管理系统数据库,查看内部信息而设定的,它起了数据保护作用;主界面主要显示的是几个主要功能模块,通过点选模块,进入下级菜单,从而进行相应的操作四 系统实现4.1开发环境与工具该软件系统的运行环境:硬件平台:默认:IIS服务已经配置CPU:奔腾4处理器 733M显卡:集成显卡显存:256MB内存:512MB操作系统:WindowsXP SP2以上操作系统硬盘(自由空间):20G显示器:1024x768软件平台:操作系统:WindowsXP SP2以上网络软件:Visual Studio 2005数据库系统:MS SQL Server 2005网络平台:(1)通信协议(2)通信带宽4.2软件界面系统登陆界面:主界面:用户管理:4.3代码开发在本次课程设计中,我们小组负责的是学生管理系统项目,其中,我承担的是开发人员,开发代码是我们开发人员的事情,先开发代码,然后交由测试人员测试,如遇到问题,再由开发人员,进行修改,重复以上几步,直到将程序调整到令人满意的程度。登陆界面代码:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 用户 public partial class Form1 : Form private info owner; public Form1(info owner) InitializeComponent(); this.CenterToScreen(); this.owner = owner; private void Form1_Load(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) try SqlConnection myconnection = new SqlConnection(); myconnection.ConnectionString = (Server=LENOVO-3927D0ADSQLEXPRESS;Integrated Security=True; + Database=stu); myconnection.Open(); SqlCommand mycommand = new SqlCommand(); mandText = select * from t_user where f_username= + textBox1.Text.Trim() + and + f_password=+ textBox2.Text.Trim() + ; mycommand.Connection = myconnection; SqlDataReader dr = mycommand.ExecuteReader(); while (dr.Read() ERID = dr0.ToString(); if (ERID != null) this.Close(); owner.Opacity = 1; else MessageBox.Show(密码和用户输入有错误!); catch (SqlException se) MessageBox.Show(出现错误! + se.Message); private void button2_Click(object sender, EventArgs e) this.Close(); owner.Opacity = 0; private void label1_Click(object sender, EventArgs e) this.Close(); 主界面代码:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 用户 public partial class info : Form public string USERID; public info() InitializeComponent(); Form1 temp = new Form1(this); temp.ShowDialog(); private void tabPage1_Click(object sender, EventArgs e) private void groupBox1_Enter(object sender, EventArgs e) private void 帐户管理ToolStripMenuItem_Click(object sender, EventArgs e) 课程信息 courseset = new 课程信息(this); courseset.Show(); private void 基本信息设置ToolStripMenuItem_Click(object sender, EventArgs e) 基本信息 baseinfo = new 基本信息(this); baseinfo.Show(); private void 成绩查询ToolStripMenuItem1_Click(object sender, EventArgs e) 成绩查询 scorerev = new 成绩查询(this); scorerev.Show(); private void 班级设置ToolStripMenuItem_Click(object sender, EventArgs e) 班级设置 classset = new 班级设置(this); classset.Show(); private void 学院设置ToolStripMenuItem_Click(object sender, EventArgs e) 学院设置 xueyset = new 学院设置(this); xueyset.Show(); private void 用户管理ToolStripMenuItem_Click(object sender, EventArgs e) 用户管理 userms = new 用户管理(this); userms.Show(); private void 系统信息ToolStripMenuItem_Click(object sender, EventArgs e) 系统信息 sysinfo = new 系统信息(this); sysinfo.Show(); private void 退出系统ToolStripMenuItem_Click(object sender, EventArgs e) if (MessageBox.Show(确实要退出系统吗?, 确定, MessageBoxButtons.YesNo) = DialogResult.Yes) this.Close(); 用户管理模块:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 用户 public partial class 用户管理 : Form SqlDataAdapter thisAdapter; DataSet thisDataSet = new DataSet(); public 用户管理(info parent) InitializeComponent(); this.MdiParent = parent; userload(); public void userload() SqlConnection thisConnection = new SqlConnection( Server=LENOVO-3927D0ADSQLEXPRESS;Integrated Security=True; + Database=stu); thisAdapter = new SqlDataAdapter(select f_username用户名,f_password密码,f_limit权限 from t_user, thisConnection); SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter); thisAdapter.Fill(thisDataSet, t_user); dataGridView1.DataSource = thisDataSet.Tables0; private void button1_Click(object sender, EventArgs e) try SqlConnection thisConnection = new SqlConnection( Server=LENOVO-3927D0ADSQLEXPRESS;Integrated Security=True; + Database=stu); thisConnection.Open(); SqlCommand thisCommand = thisConnection.CreateCommand(); mandText = insert into t_user(f_username,f_password,f_limit) values( + textBox1.Text.ToString().Trim() + , + textBox2.Text.ToString().Trim() + , + textBox3.Text.ToString().Trim() + ); thisCommand.ExecuteNonQuery(); thisAdapter = new SqlDataAdapter(select f_username用户名,f_password密码,f_limit权限 from t_user, thisConnection); thisDataSet.Clear(); SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter); thisAdapter.Fill(thisDataSet, t_user); dataGridView1.DataSource = thisDataSet.Tables0; catch MessageBox.Show(请检查输入格式是否正确?); private void button3_Click(object sender, EventArgs e) SqlConnection thisConnection = new SqlConnection( Server=LENOVO-3927D0ADSQLEXPRESS;Integrated Security=True; + Database=stu); thisConnection.Open(); SqlCommand thisCommand = thisConnection.CreateCommand(); mandText = delete from t_user(f_username,f_password,f_limit) values( + textBox1.Text.ToString().Trim() + , + textBox2.Text.ToString().Trim() + , + textBox3.Text.ToString().Trim() + ); thisCommand.ExecuteNonQuery(); thisAdapter = new SqlDataAdapter(select f_username用户名,f_password密码,f_limit权限 from t_user, thisConnection); thisDataSet.Clear(); SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter); thisAdapter.Fill(thisDataSet, t_user); dataGridView1.DataSource = thisDataSet.Tables0; private void button5_Click(object sender, EventArgs e) this.Close(); 系统信息代码:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace 用户 public partial class 系统信息 : Form public 系统信息(info parent) InitializeComponent(); this.MdiParent = parent; this.CenterToScreen(); private void button1_Click(object sender, EventArgs e) this.Close(); private void textBox1_TextChanged(object sender, EventArgs e) this.textBox1.Text = 项目经理: 开发人员: 测试人员: 开发时间:09.6.8-09.6.16 ; 4.4代码修改与完善代码编写完毕后,交给测试人员,进行测试,如遇到问题,给予及时的修改,确保代码的正确性,尽可能满足客户的要求。五 收获和体会本次课程设计的形式与以往有着极大的不同,它以团队分工为基础,五人一组,划分程序经理、开发人员和测试人员,每组负责一个不同的项目开发,采用增量开发模型,最后将各个软件项目合一,将设计结果进行联调。在这次课设中,我们小组负责的是学生管理系统,而我则是其中的开发人员。我们所做的学生管理系统包括5个功能,学生基本信息管理、学生成绩管理、课程信息管理、班级信息管理、用户管理。在课程设计前期,我们全体组员讨论了下,我们这个系统的实现要求、标准,指定了相应的需求分析,由我们的项目经理马文浩,完成了需求分析报告书,概要设计说明书,从而为我们开发人员,开发代码提供了方向,朝着这个方向,我经过3-4天的代码编写,终于成功编写出了一个程序代码,即学生管理系统最初的版本,后经过测试人员的测试,不断改进代码,最终完成了学生管理系统。通过本次课程设计,让我们总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,了解软件项目的完整设计与开发过程、结构化技术、快速原型法和面向对象方法等。通过本次课程设计,为学生适应毕业后团队合作开发规模稍大项目创造了实践机会。使学生通过参加小组团队的开发实践,了解项目管理、团队合作、文档编写、口头与书面表达的重要性。通过本次课程设计,使每个学生了解软件工具与环境对于项目开发的重要性,并且重点深入掌握好一、两种较新或较流行的软件工具或计算机应用技术、技能。通过本次课程设计,促进了学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计。掌握软件设计的方法和面向对象程序设计的基本技术,提高学生的综合应用能力。通过这次课程设计,我学到了很多,它教会了我如何用VS2005,SQL2005,以前我从来就没碰过这2个软件,知道了如何设计界面,编写主要代码,修改代码,掌握系统界面设计和数据库设计技术方法,训练程序设计能力等,对我有着重大的意义。参考资料1. 软件工程实践教程,赵池龙,姜义平,张建编著,电子工业出版社2007.1第二版2. 实用软件工程,赵池龙,杨林,孙伟编著,电子工业出版社2007.1第二版3软件工程技术概论,朱三元等编著,科学出版社,20024. Visual C#2005 基础与实例教程,郝春强、池同柱编著,中国电力出版社,20055. 软件工程(普通高等教育十五国家级规划教材),曾强聪编著,高等教育出版社,2007.5
展开阅读全文