C++实习报告Word文件下载.docx

上传人:b****3 文档编号:17740097 上传时间:2022-12-09 格式:DOCX 页数:23 大小:190.95KB
下载 相关 举报
C++实习报告Word文件下载.docx_第1页
第1页 / 共23页
C++实习报告Word文件下载.docx_第2页
第2页 / 共23页
C++实习报告Word文件下载.docx_第3页
第3页 / 共23页
C++实习报告Word文件下载.docx_第4页
第4页 / 共23页
C++实习报告Word文件下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C++实习报告Word文件下载.docx

《C++实习报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++实习报告Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。

C++实习报告Word文件下载.docx

主要功能包括:

学生信息的录入,用户通过软件界面将学生基本信息录入系统;

学生信息的存储,系统将用户录入的信息保存在系统默认的文本文件中。

通过选择“本科生”或“研究生”两个单选按钮,确定学生的学历信息,进而根据不同学生类别所应具有的属性,对无用属性的输入框进行屏蔽。

在“学号”对应的输入位置输入学生学号;

在“姓名”对应的输入位置输入学生姓名;

在“性别”对应的输入位置输入学生性别;

在“年龄”对应的输入位置输入学生年龄;

在“专业”对应的输入位置输入学生专业;

在“社团”对应的输入位置输入本科生所属社团;

在“导师”对应的输入位置输入研究生导师姓名;

在“类型”对应的输入位置输入研究生类别(“硕士”或“博士”).点击“确定”按钮,在主界面所选择的文件中写入学生信息。

为学号文本框添加Cstring类型成员变量;

为姓名文本框添加Cstring类型成员变量;

为性别文本框添加Cstring类型成员变量;

为年龄文本框添加Cstring类型成员变量;

为专业文本框添加Cstring类型成员变量;

为社团文本框添加Cstring类型成员变量;

为导师文本框添加Cstring类型成员变量;

为类别文本框添加Cstring类型成员变量。

设置“本科生”单选按钮的Group属性为Ture,此时“本科生”和“研究生"

默认构成一组单选按钮,为本科生单选按钮添加int类型成员变量,选中“本科生”时变量值为0,选中“研究生"

时变量值为1。

(3)学生信息的查询:

用户通过软件界面输入学生学号对学生基本信息进行查询操作,系统在默认文本文件中查找对应学生的信息,将查询结果显示在软件界面中。

在指定位置输入要查找的学生学号。

点击“查询”按钮,实现在文件中查找指定学生信息的功能,若未找到,弹出提示信息。

查找完成后“姓名”、“学历"

、“性别”、“年龄"

、“专业”的对应位置显示查找的结果。

为学历文本框添加Cstring类型成员变量;

为专业文本框添加Cstring类型成员变量。

(4)学生信息的删除:

在实现学生信息查询的基础上,对查询结果进行删除操作,系统在默认文本文件中删除对应学生的基本信息。

在指定位置输入要删除的学生学号。

点击“删除"

按钮,实现在文件中删除指定学生信息的功能。

为学号文本框添加Cstring类型成员变量。

(5)学生信息的修改:

在指定位置输入要修改的学生学号.点击“查找”按钮,在下方的“姓名”、“性别”、“年龄”、“专业”对应位置显示学生的原始信息,若查找失败,则弹出提示信息。

在“姓名”、“性别"

、“年龄”、“专业”对应位置输入学生的新信息。

点击“保存"

按钮,用学生的新信息替换学生的原始信息。

为年龄文本框添加Cstring类型成员变量;

为专业文本框添加Cstring类型成员变量.

4.类的设计

采用面对对象的编程思想对其进行抽象和封装,从而设计出能够描述不同数据的类(包括数据成员、成员函数):

(1)学生类

数据成员(均定义为Cstring类型):

学号、姓名、性别、年龄、专业、学历。

成员函数:

构造函数,功能为利用界面输入的信息初始化数据成员。

信息获取函数,功能为将所有信息添加在一个字符串中,并将该字符串返回。

(2)本科生类

参加的社团

信息获取函数,功能为将所有信息添加在一个字符串中,并将该字符串返回.

(3)研究生类

数据成员(均定义为Cstring类型):

导师姓名、研究生类别(分为硕士和博士两类)

成员函数:

构造函数,功能为利用界面输入的信息初始化数据成员.信息获取函数,功能为将所有信息添加在一个字符串中,并将该字符串返回。

研究生类

继承

本科生类

学生类

各类之间的关系是:

三、软件界面设计

1.创建MFC工程

在VS2010开发环境主界面下中选择“新建项目”,打开新建项目对话框,选择VisualC++语言下的MFC→MFC应用程序(MFCApplication),在下方“名称"

文本框中输入项目名称“StudlnfoSys"

,在“位置"

文本框中选择项目程序文件保存路径,设置完成后,点击确定按钮打开MFC应用程序向导.

图一选择应用程序类型

图二选择用户功能

图三高级功能

图四生成的类

图五空的对话框应用程序框架

添加对话框资源

(1)设置对话框属性

在程序对话框中点击鼠标右键,在弹出菜单中选择“属性”菜单项,窗口右侧打开“属性”窗口,设置对话框的ID、标题、字体、边界样式等属性.

图六属性表

(2)添加控件

在窗口最右侧的选项卡列表中打卡“工具箱”,包括了多种控件,通过鼠标的拖曳操作,可将工具箱中的控件添加到对话框,同时通过拖曳还可调整控件的大小。

在程序中各种控件均由类实现,当对话框中添加一个控件时,软件会自动在程序中创建一个对象,并调用构造函数,当对话框关闭时,其各个子控件对象被销毁.此外也可以自己在程序中写代码创建、显示控件对象。

添加控件后,在控件上点击右键,在弹出菜单中选择“属性”菜单项,打开属性窗口,以按钮控件为例,在窗口中可以设置按钮的ID、文字、样式等。

(3)添加对话框

在资源视图中选择“Dialog”,右键点击,在弹出菜单中选择“插入Dialog”菜单项,系统自动在工程中添加默认对话框,可以按上文的方法设置新的对话框属性。

根据学生信息管理系统的功能要求,需要添加四种功能的相应对话框,如下图所示:

图七学生信息管理系统对话框

图八录入信息对话框

图九删除信息对话框

图十查找信息对话框

图十一修改信息对话框

3.对话框的设置

(1)为对话框创建类

程序主界面的对话框创建完成后,系统自动会为其创建类,此时程序的主界面就是由该类创建的一个对象,而在主界面的基础上添加新对话框后,系统不再自动为新对话框创建类,若要使用该对话框,就需要自行创建对应的类:

在新对话框中点击鼠标右键,在弹出菜单中选择“添加类”菜单项,打开“MFC添加类向导"

窗口,在“类名"

后的文本框中输入为新对话框所创建的对应类的类名.

图十二类的创建

在类创建完成后,可以看到在工程的文件视图中自动生成了头文件和源文件,分别包含了类的声明和实现。

(2)为对话框控件添加成员变量

在程序中对某一控件值进行修改,可以在对话框点击鼠标右键,在弹出菜单中选择“类向导"

菜单项,打开“类向导”窗口,在“类名"

下拉列表中选择一个对话框类,选中成员变量,此时下方的“成员变量”列表会列出该对话框中所有控件的ID,点击右侧的添加变量,给每一个成员变量添加变量。

在窗口左侧设置成员变量的访问权限,默认为“public”,文件路径为字符串类型的数据,因而要为其添加一个字符串类型的成员,“变量类型”选择“CString"

变量名通常以m_开头,“_"

后的第一个字符表示成员的数据类型。

图十三添加成员变量

(3)为对话框添加消息处理函数

通过上述步骤创建的对话框,其中的所有控件仍无法实现功能,若要其发挥作用,需要为对应控件添加消息处理函数.

在“类向导”窗口中的“类名”下拉列表中选择界面对应的类,窗口中部选择“命令"

选项卡,在下方的“对象ID"

列表中选择对象,在右侧“消息”列表中列出该按钮的默认支持的消息,其中“BN_CLICKED"

为单机按钮操作,将其选中,点击右侧的“添加处理程序”按钮,打开“添加成员函数”窗口,系统会根据按钮的ID自动为消息处理函数命名。

在“类向导”窗口下方的“成员函数”列表中选择刚刚添加过得函数,然后点击右侧的“编辑代码”状态进行代码编辑。

图十四添加处理程序

三、系统功能实现

1.类的定义

构造函数,功能为利用界面输入的信息初始化数据成员。

具体代码如下:

/************************源文件内容*****************************/

#include"

stdafx.h”

#include"

StudlnfoSys.h”

#include”Student.h”

//构造函数的实现

Student:

:

Student(CStringnumber,CStringname,CStringsex,CStringage,CStringmajor,CStringlevel)

this—>

number=number;

this—〉name=name;

this->

sex=sex;

age=age;

this-〉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;

//返回信息字符串

信息获取函数,功能为将所有信息添加在一个字符串中,并将该字符串返回.

/**************************源文件内容***************************/

stdafx。

h"

#include”StudlnfoSys.h"

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="

"

info.Format("

%s—%s-%s—%s—%s—%s-%s\n”,

this-〉level,this—>

number,this->

name,

this—>

sex,this-〉age,this—>

major,

m_sCorporation);

returninfo;

//返回信息字串

/**************************源文件内容***************************/

#include”Yyanjiu.h”

//构造函数的实现,调用父类构造函数

IMPLEMENT_DYNAMIC(Yyanjiu,CWnd)

Yyanjiu:

Yyanjiu(CStringnumber,CStringname,CStringsex,CStringage,CStringmajor,CStringlevel,CStringtutor,CStringtype):

Student(number,name,sex,age,major,level)

this->

m_sTutor=tutor;

m_sType=type;

CStringYyanjiu:

getInfo(){

CStringinfo="

”;

%s—%s—%s—%s—%s-%s-%s—%s\n"

level,this->

number,this->

sex,this-〉age,this-〉major,

m_sTutor,this—>

m_sType);

2.系统主模块

/**************************单击“浏览"

按*************************/

CString="

//定义全局变量,存放文件路径

voidCStudlnfoSysDlg:

OnBnClickedButtonFile()

C(TRUE,NULL,OFN_OVERWRITEPROMPT,

"

文本文件(*。

txt)|*。

txt|所有文件(*.*)|*.*”);

//定义选择文件的对话框

if(()==IDOK){//弹出选择文件的对话框

=();

//返回选择的文件名

m_sFile=;

//将文件名显示到文本框

UpdateData(FALSE);

//更新控件内容

FILE*fp;

//定义文件指针

fopen_s(&fp,,”r”);

//以只读方式打开文件

if(fp==NULL)//判断文件是否不存在

fopen_s(&fp,,"

w”);

//如果文件不存在,创建文件

fclose(fp);

//关闭文件

}

/**********************单击“查找信息”按钮***********************/

OnBnClickedButtonSearch()

CSearchDlg*gld=newCSearchDlg();

//创建查找信息对话框

dlg—>

DoModal();

//弹出查找信息对话框

/**********************单击“删除信息"

按钮***********************/

OnBnClickedButtonDelet()

CDeletDlg*gld=newCDeletDlg();

//创建删除信息对话框

dlg—〉DoModal();

//弹出删除信息

/**********************单击“修改信息”按钮***********************/

OnBnClickedButtonUpdate()

CUpdateDlg*gld=newCUpdateDlg();

//创建修改信息对话框

dlg—〉DoModal();

//弹出修改信息

/**********************单击“退出系统”按钮***********************/

voidCStudlnfoSysDlg:

OnBnClickedButtonQuit()

EndDialog(IDOK);

//关闭对话框

3.录入信息模块

/********************单击“本科生”单选按钮*********************/

voidCInDlg:

OnBnClickedRadioBenke()

GetDlgItem(IDC_EDIT_Corp)-〉EnableWindow(TRUE);

//设置社团输入位置为可用

GetDlgItem(IDC_EDIT_Tutor)—〉EnableWindow(FALSE);

//设置导师输入位置为禁用

GetDlgItem(IDC_EDIT_Type)—>

EnableWindow(FALSE);

//设置类型输入位置为禁用

/********************单击“研究生"

单选按钮*********************/

voidCInDlg:

OnBnClickedRadioYyanjiu()

GetDlgItem(IDC_EDIT_Corp)—>

EnableWindow(TRUE);

//设置社团输入位置为禁用

//设置导师输入位置为可用

GetDlgItem(IDC_EDIT_Type)->

//设置类型输入位置为可用

/*************************单击“确定"

按钮***********************/

#include”Benke。

h”

Yyanjiu.h"

#include〈iostream〉

#include〈fstream〉

usingnamespacestd;

externCString引入全局变量,获取主界面中的文件路径

OnBnClickedOk()

UpdateData(TRUE);

//更新窗口

CStringinfo="

”;

//定义字符串,用于储存学生信息

if(this-〉m_iStudType==0){//如果选中“本科生”

Benke*p=newBenke(//利用界面中输入的信息创建本科生对象)

this-〉m_sNumber,this—>

m_sName,this—〉m_sSex,

this—〉m_sAge,this—〉m_sMajor,"

本科生”,

this—>

m_sCorp);

info=p->

getInfo();

//保存本科生信息

if(this->

m_iStudType==1){//如果选中“研究生”

Yyanjiu*p=newYyanjiu(//利用界面中输入的信息创建研究生对象)

this-〉m_sNumber,this-〉m_sName,this-〉m_sSex,

this-〉m_sAge,this->

m_sMajor,”研究生”,

this-〉m_sTutor,this-〉m_sType);

//保存研究生信息

ofstreamout;

//写操作的文件类,需添加头文件iostream和fstream

//ios:

app表示以在末尾追加的方式写入文件

out.open(,ios:

app);

//打开文件

out.write(info,info。

GetLength());

//写入信息

out.close();

MessageBox("

信息录入完成"

);

//完成提示

CInDlg*dlg=newCInDlg();

//创建新的录入信息对话框

//弹出录入信息对话框

//关闭旧的对话框

4.查找信息模块

/*************************单击“查找”按钮***********************/

#include<

iostream〉

fstream>

string>

voidCSearchDlg:

OnBnClickedButton1()

UpdateData(TRUE);

stringinfo[6];

//定义字符串数组,存储读取的学生各项信息

ifstreamin;

//需添加头文件iostream和fsteream

in表示以只读方式打开文件

in。

open(,ios:

in);

//打开

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1