C++实习报告Word下载.docx
- 文档编号:19521965
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:17
- 大小:50.34KB
C++实习报告Word下载.docx
《C++实习报告Word下载.docx》由会员分享,可在线阅读,更多相关《C++实习报告Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
在“学号”对应的输入位置输入学生学号;
在“姓名”对应的输入位置输入学生姓名;
在“性别”对应的输入位置输入学生性别;
在“年龄”对应的输入位置输入学生年龄;
在“专业”对应的输入位置输入学生专业;
在“社团”对应的输入位置输入本科生所属社团;
在“导师”对应的输入位置输入研究生导师姓名;
在“类型”对应的输入位置输入研究生类别(“硕士”或“博士”)。
点击“确定”按钮,在主界面所选择的文件中写入学生信息。
为学号文本框添加Cstring类型成员变量;
为姓名文本框添加Cstring类型成员变量;
为性别文本框添加Cstring类型成员变量;
为年龄文本框添加Cstring类型成员变量;
为专业文本框添加Cstring类型成员变量;
为社团文本框添加Cstring类型成员变量;
为导师文本框添加Cstring类型成员变量;
为类别文本框添加Cstring类型成员变量。
设置“本科生”单选按钮的Group属性为Ture,此时“本科生”和“研究生”默认构成一组单选按钮,为本科生单选按钮添加int类型成员变量,选中“本科生”时变量值为0,选中“研究生”时变量值为1。
(3)学生信息的查询:
用户通过软件界面输入学生学号对学生基本信息进行查询操作,系统在默认文本文件中查找对应学生的信息,将查询结果显示在软件界面中。
在指定位置输入要查找的学生学号。
点击“查询”按钮,实现在文件中查找指定学生信息的功能,若未找到,弹出提示信息。
查找完成后“姓名”、“学历”、“性别”、“年龄”、“专业”的对应位置显示查找的结果。
为学历文本框添加Cstring类型成员变量;
为专业文本框添加Cstring类型成员变量。
(4)学生信息的删除:
在实现学生信息查询的基础上,对查询结果进行删除操作,系统在默认文本文件中删除对应学生的基本信息。
在指定位置输入要删除的学生学号。
点击“删除”按钮,实现在文件中删除指定学生信息的功能。
为学号文本框添加Cstring类型成员变量。
(5)学生信息的修改:
在指定位置输入要修改的学生学号。
点击“查找”按钮,在下方的“姓名”、“性别”、“年龄”、“专业”对应位置显示学生的原始信息,若查找失败,则弹出提示信息。
在“姓名”、“性别”、“年龄”、“专业”对应位置输入学生的新信息。
点击“保存”按钮,用学生的新信息替换学生的原始信息。
4.类的设计
采用面对对象的编程思想对其进行抽象和封装,从而设计出能够描述不同数据的类(包括数据成员、成员函数):
(1)学生类
数据成员(均定义为Cstring类型):
学号、姓名、性别、年龄、专业、学历。
成员函数:
构造函数,功能为利用界面输入的信息初始化数据成员。
信息获取函数,功能为将所有信息添加在一个字符串中,并将该字符串返回。
(2)本科生类
参加的社团
(3)研究生类
导师姓名、研究生类别(分为硕士和博士两类)
各类之间的关系是:
三、软件界面设计
1.创建MFC工程
在VS2010开发环境主界面下中选择“新建项目”,打开新建项目对话框,选择VisualC++语言下的MFC→MFC应用程序(MFCApplication),在下方“名称”文本框中输入项目名称“StudlnfoSys”,在“位置”文本框中选择项目程序文件保存路径,设置完成后,点击确定按钮打开MFC应用程序向导。
图一选择应用程序类型
图二选择用户功能
图三高级功能
图四生成的类
图五空的对话框应用程序框架
2.添加对话框资源
(1)设置对话框属性
在程序对话框中点击鼠标右键,在弹出菜单中选择“属性”菜单项,窗口右侧打开“属性”窗口,设置对话框的ID、标题、字体、边界样式等属性。
图六属性表
(2)添加控件
在窗口最右侧的选项卡列表中打卡“工具箱”,包括了多种控件,通过鼠标的拖曳操作,可将工具箱中的控件添加到对话框,同时通过拖曳还可调整控件的大小。
在程序中各种控件均由类实现,当对话框中添加一个控件时,软件会自动在程序中创建一个对象,并调用构造函数,当对话框关闭时,其各个子控件对象被销毁。
此外也可以自己在程序中写代码创建、显示控件对象。
添加控件后,在控件上点击右键,在弹出菜单中选择“属性”菜单项,打开属性窗口,以按钮控件为例,在窗口中可以设置按钮的ID、文字、样式等。
(3)添加对话框
在资源视图中选择“Dialog”,右键点击,在弹出菜单中选择“插入Dialog”菜单项,系统自动在工程中添加默认对话框,可以按上文的方法设置新的对话框属性。
根据学生信息管理系统的功能要求,需要添加四种功能的相应对话框,如下图所示:
图七学生信息管理系统对话框
图八录入信息对话框
图九删除信息对话框
图十查找信息对话框
图十一修改信息对话框
3.对话框的设置
(1)为对话框创建类
程序主界面的对话框创建完成后,系统自动会为其创建类,此时程序的主界面就是由该类创建的一个对象,而在主界面的基础上添加新对话框后,系统不再自动为新对话框创建类,若要使用该对话框,就需要自行创建对应的类:
在新对话框中点击鼠标右键,在弹出菜单中选择“添加类”菜单项,打开“MFC添加类向导”窗口,在“类名”后的文本框中输入为新对话框所创建的对应类的类名。
图十二类的创建
在类创建完成后,可以看到在工程的文件视图中自动生成了头文件和源文件,分别包含了类的声明和实现。
(2)为对话框控件添加成员变量
在程序中对某一控件值进行修改,可以在对话框点击鼠标右键,在弹出菜单中选择“类向导”菜单项,打开“类向导”窗口,在“类名”下拉列表中选择一个对话框类,选中成员变量,此时下方的“成员变量”列表会列出该对话框中所有控件的ID,点击右侧的添加变量,给每一个成员变量添加变量。
在窗口左侧设置成员变量的访问权限,默认为“public”,文件路径为字符串类型的数据,因而要为其添加一个字符串类型的成员,“变量类型”选择“CString”,变量名通常以m_开头,“_”后的第一个字符表示成员的数据类型。
图十三添加成员变量
(3)为对话框添加消息处理函数
通过上述步骤创建的对话框,其中的所有控件仍无法实现功能,若要其发挥作用,需要为对应控件添加消息处理函数。
在“类向导”窗口中的“类名”下拉列表中选择界面对应的类,窗口中部选择“命令”选项卡,在下方的“对象ID”列表中选择对象,在右侧“消息”列表中列出该按钮的默认支持的消息,其中“BN_CLICKED”为单机按钮操作,将其选中,点击右侧的“添加处理程序”按钮,打开“添加成员函数”窗口,系统会根据按钮的ID自动为消息处理函数命名。
在“类向导”窗口下方的“成员函数”列表中选择刚刚添加过得函数,然后点击右侧的“编辑代码”状态进行代码编辑。
图十四添加处理程序
三、系统功能实现
1.类的定义
具体代码如下:
/************************源文件内容*****************************/
#include"
stdafx.h"
StudlnfoSys.h"
Student.h"
//构造函数的实现
Student:
:
Student(CStringnumber,CStringname,CStringsex,CStringage,CStringmajor,CStringlevel)
{
this->
number=number;
name=name;
sex=sex;
age=age;
major=major;
level=level;
}
//信息获取函数的实现
CStringStudent:
getInfo()
CStringinfo="
"
;
//定义字符串,存放信息
//格式字符串,所有信息用“-”分隔
info.Format("
%s-%s-%s-%s-%s-%s\n"
this->
level,this->
number,this->
name,this->
sex,this->
age,this->
major);
returninfo;
//返回信息字符串
/**************************源文件内容***************************/
Benke.h"
IMPLEMENT_DYNAMIC(Benke,Student)
//构造函数的实现,调用父类构造函数
//信息获取函数,与父类函数同名
Benke:
Benke(CStringnumber,CStringname,CStringsex,CStringage,CStringmajor,CStringlevel,CStringcorporation):
Student(number,name,sex,age,major,level)
this->
m_sCorporation=corporation;
CStringBenke:
CStringinfo="
%s-%s-%s-%s-%s-%s-%s\n"
name,
major,
m_sCorporation);
//返回信息字串
Yyanjiu.h"
IMPLEMENT_DYNAMIC(Yyanjiu,CWnd)
Yyanjiu:
Yyanjiu(CStringnumber,CStringname,CStringsex,CStringage,CStringmajor,CStringlevel,CStringtutor,CStringtype):
m_sTutor=tutor;
m_sType=type;
CStringYyanjiu:
getInfo(){
CStringinfo="
%s-%s-%s-%s-%s-%s-%s-%s\n"
m_sTutor,this->
m_sType);
2.系统主模块
/**************************单击“浏览”按*************************/
CStringfilePath="
//定义全局变量,存放文件路径
voidCStudlnfoSysDlg:
OnBnClickedButtonFile()
CFileDialogfileDlg(TRUE,NULL,OFN_OVERWRITEPROMPT,
"
文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"
);
//定义选择文件的对话框
if(fileDlg.DoModal()==IDOK){//弹出选择文件的对话框
filePath=fileDlg.GetPathName();
//返回选择的文件名
m_sFile=filePath;
//将文件名显示到文本框
UpdateData(FALSE);
//更新控件内容
FILE*fp;
//定义文件指针
fopen_s(&
fp,filePath,"
r"
//以只读方式打开文件
if(fp==NULL)//判断文件是否不存在
fopen_s(&
w"
//如果文件不存在,创建文件
fclose(fp);
//关闭文件
}
/**********************单击“查找信息”按钮***********************/
OnBnClickedButtonSearch()
CSearchDlg*gld=newCSearchDlg();
//创建查找信息对话框
dlg->
DoModal();
//弹出查找信息对话框
/**********************单击“删除信息”按钮***********************/
OnBnClickedButtonDelet()
CDeletDlg*gld=newCDeletDlg();
//创建删除信息对话框
//弹出删除信息
/**********************单击“修改信息”按钮***********************/
OnBnClickedButtonUpdate()
CUpdateDlg*gld=newCUpdateDlg();
//创建修改信息对话框
//弹出修改信息
/**********************单击“退出系统”按钮***********************/
OnBnClickedButtonQuit()
EndDialog(IDOK);
//关闭对话框
3.录入信息模块
/********************单击“本科生”单选按钮*********************/
voidCInDlg:
OnBnClickedRadioBenke()
GetDlgItem(IDC_EDIT_Corp)->
EnableWindow(TRUE);
//设置社团输入位置为可用
GetDlgItem(IDC_EDIT_Tutor)->
EnableWindow(FALSE);
//设置导师输入位置为禁用
GetDlgItem(IDC_EDIT_Type)->
//设置类型输入位置为禁用
/********************单击“研究生”单选按钮*********************/
OnBnClickedRadioYyanjiu()
//设置社团输入位置为禁用
//设置导师输入位置为可用
//设置类型输入位置为可用
/*************************单击“确定”按钮***********************/
#include<
iostream>
fstream>
usingnamespacestd;
externCStringfilePath;
//引入全局变量,获取主界面中的文件路径
OnBnClickedOk()
UpdateData(TRUE);
//更新窗口
CStringinfo="
//定义字符串,用于储存学生信息
if(this->
m_iStudType==0){//如果选中“本科生”
Benke*p=newBenke(//利用界面中输入的信息创建本科生对象)
this->
m_sNumber,this->
m_sName,this->
m_sSex,
m_sAge,this->
m_sMajor,"
本科生"
m_sCorp);
info=p->
getInfo();
//保存本科生信息
m_iStudType==1){//如果选中“研究生”
Yyanjiu*p=newYyanjiu(//利用界面中输入的信息创建研究生对象)
研究生"
m_sTutor,this->
//保存研究生信息
ofstreamout;
//写操作的文件类,需添加头文件iostream和fstream
//ios:
app表示以在末尾追加的方式写入文件
out.open(filePath,ios:
app);
//打开文件
out.write(info,info.GetLength());
//写入信息
out.close();
MessageBox("
信息录入完成"
//完成提示
CInDlg*dlg=newCInDlg();
//创建新的录入信息对话框
//弹出录入信息对话框
//关闭旧的对话框
4.查找信息模块
/*************************单击“查找”按钮***********************/
string>
voidCSearchDlg:
OnBnClickedButton1()
stringinfo[6];
//定义字符串数组,存储读取的学生各项信息
ifstreamin;
//需添加头文件iostream和fsteream
in表示以只读方式打开文件
in.open(filePath,ios:
in);
//打开文件
stringstrline;
//定义字符串,存储文件中读取
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实习 报告