MFC(c++大作业)基本对话框的使用(求平均成绩)
OOPEx2Dlg.cpp
// OOPEx2Dlg.cpp : 实现文件
//
#include "stdafx.h"
#include "OOPEx2.h"
#include "OOPEx2Dlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_ABOUTBOX };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
// COOPEx2Dlg 对话框
COOPEx2Dlg::COOPEx2Dlg(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_OOPEX2_DIALOG, pParent)
, m_Name(_T(""))
, m_Sid(_T(""))
, m_Value(_T(""))
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void COOPEx2Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_ListCon);
DDX_Text(pDX, IDC_EDIT1, m_Name);
DDX_Text(pDX, IDC_EDIT2, m_Sid);
DDX_Text(pDX, IDC_EDIT3, m_Value);
}
BEGIN_MESSAGE_MAP(COOPEx2Dlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON5, &COOPEx2Dlg::OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON2, &COOPEx2Dlg::OnBnClickedButton2)
ON_LBN_SELCHANGE(IDC_LIST1, &COOPEx2Dlg::OnLbnSelchangeList1)
ON_BN_CLICKED(IDC_BUTTON4, &COOPEx2Dlg::OnBnClickedButton4)
ON_BN_CLICKED(IDC_BUTTON3, &COOPEx2Dlg::OnBnClickedButton3)
ON_BN_CLICKED(IDC_BUTTON6, &COOPEx2Dlg::OnBnClickedButton6)
ON_BN_CLICKED(IDC_BUTTON1, &COOPEx2Dlg::OnBnClickedButton1)
END_MESSAGE_MAP()
// COOPEx2Dlg 消息处理程序
BOOL COOPEx2Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void COOPEx2Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx::OnSysCommand(nID, lParam);
}
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void COOPEx2Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR COOPEx2Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void COOPEx2Dlg::OnLbnSelchangeList1()
{
// TODO: 在此添加控件通知处理程序代码
m_Listid = this->m_ListCon.GetCurSel();
}
void COOPEx2Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
this->m_ListCon.DeleteString(this->m_Listid);
this->count--;
}
void COOPEx2Dlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
CString str;
str = str + "姓名:" + m_Name + ", 学号:" + m_Sid + ", 成绩:" + this->m_Value;
this->m_ListCon.AddString(str);
this->count++;
}
void COOPEx2Dlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
CString info, score, notice;
int len, index;
m_ListCon.GetText(m_Listid, info); //获取m_Listid行字符串
len = info.GetLength(); //获取字符串的长度
index = info.Find(_T("成绩:")); //成绩所在字符串位置的索引
score = info.Right(len - index + 1); // 获取成绩:***
notice = CString("成绩:") + score;
MessageBox(score, MB_OK);
}
void COOPEx2Dlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
this->m_ListCon.DeleteString(this->m_Listid);
this->count--;
}
void COOPEx2Dlg::OnBnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码;
UpdateData(true);
CString str;
str = CString("姓名:") + m_Name + CString(", 学号:") + m_Sid + CString(", 成绩:") + this->m_Value;
this->m_ListCon.AddString(str);
this->count++;
}
void COOPEx2Dlg::OnBnClickedButton6()
{
// TODO: 在此添加控件通知处理程序代码
CString avgScore, info;
CString notice;
double score = 0, avg = 0;
int len = 0, index;
for (int i = 0; i < this->count; i++)
{
m_ListCon.GetText(i, info);
index = info.Find(_T("成绩:"));
len = info.GetLength();
score += atof(info.Right(len - index + 1 - 7));
}
//avg = score / this->count;
avgScore.Format(_T("%.2f"), score / this->count);
notice = CString("平均成绩:") + avgScore;
MessageBox(notice, MB_OK);
MFC(c++大作业)基本对话框的使用(求平均成绩)的更多相关文章
- <JAVA - 大作业(1)文本编辑器 >
<JAVA - 大作业(1)文本编辑器 > 背景 JAVA上机大作业:qq / 代码评价系统 第一次上机主题是练习JAVA自带的GUI图形化编程 目的:实现一个跟window10记事本界面 ...
- js大作业(0)
DAY1:在看HTML5游戏开发实战.手写了一遍乒乓球.自己玩了半小时.实话讲,和本科学的MFC差别不大.通过setInterval函数获取用户的输入 从而允许多用户操作.parseInt把字符串化为 ...
- 数据库大作业--由python+flask
这个是项目一来是数据库大作业,另一方面也算是再对falsk和python熟悉下,好久不用会忘很快. 界面相比上一个项目好看很多,不过因为时间紧加上只有我一个人写,所以有很多地方逻辑写的比较繁琐,如果是 ...
- 程设大作业xjb写——魔方复原
鸽了那么久总算期中过[爆]去[炸]了...该是时候写写大作业了 [总不能丢给他们不会写的来做吧 一.三阶魔方的几个基本定义 ↑就像这样,可以定义面的称呼:上U下D左L右R前F后B UD之间的叫E,LR ...
- 大作业NABC分析结果
大作业NABC分析结果 这次的大作业计划制作一款关于七巧板的游戏软件.关于编写的APP的NABC需求分析: N:需求 ,本款软件主要面向一些在校的大学生,他们在校空闲时间比较多,而且热衷于一些益智类游 ...
- 【MFC学习笔记-作业9-基于单击响应的计算平均成绩】【】
要求..单击出现 一个输入成绩的框,点确定后,计算平均成绩 意义很大~ 完成对话框 再写个鼠标点击的响应部分 鼠标点击的响应部分为难点.... void CWj1401_0302140107_9V ...
- [留念贴] C#开发技术期末大作业——星月之痕
明天就要去上海大学参加 2015赛季 ACM/ICPC最后一场比赛 —— EC-Final,在这之前,顺利地把期末大作业赶出来了. 在这种期末大作业10个人里面有9个是从网上下载的国内计算机水平五六流 ...
- Hadoop综合大作业
Hadoop综合大作业 要求: 用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计. 用Hive对爬虫大作业产生的csv文件进行数据分析 1. 用Hive对爬虫大作业产 ...
- 爬虫综合大作业——网易云音乐爬虫 & 数据可视化分析
作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3075 爬虫综合大作业 选择一个热点或者你感兴趣的主题. 选择爬取的对象 ...
随机推荐
- 孪生网络入门(下) Siamese Net分类服装MNIST数据集(pytorch)
主题列表:juejin, github, smartblue, cyanosis, channing-cyan, fancy, hydrogen, condensed-night-purple, gr ...
- Android基础02
初识安卓的另一个重要的组件---广播. 1.广播的分类 标准广播:是一种完全异步执行的广播,在广播发出之后,所有的广播 接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言.这 ...
- burp添加插件
困扰了我很长时间的验证码,虽然迫使我早就找到了相关文章,但是由于一些原因,就推迟了验证码相关的东西.今天趁着晚上,好好的安装一下 下载地址 https://github.com/bit4woo/reC ...
- mysql 列转行 动态写法
-- 列转行动态sql -- 测试表DROP TABLE IF EXISTS `tb_score`; CREATE TABLE `tb_score` ( `id` int(11) NOT NULL A ...
- 算法——1~n 整数中 1 出现的次数
输入一个整数 n ,求1-n这n个整数的十进制表示中1出现的次数. 例如,输入12,1-12这些整数中包含1 的数字有1.10.11和12,1一共出现了5次. leetcode 解题思路:依次遍历每一 ...
- tensorflow学习笔记——DenseNet
完整代码及其数据,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/DeepLearningNote 这里结合网络的资料和De ...
- oracle 11g修改归档日志目录及大小
1.查看当前归档日志目录 SQL> show parameter recovery NAME TYPE VALUE ------------------------------------ -- ...
- Java中的命名规范。
类:所有单词的首字母大写,如:TestJava. 方法:第1个单词的首字母小写,之后每个单词的首字母大写,如:getInfo(). 属性:第1个单词的首字母小写,之后每个单词的首字母大写,如:stud ...
- python 无损压缩照片,支持批量压缩,支持保留照片信息
由于云盘空间有限,照片尺寸也是很大,所以写个Python程序压缩一下照片,腾出一些云盘空间 1.批量压缩照片 新建 photo_compress.py 代码如下 1 # -*- coding: utf ...
- 最全Python正则表达式来袭
前言 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成 ...