⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p51_03_4view.cpp

📁 这个课程设计创建了在磁盘上存储某单位所有职工基本信息的系统。实现了添加
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// p51_03_4View.cpp : implementation of the CP51_03_4View class
//

#include "stdafx.h"
#include "p51_03_4.h"

#include "p51_03_4Doc.h"
#include "p51_03_4View.h"
#include "SearchBox.h"
#include "Worker.h"
#include "Viewpostbox.h"
#include "Viewbirthday.h"
#include "Searchchoose.h"
#include "Searchbyname.h"




#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CP51_03_4View

IMPLEMENT_DYNCREATE(CP51_03_4View, CListView)

BEGIN_MESSAGE_MAP(CP51_03_4View, CListView)
	//{{AFX_MSG_MAP(CP51_03_4View)
	ON_COMMAND(ID_MENU_SEARCH, OnMenuSearch)
	ON_COMMAND(ID_VIEW_ALL, OnViewAll)
	ON_COMMAND(ID_MENU_VIEWOLD, OnMenuViewold)
	ON_COMMAND(ID_MENU_UNMARRIGE, OnMenuUnmarrige)
	ON_COMMAND(ID_MENU_VIEWPOST, OnMenuViewpost)
	ON_COMMAND(ID_MENU_VIEWYOUNG, OnMenuViewyoung)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CP51_03_4View construction/destruction

CP51_03_4View::CP51_03_4View()
{
	// TODO: add construction code here

}

CP51_03_4View::~CP51_03_4View()
{
}

BOOL CP51_03_4View::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	cs.style |= LVS_SHOWSELALWAYS | LVS_REPORT;
	return CListView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CP51_03_4View drawing

void CP51_03_4View::OnDraw(CDC* pDC)
{
	CP51_03_4Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

void CP51_03_4View::OnInitialUpdate()
{
	CListView::OnInitialUpdate();


	// TODO: You may populate your ListView with items by directly accessing
	//  its list control through a call to GetListCtrl().
}

/////////////////////////////////////////////////////////////////////////////
// CP51_03_4View printing

BOOL CP51_03_4View::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CP51_03_4View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CP51_03_4View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CP51_03_4View diagnostics

#ifdef _DEBUG
void CP51_03_4View::AssertValid() const
{
	CListView::AssertValid();
}

void CP51_03_4View::Dump(CDumpContext& dc) const
{
	CListView::Dump(dc);
}

CP51_03_4Doc* CP51_03_4View::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CP51_03_4Doc)));
	return (CP51_03_4Doc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CP51_03_4View message handlers



void CP51_03_4View::OnViewAll() 
{
	CP51_03_4Doc*pDoc=GetDocument();
	CListCtrl& ListCtrl=GetListCtrl();
	while(ListCtrl.DeleteColumn(0)){};
	ListCtrl.DeleteAllItems();
	ListCtrl.InsertColumn(0,"职工编号");
	ListCtrl.SetColumnWidth(0,100);
	ListCtrl.InsertColumn(1,"姓名");
	ListCtrl.SetColumnWidth(1,100);
	ListCtrl.InsertColumn(2,"性别");
	ListCtrl.SetColumnWidth(2,100);
	ListCtrl.InsertColumn(3,"出生年月");
	ListCtrl.SetColumnWidth(3,100);
	ListCtrl.InsertColumn(4,"职称");
	ListCtrl.SetColumnWidth(4,100);
	ListCtrl.InsertColumn(5,"最后学历");
	ListCtrl.SetColumnWidth(5,100);
	ListCtrl.InsertColumn(6,"工资");
	ListCtrl.SetColumnWidth(6,100);
	ListCtrl.InsertColumn(7,"婚否");
	ListCtrl.SetColumnWidth(7,100);



	int i,j,num=0;
	CString Str;
	CWorker *pWorker=NULL;
	for(i=0;i<pDoc->mWorkerArray.GetSize();i++)
	{
		num++;
		pWorker = pDoc->mWorkerArray[i];
		Str.Format("%d",pWorker->m_Num);
		ListCtrl.InsertItem(i,Str);
		j=1;
		Str.Format("%s",pWorker->m_Name);
		ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
		j++;
		CString sex;
		if(pWorker->m_Sex)sex="女";
		else sex="男";
		Str.Format("%s",sex);
		ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
		j++;
		Str.Format("%d-%d-%d",pWorker->m_Birthday.GetYear(),pWorker->m_Birthday.GetMonth(),pWorker->m_Birthday.GetDay());
		ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
		j++;
		Str.Format("%s",pWorker->m_Post);
		ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
		j++;
		Str.Format("%s",pWorker->m_Degree);
		ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
		j++;
		Str.Format("%f",pWorker->m_Wage);
		ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
		j++;
		CString ma;
		if(pWorker->m_Marry)ma="已婚";
		else ma="未婚";
		Str.Format("%s",ma);
		ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
	}
	if(num==0)AfxMessageBox("没有保存任何职工信息!");
}





void CP51_03_4View::OnMenuSearch() 
{
	CSearchchoose sea;
	CSearchbyname na;
	CSearchBox nu;

	if(sea.DoModal()==IDOK)
	{
		if(sea.m_choose==0)
		{
		CP51_03_4Doc*pDoc=GetDocument();
		CListCtrl& ListCtrl=GetListCtrl();
		while(ListCtrl.DeleteColumn(0)){};
		ListCtrl.DeleteAllItems();
		ListCtrl.InsertColumn(0,"职工编号");
		ListCtrl.SetColumnWidth(0,100);
		ListCtrl.InsertColumn(1,"姓名");
		ListCtrl.SetColumnWidth(1,100);
		ListCtrl.InsertColumn(2,"性别");
		ListCtrl.SetColumnWidth(2,100);
		ListCtrl.InsertColumn(3,"出生年月");
		ListCtrl.SetColumnWidth(3,100);
		ListCtrl.InsertColumn(4,"职称");
		ListCtrl.SetColumnWidth(4,100);
		ListCtrl.InsertColumn(5,"最后学历");
		ListCtrl.SetColumnWidth(5,100);
		ListCtrl.InsertColumn(6,"工资");
		ListCtrl.SetColumnWidth(6,100);
		ListCtrl.InsertColumn(7,"婚否");
		ListCtrl.SetColumnWidth(7,100);


		if(nu.DoModal()==IDOK)
		{
			int i,j,num=0,k=0;
			CString Str;
			CWorker *pWorker=NULL;
			for(i=0;i<pDoc->mWorkerArray.GetSize();i++)
			{
				pWorker = pDoc->mWorkerArray[i];
				if(pWorker->m_Num==nu.m_num)
				{				
					num++;
					Str.Format("%d",pWorker->m_Num);
					ListCtrl.InsertItem(k,Str);
					j=1;
					Str.Format("%s",pWorker->m_Name);
					ListCtrl.SetItem(k,j,LVIF_TEXT,Str,0,0,0,NULL);
					j++;
					CString sex;
					if(pWorker->m_Sex)sex="女";
					else sex="男";
					Str.Format("%s",sex);
					ListCtrl.SetItem(k,j,LVIF_TEXT,Str,0,0,0,NULL);
					j++;
					Str.Format("%d-%d-%d",pWorker->m_Birthday.GetYear(),pWorker->m_Birthday.GetMonth(),pWorker->m_Birthday.GetDay());
					ListCtrl.SetItem(k,j,LVIF_TEXT,Str,0,0,0,NULL);
					j++;
					Str.Format("%s",pWorker->m_Post);
					ListCtrl.SetItem(k,j,LVIF_TEXT,Str,0,0,0,NULL);
					j++;
					Str.Format("%s",pWorker->m_Degree);
					ListCtrl.SetItem(k,j,LVIF_TEXT,Str,0,0,0,NULL);
					j++;
					Str.Format("%f",pWorker->m_Wage);
					ListCtrl.SetItem(k,j,LVIF_TEXT,Str,0,0,0,NULL);
					j++;
					CString ma;
					if(pWorker->m_Marry)ma="已婚";
					else ma="未婚";
					Str.Format("%s",ma);
					ListCtrl.SetItem(k,j,LVIF_TEXT,Str,0,0,0,NULL);
					k++;
				}
			}
	if(num==0)AfxMessageBox("没有该编号的职工!");
		}
		}
	
	else{
		CP51_03_4Doc*pDoc=GetDocument();
		CListCtrl& ListCtrl=GetListCtrl();
		while(ListCtrl.DeleteColumn(0)){};
		ListCtrl.DeleteAllItems();
		ListCtrl.InsertColumn(0,"职工编号");
		ListCtrl.SetColumnWidth(0,100);
		ListCtrl.InsertColumn(1,"姓名");
		ListCtrl.SetColumnWidth(1,100);
		ListCtrl.InsertColumn(2,"性别");
		ListCtrl.SetColumnWidth(2,100);
		ListCtrl.InsertColumn(3,"出生年月");
		ListCtrl.SetColumnWidth(3,100);
		ListCtrl.InsertColumn(4,"职称");
		ListCtrl.SetColumnWidth(4,100);
		ListCtrl.InsertColumn(5,"最后学历");
		ListCtrl.SetColumnWidth(5,100);
		ListCtrl.InsertColumn(6,"工资");
		ListCtrl.SetColumnWidth(6,100);
		ListCtrl.InsertColumn(7,"婚否");
		ListCtrl.SetColumnWidth(7,100);

		if(na.DoModal()==IDOK){
			int i,j,num=0,k=0;
			CString Str;
			CWorker *pWorker=NULL;
			for(i=0;i<pDoc->mWorkerArray.GetSize();i++)
			{
				pWorker = pDoc->mWorkerArray[i];
				if(pWorker->m_Name==na.m_name)
				{
					num++;
					Str.Format("%d",pWorker->m_Num);
					ListCtrl.InsertItem(k,Str);
					j=1;
					Str.Format("%s",pWorker->m_Name);
					ListCtrl.SetItem(k,j,LVIF_TEXT,Str,0,0,0,NULL);
					j++;
					CString sex;
					if(pWorker->m_Sex)sex="女";
					else sex="男";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -