vc实验报告实验4_第1页
vc实验报告实验4_第2页
vc实验报告实验4_第3页
vc实验报告实验4_第4页
vc实验报告实验4_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

武汉理工大学理学院数学系课程实验报告课程名称:VC程序设计班级

日期2012/11/7

成绩评定

姓名实验室理学院机房

老师签名

学号实验名称保存信息到文档所用软件VC++6.0office实

的及内容1、构造学生类;2、自定义带有头结点的学生类链表;3、保存信息到外部文件,从外部文件读入学生信息;实

原理步骤、

1、新建新建MFCAPPwizard工程,建立单文档并命名为DOCVIEW,并选择CView的父类为CFormView;2、设计对话框的形式3、新建学生信息类CStudent,建立Student.h和Student.cpp文件;4、建立SqList链表,SqList.h文件代码如下:#include"stdafx.h"#include"Student.h"typedefCStudentListData;classList;#ifndef_LIST_H_H#define_LIST_H_HclassListNode{ friendclassList;public: ListDatam_nStu; ListNode*m_nStuNext;ListNode*m_nStuPre; };classList{public: ListNode*HeadPtr;public: List(); ~List(); intGetData(CStudent&n_Stu,intn); intGetHome(CStudent&n_Stu); intGetPre(CStudent&n_Stu,intn); intGetLast(CStudent&n_Stu,int&n); intGetNext(CStudent&n_Stu,intn); intInsert(CStudentn_Stu,intn); intDelete(intn); intDeleteAll(); intGetLength(); voidSaveCon(); voidOpenCon();};#endif5、在SqList.cpp文件中实现该链表;6、在CDOCVIEWDoc类中包含两个文件,并添加如下数据成员#include"SqList.h"public: Listm_StudentList;7、在CDOCVIEWView类中包含SqList.h文件并添加如下变量;public: CDOCVIEWDoc*GetDocument();CDOCVIEWDoc*pDoc;List*m_viewStudentList; CStudentmStudentCon; intm_Position;8、初始化添加的变量:voidCDOCVIEWView::OnInitialUpdate(){CFormView::OnInitialUpdate();GetParentFrame()->RecalcLayout();ResizeParentToFit();pDoc=GetDocument();m_viewStudentList=&pDoc->m_StudentList;m_Position=m_viewStudentList->GetLength();m_viewStudentList->GetData(mStudentCon,1);m_nAge=mStudentCon.m_nAge;m_nGrade=mStudentCon.m_nGrade;m_strName=mStudentCon.m_strName;UpdateData(FALSE);}9、在CDOCVIEWView中添加变量和控件对应的消息处理函数;函数名如下protected: //{{AFX_MSG(CDOCVIEWView) afx_msgvoidOnDelete(); afx_msgvoidOnUpdateDelete(CCmdUI*pCmdUI); afx_msgvoidOnEditClearAll(); afx_msgvoidOnUpdateEditClearAll(CCmdUI*pCmdUI); afx_msgvoidOnHome(); afx_msgvoidOnUpdateHome(CCmdUI*pCmdUI); afx_msgvoidOnLast(); afx_msgvoidOnUpdateLast(CCmdUI*pCmdUI); afx_msgvoidOnNew(); afx_msgvoidOnNext(); afx_msgvoidOnUpdateNext(CCmdUI*pCmdUI); afx_msgvoidOnPre(); afx_msgvoidOnUpdatePre(CCmdUI*pCmdUI); afx_msgvoidOnReclear(); afx_msgvoidOnFileSave(); afx_msgvoidOnFileOpen(); //}}AFX_MSG DECLARE_MESSAGE_MAP()};10、链表中的部分函数代码如下://插入学生信息intList::Insert(CStudentn_Stu,intn){ ListNode*p=HeadPtr; for(inti=1;i<n;i++) {p=p->m_nStuNext; } ListNode*newNode=newListNode; newNode->m_nStu=n_Stu; if(n==1) { HeadPtr->m_nStuNext=NULL; newNode->m_nStuNext=HeadPtr;HeadPtr->m_nStuPre=newNode; HeadPtr=newNode; } else { newNode->m_nStuPre=p->m_nStuPre; p->m_nStuPre->m_nStuNext=newNode; newNode->m_nStuNext=p; p->m_nStuPre=newNode; }return1;}//删除学生信息intList::Delete(intn){ ListNode*p=HeadPtr; if(p->m_nStuNext==NULL||n==1) { HeadPtr->m_nStuNext=NULL; return0; } else { for(inti=1;i<n;i++) { p=p->m_nStuNext; } p->m_nStuPre->m_nStuNext=p->m_nStuNext; p->m_nStuNext->m_nStuPre=p->m_nStuPre; deletep; } return1;}//取出变量信息:intList::GetData(CStudent&n_Stu,intn){ ListNode*p=HeadPtr; if(p->m_nStuNext!=NULL||n>1){ for(inti=1;i<n;i++) { p=p->m_nStuNext; } n_Stu.m_nAge=p->m_nStu.m_nAge;n_Stu.m_nGrade=p->m_nStu.m_nGrade; n_Stu.m_strName=p->m_nStu.m_strName;return1; } else { HeadPtr->m_nStuNext=NULL; n_Stu.m_nAge=0; n_Stu.m_nGrade=0; n_Stu.m_strName=""; return0; }}//保存链表信息:voidList::SaveCon(){ ListNode*p=HeadPtr; CStringm_strfile; CFileDialogdlg(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"*.*|*.*|",NULL); dlg.DoModal(); m_strfile=dlg.GetPathName(); ofstreammyFile; myFile.open(m_strfile); myFile<<"姓名"<<"\t"<<"年龄"<<"\t"<<"分数"<<endl; while(p->m_nStuNext!=NULL) { myFile<<p->m_nStu.m_strName.GetBuffer(0)<<"\t"<<p->m_nStu.m_nAge<<"\t"<<p->m_nStu.m_nGrade<<endl; p=p->m_nStuNext; } myFile.close();}//打开外部文件信息:voidList::OpenCon(){ListNode*p=HeadPtr; CStringm_strfile; CFileDialogdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"*.*|*.txt|",NULL);dlg.DoModal(); m_strfile=dlg.GetPathName();ifstreammyFile; myFile.open(m_strfile); CStringa,b,c; myFile>>a.GetBuffer(0)>>b.GetBuffer(0)>>c.GetBuffer(0); intn=0;while(!myFile.eof()) { ListNode*newNode=newListNode; myFile>>newNode->m_nStu.m_strName.GetBuffer(0)>>newNode->m_nStu.m_nAge>>newNode->m_nStu.m_nGrade;n++; CStudentstu=newNode->m_nStu; Insert(stu,n); } myFile.close();}11、程序中保存信息调用的代码:voidCDOCVIEWView::OnFileOpen(){ //TODO:Addyourcommandhandlercodeherem_viewStudentList->DeleteAll(); m_viewStudentList->OpenCon(); intl=m_viewStudentList->GetLength(); m_viewStudentList->Delete(l); m_strName=m_viewStudentList->HeadPtr->m_nStu.m_strName; m_nAge=m_viewStudentList->Head

温馨提示

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

评论

0/150

提交评论