河北工业大学-离散数学综合实验二_第1页
河北工业大学-离散数学综合实验二_第2页
河北工业大学-离散数学综合实验二_第3页
河北工业大学-离散数学综合实验二_第4页
河北工业大学-离散数学综合实验二_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验三实验三 通讯录管理程序设计与实现通讯录管理程序设计与实现 一 实验目的与要求一 实验目的与要求 实验目的 实验目的 锻炼面向对象编程与文件操作能力 实验要求实验要求 1 熟悉 C 程序设计 2 运用 OO 知识对实验题目进行分析和设计 3 进行程序编写和调试工作 二 实验内容二 实验内容 设计 实现一个具有通讯信息插入 修改 删除 显示 查询和统计功能 的通讯录管理程序 程序设计功能及要求 1 人数不定 数据使用文件存放 2 记录每位同学的学号 姓名 性别 工作单位 电话号码和 E mail 地 址建立单独的条目 存入数据文件 3 可对记录中的姓名和电话号码等进行修改 4 可增加或删除记录 5 可显示所有保存的记录 6 可以统计男女同学或总人数 7 通过姓名 学号或电话号码查询到同学的条目 8 在开始画面加入简单的菜单便于选择功能 9 储存数据文件格式 学号姓名性别工作单位电话号码E mail 1 李四 10 选做 加入文件加密系统 对储存数据文件进行简单的加密 要求通 过直接打开储存数据文件无法获得其中的数据 但同时不影响程序对储存数据 文件的调用 三 实验方法三 实验方法 1 通讯录的录入 从键盘接收输入的通讯录信息 将其存储到通讯录文件 中 2 通讯录信息的修改 从键盘接收输入的需要修改通讯录的姓名 在文件 中查找是否存在相应记录 如果存在 则从键盘输入修改后的信息 并保存在 文件中 3 通讯录信息的删除 从键盘接收输入的需要删除的通讯录的姓名 在通 讯录文件中进行查找 如果存在这样的记录 则在文件中将记录删除 4 通讯录信息的增加 从键盘接收要增加的通讯录信息 并与通讯录文件 中已存在的信息进行比对 如果存在这样的记录 且前后信息不符 则更新该 记录 如果不存在该条记录 则将新录入的通讯录信息保存到通讯录文件中 5 显示所有保存的记录 能显示出所有通讯录文件的所有记录 6 统计男女生人数或总人数 7 通讯录的查询功能 从键盘接收要查询的姓名 学号或电话号码 对通 讯录文件进行查询 并将查询到整条记录显示出来 8 该通讯录可以采用字符界面 也可以在开始画面加入简单的菜单便于选 择功能 四 实验设计四 实验设计 该实验通过采用 ADO 封装对象进行数据库的访问和操作信息存储 数据文件存放在通讯录文件夹的根目录下建议从工作台直接进入进行测试 五 源代码五 源代码 UseAdoDlg cpp implementation file include stdafx h include UseAdo h include UseAdoDlg h include ADO h ifdef DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE FILE endif CAboutDlg dialog used for App About class CAboutDlg public CDialog public 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 Implementation protected AFX MSG CAboutDlg AFX MSG DECLARE MESSAGE MAP CAboutDlg CAboutDlg CDialog CAboutDlg IDD AFX DATA INIT CAboutDlg AFX DATA INIT void CAboutDlg DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX DATA MAP CAboutDlg AFX DATA MAP BEGIN MESSAGE MAP CAboutDlg CDialog AFX MSG MAP CAboutDlg No message handlers AFX MSG MAP END MESSAGE MAP CUseAdoDlg dialog CUseAdoDlg CUseAdoDlg CWnd pParent NULL CDialog CUseAdoDlg IDD pParent AFX DATA INIT CUseAdoDlg m ID T m Name T m Culture T m Sex T m Bianhao T m Addr T AFX DATA INIT Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m hIcon AfxGetApp LoadIcon IDR MAINFRAME void CUseAdoDlg DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX DATA MAP CUseAdoDlg DDX Control pDX IDC LIST1 m Grid DDX Text pDX IDC EDIT1 m ID DDX Text pDX IDC EDIT2 m Name DDX Text pDX IDC EDIT3 m Culture DDX Text pDX IDC EDIT4 m Sex DDX Text pDX IDC EDIT6 m Bianhao DDX Text pDX IDC EDIT7 m Addr AFX DATA MAP BEGIN MESSAGE MAP CUseAdoDlg CDialog AFX MSG MAP CUseAdoDlg ON WM SYSCOMMAND ON WM PAINT ON WM QUERYDRAGICON ON BN CLICKED IDC BUTADD OnButadd ON NOTIFY NM CLICK IDC LIST1 OnClickList1 ON BN CLICKED IDC BUTMOD OnButmod ON BN CLICKED IDC BUTDEL OnButdel ON BN CLICKED IDC BUTCLEAR OnButclear AFX MSG MAP END MESSAGE MAP CUseAdoDlg message handlers BOOL CUseAdoDlg OnInitDialog CDialog OnInitDialog Add About menu item to system menu IDM ABOUTBOX must be in the system command range ASSERT IDM ABOUTBOX ASSERT IDM ABOUTBOX AppendMenu MF SEPARATOR pSysMenu AppendMenu MF STRING IDM ABOUTBOX strAboutMenu Set the icon for this dialog The framework does this automatically when the application s 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 m Grid SetExtendedStyle LVS EX FLATSB LVS EX FULLROWSELECT LVS EX HEADERDRAGDROP LVS EX ONECLICKACTIVATE LVS EX GRIDLINES m Grid InsertColumn 0 姓名 LVCFMT LEFT 110 0 m Grid InsertColumn 1 电话 LVCFMT LEFT 110 1 m Grid InsertColumn 2 QQ LVCFMT LEFT 110 2 m Grid InsertColumn 3 性别 LVCFMT LEFT 110 3 m Grid InsertColumn 4 邮箱地址 LVCFMT LEFT 110 4 m Grid InsertColumn 5 编号 LVCFMT LEFT 110 5 AddToGrid return TRUE return TRUE unless you set the focus to a control void CUseAdoDlg OnSysCommand UINT nID LPARAM lParam if nID 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 automatically done for you by the framework void CUseAdoDlg 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 SM CYICON CRect rect GetClientRect 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 HCURSOR CUseAdoDlg OnQueryDragIcon return HCURSOR m hIcon void CUseAdoDlg AddToGrid ADO m Ado m Ado OnInitADOConn 连接数据库 CString SQL select from employees order by 姓名 desc 设置查询字符 串 m Ado m pRecordset m Ado OpenRecordset SQL 打开记录集 while m Ado m pRecordset adoEOF m Grid InsertItem 0 m Grid SetItemText 0 0 char bstr t m Ado m pRecordset GetCollect 姓名 m Grid SetItemText 0 1 char bstr t m Ado m pRecordset GetCollect 电话 m Grid SetItemText 0 2 char bstr t m Ado m pRecordset GetCollect QQ m Grid SetItemText 0 3 char bstr t m Ado m pRecordset GetCollect 性别 m Grid SetItemText 0 4 char bstr t m Ado m pRecordset GetCollect 邮箱地址 m Grid SetItemText 0 5 char bstr t m Ado m pRecordset GetCollect 编号 m Ado m pRecordset MoveNext 将记录集指针移动到下一条记录 m Ado CloseRecordset m Ado CloseConn 断开数据库连接 void CUseAdoDlg OnButadd TODO Add your control notification handler code here UpdateData TRUE if m ID IsEmpty m Name IsEmpty m Culture IsEmpty MessageBox 基础信息不能为空 return ADO m Ado m Ado OnInitADOConn CString sql select from employees m Ado m pRecordset m Ado OpenRecordset sql try m Ado m pRecordset AddNew 添加新行 m Ado m pRecordset PutCollect 姓名 bstr t m ID m Ado m pRecordset PutCollect 电话 bstr t m Name m Ado m pRecordset PutCollect QQ bstr t m Culture m Ado m pRecordset PutCollect 性别 bstr t m Sex m Ado m pRecordset PutCollect 邮箱地址 bstr t m Addr m Ado m pRecordset PutCollect 编号 bstr t m Bianhao m Ado m pRecordset Update 更新数据表记录 m Ado CloseRecordset m Ado CloseConn catch MessageBox 操作失败 return MessageBox 添加成功 m Grid DeleteAllItems 删除列表控件 AddToGrid void CUseAdoDlg OnClickList1 NMHDR pNMHDR LRESULT pResult TODO Add your control notification handler code here int pos m Grid GetSelectionMark m ID m Grid GetItemText pos 0 m Name m Grid GetItemText pos 1 m Culture m Grid GetItemText pos 2 m Sex m Grid GetItemText pos 3 m Addr m Grid GetItemText pos 4 m Bianhao m Grid GetItemText pos 5 UpdateData FALSE pResult 0 void CUseAdoDlg OnButmod TODO Add your control notification handler code here UpdateData TRUE if m ID IsEmpty m Name IsEmpty m Culture IsEmpty MessageBox 基础信息不能为空 return int pos m Grid GetSelectionMark ADO m Ado m Ado OnInitADOConn CString sql select from employees m Ado m pRecordset m Ado OpenRecordset sql try m Ado m pRecordset Move long pos vtMissing m Ado m pRecordset PutCollect 姓名 bstr t m ID m Ado m pRecordset PutCollect 电话 bstr t m Name m Ado m pRecordset PutCollect QQ bstr t m Culture m Ado m pRecordset PutCollect 性别 bstr t m Sex m Ado m pRecordset PutCollect 邮箱地址 bstr t m Addr m Ado m pRecordset PutCollect 编号 bstr t m Bianhao m Ado m pRecordset Update m Ado CloseRecordset m Ado CloseConn catch MessageBox 操作失败 return MessageBox 修改成功 m Grid DeleteAllItems AddToGrid void CUseAdoDlg OnButdel TODO Add your control notification hand

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论