《软件工程》实践报告
准考证号:
考生姓名:
一.实验目的
软件工程是一门实践性很强的计算机专业课程, 该课程的任务是使我们掌握软件工程的基本概念、基本原理、实用的开发方法和技术 。了解软件工程各领域的发展动向;如何用工程化的方法开发软件项目,在开发过程中应遵循的流程,准则,标准和规范。注重方法、技术的实际应用。在上机实践考核中,为培养考生良好的学习与工作作风。要求考生按一定的规范进行上机前的考核准备。熟悉软硬伯环境。上机调试和正确运行程序,以及提交实践考核报告。上机实践考核的述记在机器环境上调试、运行程序和产生正确的结果,。但准备阶段和整理实践报告也十分重要,只有做好充分的准备,熟悉机器及环境,尽可能的正确编码,才能高效率地利用机时。在书写报告时,必须依照规定的格式整理好文档资料,为考生将来从事于软件 开发和研制工作,打下一个坚实的基础。
二.实验环境
1. 硬件环境:
CPU: Pentium 1.8GHz
内存: 512M
硬盘: 40G (局域网)
2.软件环境:
操作系统:Windows 2000
开发工具:Microsoft Visual C++ 6.0
数据库 : Microsoft Access
三. 实践内容
3.1 需求说明书
3.1.1 概述
1. 项目背景
科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,21世纪是信息的社会,而计算机在数据信息处理上有着很大优越性。学生成绩管理是学校的一项重要工作,原有的人工管理存在这着很多不足,造成不足的原因是,在校学生人数众多,并且每个学生的信息过于复杂,从而工作量非常大,给查询、添加、修改、统计、删除成绩带来了不便。因此,如何解决这些不足,使成绩管理更快捷、更方便,具有更高的效率也就成了一个关键问题。随着科学技术的迅速发展学校成绩管理的自动化也越来越迫切,因此有必要开发成绩管理系统的软件系统来辅助学校的教学管理。
2. 目标
软件的目标:实现学生信息数据处理的自动化与智能化。
3. 用户特点
a) 掌握计算机基本操作。
b) 学校老师(可选)
4. 假定与约束
无
3.1.2 具体要求
1. 功能需求
对用户所提需求进行梳理后,将用户需求划分如下:
数据输入功能:可输入班级学生信息包括成绩。
数据保存功能:可保存学生信息。
数据修改功能:对学生信息进行更新修改。
数据删除功能:对学生进行删除。
数据查询功能::对学生信息进行详细查询和模糊查询。
数据统计功能:对学生平均成绩统计,对单科成绩统计,对学生班级成绩进行统计等。
数据打印功能:将查询的结果按一定报表格式进行打印。
系统设置功能:设置系统登陆时的用户名和密码,并对用户名和密码可重设。
2. 外部接口
无
3. 性能需求
1) 数据库记录容量不小于10万条。
2) 数据库实时性要高。
4. 数据需求
1)数据为学生基本信息,没有特殊数据或字段。
5. 产品化需求
无
3.1.3 运行环境规定
1. 硬件设备:
CPU:P4或P4以上
内存:256M
硬盘:20G或20G以上
2. 支持软件
系统:Windows 20## 或 Windows XP
数据库:Microsoft Access
3.2 设计说明书
3.2.1 概要设计说明书
1. 总体设计
学生成绩管理系统是专为教务工作者设计开发的,具有很强的专用性。由于系统功能比较简单,并且系统处理的数据量不是很大,故设计开发时采用微软的Access数据库。微软的Access数据库在小型数据库系统比较常用,Access是实时性较高的数据库之一,存储速度快,查询效率高。考虑到数据查询的实时性,主程序采用比较常用的ADO数据库访问技术,ADO是微软访问为自已数据库,而专门开发的数据库访问引擎,与Access数据库配合使用具有无缝连接性能,主程序界面开发采用自己比较熟悉的Microsoft Visual C++ 6.0 + SP6。
2. 模块设计
系统按用户需求说明书,可划分成如下功能:
a) 数据输入功能
b) 数据保存功能
c) 数据修改功能
d) 数据删除功能
e) 数据查询功能
f) 数据统计功能
g) 数据打印功能
h) 系统设置功能
系统结构图如下:
3. 数据结构设计
1) 在开发过程中要使用到数据库,需要创建数据库,并在数据库中创建表和视图。表的字段包含如下:
数据库名称:XCSJ.mdb
学生信息表
管理员信息表
2) 以C/C ++程序结构为基础,按照模块化思路进行设计,使程序易编写,易维护。确定程序主接口和接口设计方案,多应用现有或成熟的方案。
3) 编码时一定要严格遵守编程规范,命名标准,注释通俗易懂,排版注释量在20%以上,在保证系统编码的正确性、稳定性、可读性的前提下,提高代码效率。
4) 个人必需对所编写的代码进行单元测试。以减少集成测试时的问题,提高软件开发效率,加快软件开发进度。
3.2.2 详细设计说明书
1.引言
1) 编写目的
本说明书是对学生成绩管理系统详细设计的描述,读者为代码编写人员。
2)项目背景
软件名称:学生成绩管理系统
软件用户:教务工作者、
软件运行单位:学校
软件开发方:个人
3)参考资料
设计说明书中“概要设计说明”部分。
4)术语
无
2.软件结构
软件结构按系统功能需求划分成如下模块:
1) 系统设置模块
对管理员的用户名和密码进行管理,可增加、删除用户,可对管理员的
用户名和密码进行修改。
2) 系统数据输入模块
输入学生信息后,就检查学生信息的唯一性,检查输入学生信息各字段
信息的正确性。
3) 系统数据保存模块
可将管理员信息保存到数据库的管理员信息表中,也可将学生信息保存
到数据库的学生信息表中 。
4) 系统数据修改模块
输入要修改的记录的学号后,可对已输入的学生信息进行修改与更新,
并检查输入学生信息各字段信息的正确性。
5) 系统数据删除模块
输入要删除记录的学号,在删除前应提示用户是否要删除此记录,在用户
确认删除后,才可进行删除操作。
6) 系统数据查询模块
数据查询方式应灵活,应设立按照学号、姓名、出生日期及各科成绩进
行查询的程序,可使用模糊查询。
7) 系统数据统计模块
对学生的总成绩、平均成绩进行统计。统计时提示“正在进行统计,请
等待……”,统计完成后应提示“统计完成,请查阅”。
8) 系统数据打印模块
按照设计的报表,编写“学生成绩管理表”打印程序,按一定格式显示
报表数据。
3.模块设计说明
1) 主程序模块:
主程序模块界面设计如下:
编写程序时注意:ADO库的引入
(1)、引入ADO类
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")
(2)、初始化COM
在MFC中可以用AfxOleInit();非MFC环境中用:
CoInitialize(NULL);
CoUnInitialize();
源代码清单
//------------- .h 文件--------------------
// 学生成绩管理系统2View.h : interface of the CMy2View class
//
class CMy2Set;
class CMy2View : public CRecordView
{
//只显示自己写的代码,不显示VC++自己生成的代码
protected:
afx_msg void OnButtonQuery();
afx_msg void OnRecAdd();
afx_msg void OnRecDel();
afx_msg void OnRecEdit();
afx_msg void OnChangeEditQuery();
afx_msg void OnButtonQuery2();
afx_msg void OnStatic0();
};
//---------------------. cpp文件----------------------------------
//“数据查询”按钮响应函数
void CMy2View::OnButtonQuery()
{
// TODO: Add your control notification handler code here
UpdateData();
m_strQuery.TrimLeft(); //左对齐
if(m_strQuery.IsEmpty()) //编辑框中为空时
{
MessageBox("号码不可为空!"); //未填入学号时提示
return;
}
if(m_pSet->IsOpen())
m_pSet->Close(); //如果记录集打开,则先关闭
m_pSet->m_strFilter.Format("ID='%s'",m_strQuery);//查询条件
m_pSet->m_strSort="id"; //按id由大到小排序
m_pSet->Open();
if(!m_pSet->IsEOF()) //打开记录集有的数据
UpdateData(FALSE); //更新表单数据
else
MessageBox("无此学号记录!"); //无此学号时提示
}
//“数据修改”按钮响应函数
void CMy2View::OnRecAdd()
{
// TODO: Add your control notification handler code here
CScoreDlg dlg; //定义对象
if(dlg.DoModal()==IDOK)
{
m_pSet->AddNew(); //添加数据与数据库的对应
m_pSet->m_id =dlg.m_id2; //学号
m_pSet->m_name =dlg.m_name2; //名字
m_pSet->m_special =dlg.m_special2; //专业
m_pSet->m_chinese =dlg.m_chinese2; //语文
m_pSet->m_math =dlg.m_math2; //数学
m_pSet->Update();
m_pSet->Requery();
UpdateData(FALSE);
UpdateData();
}
}
//删除按钮响应函数
void CMy2View::OnRecDel()
{
CRecordsetStatus status;
m_pSet->GetStatus(status);
m_pSet->Delete();
if(status.m_lCurrentRecord==0)
m_pSet->MoveNext(); //移动到下一个记录
else
m_pSet->MoveFirst(); //上移记录
UpdateData(FALSE);
UpdateData();
}
//保存数据按钮
void CMy2View::OnRecEdit()
{
// TODO: Add your control notification handler code here
CScoreDlg dlg;
dlg.m_id2 =m_pSet->m_id;
dlg.m_name2 =m_pSet->m_name;
dlg.m_special2=m_pSet->m_special;
dlg.m_chinese2=m_pSet->m_chinese;
dlg.m_math2 =m_pSet->m_math;
if(dlg.DoModal()==IDOK) //如果编辑
{
m_pSet->Edit();
m_pSet->m_id =dlg.m_id2; //学号
m_pSet->m_name =dlg.m_name2; //名字
m_pSet->m_special=dlg.m_special2; //专业
m_pSet->m_chinese=dlg.m_chinese2; //语文
m_pSet->m_math =dlg.m_math2; //数学
m_pSet->Update();
UpdateData(FALSE); //保存数据
UpdateData();
}
}
//“数据统计”按钮响应函数
void CMy2View::OnBtnTj()
{
CSocreStatDlg dlg;
dlg.DoModal(); //弹出数据统计对话框窗口
}
//“报表打印”按钮响应函数
void CMy2View::OnButton2()
{
CReportPrintDlg dlg;
dlg.DoModal(); //弹出报表打印对话框窗口
}
2)子模块一:系统设置模块
系统设置界面设计如下:
源代码清单:
//------------ .h文件 ---------------------------
// CSystemSet dialog
class CSystemSet : public CDialog
{
afx_msg void OnBtnAdd();
afx_msg void OnBtnDel();
afx_msg void OnBtnPwdupdate();
virtual BOOL OnInitDialog();
};
//------------ .cpp文件-------------------------
// SystemSet.cpp : implementation file
//
#include "stdafx.h"
#include "SoftProject.h"
#include "SystemSet.h"
#include "AddUserDlg.h" //增加管理员对话框类
#include "DeluserDlg.h" //删除管理员对话框类
#include "PwdUpdateDlg.h" //更新管理员密码对话框类
//“增加管理员”按钮响应函数
void CSystemSet::OnBtnAdd()
{
CAddUserDlg dlg;
dlg.DoModal(); //弹出增加管理员对话框窗口
}
//“删除管理员”按钮响应函数
void CSystemSet::OnBtnDel()
{
CDelUserDlg dlg;
dlg.DoModal(); //弹出删除管理员对话框窗口
}
//“更新密码”按钮响应函数
void CSystemSet::OnBtnPwdupdate()
{ CPwdUpdateDlg dlg;
dlg.DoModal(); //弹出密码修改对话框窗口
}
3.2.3 测试分析报告
1. 测试结果
2. 软件功能结果
软件各个模块测试均正常。
3. 分析摘要
在前两遍的测试过程,发现了很多问题。比如测试分支没有走到,软件存在缺陷,由于对软件工程掌握的还不是熟悉,软件某些地方还存在问题,需要在以后的学生与工作中,加强学习与实践,提高自己在项目中的控制能力。
《软件工程》实践心得
软件工程是一门实践性很强的计算机专业课程,该课程的任务是使我们掌握软件工程的基本概念、基本原理、实用的开发方法和技术。在上机实践过程中发现了很多错误与不足,小到对文档编写的技巧,大到对软件工程中某些概念还没有彻底理解,在以后的学习中我要着重解决这些发现的问题。
在上机实践过程中,遇到了很多困难,指导老师给了很大的帮助。上机过程中遇到主要问题是:1. 对软件工程的一些知识点还没有领会,尤其是用面向对象建立模型时,应用时感到比较吃力。2.编程时对C++的一些语法不熟悉,比如静态成员变量的初始化,以及在类中的应用。通过指导老师的指点与查阅资料,理解了该部分,但是还需要在实践中多练习。3.对VC++的WINDOWS应用程序的设计学习没有很好理解,VC++下的MFC比较庞大,学习时感无从下手。对WINDOWS应用程序的机制不了解。
在上机过程中学习了很多课本上没有的知识,实践能力得到了大幅提高,对软件工程整体又有了新的认识与理解,对面向对象程序设计加深了理解,程序的调试技能有所提高,但是在上机过程中,也发现了自己的很多不足之处,需要在以后的学习与工作中不断的学习与实践,扎扎实实的学习,一步一个脚印的进行,积累程序开发经验和方法。
软件工程实践报告设计题目商品销售统计学校班级姓名学号指导老师完成日期南昌航空大学邱天20xx年2月19日2软件工程试验报告摘要商品…
辽宁工程技术大学本科生实习报告书教学单位软件学院专业软件工程(财升本)班级10-01班学生姓名**学号**指导教师**一、实习目的…
软件助理工程师岗位的实习报告姓名:专业班级:10级软件技术(英语)实习单位:埃森哲信息技术(大连)有限公司指导教师:完成日期:20…
软件工程专业实习报告姓名沈亚枫学号0810750081专业软件工程班级软件0801指导老师李春林海南大学三亚学院20xx910目录…
系部名称:专业:软件工程年级:09060541班姓名:耿庆博学号:0906054137实践单位:山西西太行信息有限公司实践时间:2…
软件助理工程师岗位的实习报告姓名:专业班级:10级软件技术(英语)实习单位:埃森哲信息技术(大连)有限公司指导教师:完成日期:20…
初涉社会新的转变——关于暑期实习的实践报告摘要本人于20xx年x月x日至12月x日,在广州佳都新太科技股份有限公司参加了企业实习。…
学号实习报告毕业实习起止日期:20xx年x月x日至20xx年x月x日学班成生姓名级绩xxx09软件2班指导教师(签字)计算机与信息…
软件工程专业实习报告姓名:学号:专业:班级:1、企业概述1.1、企业简介IBMETP(无锡)实训基地是江苏省无锡市新区政府与IBM…
软件工程社会实践报告姓名:张入文学号:20xx02158班级:软件101企业概述1.1公司概况大连北科软件有限公司成立于20xx年…
题目:广州御剑网络科技有限公司实习报告目录1前言.........................................…