《数据结构与C++》实验指导书_第1页
《数据结构与C++》实验指导书_第2页
《数据结构与C++》实验指导书_第3页
《数据结构与C++》实验指导书_第4页
《数据结构与C++》实验指导书_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

C》实验指导书实验一、学籍管理系统设计实验目的:实验内容:设计界面友好、操作简便的学生学籍管理系统软件。综合运用顺序表、单链表、栈、队列、字符串、多维数组等多种线性数据结构架构系统,分析并选择合理的N台计算机VisualC0或DEVC++,WindowsProfessional操作系统实验步骤:学籍管理问题中的数据元素具有如下形式:学生的自然情况包括学号、姓名、性别、出生日期、政治面貌与家庭住址等数据项。。对学籍登记表要求完成如下功能:⑴插入:将某学生的基本信息插入到登记表中;⑵删除:将满足条件的基本信息删除;⑶修改:对基本信息的数据项进行修改;⑷查询:查找满足条件的学生;⑸输出:将登记表中的全部(或满足条件)基本信息输出。3.实现要点对学籍登记表采用顺序或链式存储结构,在建立表时,由登记表的书写形式转化顺序表或链式表存储结构,还要把学生的书面形式转化为具体的类。4.类定义以顺序表为例,建立SeqList顺序表,其类定义如下:template<classT>classSeqListC》实验指导书{public:SeqList(){length=0;}SeqList(Ta[],intn);~SeqList(){}//无参构造函数//有参构造函数//析构函数为空intLength(){returnlength;}//求顺序表的长度TGet(inti);//取顺序表的第i个元素voidInsert(inti,Tx);//在顺序表中第i个位置插入值为x的元素TDelete(inti);voidPrintList();//删除顺序表的第i个元素//遍历顺序表,按序号依次输出各元素voidPrintStudent(Tx);//有参输出函数private:Tdata[MaxSize];intlength//存放数据元素的数组//顺序表的长度在SeqList类中,提供了如下成员函数完成的功能完成的功能完成的功能完成的功能完成的功能完成的功能完成的功能SeqList(Ta[],intn);构造长度为n,元素为数组a[]中元素的顺序表intLength(){returnlength;}求顺序表长度TGet(inti)依次查找,读取表中第i个元素voidInsert(inti,Tx);在顺序表中第i个位置插入值为x的元素TDelete(inti);查找并删除顺序表的第i个元素voidPrintList()遍历顺序表,按序号依次输出各元素voidPrintStudent(Tx)输出元素xC》实验指导书开始程序执行,显示以下功能选择界面:者:按要求输入选择,并按提示输入,以下以插入与查询为例。首先插入学生张三的信息:C》实验指导书同样输入李四的信息,并查询,结果如下:可选方案:PersonData示例运行界面如下图所示。该示例就是一个基于对话框的MFC应用程序。运行C》实验指导书的条目。当选择定某个人名时,在右侧的“个人信息”栏中显示个人信息的具体内容。如果要修改某个条目的个人信息,则可以直接编辑对话框右侧的具体内容,然后单击“更新”PersonData演示了如何用CFile类对文件进行随机读写。在程序代码中可以瞧到CFile类的种成员函数的使用范例。一.创建一个对话框;二.添加相应控件,箭头,然后拖大列表区域面积;再在属性中“data”中可输入“男”+“ctrl+enter”+“女”;样式就选择“下移dropdown”。2)所有编辑框列表框与控件的IDIDC_PERSONLIST;IDC_NAME;IDC_BIRTH;IDC_SEX;IDC_TITLE;IDC_OFFICE;IDC_OFFICEPHONE;IDC_HOME;IDC_HOMEPHONE;IDC_MOBILPHONE;IDC_EMAIL;IDC_ADD;IDC_DEL;IDC_UPDATE;IDC_CANCEL;3)点击任何控件,按F1键,可出现帮助文档;三.为控件绑定变量户个人信息,代码如下:(用点击右键类向导邦定变量,代码会自动生成)public:CListBoxm_PersonList;//左侧“选择人名”列表框【注意:变量类型为“control”,其余几个都为“value”,变量定义就是可限定max范围】C》实验指导书CStringCStringCStringCStringCStringCStringCStringCStringCStringmm_szEMail;m_szHome;m_szHomePhone;m_szMobilePhone;m_szName;m_szOffice;m_szOfficePhone;m_szSex;“出生日期”输入框“E-mail”输入框{ilhvoidUpdatePersonIndex);afx_msgvoidOnAdd();afx_msgvoidOnDel();gvoidOnSelchangePersonlistafx_msgvoidOnCancel();afx_msgvoidOnUpdate();//=============================================================//函数名:LoadPersonInfo//功能描述:根据PersonInfo结构更新界面的控件变量//输入参数:pi(输入的PersonInfo个人信息结构)C》实验指导书//返回值:无//附加说明://==============================================================voidCPersonDataDlg::LoadPersonInfo(constPersonInfo&pi){//更新界面m_szName=pi、szName;if(pi、nSex==0)m_szSex="男";m_szSex="女";m_szBirth=pi、szBirth;m_szTitle=pi、szTitle;m_szOffice=pi、szOffice;m_szOfficePhone=pi、szOfficePhone;m_szHome=pi、szHome;m_szHomePhone=pi、szHomePhone;m_szMobilePhone=pi、szMobilePhone;m_szEMail=pi、szEMail;UpdateData(FALSE);}//=============================================================//函数名:Update功能描述:向文件中更新个人信息//输入参数:PersonIndex(要更新的个人信息的条目序号)//返回值:无//附加说明://==============================================================voidCPersonDataDlg::UpdatePersonIndex){//定位要修改的个人信息在文件中的位置oC//更新个人信息数据UpdateData();PersonInfopi;strcpy(pi、szName,m_szName);if(m_szSex=="男")pi、nSex=0;pi、nSex=1;strcpy(pi、szBirth,m_szBirth);strcpy(pi、szTitle,m_szTitle);strcpy(pi、szOffice,m_szOffice);C》实验指导书strcpy(pi、szOfficePhone,m_szOfficePhone);strcpy(pi、szHome,m_szHome);strcpy(pi、szHomePhone,m_szHomePhone);strcpy(pi、szMobilePhone,m_szMobilePhone);strcpy(pi、szEMail,m_szEMail);}//=============================================================//函数名:OnAdd//功能描述:处理单击“添加”按钮的消息,用于添加新的个人信息//输入参数:无//返回值:无//附加说明:添加的新的个人信息里将姓名设置为“新名字”,其她项//均为空,需要修改更新//==============================================================voidCPersonDataDlg::OnAdd(){//TODO:Addyourcontrolnotificationhandlercodehere//如果没有列表项,启用“更新”按钮if(m_PersonList、GetCount()==0){GetDlgItem(IDC_UPDATE)->EnableWindow(TRUE);}//添加新的名字在列表中m_PersonList、AddString("新名字");m_PersonList、SetCurSel(m_PersonList、GetCount()-1);//更新个人信息界面m_szName="新名字";m_szBirth="";m_szSex="男";m_szTitle="";m_szOffice="";m_szOfficePhone="";m_szHome="";m_szHomePhone="";m_szMobilePhone="";m_szEMail="";UpdateData(FALSE);C》实验指导书//更新文件Update()-1);}//=============================================================//函数名:OnDel//功能描述:处理单击“删除”按钮的消息,用于删除个人信息//输入参数:无//返回值:无//附加说明://==============================================================voidCPersonDataDlg::OnDel(){//TODO:Addyourcontrolnotificationhandlercodehere//提示用户if(MessageBox(MB_OKCANCEL)==IDCANCEL)return;//获得当前选项intsel=m_PersonList、GetCurSel();//删除文件中的个人信息for(inti=sel;i<m_PersonList、GetCount()-1;i++){PersonInfopi;}mLONGmPersonListGetCount-1)*sizeof(PersonInfo));//更改列表信息m_PersonList、DeleteString(sel);//如果没有列表项,禁用“更新”按钮if(m_PersonList、GetCount()==0){GetDlgItem(IDC_UPDATE)->EnableWindow(FALSE);return;}//防止用户误操作,多选超过最大数if(sel<m_PersonList、GetCount())m_PersonList、SetCurSel(sel);C》实验指导书m_PersonList、SetCurSel(sel-1);OnSelchangePersonlist();}//=============================================================//函数名:OnSelchangePersonlist//功能描述:处理更改“选择人名”列表框中的选择产生的消息,用于//切换显示新选定的人的个人信息//输入参数:无//返回值:无//附加说明://==============================================================voidCPersonDataDlg::OnSelchangePersonlist(){//TODO:Addyourcontrolnotificationhandlercodehere//获得当前的选择intsel=m_PersonList、GetCurSel();//移动文件指针//从文件中读取数据PersonInfopi;//更新界面LoadPersonInfo(pi);}//=============================================================//函数名:OnCancel//功能描述:处理单击“退出”按钮的消息,用于退出程序//输入参数:无//返回值:无//附加说明://==============================================================voidCPersonDataDlg::OnCancel(){CDialog::OnCancel();//TODO:Addyourmessagehandlercodehere//关闭文件}C》实验指导书//=============================================================//函数名:OnUpdate//功能描述:处理单击“更新”按钮的消息,用于更新修改后的个人信息//输入参数:无//返回值:无//附加说明://==============================================================voidCPersonDataDlg::OnUpdate(){//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();//获得当前选项intsel=m_PersonList、GetCurSel();//更新数据Update);//更改列表信息m_PersonList、DeleteString(sel);m_PersonList、InsertString(sel,m_szName);m_PersonList、SetCurSel(sel);}九.修改对话框初始化函数BOOLCPersonDataDlg::OnInitDialog(){//TODO:Addextrainitializationhere//打开文件//用C选取打开的文件Cdlg(TRUE,NULL,NULL,OFN_ALLOWMULTISELECT);if(dlg、DoModal()!=IDOK){EndDialog(IDCANCEL);//取消则退出程序}C|C)){//出错处理returnFALSE;}C》实验指导书//读取个人信息数据esultPersonInfopi;{//在列表中添加人名m_PersonList、AddString(pi、szName);}//如果没有列表项,禁用“更新”按钮if(m_PersonList、GetCount()==0){GetDlgItem(IDC_UPDATE)->EnableWindow(FALSE);}returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}十.在文件夹中新建一个“test、txt”,用于保存学生信息数据;实验二、校园路线导航设计实验目的:实验内容:Floyd实验设备:N台计算机VisualC0或DEVC++,WindowsProfessional操作系统图的最短路径问题就是指从指定的某一点v开始,求得从该地点到图中其它各地点的最短路径。并且给出求得的最短路径的长度及途径的地点。除了完成最短路径的求解外,还能对该图进行修改,如顶点以及边的增删、边上权值的修改等。校园最短路径问题中的数据元素有:(1)顶点数(2)边数C》实验指导书(3)边的长度要求完成以下功能:(1)输出顶点信息:将校园内各位置输出。(2)输出边的信息:将校园内每两个位置(若两个位置之间有直接路径)的距离输出。(3)修改:修改两个位置(若两个位置之间有直接路径)的距离,并重新输出每两个位置(若两个位置之间有直接路径)的距离;(4)求最短路径:输出给定两点之间的最短路径的长度及途经的地点或输出任意一

温馨提示

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

评论

0/150

提交评论