设计性试验报告样式1Word文件下载.docx
- 文档编号:22019316
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:55
- 大小:263.80KB
设计性试验报告样式1Word文件下载.docx
《设计性试验报告样式1Word文件下载.docx》由会员分享,可在线阅读,更多相关《设计性试验报告样式1Word文件下载.docx(55页珍藏版)》请在冰豆网上搜索。
企业备忘录管理系统模块示意图
(3)系统流程分析
系统流程图
3.数据库设计
(1)数据库需求设计
企业成员基本信息:
成员ID、姓名、出生日期、性别、籍贯、职位。
备忘录类型信息:
备忘录类型ID、备忘录名称。
备忘录信息:
备忘录ID、备注企业成员ID、备忘录操作日期、备忘录发生日期、
是否有重大事件、时间花费、备忘录类型ID、备忘录内容。
(2)数据库逻辑结构设计
企业成员基本信息表
字段名称
数据类型
可否为空
约束条件
说明
member_id
INTEGER
NOTNULL
主键
成员ID
member_name
VARCHAR(24)
无
姓名
birth_date
DATE
出生日期
member_gender
VARCHAR
(2)
-
member_position
VARCHAR(10)
NULL
职位
备忘录类型信息表
type_id
备注类型ID
type_name
备注类型名称
备忘录信息表
memo_id
备注信息ID、ID值从系统中获取
外键(family_member_tab)
oper_date
操作备忘录信息时间
happen_date
备忘录发生时间
is_bigevent
是否为重大事件,1代表大事件
event_cost
VARCHAR(20)
NULL
时间花费
type_id
外键(memo_type_tab)
memo_text
CARCHAR(100)
备注信息
企业备忘录管理系统E-R图
4.系统实现
(1)创建数据库
创建表的SQL语句:
IFEXISTS(SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLES
WHERETABLE_NAME='
company_member_tab'
)
DROPTABLEcompany_member_tab
--创建企业成员基本信息表
CREATETABLEcompany_member_tab(
member_idINTIDENTITY(1,1)PRIMARYKEY,
member_nameVARCHAR(24)NOTNULL,
member_positionVARCHAR(10),
birth_dateDATETIMENOTNULL,
member_genderVARCHAR(5),
member_hometownVARCHAR(20)
);
memo_type_tab'
DROPTABLEmemo_type_tab
--创建备忘录类型信息表
CREATETABLEmemo_type_tab(
type_idINTPRIMARYKEY,
type_nameVARCHAR(24)NOTNULL
memo_info_tab'
DROPTABLEmemo_info_tab
--创建备忘录类型信息表
CREATETABLEmemo_info_tab(
memo_idINTNOTNULLPRIMARYKEY,
member_idINTNOTNULL,
oper_dateDATETIMENOTNULL,
happen_dateDATETIMENOTNULL,
is_bigeventINTNOTNULL
CHECK(is_bigeventIN(0,1)),
event_costVARCHAR(20),
type_idINTNOTNULL,
memo_textVARCHAR(1000)NULL,
FOREIGNKEY(member_id)REFERENCEScompany_member_tab,
FOREIGNKEY(type_id)REFERENCESmemo_type_tab
表的截图
(2)工程框架设计
设计主界面并增添函数
公司成员基本信息管理控件列表
控件类型
ID
属性
变量或函数
GroupBox
IDC_STATIC
公司成员基本信息管理
ListControl
IDC_LIST_FAMILY_MEMBER
列表控件类型变量m_listMember
Button
IDC_BTN_ADD_MEMBER
添加
函数OnBtnAddMember()添加公司成员信息
IDC_BTN_MOD_MEMBER
修改
函数OnBtnModMember()修改公司成员信息
IDC_BTN_DEL_MEMBER
删除
函数OnBtnDelMember()删除公司成员信息
备忘录配置信息管理控件列表
备忘录类型信息管理
IDC_LIST_MEMO_TYPE
列表控件类型变量m_listType
IDC_BTN_ADD_TYPE
函数OnBtnAddType()添加备忘录类型信息
IDC_BTN_MOD_TYPE
函数OnBtnModType()修改备忘录类型信息
IDC_BTN_DEL_TYPE
函数OnBtnDelType()删除备忘录类型信息
备忘录信息管理控件列表
备忘录信息管理
IDC_LIST_MEMO_INFO
IDC_BTN_ADD_MEMO
函数OnBtnAddMemo()添加备忘录类型信息
IDC_BTN_MOD_MEMO
函数OnBtnModMemo()修改备忘录类型信息
IDC_BTN_DEL_MEMO
函数OnBtnDelMemo()删除备忘录类型信息
查询备忘录信息控件列表
IDC_BTN_QUERY_BIRTH
生日提示
函数OnBtnQueryBirth()处理生日提示信息
IDC_BTN_MEMO_INFO
备忘录提示
函数OnBtnMemoInfo()处理备忘录信息提示
IDC_BTN_MEMO_EVENT
大事记
函数OnBtnMemoEvent()处理大事记信息
主对话框类名称为CMemoDBSDlg,资源ID为IDD_MEMODBS_DIALOG,对话框名称为“公司备忘录管理系统”。
主界面用到了3个列表控件分别显示公司成员基本信息,备忘录类型信息和备忘录信息。
需要为这3个列表控件添加显示的列,从而显示相应的数据信息。
为了代码设计的清晰,在CMemoDBSDlg类中定义了一个InitConcrol私有函数负责添加控件的显示列。
InitConcrol函数代码如下:
voidCMemoDBSDlg:
:
InitControl()
{
//设置列表控件扩展风格
DWORDdwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_UNDERLINEHOT;
m_listMember.SetExtendedStyle(dwExStyle);
m_listMemoInfo.SetExtendedStyle(dwExStyle);
m_listType.SetExtendedStyle(dwExStyle);
//初始化公司成员列表控件
m_listMember.InsertColumn(0,"
ID"
LVCFMT_CENTER,30);
m_listMember.InsertColumn(1,"
姓名"
LVCFMT_CENTER,60);
m_listMember.InsertColumn(2,"
职位"
m_listMember.InsertColumn(3,"
出生日期"
m_listMember.InsertColumn(4,"
性别"
LVCFMT_CENTER,40);
m_listMember.InsertColumn(5,"
籍贯"
LVCFMT_CENTER,100);
//初始化备注类型列表控件
m_listType.InsertColumn(0,"
类型ID"
m_listType.InsertColumn(1,"
类型名称"
//初始化备注信息列表控件
m_listMemoInfo.InsertColumn(0,"
备忘录ID"
m_listMemoInfo.InsertColumn(1,"
m_listMemoInfo.InsertColumn(2,"
备忘录操作日期"
LVCFMT_CENTER,140);
m_listMemoInfo.InsertColumn(3,"
备忘录发生日期"
m_listMemoInfo.InsertColumn(4,"
大事件"
m_listMemoInfo.InsertColumn(5,"
事件花费"
m_listMemoInfo.InsertColumn(6,"
备注类型"
m_listMemoInfo.InsertColumn(7,"
备注内容"
LVCFMT_CENTER,200);
}
在InitConcrol函数中首先调用CListCtrl的SetExtendedStyle方法设置控件的扩展风格。
这3个空间设置了相同的风格,以确保界面的一致性,设置扩展风格后的公司成员列表控件获取鼠标选择和鼠标略过情况的样式如图
(3)连接数据库
系统启动之后,可以将数据库中的数据升秒年十时毫到界面上,首先需要处理数据库的连接问题,需要3个函数:
ODBC数据源名称、数据库用户名称、数据库用户密码。
数据库用户的名称和密码均为dbaccess。
在CMemoDBSDlg类的OnInitDialog函数中处理数据库的连接。
其中关键代码为:
BOOLCMemoDBSDlg:
OnInitDialog()
{CLoginDlgdlg;
BOOLlogin=TRUE,DB_SYS_EXIT=FALSE;
while(login){
if(dlg.DoModal()==IDOK)
}
CStringstrConnect;
strConnect.Format("
DSN=%s;
PWD=%s"
dlg.m_strDBSource,dlg.m_strDBUser,dlg.m_strDBPassword);
TRY{
m_db.OpenEx(strConnect,CDatabase:
noOdbcDialog);
login=FALSE;
CATCH(CDBException,ex)
{
AfxMessageBox(ex->
m_strError);
m_strStateNativeOrigin);
AND_CATCH(CMemoryException,pEx)
pEx->
ReportError();
AfxMessageBox("
memoryexception"
AND_CATCH(CException,e)
TCHARszError[100];
e->
GetErrorMessage(szError,100);
AfxMessageBox(szError);
END_CATCH
{else{
DB_SYS_EXIT=TRUE;
if(DB_SYS_EXIT)
CDialog:
OnCancel();
else{
InitControl();
InitCtrlData();
OnInitDialog函数首先判断数据库是否打开,如果已打开就退出函数,否则创建一个数据库的连接字符串,利用CDatabase的OpenEx方法打开数据库的连接,并处理数据库的异常。
(4)显示数据到界面上
连接数据库之后,西药把数据库中的数据显示在3个列表控件中。
在CMemoDBSDlg类中定义一个InitCtrlData私有函数,负责从数据库中读取数据并显示到列表控件中。
同时还需要定义3个分别把数据插入到列控件中的函数,分别为InsertMemberItem,InsertMemoTypeItem,InsertMemoInfoItem,在MemoDBSDlg.h文件中添加这3个函数定义。
代码为:
private:
//向公司成员信息列表框中插入公司成员列表信息
voidInsertMemberItem(intid,CStringname,CStringposition,CStringdate,CStringgender,CStringhometown);
//向备忘录类型信息列表框中插入类型信息.
voidInsertMemoTypeItem(intid,CStringname);
//向备忘录列表框中插入备忘录信息.
voidInsertMemoInfoItem(intid,CStringname,CStringoperDate,CStringhappenDate,intisEvent,CStringcost,CStringtype,CStringmemoTxt);
//从数据库中读取数据,并显示在.列表框中.
voidInitCtrlData();
//初始化列表控件.
voidInitControl();
向公司成员信息列表控件中插入公司成员信息的函数是InsertMemberItem。
InsertMemberItem(intid,CStringname,CStringposition,CStringdate,CStringgender,CStringhometown)
intnIndex=m_listMember.GetItemCount();
LV_ITEMIvItem;
IvItem.mask=LVIF_TEXT;
IvItem.iItem=nIndex;
IvItem.iSubItem=0;
CStringtemp;
temp.Format("
%d"
id);
IvItem.pszText=(char*)(LPCTSTR)temp;
m_listMember.InsertItem(&
lvItem);
m_listMember.SetItemText(nIndex,1,name);
m_listMember.SetItemText(nIndex,2,position);
m_listMember.SetItemText(nIndex,3,date);
m_listMember.SetItemText(nIndex,4,gender);
m_listMember.SetItemText(nIndex,5,hometown);
向备忘录类型信息列表控件中添加备忘录类型信息的函数InsertMemoTypeItem。
InsertMemoTypeItem(intid,CStringname)
{intnIndex=m_listType.GetItemCount();
LV_ITEMlvItem;
lvItem.mask=LVIF_TEXT;
lvItem.iItem=nIndex;
lvItem.iSubItem=0;
CStringtemp;
temp.Format("
lvItem.pszText=(char*)(LPCTSTR)temp;
m_listType.InsertItem(&
m_listType.SetItemText(nIndex,1,name);
向备忘录信息列表控件中田间被望里信息的函数是InsertMemoInfoItem。
InsertMemoInfoItem(intid,CStringname,CStringoperDate,CStringhappenDate,intisEvent,CStringcost,CStringtype,CStringmemoTxt)
intnIndex=m_listMemoInfo.GetItemCount();
%"
m_listMemoInfo.InsertItem(&
m_listmemoInfo.SetItemText(nIndex,1,name);
m_listmemoInfo.SetItemText(nIndex,2,operDate);
m_listmemoInfo.SetItemText(nIndex,3,happenDate);
m_listmemoInfo.SetItemText(nIndex,4,isEvent==0?
"
否"
是"
m_listmemoInfo.SetItemText(nIndex,5,cost);
m_listmemoInfo.SetItemText(nIndex,6,type);
m_listmemoInfo.SetItemText(nIndex,7,memoTxt);
从数据库中读取数据并显示到3个列表控件中的函数为InitCtrlData。
InitCtrlData()
TRY{CRecordsetrs;
rs.m_pDatabase=&
m_db;
CStringsql="
Select*fromcompany_member_tab"
;
rs.Open(CRecordset:
dynaset,sql);
intid;
CStringname,position,date,gender,hometown;
while(!
rs.IsEOF()){
CDBVariantvar;
rs.GetFieldValue((short)0,var,SQL_C_SLONG);
if(var.m_dwType!
=DBVT_NULL)
id=var.m_iVal;
var.Clear();
rs.GetFieldValue(1,name);
rs.GetFieldValue(2,position);
rs.GetFieldValue(3,date);
rs.GetFieldValue(4,gender);
rs.GetFieldValue(5,hometown);
InsertMemberItem(id,name,position,date,Left(10),gender,hometown);
rs.M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 试验报告 样式