nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

Observerパターンについて

Observerとは、英語で観察者を意味します。 Observer パターンとは、状態の変化を観察することを目的としたものですが、どちらかというと「観察」よりも「通知」に重点の置かれたものになっています。 あるインスタンスの状態が変化した際に、そのインスタン…

Strategy Patternについて

[Duch.h] #include <iostream> using namespace std; //QuackBehavior インターフェース class QuackBehavior { public: virtual ~QuackBehavior() {} virtual void quack() const = 0; //純粋仮想関数(派生クラスに) }; //QuackBehaviorインターフェースを実装したQua</iostream>…

デザインパターン入門 (勉強するぞー)

HeadFirstデザインパターンの本のコードのサンプルは、GitHubにあります。 http://www.wickedlysmart.com/headfirstdesignpatterns/code.htmlgithub.com 以下の本を使ってこれから、学習を進めていきたいと思います。 どうぞよろしくお願いいたします。 Head…

Qtでcsvファイルに書き込む方法

Qt

QTextStreamを用いることで、csvファイルに保存することが可能です。 csvファイル保存の形式に合わせるため、データごとにカンマで区切ります。今回は、10個のデータごとに改行します。 今回使用するデータは、日本語文字列データを使用しました。 以下がコ…

Qt5で日本語文字列を扱おうとすると文字化けするので、その対処方法

Qt

文字列リテラルを QString へ変換する Qt5では文字列リテラルを QString へ変換するには主に以下のメソッドを使用可能。 QString::fromLatin1() Latin1(ISO-8859-1) として QString を作成 QString::fromLocal8Bit() 現在のロケールに合わせたコーデックを使…

ユーザー定義クラス(独自クラス)のリストをQDataStreamにセーブ・ロードする方法

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…

QSettingsを用いて、画面のサイズをセーブ・ロードしよう

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…

QSettingsクラスに、ユーザー定義クラス(独自クラス)の情報を格納する・読み出す方法について

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…

Qtで、ユーザー定義クラスのデータを保存する・読み出す方法 (Qt Designer使用)

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…

Qtで、ユーザー定義クラスのデータを保存する方法

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…

QtのQCombBoxの使い方

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…

Qtで、画像をLabelに埋め込む方法

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…

Qt Creator ショートカット

Qt

以下の環境で、便利なショートカットを記載します。 Qt Creator 4.3.1 Qt 5.9.1 Windows 便利なショートカット 実行 ⇒ 実行させるときに使用します。ただし、qmakeも一緒にされるわけではないため、注意 Ctrl + R ソース/フォームの切り替え ⇒ Qt Designerを…

Qt5 Designer学習

youtubeのこの動画の説明が非常にわかりやすいです。 英語ですが、動画で丁寧に説明しており、以下が丁寧に説明されています。 以下の動画は、Qt5 Designerを使用した内容となっています。 UIの配置方法 編集モード(Edit Mode)とデザインモードの変更方法 ww…

品質を向上させるために、テストクラスを記載しよう

このように記載すれば、製品のソースコードと、テストクラスのソースコードを分離できます。 #include "box.h" #include <climits> #include <cassert> #include <iostream> class Test { public: Test() { Run(); } static void Run() { // 正常ケース assert(Test(0,0,0,0)); // 異常ケ</iostream></cassert></climits>…

Qt Creator4.3 トラブルバスター

Qt

自分がQt Creator4.3を使用する際に直面した問題の対処方法について記録します。 エラー(LNK1158)が発生 <症状> fatal error LNK1158: cannot run ‘rc.exe’が発生する <解決策> C:\Program Files (x86)\Windows Kits\8.0\bin\x64 の rc.exe と rcdll.dll…

Qt SIGNALとSLOTについて

Qt

SIGNALの説明やSLOTの説明は、以下のサイトに記載してあります。 https://blog.qt.io/jp/2010/07/20/create-signals-and-slots-2/ connect 関数 connect(sender, SIGNAL(signal), receiver, SLOT(slot) ); sender : 信号が発生する部品のアドレスを渡す SIGN…

Qt5の学習

Qt

Qt学習方法について 現在は、Qt5での開発が主流になっています。 Qt5に関連する情報はまだ少ないです。 ドキュメントは現在ほどんど英語しかないため、英語のドキュメントを読むことは回避しにくいです。 以下、ドキュメント。 http://doc.qt.io/qt-5/ Qt Cr…

コードレビューで指摘していただいた箇所まとめ (C++編)

コードレビューで指摘していただいた箇所をまとめて記載したいと思います。 ヘッダ内では、極力他のヘッダをインクルードしないようにしましょう 2重インクルードや、循環参照(*1)を引き起こします クラス名、メソッド名、変数名をしっかり考えよう 例えば、…

コードレビューの観点まとめ

今回は、コードレビューの観点まとめについて、記載していきたいと思います。 <コードレビューでプラス事項> 誰がひきついでもわかりやすく、読みやすいコード 変数名や関数名が工夫されていてコメントが少なく読みやすいコード 変数のスコープが必要最低…

独自クラスをstd::vectorに格納する

std::vector に独自クラスを入れる場合、デフォルトコンストラクタとコピーコンストラクタが必要不可欠みたいです。 d.hatena.ne.jp コピーコンストラクタについては、このページに詳しく書かれています。 http://nobunaga.hatenablog.jp/entry/2016/07/03/2…

MFCで、ファイル選択ダイアログを学習する

MFCで、ファイル選択ダイアログを学習します。 開発環境は、Visual Studio 2015 Communityです。 ■単一選択ダイアログと複数選択ダイアログを作成します。 (1) ダイアログベースでプロジェクトを作成し、次のようなダイアログを作成します。 (2) エディット…

MFCアプリケーションの学習

MFCアプリケーションの学習をする必要が発生したため、記録します。 開発環境は、Visual Studio Community 2015です。 まずは、プロジェクト作成方法です。 ファイル⇒プロジェクトを選択し、MFCアプリケーションを選択します。プロジェクト名は、わかりにく…

自作split関数を用いて、標準入力を、読み出す

プログラムをメモします。 #include <vector> #include <iostream> #define BIG_BUFFERSIZE 1024 using namespace std; template <typename List> void split(const std::string& s, const std::string& delim, List& result) { result.clear(); using string = std::string; string::size_typ</typename></iostream></vector>…

C++で、stdinから文字列を読み込む

C++で、stdinから文字列を読み込む方法をメモします。 /////////////////////// // stdin input example // using cin.getline /////////////////////// #include <iostream> using namespace std; int main() { while(cin) { getline(cin, input_line); cout << input</iostream>…

C#でOfficeの予定表を確認したい。(準備編)

Visual Studio Communityで、C# Windows Formのプロジェクトを作成します。 C# Windows FormからOutlookにアクセスするためには、ライブラリの追加が必要です。 Microsoft.Office.Core Microsoft.Office.Interop.Outlook もし、Officeのインストールを実施し…

strtok_sで文字列を分割する

文字列の分割には、strtokだとVisualStudioのコンパイラでエラーとなるので、strtok_sを使用します。 #include <stdio.h> #include <string> //strtok関数用 #include <stdlib.h> //strtoul関数用 int main(void) { char ch1; // 変換後の取得値 char *p1, *p2; // char型ポインタワーク</stdlib.h></string></stdio.h>…

Visual Studio Community 2015で、DxLibを使って、シューティングゲームを作りたい!!

以下のSTGゲーム勉強は、サイトがとてもおすすめです。 龍神録プログラミングの館 Microsoft Visual Studio Community 2015の環境でのDxLibの使用方法は以下のサイトをご確認ください。 DXライブラリ置き場 使い方説明 現在、サイトを用いて学習中。

JavaScriptの学習

JavaScriptの学習 とてもよいページを見つけたので、紹介します。 JavaScript の 慣例的な記述方法とマナーが記載されています。 blogs.msdn.microsoft.com

MongoDBインストール方法

はじめに MongoDBのインストール方法について、全くわからなかったため、とてもわかりやすい学習ページを探してきました。 MongoDBのインストール blog.codecamp.jp

node, npm, node_staticを用いて、とっても簡単に画像を表示しましょう

はじめに ソースコードはGitHubに上げました。 github.com ソースコードの動かし方は、README.mdに記載しましたので、よろしければご確認ください。 環境 node v6.3.0 npm v3.10.3 Visual Studio Code ディレクトリ構成 説明 index.jsのソースコードのみで、…

Node.js + Expressで簡単なWebアプリケーションをVisual Sutdio Codeで作ります

はじめに ソースコードはGitHubに上げました。 github.com ソースコードの動かし方は、README.mdに記載しましたので、よろしければご確認ください。 環境 node v6.3.0 npm v3.10.3 Visual Studio Code Expressとは Node.js 向けの高速で最小限の Web フレー…

AngularJS、Node.js、Express4、MongoDBを使ったサンプルサイト

AngularJS、Node.js、Express4、MongoDBを使ったサンプルサイトなのですが、 とてもわかりやすいです。 このプログラムを参考にするといいと思います。 GitHub - nissato-hitoshi/myapp

electron学習

まずは、Electron Documentationを読みましょう。 electron.atom.io このページがわかりやすそう。 heimdal.hatenablog.com

仮想マシンを追加する

VirualBoxとVagrantのインストールを行い、仮想マシンのインストールを行います Virtual Box Vagrant この本がおすすめ。 JS+Node.jsによる Webクローラー/ネットエージェント開発テクニック

Knockout Observable Array 参考

次のページがとても参考になります。 nulab-inc.com

node.js + express4 学習

node.js + express4 学習を行います。 var http = require('http'); var fs = require('fs'); var url = require('url'); var server = http.createServer(); server.on('request', doRequest); server.listen(1337); function doRequest(req, res) { var pa…

node.js + express4の学習

下記のサイトがおすすめです。 yutapon.hatenablog.com

Expressコマンドを実行して、expressアプリケーションを作成しましょう

Expressコマンドを実行して、expressアプリケーションを作成しましょう このページでは、expressコマンドを用いて、expressアプリケーションを作成する方法について説明します。 なお、nodeとnpmはすでにインストール済みであることが条件です。 私の環境で…

CSSについて

CSSのトピックを書いていきます。 ページ内で複数同じスタイルを定義する場合は、クラスセレクタの使用が有効です。 書き方はピリオド + 半角文字です。 .parent { display:inline-block; } 要素を横並び 要素を横並びにする方法は、display:inline-blockが…

Knockout Custom ComponentをTypeScriptで記述

実行イメージ 注意ポイント Windowオブジェクトのonloadイベントハンドラにおいて、 applyBindings関数呼び出し前に、先にComponentを登録しておきましょう。 (以下の例では、"name-editor" という名前のComponent) なお、Knockout.jsのapplyBindings関数と…

Knockout Tutorial Creating custom bindings

はじめに Knockoutの公式ページ[http://knockoutjs.com/] のTutorialであるCreating custom bindingsをTypeScriptを使って記載しています。 また、ソースコードは、GitHubにアップロードしております。 GitHub - a143321/Knockout-Tutorial-Creating-custom-…

KnockoutComputedプロパティをJavaScript記載からTypeScript記載に変換!2

はじめに Knockoutの公式ページ[http://knockoutjs.com/] のTutorialであるWorking with Lists and CollectionsをTypeScriptを使って記載しています。ソースコードは、GitHubにアップしています。 https://github.com/a143321/Tutorial_Knockout_TypeScript …

KnockoutComputedプロパティをJavaScript記載からTypeScript記載に変換!

はじめに Knockoutの公式ページ[http://knockoutjs.com/] のTutorialであるWorking with Lists and CollectionsをTypeScriptを使って記載しています。ソースコードは、GitHubにアップしています。 https://github.com/a143321/Tutorial_Knockout_TypeScript …

Knockout TypeScript thisの扱いに注意!

thisの扱いに要注意!! removeSeatメソッドの箇所で、以下のエラーメッセージが表示。 app.ts:42 Uncaught TypeError: Cannot read property 'remove' of undefined removeSeat = (seat: SeatReservation) => { this.seats.remove(seat); } 原因 clickイベ…

Visual Studio Codeを用いたTypeScriptのコンパイル方法について (npm使用)

Visual Studio Codeをインストールしましょう まずはホームページからVisual Studio Codeをダウンロードしてきます。 そして、以下のように、エクスプローラー関連のチェックボックスにチェックを入れてインストールしてください。 次に、適当なフォルダ[例]…

Knockout TutorialのWorking with Lists and CollectionsをTypescriptで記述!

Knockoutの公式ページ[http://knockoutjs.com/] のTutorialであるWorking with Lists and CollectionsをTypeScriptを使って記載したコードとなります。コードは以下のGitを参照ください。 https://github.com/a143321/Tutorial_Knockout_TypeScript zipファ…

TypeScript学習するよ。

TypeScript学習するよ。 ・TypeScript + KnockOutのSampleプログラムです。 https://github.com/JoshuaKGoldberg/Todo-Knockout-TypeScript