1、VC+实训实验报告重庆电力高等专科学校VC+课程实训报告2011 -2012 学年第 二 期2011/2012学年下期系 别: 计算机科学系 班 级: 软件1011 小 组: 第一小组 指导教师: 邓 谱 时 间: 2011.5.28-2011.6.8(第15、16周) 一、设计目的面向对象程序设计是软件技术专业、计算机网络技术专业的一门重要的专业核心课程。通过两周的课程设计使学生能理论联系实践,进一步加强学生对所学知识的实践动手能力;通过使用C+面向对象程序设计语言及Visual C+ 6.0集成开发环境对“职工工资管理系统”具体项目的开发,熟练掌握使用VC+开发Windows图形用户界面程
2、序及访问数据库。二、任务要求1 设计图形用户界面。2 程序中定义一个员工基类Employee和一个钱类Money。员工基类中包含职工的最基本信息,如姓名、年龄、工龄、姓别、婚姻状态、等级、是否在职、工资和奖金等。3 定义以员工基类Employee为基类派生的针对不同工作岗位的派生Worker工人类、Manager经理类和Saler销售员类。4 定义以员工管理类EmployeeManage。该类中包含的属性有指向员工信息的员工类数组指针、公司经理总数、公司销售人员总数和公司工人总数,完成的行为有增加、删除、修改、查询和保存员工信息,计算所有员工工资和奖金,定义系统界面。5 使用数据库存取数据。三
3、、设计思想运行程序代码,跳出登陆框,登陆框上面有两种登陆模式,三个员工模块,分别进行选择后再点击确定登陆方可进入,两种登陆模式分别为高级会员登录跟普通会员登陆,其次再选择所需要操作的员工模块,当成功登陆过后,会跳转到这个模块的职工管理系统,系统包括了添加、修改、删除、查询、显示以及保存等几个功能,同样的,以高级会员登陆进去的员工和销售都跟经理类的一样;另一种则是普通会员登录,当登陆成功跳转后系统只有更新、显示的功能,点击其他功能都会弹出“你不是管理员,无法进行此操作”的消息框。 四、源代码1)、登陆框:/ DataMangerSystemDlg.cpp : implementation fil
4、e/#include stdafx.h#include DataMangerSystem.h#include DataMangerSystemDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif#include ManagerDialog.h#include SalerDialog.h#include WorkerDialog.hint LongGrade=1;/ CAboutDlg dialog used for App Aboutclass CAboutDlg
5、 : public CDialogpublic: CAboutDlg();/ Dialog Data /AFX_DATA(CAboutDlg) enum IDD = IDD_ABOUTBOX ; /AFX_DATA / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /AFX_VIRTUAL/ Implementationprotected:
6、/AFX_MSG(CAboutDlg) /AFX_MSG DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD) /AFX_DATA_INIT(CAboutDlg) /AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CAboutDlg) /AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog) /AFX_MS
7、G_MAP(CAboutDlg) / No message handlers /AFX_MSG_MAPEND_MESSAGE_MAP()/ CDataMangerSystemDlg dialogCDataMangerSystemDlg:CDataMangerSystemDlg(CWnd* pParent /*=NULL*/) : CDialog(CDataMangerSystemDlg:IDD, pParent) /AFX_DATA_INIT(CDataMangerSystemDlg) user=1; ygong=1; m_username = _T(陈广重); m_userpass = _T
8、(123456); /AFX_DATA_INIT / Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CDataMangerSystemDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CDataMangerSystemDlg) DDX_Text(pDX, IDC_EDIT_USERNAME
9、, m_username); DDX_Text(pDX, IDC_EDIT_USERPASS, m_userpass); /AFX_DATA_MAPBEGIN_MESSAGE_MAP(CDataMangerSystemDlg, CDialog) /AFX_MSG_MAP(CDataMangerSystemDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON_USERLONGIN, OnButtonUserlongin) ON_BN_CLICKED(IDC_BUTTON_USERC
10、LASO, OnButtonUserclaso) ON_BN_CLICKED(IDC_RADIO_GUSER, OnRadioGuser) ON_BN_CLICKED(IDC_RADIO_MANGER, OnRadioManger) ON_BN_CLICKED(IDC_RADIO_PUUSER, OnRadioPuuser) ON_BN_CLICKED(IDC_RADIO_SALER, OnRadioSaler) ON_BN_CLICKED(IDC_RADIO_WORKER, OnRadioWorker) ON_WM_CLOSE() /AFX_MSG_MAPEND_MESSAGE_MAP()/
11、 CDataMangerSystemDlg message handlersBOOL CDataMangerSystemDlg:OnInitDialog() CDialog:OnInitDialog(); / Add About. menu item to system menu. / IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu-Appe
12、ndMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); / Set the icon for this dialog. The framework does this automatically / when the applications main window is not a dialog SetIcon(m_hIcon, TRUE); / Set big icon SetIcon(m_hIcon, FALSE); / Set small icon / TODO: Add extra initialization here (CButton *)G
13、etDlgItem(IDC_RADIO_PUUSER)-SetCheck(TRUE); (CButton *)GetDlgItem(IDC_RADIO_MANGER)-SetCheck(TRUE); if(GetCheckedRadioButton(IDC_RADIO_PUUSER,IDC_RADIO_GUSER)=IDC_RADIO_PUUSER) LongGrade=1; return TRUE; / return TRUE unless you set the focus to a controlvoid CDataMangerSystemDlg:OnSysCommand(UINT nI
14、D, LPARAM lParam) if (nID & 0xFFF0) = IDM_ABOUTBOX) CAboutDlg dlgAbout; dlgAbout.DoModal(); else CDialog:OnSysCommand(nID, lParam); / If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automaticall
15、y done for you by the framework.void CDataMangerSystemDlg:OnPaint() if (IsIconic() CPaintDC dc(this); / device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); / Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(S
16、M_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; / Draw the icon dc.DrawIcon(x, y, m_hIcon); else CDialog:OnPaint(); / The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURS
17、OR CDataMangerSystemDlg:OnQueryDragIcon() return (HCURSOR) m_hIcon;void CDataMangerSystemDlg:OnButtonUserlongin() / TODO: Add your control notification handler code here switch(user) case 1: if(LonginData(plain.txt)=true) if(MessageBox(系统登录成功!,系统登录,MB_OKCANCEL|MB_DEFBUTTON2|MB_ICONEXCLAMATION)=IDOK)
18、 CDialog:OnOK(); Modal(); else MessageBox(系统登录失败!,系统登录,MB_OKCANCEL|MB_DEFBUTTON2|MB_ICONEXCLAMATION); break; case 2: if(LonginData(higher.txt)=true) if(MessageBox(系统登录成功!,系统登录,MB_OKCANCEL|MB_DEFBUTTON2|MB_ICONEXCLAMATION)=IDOK) CDialog:OnOK(); Modal(); else MessageBox(系统登录失败!,系统登录,MB_OKCANCEL|MB_DEF
19、BUTTON2|MB_ICONEXCLAMATION); break; void CDataMangerSystemDlg:OnButtonUserclaso() / TODO: Add your control notification handler code here if(MessageBox(确定退出系统吗?,系统注销,MB_OKCANCEL|MB_DEFBUTTON2|MB_ICONQUESTION)=IDOK) CDialog:OnOK(); MessageBox(系统成功退出!,系统注销,MB_OKCANCEL|MB_DEFBUTTON2|MB_ICONEXCLAMATION)
20、; else void CDataMangerSystemDlg:OnRadioGuser() / TODO: Add your control notification handler code here user=2; LongGrade=2; m_username = _T(#陈广重); m_userpass = _T(123456); UpdateData(FALSE);void CDataMangerSystemDlg:OnRadioManger() / TODO: Add your control notification handler code here ygong=1;voi
21、d CDataMangerSystemDlg:OnRadioPuuser() / TODO: Add your control notification handler code here user=1; LongGrade=1; m_username = _T(陈广重); m_userpass = _T(123456); UpdateData(FALSE);void CDataMangerSystemDlg:OnRadioSaler() / TODO: Add your control notification handler code here ygong=2;void CDataMang
22、erSystemDlg:OnRadioWorker() / TODO: Add your control notification handler code here ygong=3;bool CDataMangerSystemDlg:LonginData(char *file) UpdateData(TRUE); log.Read_ind(file); char uname20,upass20; strcpy(uname,m_username); strcpy(upass,m_userpass); if(log.find(uname,upass)=true) return true; els
23、e return false; void CDataMangerSystemDlg:Modal() switch(ygong) case 1: ManagerDialog dialg; dialg.DoModal(); break; case 2: SalerDialog dialg; dialg.DoModal(); break; case 3: WorkerDialog dialg; dialg.DoModal(); break; void CDataMangerSystemDlg:OnClose() / TODO: Add your message handler code here a
24、nd/or call default if(MessageBox(确定退出系统吗?,系统退出,MB_OKCANCEL|MB_DEFBUTTON2|MB_ICONQUESTION)=IDOK) CDialog:OnOK(); MessageBox(系统成功退出!,系统退出,MB_OKCANCEL|MB_DEFBUTTON2|MB_ICONEXCLAMATION); else 2)、注销系统void CDataMangerSystemDlg:OnButtonUserclaso() / TODO: Add your control notification handler code here if(
25、MessageBox(确定退出系统吗?,系统注销,MB_OKCANCEL|MB_DEFBUTTON2|MB_ICONQUESTION)=IDOK) CDialog:OnOK(); else 功能操作模块功能1、添加功能extern LongGrade;void ManagerDialog:OnButtonAdd() / TODO: Add your control notification handler code here if(LongGrade=1) MessageBox(你不是管理员,没有操作该功能的权限!,管理权限,MB_OKCANCEL|MB_DEFBUTTON2|MB_ICONE
26、XCLAMATION); else char *name;/姓名 int age;/年龄 int worktime;/工龄 char _sex;/性别 /int marriage;/婚姻状况 int _grade;/职位等级 /int tired;/是否在职 int workhours;/ int _n; UpdateData(TRUE); do if(m_name.IsEmpty()/姓名 _n=0; MessageBox(姓名不能为空!,信息输入,MB_OK|MB_DEFBUTTON1|MB_ICONEXCLAMATION); else name=new char100; strcpy(name,m_name); if(m_age.IsEmpty()/年龄 _n=0; MessageBox(年龄不能为空!,信息输入,MB_OK|MB_DEFBUTTON1|MB_ICONEXCLAMATION); else age=atoi(m_age); if(age65|age20) _n=0; MessageBox(年龄值不合理!20-65!,信息输入,MB_OK|MB_DEFBUTTON1|MB_ICONEXCLAMATION); else if(m_woage.IsEmpt
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1