ざざ虫ロゴ


ひまわり入門

日本語プログラミング言語

ひまわり


▲ひまわり目次へ戻る


 データベース(成績データ処理)プログラムを作る

○ 成績データ入力・保存・編集メニューの作成

成績データ入力・保存・編集メニューを作成する
 以下に、関連プログラム、関連命令を記述する。
機能の内容
ひまわり参考プログラム
7_3_05.hmw
CSVファイルの読込み
 エクセルで作ったCSVファイルを読む


商品グリッドを、作る。 デスクトップのパス&『test.csv』を、読む。 商品グリッドの、アイテムは、それ。
9_2_21.hmw
表データの修正
 表グリッド部品の内容を編集できるようにする
 ダブルクリックした時のセルの行列位置を取得する












価格グリッドを、作る。 その、レイアウトは、「全体」。 その、アイテムは、「品名, 値段 鉛筆,70円 消しゴム,90円 ハサミ,300円」。 その、編集は、オン。 その、ダブルクリックした時は(   列は、価格グリッドの、列。   行は、価格グリッドの、行。   「({列},{行})を編集中」と、言う。 ) 全データ取得ボタンを、作る。 その、イベントは(   (価格グリッドの、テキスト)を、言う。 )
ひまわり関連
 表グリッドの編集には、以下の命令を使用する。 なお、ひまわりは、表配列における編集は列に関する命令が多く、 表配列の必要に応じて行・列入替を行いのがこつである。 また、これら作業の後には、作業結果を反映させる必要がある。

ひまわりの1次元配列に関する命令
要素数     :(配列)の、要素数
ソート     :(配列)を、ソート
数値ソート   :(配列)を、数値ソート
逆にする    :(配列)を、逆にする
配列シャッフル :(配列)を、配列シャッフル
行挿入     :(配列)の、(番号)行目へ、(データ)を、行挿入
行削除     :(配列)の、(番号)行目へ、(データ)を、行削除
配列合計値   :(配列)の、配列合計値
配列平均値   :(配列)の、配列平均値
配列分散値   :(配列)の、配列分散値
標準偏差値   :(配列)の、標準偏差値
標準最大値   :(配列)の、配列最大値
標準最小値   :(配列)の、配列最小値
ひまわりの2次元配列に関する命令
表行数、表列数 :(配列)の、表行数。 (配列)の、表列数。
表最大値    :(配列)の、(列)列目の、表最大値
表最小値    :(配列)の、(列)列目の、表最小値
表平均値    :(配列)の、(列)列目の、表平均値
表合計     :(配列)の、(列)列目の、表合計
表ソート    :(配列)の、(列)列目を、表ソート
表数値ソート  :(配列)の、(列)列目を、表数値ソート
表反転     :(配列)の、(列)列目を、表反転
表列挿入    :(配列)の、(列)列目へ、表列挿入
表列削除    :(配列)の、(列)列目を、表列削除
表列コピー   :(配列)の、(列)列目を、表列コピー
表列コ貼付け  :(配列)の、(列)列目に、表列貼付け ただし、される。
表行列交換   :(配列)の、表行列交換 ← 表の作業は列に対して行われるため、行列入替の必要発生
タブ区切りに変換  :(配列)を、タブ区切りに変換
カンマ区切りに変換 :(配列)を、カンマ区切りに変換


 成績データをグラフ表示する

○ グラフ表示プログラムの作成

表示母艦の大きさ、グラフィック操作による文字、図形表示プログラムを作成する
 なお、グラフィックにおける位置座標は、左上が(0,0)、右下が(最大X,最大Y)である。
機能の内容
ひまわり参考プログラム
6_1_03.hmw
' 母艦の大きさを変更
母艦の、幅は、○○
母艦の、高さは、○○





' ○母艦について ' --------------------------------------------- ' 母艦の大きさを変更 母艦の、幅は、300 母艦の、高さは、300 ' デスクトップの中央へ移動 母艦を、中央へ移動。
6_1_01.hmw
' 文字の表示
(○○,○○)へ、移動。
文字色は、○○色。
文字サイズは、○○
文字書体は、『○○』
「○○」と、表示。


' ○文字の表示 ' --------------------------------------------- (200,250)へ、移動。 文字色は、オレンジ色。 文字サイズは、72 文字書体は、『MS 明朝』 「ひまわり」と、表示。
6_1_02.hmw
' 画面をクリアする
画面クリア。




' ○画面をクリアする ' --------------------------------------------- 「この文字をクリアします。」と、表示。 3秒、待つ。 画面クリア。
6_1_05.hmw
' 図形を描く
塗り色は、○○色。
(○○,○○)から、(○○,○○)へ、○○形。
' 線で三角を描く
( ○○, ○○)から、(○○,○○)へ、線。
( ○○, ○○)から、(○○,○○)へ、線。
( ○○, ○○)から、(○○,○○)へ、線。








' ○図形を描く ' --------------------------------------------- ' 母艦の大きさを変更 母艦の、高さは、300 母艦の、幅は、300 ' 図形表示 塗り色は、黄色。 ( 0, 0)から、(150,150)へ、円形。 (150,150)から、(300,300)へ、四角形。 ' 線で三角を描く ( 75, 75)から、(225,225)へ、線。 (225,225)から、( 75,225)へ、線。 ( 75,225)から、( 75, 75)へ、線。
6_1_07.hmw
' 多角形
「○○, ○○
○○, ○○
   :
○○, ○○」の、多角形。



' ○多角形 ' --------------------------------------------- 母艦の、幅は、300 母艦の、高さは、300 「150, 10 290, 290 10, 290」の、多角形。
6_1_08.hmw
' 繰り返し線を描く
ペン色は、○○色。
ペン太さは、○○
W=○○ ' 枠の大きさ
Yを、○○から、○○まで、繰り返す(
 YY = Y × W
  (○○, YY)から、(○○, YY)へ、線。
)
Xを、○○から、○○まで、繰り返す(
 XX = X × W
 (XX, ○○)から、(XX, ○○)へ、線。
 ○○秒、待つ。
)


' ○繰り返し線を描く ' --------------------------------------------- ペン色は、赤色。 ペン太さは、3 W=50 ' 枠の大きさ Yを、0から、8まで、繰り返す( YY = Y × W (0, YY)から、(640, YY)へ、線。 ) Xを、0から、12まで、繰り返す( XX = X × W (XX, 0)から、(XX, 400)へ、線。  0.5秒、待つ。) )
ひまわり関連


 最終課題
データベースの作成
 成績処理プログラムを作成し、「プログラム」と、それを説明する「Readme.txt」を提出しなさい。
プログラムの処理内容として、成績データの入力・保存、各種グラフによる表示を機能に入れなさい。 なお、扱うデータは以下の表の通り(成績表.csv)であり、生徒数は20人まで、 行項目は、(出席)番号、氏名、フリガナ、国語、数学、理科、社会、英語、合計、平均とする。

1) プログラム作成の手順とポイントは、以下の通り。
@ データ入力・保存・編集、成績処理(集計処理)、グラフ表示としての機能を考える。
A メニューと、表・グラフ配置を設計する。
B データ入力、読込、保存、終了メニューを記述する。
C データ行の編集(挿入、削除など)メニューを記述する。
D 成績処理(集計処理)メニューを記述する。
  縦・横方向の合計や平均値計算の処理です。入力時には5科目の点数のみ入力され、成績処理にて
  合計・平均値が計算されると考えてください。
E 成績を評価する各種グラフを記述する。
  生徒個人、科目それぞれについての傾向を示すグラフをいくつか考え、表示する。
  グラフ枠は格子表示、グラフの様式は棒グラフのみにすると、設計は比較的簡単である。
F プログラム記述に際し、コメント文にて作業内容を説明すること。

2) Readme.txtに記述する内容は、以下の通り。
@ はじめに プログラムの目的など記述。
A プログラムの概要 プログラムで行う機能、内容の説明など記述。
B 基本操作 プログラムの使用方法など記述。
C 開発履歴 プログラム開発の記録、いつ、どのような作業等行ったか記録。
D おわりに

 添付した「Readme.txt」を例に記述する。

 表・グラフ処理記述のための補足資料
表 成績データ
番号 氏  名 フリガナ 国語 数学 理科 社会 英語 合計 平均
1 小田英明 オダ ヒデアキ 75 68 48 57 65 313 62.6
2 加藤光男 カトウ ミツオ 51 45 59 69 40 264 52.8
3 工藤勝則 クドウ カツノリ 55 68 82 80 70 355 71
4 後藤正 ゴトウ タダシ 66 70 68 45 68 317 63.4
5 坂井勇 サカイ イサム 50 78 67 75 60 330 66
6 中村正昭 ナカムラ マサアキ 58 45 68 72 56 299 59.8
7 長谷川正 ハセガワ タダシ 54 42 45 66 30 237 47.4
8 本多達也 ホンダ タツヤ 50 75 60 67 55 307 61.4
9 武藤恒雄 ムトウ ツネオ 75 78 65 78 60 356 71.2
10 和田幸二 ワダ コウジ 45 58 45 60 62 270 54
11 井上真紀 イノウエ マキ 67 65 78 86 57 353 70.6
12 工藤洋子 クドウ ヨウコ 66 40 58 66 72 302 60.4
13 佐藤圭子 サトウ ケイコ 55 60 78 40 45 278 55.6
14 進藤ゆかり シンドウ ユカリ 30 38 36 48 15 167 33.4
15 高橋久美 タカハシ クミ 45 62 40 60 45 252 50.4
16 野村慶子 ノムラ ケイコ  68 58 65 82 74 347 69.4
17 服部伸子 ハットリ ノブコ 75 86 78 96 100 435 87
18 本田道子 ホンダ ミチコ 78 60 75 85 74 372 74.4
19 松本伸枝 マツモト ノブエ 52 50 40 78 35 255 51
20 村上静香 ムラカミ シズカ 68 75 78 86 62 369 73.8
  平均   59.2 61.1 61.7 69.8 57.3 308.9 61.8
回答


 終了課題 プログラム参考例

○ グラフデータの編集と表示

成績表グリッドを、作る。 その、編集は、オン。 '表グリッドの編集モード設定 ファイルメニューを、作る。 // 開くメニュー // // ファイル選択ダイアログから、読み込む。 開くメニューを、メニュー追加。 その、イベントは(  成績表は、成績表グリッドの、テキスト。 '成績表グリッドの内容を、成績表に転記  「.csv」の、読込ファイル選択して、ファイル名に、入れる。  もし、ファイル名が、「」ならば、戻る。  ファイル名を、読む。  成績表グリッドの、アイテムは、それ。 '読込データを成績表グリッドに表示  成績表は、成績表グリッドの、テキスト。 ) 表示メニューを、作る。 '科目ごとの氏名と点数 科目メニューを、メニュー追加。 その、イベントは(  列番は、3  成績表#列番#0を、表示。  Yを、1から、20まで、繰り返す(   成績表#1#Yを、表示。   成績表#列番#Yを、表示。   成績表#列番#Yを、数値として扱う。 '点数データを数値として扱う   比率は、成績表#列番#Y/100  ) ) '氏名ごとの科目と点数 氏名メニューを、メニュー追加。 その、イベントは(  氏名は、1  成績表#1#氏名を、表示。  Xを、1から、5まで、繰り返す(   成績表#(X+2)#0を、表示。   成績表#(X+2)#氏名を、表示。   成績表#(X+2)#氏名を、数値として扱う。 '点数データを数値として扱う   比率は、成績表#(X+2)#氏名/100  ) )

○ 横棒グラフの書き方

'グラフの枠 起点Xは、100 起点Yは、100 窓幅Xは、200 窓幅Yは、200 枠数Xは、5 枠数Yは、5 ペン色は、黒色。 ペン太さは、1。 塗り色は、白色。 (起点X,起点Y)から、(起点X+窓幅X,起点Y+窓幅Y)へ、四角形。 ペン色は、青色。 ペン太さは、1。 XW=(窓幅X)/枠数X 'X軸枠線描画 Xを、0から、枠数Xまで、繰り返す(  XX=X×XW+起点X  (XX,起点Y)から、(XX,起点Y+窓幅Y)へ、線。 ) YW=(窓幅Y)/枠数Y 'Y軸枠線描画 Yを、0から、枠数Yまで、繰り返す(  YY=Y×YW+起点Y  (起点X,YY)から、(起点X+窓幅X,YY)へ、線。 ) '横棒グラフ 縦軸Xは、40 縦軸Yは、25 横軸Xは、15 横軸Yは、10 満点は、100 書式=「%3d」 XW=(窓幅X)/枠数X 'X軸枠線描画 Xを、0から、枠数Xまで、繰り返す(  XX=X×XW+起点X  (XX-横軸X,起点Y+窓幅Y+横軸Y)へ、移動。  点数は、X×満点/枠数X  点数を、書式の、指定形式に変換  それを、表示。 ) YW=(窓幅Y)/枠数Y 'Y軸枠線描画 Yを、1から、枠数Yまで、繰り返す(  YY=Y×YW+起点Y  (起点X-縦軸X,YY-縦軸Y)へ、移動。  「○○」と、表示。 ) 縦棒Xは、窓幅X/枠数X×(1/4) 棒幅Xは、窓幅X/枠数X×(2/4) 横棒Yは、窓幅Y/枠数Y×(3/4) 棒幅Yは、窓幅Y/枠数Y×(2/4) ペン色は、緑色。 塗り色は、緑色。 YW=(窓幅Y)/枠数Y Yを、1から、枠数Xまで、繰り返す(  点数は、60  XXは、窓幅X×点数/満点  XXは、起点X+XX  YY=Y×YW+起点Y  (起点X,YY-横棒Y)から、(XX,YY-横棒Y+棒幅Y)へ、四角形。 )

○ 縦棒グラフの書き方

'グラフの枠 起点Xは、100 起点Yは、100 窓幅Xは、200 窓幅Yは、200 枠数Xは、5 枠数Yは、5 ペン色は、黒色。 ペン太さは、1。 塗り色は、白色。 (起点X,起点Y)から、(起点X+窓幅X,起点Y+窓幅Y)へ、四角形。 ペン色は、青色。 ペン太さは、1。 XW=(窓幅X)/枠数X 'X軸枠線描画 Xを、0から、枠数Xまで、繰り返す(  XX=X×XW+起点X  (XX,起点Y)から、(XX,起点Y+窓幅Y)へ、線。 ) YW=(窓幅Y)/枠数Y 'Y軸枠線描画 Yを、0から、枠数Yまで、繰り返す(  YY=Y×YW+起点Y  (起点X,YY)から、(起点X+窓幅X,YY)へ、線。 ) '縦棒グラフ 縦軸Xは、40 縦軸Yは、10 横軸Xは、5 横軸Yは、10 満点は、100 書式=「%3d」 XW=(窓幅X)/枠数X 'X軸枠線描画 Xを、1から、枠数Xまで、繰り返す(  XX=(X-1)×XW+起点X  (XX+横軸X,起点Y+窓幅Y+横軸Y)へ、移動。  「○○」と、表示。 ) YW=(窓幅Y)/枠数Y 'Y軸枠線描画 Yを、0から、枠数Yまで、繰り返す(  YY=(窓幅Y-Y×YW)+起点Y  (起点X-縦軸X,YY-縦軸Y)へ、移動。  点数は、Y×満点/枠数Y  点数を、書式の、指定形式に変換  それを、表示。 ) 縦棒Xは、窓幅X/枠数X×(1/4) 棒幅Xは、窓幅X/枠数X×(2/4) 横棒Xは、窓幅Y/枠数Y×(1/4) 棒幅Yは、窓幅Y/枠数Y×(2/4) ペン色は、緑色。 塗り色は、緑色。 XW=(窓幅X)/枠数X Xを、1から、枠数Xまで、繰り返す(  点数は、60  YYは、窓幅Y×点数/満点  YYは、起点Y+窓幅Y-YY  XX=(X-1)×XW+起点X  (XX+縦棒X,起点Y+窓幅Y)から、(XX+縦棒X+棒幅X,YY)へ、四角形。 )


▲ひまわり目次へ戻る


このホームページはLightiningHTMLで作成しました。


Copyrights(c) 2000 ザザ虫. All rights reserved.