Commit ddd0f8c8037c053eab49c52298b1c5156ef1a393

Authored by r-ujihara
0 parents

学習アプリ初回登録

Showing 93 changed files with 4783 additions and 0 deletions

Too many changes to show.

To preserve performance only 93 of 93+ files are displayed.

  1 +# EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs
  2 +# editorconfig.org
  3 +
  4 +root = true
  5 +
  6 +[*]
  7 +indent_style = space
  8 +indent_size = 2
  9 +
  10 +# We recommend you to keep these unchanged
  11 +end_of_line = lf
  12 +charset = utf-8
  13 +trim_trailing_whitespace = true
  14 +insert_final_newline = true
  15 +
  16 +[*.md]
  17 +trim_trailing_whitespace = false
\ No newline at end of file
... ...
  1 +# Specifies intentionally untracked files to ignore when using Git
  2 +# http://git-scm.com/docs/gitignore
  3 +
  4 +*~
  5 +*.sw[mnpcod]
  6 +*.log
  7 +*.tmp
  8 +*.tmp.*
  9 +log.txt
  10 +*.sublime-project
  11 +*.sublime-workspace
  12 +.vscode/
  13 +npm-debug.log*
  14 +
  15 +.idea/
  16 +.sass-cache/
  17 +.tmp/
  18 +.versions/
  19 +coverage/
  20 +dist/
  21 +node_modules/
  22 +tmp/
  23 +temp/
  24 +hooks/
  25 +platforms/
  26 +plugins/
  27 +plugins/android.json
  28 +plugins/ios.json
  29 +www/
  30 +$RECYCLE.BIN/
  31 +
  32 +.DS_Store
  33 +Thumbs.db
  34 +UserInterfaceState.xcuserstate
... ...
  1 +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2 +<widget id="jp.co.media_tek.workbook.scienceApp" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
  3 + <name>中学校理科問題集</name>
  4 + <description>An awesome Ionic/Cordova app.</description>
  5 + <author email="hi@ionicframework" href="http://ionicframework.com/">Ionic Framework Team</author>
  6 + <content src="index.html"/>
  7 + <access origin="*"/>
  8 + <allow-navigation href="http://ionic.local/*"/>
  9 + <allow-intent href="http://*/*"/>
  10 + <allow-intent href="https://*/*"/>
  11 + <allow-intent href="tel:*"/>
  12 + <allow-intent href="sms:*"/>
  13 + <allow-intent href="mailto:*"/>
  14 + <allow-intent href="geo:*"/>
  15 + <platform name="android">
  16 + <allow-intent href="market:*"/>
  17 + <icon src="resources\android\icon\drawable-ldpi-icon.png" density="ldpi"/>
  18 + <icon src="resources\android\icon\drawable-mdpi-icon.png" density="mdpi"/>
  19 + <icon src="resources\android\icon\drawable-hdpi-icon.png" density="hdpi"/>
  20 + <icon src="resources\android\icon\drawable-xhdpi-icon.png" density="xhdpi"/>
  21 + <icon src="resources\android\icon\drawable-xxhdpi-icon.png" density="xxhdpi"/>
  22 + <icon src="resources\android\icon\drawable-xxxhdpi-icon.png" density="xxxhdpi"/>
  23 + <splash src="resources\android\splash\drawable-land-ldpi-screen.png" density="land-ldpi"/>
  24 + <splash src="resources\android\splash\drawable-land-mdpi-screen.png" density="land-mdpi"/>
  25 + <splash src="resources\android\splash\drawable-land-hdpi-screen.png" density="land-hdpi"/>
  26 + <splash src="resources\android\splash\drawable-land-xhdpi-screen.png" density="land-xhdpi"/>
  27 + <splash src="resources\android\splash\drawable-land-xxhdpi-screen.png" density="land-xxhdpi"/>
  28 + <splash src="resources\android\splash\drawable-land-xxxhdpi-screen.png" density="land-xxxhdpi"/>
  29 + <splash src="resources\android\splash\drawable-port-ldpi-screen.png" density="port-ldpi"/>
  30 + <splash src="resources\android\splash\drawable-port-mdpi-screen.png" density="port-mdpi"/>
  31 + <splash src="resources\android\splash\drawable-port-hdpi-screen.png" density="port-hdpi"/>
  32 + <splash src="resources\android\splash\drawable-port-xhdpi-screen.png" density="port-xhdpi"/>
  33 + <splash src="resources\android\splash\drawable-port-xxhdpi-screen.png" density="port-xxhdpi"/>
  34 + <splash src="resources\android\splash\drawable-port-xxxhdpi-screen.png" density="port-xxxhdpi"/>
  35 + </platform>
  36 + <platform name="ios">
  37 + <allow-intent href="itms:*"/>
  38 + <allow-intent href="itms-apps:*"/>
  39 + </platform>
  40 + <preference name="webviewbounce" value="false"/>
  41 + <preference name="UIWebViewBounce" value="false"/>
  42 + <preference name="DisallowOverscroll" value="true"/>
  43 + <preference name="android-minSdkVersion" value="16"/>
  44 + <preference name="BackupWebStorage" value="none"/>
  45 + <preference name="SplashMaintainAspectRatio" value="true"/>
  46 + <preference name="FadeSplashScreenDuration" value="300"/>
  47 + <preference name="SplashShowOnlyFirstTime" value="false"/>
  48 + <preference name="SplashScreen" value="screen"/>
  49 + <preference name="SplashScreenDelay" value="3000"/>
  50 + <feature name="StatusBar">
  51 + <param name="ios-package" onload="true" value="CDVStatusBar"/>
  52 + </feature>
  53 + <plugin name="ionic-plugin-keyboard" spec="~2.2.1"/>
  54 + <plugin name="cordova-plugin-whitelist" spec="1.3.1"/>
  55 + <plugin name="cordova-plugin-console" spec="1.0.5"/>
  56 + <plugin name="cordova-plugin-statusbar" spec="2.2.1"/>
  57 + <plugin name="cordova-plugin-device" spec="1.1.4"/>
  58 + <plugin name="cordova-plugin-splashscreen" spec="~4.0.1"/>
  59 + <plugin name="cordova-sqlite-storage" spec="~2.0.2"/>
  60 + <icon src="resources\android\icon\drawable-xhdpi-icon.png"/>
  61 +</widget>
\ No newline at end of file
... ...
  1 +{
  2 + "name": "mathApp",
  3 + "app_id": "",
  4 + "v2": true,
  5 + "typescript": true
  6 +}
... ...
  1 +{
  2 + "name": "ionic-hello-world",
  3 + "author": "Ionic Framework",
  4 + "homepage": "http://ionicframework.com/",
  5 + "private": true,
  6 + "scripts": {
  7 + "clean": "ionic-app-scripts clean",
  8 + "build": "ionic-app-scripts build",
  9 + "ionic:build": "ionic-app-scripts build",
  10 + "ionic:serve": "ionic-app-scripts serve"
  11 + },
  12 + "dependencies": {
  13 + "@angular/common": "2.2.1",
  14 + "@angular/compiler": "2.2.1",
  15 + "@angular/compiler-cli": "2.2.1",
  16 + "@angular/core": "2.2.1",
  17 + "@angular/forms": "2.2.1",
  18 + "@angular/http": "2.2.1",
  19 + "@angular/platform-browser": "2.2.1",
  20 + "@angular/platform-browser-dynamic": "2.2.1",
  21 + "@angular/platform-server": "2.2.1",
  22 + "@ionic/storage": "^1.1.7",
  23 + "ionic-angular": "2.1.0",
  24 + "ionic-native": "2.4.1",
  25 + "ionicons": "3.0.0",
  26 + "rxjs": "5.0.0-beta.12",
  27 + "sw-toolbox": "3.4.0",
  28 + "zone.js": "0.6.26"
  29 + },
  30 + "devDependencies": {
  31 + "@ionic/app-scripts": "1.1.3",
  32 + "typescript": "2.0.9"
  33 + },
  34 + "cordovaPlugins": [
  35 + "cordova-plugin-statusbar",
  36 + "cordova-plugin-console",
  37 + "cordova-plugin-whitelist",
  38 + "cordova-plugin-device",
  39 + "ionic-plugin-keyboard",
  40 + "cordova-plugin-splashscreen"
  41 + ],
  42 + "cordovaPlatforms": [],
  43 + "description": "mathApp: An Ionic project"
  44 +}
... ...
  1 +import { Component } from '@angular/core';
  2 +import { Platform } from 'ionic-angular';
  3 +import { StatusBar, Splashscreen } from 'ionic-native';
  4 +
  5 +import { MenuPage } from '../pages/menu/menu';
  6 +
  7 +
  8 +@Component({
  9 + templateUrl: 'app.html'
  10 +})
  11 +export class MyApp {
  12 + rootPage = MenuPage;
  13 +
  14 + constructor(platform: Platform) {
  15 + platform.ready().then(() => {
  16 + // Okay, so the platform is ready and our plugins are available.
  17 + // Here you can do any higher level native things you might need.
  18 + StatusBar.styleDefault();
  19 + Splashscreen.hide();
  20 + });
  21 + }
  22 +}
... ...
  1 +<ion-nav [root]="rootPage"></ion-nav>
... ...
  1 +import { NgModule, ErrorHandler } from '@angular/core';
  2 +import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
  3 +import { MyApp } from './app.component';
  4 +import { MenuPage } from '../pages/menu/menu';
  5 +import { UnitPage } from '../pages/unit/unit';
  6 +import { QaPage } from '../pages/qa/qa';
  7 +import { ExtunitPage } from '../pages/extunit/extunit';
  8 +import { ExtqaPage } from '../pages/extqa/extqa';
  9 +import { HelpPage } from '../pages/help/help';
  10 +import { DataService } from '../providers/data-service';
  11 +import { Storage } from '@ionic/storage';
  12 +
  13 +@NgModule({
  14 + declarations: [
  15 + MyApp,
  16 + MenuPage,
  17 + UnitPage,
  18 + QaPage,
  19 + ExtunitPage,
  20 + ExtqaPage,
  21 + HelpPage
  22 + ],
  23 + imports: [
  24 + IonicModule.forRoot(MyApp)
  25 + ],
  26 + bootstrap: [IonicApp],
  27 + entryComponents: [
  28 + MyApp,
  29 + MenuPage,
  30 + UnitPage,
  31 + QaPage,
  32 + ExtunitPage,
  33 + ExtqaPage,
  34 + HelpPage
  35 + ],
  36 + providers: [{ provide: ErrorHandler, useClass: IonicErrorHandler }, Storage, DataService]
  37 +})
  38 +export class AppModule {}
... ...
  1 +// http://ionicframework.com/docs/v2/theming/
  2 +
  3 +
  4 +// App Global Sass
  5 +// --------------------------------------------------
  6 +// Put style rules here that you want to apply globally. These
  7 +// styles are for the entire app and not just one component.
  8 +// Additionally, this file can be also used as an entry point
  9 +// to import other Sass files to be included in the output CSS.
  10 +//
  11 +// Shared Sass variables, which can be used to adjust Ionic's
  12 +// default Sass variables, belong in "theme/variables.scss".
  13 +//
  14 +// To declare rules for a specific mode, create a child rule
  15 +// for the .md, .ios, or .wp mode classes. The mode class is
  16 +// automatically applied to the <body> element in the app.
... ...
  1 +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
  2 +
  3 +import { AppModule } from './app.module';
  4 +
  5 +platformBrowserDynamic().bootstrapModule(AppModule);
... ...
No preview for this file type
  1 +/*
  2 + Declaration files are how the Typescript compiler knows about the type information(or shape) of an object.
  3 + They're what make intellisense work and make Typescript know all about your code.
  4 +
  5 + A wildcard module is declared below to allow third party libraries to be used in an app even if they don't
  6 + provide their own type declarations.
  7 +
  8 + To learn more about using third party libraries in an Ionic app, check out the docs here:
  9 + http://ionicframework.com/docs/v2/resources/third-party-libs/
  10 +
  11 + For more info on type definition files, check out the Typescript docs here:
  12 + https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html
  13 +*/
  14 +declare module '*';
\ No newline at end of file
... ...
  1 +<!DOCTYPE html>
  2 +<html lang="en" dir="ltr">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 + <title>Ionic App</title>
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  7 + <meta name="format-detection" content="telephone=no">
  8 + <meta name="msapplication-tap-highlight" content="no">
  9 +
  10 + <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
  11 + <link rel="manifest" href="manifest.json">
  12 + <meta name="theme-color" content="#4e8ef7">
  13 +
  14 + <!-- cordova.js required for cordova apps -->
  15 + <script src="cordova.js"></script>
  16 +
  17 + <!-- un-comment this code to enable service worker
  18 + <script>
  19 + if ('serviceWorker' in navigator) {
  20 + navigator.serviceWorker.register('service-worker.js')
  21 + .then(() => console.log('service worker installed'))
  22 + .catch(err => console.log('Error', err));
  23 + }
  24 + </script>-->
  25 +
  26 + <link href="build/main.css" rel="stylesheet">
  27 +
  28 +</head>
  29 +<body>
  30 +
  31 + <!-- Ionic's root component and where the app will load -->
  32 + <ion-app></ion-app>
  33 +
  34 + <!-- The polyfills js is generated during the build process -->
  35 + <script src="build/polyfills.js"></script>
  36 +
  37 + <!-- The bundle js is generated during the build process -->
  38 + <script src="build/main.js"></script>
  39 +
  40 +</body>
  41 +</html>
... ...
  1 +{
  2 + "name": "Ionic",
  3 + "short_name": "Ionic",
  4 + "start_url": "index.html",
  5 + "display": "standalone",
  6 + "icons": [{
  7 + "src": "assets/imgs/logo.png",
  8 + "sizes": "512x512",
  9 + "type": "image/png"
  10 + }],
  11 + "background_color": "#4e8ef7",
  12 + "theme_color": "#4e8ef7"
  13 +}
\ No newline at end of file
... ...
  1 +<!--
  2 + Generated template for the Extqa page.
  3 +
  4 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  5 + Ionic pages and navigation.
  6 +-->
  7 +<ion-header>
  8 +
  9 + <ion-navbar color="primary">
  10 + <ion-title>{{title}}</ion-title>
  11 + </ion-navbar>
  12 +
  13 +</ion-header>
  14 +
  15 +
  16 +<ion-content padding class="extqa-page">
  17 +
  18 + <ion-card class="question-card">
  19 + <ion-card-content class="question-content">
  20 + <p>
  21 + 問題 {{qa1.qaId+1}} / 全 {{qaList.length}} 問
  22 + </p>
  23 + <font size="5" [innerHTML] = "qa1.questionString"></font>
  24 +
  25 + <img src="assets/img/extq/{{qa1.questionImage}}" *ngIf="qa1.questionImage != ''" />
  26 +
  27 + </ion-card-content>
  28 + <br /><br />
  29 + <p *ngFor="let choice of qa1.choicesId">
  30 + <button ion-button full color="secondary" (click)="itemSelected(choice)" [outline]="selectstate[choice]" [disabled]="buttonDisabled" large>
  31 + {{qa1.choicesString[choice]}}
  32 + </button>
  33 + </p>
  34 +
  35 + <ion-buttons end padding class="question-button">
  36 + <button ion-button icon-left (click)="openAnswer()" [disabled]="buttonDisabled">
  37 + <ion-icon name="checkmark"></ion-icon>
  38 + 解答
  39 + </button>
  40 + </ion-buttons>
  41 + </ion-card>
  42 +
  43 + <ion-card *ngIf="buttonDisabled" class="answer-card">
  44 + <ion-card-content class="answer-content">
  45 + <ion-item>
  46 + <ion-thumbnail item-left>
  47 + <img src="assets/img/ok.png" *ngIf="result == '正解'">
  48 + <img src="assets/img/ng.png" *ngIf="result != '正解'">
  49 + </ion-thumbnail>
  50 + <ion-card-title color="{{resultcolor}}">{{result}}</ion-card-title>
  51 + </ion-item>
  52 +
  53 + <p><br>解答</p>
  54 + <font size="5" [innerHTML] = "qa1.answerString"></font>
  55 + <br /><br />
  56 + <img src="assets/img/exta/{{qa1.answerImage}}" *ngIf="qa1.answerImage != ''" />
  57 + </ion-card-content>
  58 +
  59 + <ion-buttons end padding class="answer-button">
  60 + <button ion-button *ngIf="index < (qaList.length-1)" color="dark" icon-left (click)="goToNext()">
  61 + <ion-icon name="arrow-forward"></ion-icon>
  62 + 次の問題
  63 + </button>
  64 + <button ion-button *ngIf="index >= (qaList.length-1)" color="dark" icon-left (click)="backToUnit()">
  65 + <ion-icon name="done-all"></ion-icon>
  66 + 終了
  67 + </button>
  68 + </ion-buttons>
  69 + </ion-card>
  70 +
  71 +</ion-content>
... ...
  1 +page-extqa {
  2 + .extqa-page {
  3 + background-image: url('../assets/img/extqabackground.png');
  4 +
  5 + .button-md {
  6 + text-transform: none;
  7 + }
  8 + }
  9 +}
... ...
  1 +import { Component } from '@angular/core';
  2 +import { NavController, NavParams } from 'ionic-angular';
  3 +import { DataService } from '../../providers/data-service';
  4 +import { Qa } from '../../providers/define-qa';
  5 +import { Content } from 'ionic-angular';
  6 +import { ViewChild } from '@angular/core';
  7 +import { Observable } from 'rxjs/Rx';
  8 +
  9 +/*
  10 + Generated class for the Extqa page.
  11 +
  12 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  13 + Ionic pages and navigation.
  14 +*/
  15 +@Component({
  16 + selector: 'page-extqa',
  17 + templateUrl: 'extqa.html'
  18 +})
  19 +export class ExtqaPage {
  20 + @ViewChild(Content) content: Content;
  21 +
  22 + qaList: Qa[];
  23 + qa1: Qa;
  24 + menuId: number;
  25 + unitId: number;
  26 + index: number;
  27 + title: string;
  28 + buttonDisabled: boolean;
  29 + ds: DataService;
  30 + nv: NavController;
  31 + selected: number;
  32 + result: string;
  33 + resultcolor: string;
  34 + selectstate: Array<boolean> = new Array();
  35 + subscription;
  36 + screenHeight:number;
  37 +
  38 + constructor(public navCtrl: NavController, public navParams: NavParams, private dataSevice: DataService) {
  39 + this.menuId = navParams.get("menuId");
  40 + this.unitId = navParams.get("unitId");
  41 + this.title = navParams.get("title");
  42 +
  43 + this.index = 0;
  44 + this.qaList = dataSevice.getExtqa(this.menuId, this.unitId);
  45 + this.qa1 = this.qaList[this.index];
  46 + this.buttonDisabled = null;
  47 + this.ds = dataSevice;
  48 + this.nv = navCtrl;
  49 + this.selected = -1;
  50 + for (var i = 0; i < this.qa1.choicesId.length; i++) {
  51 + this.selectstate.push(false);
  52 + }
  53 +
  54 + }
  55 +
  56 + ionViewDidLoad() {
  57 + console.log('ionViewDidLoad ExtqaPage');
  58 + }
  59 +
  60 + itemSelected(id: number) {
  61 + for (var i = 0; i < this.qa1.choicesId.length; i++) {
  62 + this.selectstate[i] = false;
  63 + }
  64 + this.selectstate[id] = true;
  65 + this.selected = id;
  66 + }
  67 +
  68 + openAnswer() {
  69 + if (this.buttonDisabled == null)
  70 + {
  71 + this.result = "解答";
  72 + this.resultcolor = "dark";
  73 +
  74 + if (this.selected === this.qa1.answerId) { //正解
  75 + this.result = "正解";
  76 + this.resultcolor = "danger";
  77 + }
  78 + else {
  79 + this.result = "不正解";
  80 + this.resultcolor = "primary";
  81 + }
  82 +
  83 + this.buttonDisabled = true;
  84 + if (this.index >= (this.qaList.length - 1))
  85 + {
  86 + var key: string;
  87 + key = this.qa1.menuId + ":" + this.qa1.unitId;
  88 + this.dataSevice.saveInfo(key);
  89 + }
  90 +
  91 + var element = document.getElementsByClassName('question-card');
  92 + this.screenHeight = element[0].clientHeight;
  93 + this.subscription = Observable.timer(300)
  94 + .subscribe(x => {
  95 + this.content.scrollToBottom(300);
  96 + }
  97 + );
  98 + }
  99 + }
  100 +
  101 + goToNext() {
  102 + this.index++;
  103 + this.qa1 = this.qaList[this.index];
  104 + this.buttonDisabled = null;
  105 + this.selected = -1;
  106 + this.selectstate = new Array();
  107 + for (var i = 0; i < this.qa1.choicesId.length; i++) {
  108 + this.selectstate.push(false);
  109 + }
  110 + this.content.scrollToTop(300);
  111 + }
  112 +
  113 + backToUnit() {
  114 + this.nv.pop();
  115 + }
  116 +}
... ...
  1 +<!--
  2 + Generated template for the Extunit page.
  3 +
  4 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  5 + Ionic pages and navigation.
  6 +-->
  7 +<ion-header>
  8 +
  9 + <ion-navbar color="primary">
  10 + <ion-title>{{title}}</ion-title>
  11 + </ion-navbar>
  12 +
  13 +</ion-header>
  14 +
  15 +
  16 +<ion-content padding class="extunit-page">
  17 + <ion-card *ngFor="let ptn1 of list1; let i = index;" class="extunit-card">
  18 + <ion-card-header class="unit-card-header">
  19 + 応用{{i+1}}
  20 + </ion-card-header>
  21 +
  22 + <ion-list>
  23 + <ion-item (click)="itemSelected(ptn1)">
  24 + <ion-icon name='ribbon' item-left [color]="list1state[i] != done ? 'secondary' : 'light'"></ion-icon>
  25 + {{ptn1.unitName}}
  26 + <ion-note item-right *ngIf="list1state[i] != done">クリア!</ion-note>
  27 + <ion-note item-right *ngIf="list1state[i] == done">未実施</ion-note>
  28 + </ion-item>
  29 + </ion-list>
  30 + </ion-card>
  31 +
  32 +
  33 +</ion-content>
... ...
  1 +page-extunit {
  2 + .extunit-page {
  3 + background-image: url('../assets/img/extunitbackground.png');
  4 +
  5 + .card {
  6 + background: #505050;
  7 + .item {
  8 + background: #505050;
  9 + }
  10 + }
  11 +
  12 + .extunit-card {
  13 + .unit-card-header {
  14 + font-weight: bold;
  15 + color: white
  16 + }
  17 +
  18 + .label {
  19 + color: white
  20 + }
  21 + }
  22 + }
  23 +}
... ...
  1 +import { Component } from '@angular/core';
  2 +import { NavController, NavParams } from 'ionic-angular';
  3 +import { ExtqaPage } from '../extqa/extqa';
  4 +import { DataService } from '../../providers/data-service';
  5 +import { Unit } from '../../providers/define-unit';
  6 +
  7 +/*
  8 + Generated class for the Extunit page.
  9 +
  10 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  11 + Ionic pages and navigation.
  12 +*/
  13 +@Component({
  14 + selector: 'page-extunit',
  15 + templateUrl: 'extunit.html'
  16 +})
  17 +export class ExtunitPage {
  18 + menuId:number;
  19 + allNum: number;
  20 + title: string;
  21 +
  22 + list1: Unit[];
  23 + list1state: Array<String> = new Array();
  24 + list1num: number;
  25 +
  26 + currentItem: Unit;
  27 +
  28 + constructor(public navCtrl: NavController, public navParams: NavParams, private dataSevice: DataService) {
  29 + this.menuId = navParams.get("menuId");
  30 + this.title = navParams.get("title");
  31 +
  32 + this.currentItem = null;
  33 +
  34 + this.list1 = dataSevice.getExtUnit(this.menuId);
  35 + this.list1num = this.list1.length;
  36 +
  37 + this.updateStatus();
  38 + }
  39 +
  40 + ionViewDidLoad() {
  41 + console.log('ionViewDidLoad ExtunitPage');
  42 + }
  43 +
  44 + ionViewWillEnter() {
  45 + if(this.currentItem != null)
  46 + {
  47 + var key: string;
  48 + key = this.menuId + ":" + this.currentItem.unitId;
  49 + this.dataSevice.getInfo(key)
  50 + .then(data => {
  51 + this.updateStatus();
  52 + });
  53 + }
  54 + }
  55 +
  56 + itemSelected(item: Unit) {
  57 + this.currentItem = item;
  58 + this.navCtrl.push(ExtqaPage,{menuId: this.menuId, unitId: item.unitId, title:item.unitName});
  59 + }
  60 +
  61 + updateStatus()
  62 + {
  63 + var promiseArray1 = new Array();
  64 + for (var i = 0; i < this.list1num; i++) {
  65 + var key: string;
  66 + key = this.menuId + ":" + this.list1[i].unitId;
  67 + promiseArray1.push(this.dataSevice.getInfo(key));
  68 + }
  69 +
  70 + Promise.all(promiseArray1)
  71 + .then(val =>
  72 + {
  73 + for(var i = 0; i< this.list1num; i++)
  74 + {
  75 + this.list1state[i] = val[i];
  76 + }
  77 +
  78 + });
  79 + }
  80 +}
... ...
  1 +<!--
  2 + Generated template for the Help page.
  3 +
  4 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  5 + Ionic pages and navigation.
  6 +-->
  7 +<ion-header>
  8 +
  9 + <ion-navbar color="primary">
  10 + <ion-title>学習の進め方</ion-title>
  11 + </ion-navbar>
  12 +
  13 +</ion-header>
  14 +
  15 +
  16 +<ion-content padding>
  17 +
  18 + <ion-slides pager>
  19 + <ion-slide *ngFor="let slide of slides">
  20 +
  21 + <img [src]="slide.image" class="slide-image"/>
  22 + <h2 class="slide-title" [innerHTML]="slide.title"></h2>
  23 + <p class="slide-description" [innerHTML]="slide.description"></p>
  24 + </ion-slide>
  25 +
  26 + </ion-slides>
  27 +
  28 +</ion-content>
... ...
  1 +page-help {
  2 +
  3 + .slide-title {
  4 + margin-top: 2.8rem;
  5 + }
  6 +
  7 + .slide-image {
  8 + max-height: 50%;
  9 + max-width: 60%;
  10 + margin: 18px 0;
  11 + }
  12 +
  13 + .slide-description {
  14 + text-align: left
  15 + }
  16 +}
... ...
  1 +import { Component } from '@angular/core';
  2 +import { NavController, NavParams } from 'ionic-angular';
  3 +
  4 +/*
  5 + Generated class for the Help page.
  6 +
  7 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  8 + Ionic pages and navigation.
  9 +*/
  10 +@Component({
  11 + selector: 'page-help',
  12 + templateUrl: 'help.html'
  13 +})
  14 +export class HelpPage {
  15 +
  16 + slides = [
  17 + {
  18 + title: "問題について",
  19 + description: "問題は正解、不正解に関わらず1問挑戦すると次の1問が開きます。",
  20 + image: "assets/img/help/help1.png",
  21 + },
  22 + {
  23 + title: "キーワードについて",
  24 + description: "1問終わるごとに、1文字のキーワードを入手できます。",
  25 + image: "assets/img/help/help2.png",
  26 + },
  27 + {
  28 + title: "次のステージについて",
  29 + description: "すべての問題が終わったら、入手したキーワードを並び替えてひとつの単語を作成してください。正しい単語を入力すると、次のステージが入手できます。",
  30 + image: "assets/img/help/help3.png",
  31 + }
  32 + ];
  33 +
  34 + constructor(public navCtrl: NavController, public navParams: NavParams) {}
  35 +
  36 + ionViewDidLoad() {
  37 + console.log('ionViewDidLoad HelpPage');
  38 + }
  39 +
  40 +}
... ...
  1 +<!--
  2 + Generated template for the Menu page.
  3 +
  4 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  5 + Ionic pages and navigation.
  6 +-->
  7 +<ion-header>
  8 +
  9 + <ion-navbar color="primary">
  10 + <ion-title>Top</ion-title>
  11 + </ion-navbar>
  12 +
  13 +</ion-header>
  14 +
  15 +
  16 +<ion-content padding class="top-menu-page">
  17 + <ion-card class="title">
  18 + <img src="assets/img/menuTitle.png"/>
  19 + <div class="card-title">中学問題集</div>
  20 + <div class="card-subtitle">理科</div>
  21 + </ion-card>
  22 +
  23 + <button ion-button full large>1・2年生の復習</button>
  24 +
  25 + <p *ngFor="let item_f of list_f">
  26 + <button ion-button color="light" block round (click)="itemSelected(item_f)">{{item_f.title}}</button>
  27 + </p>
  28 +
  29 + <!--
  30 + <button ion-button full>2年生</button>
  31 +
  32 + <p *ngFor="let item_s of list_s">
  33 + <button ion-button color="light" block round (click)="itemSelected(item_s)">{{item_s.title}}</button>
  34 + </p>
  35 +
  36 + <button ion-button full>3年生</button>
  37 +
  38 + <p *ngFor="let item_t of list_t">
  39 + <button ion-button color="light" block round (click)="itemSelected(item_t)">{{item_t.title}}</button>
  40 + </p>
  41 + -->
  42 +
  43 +</ion-content>
... ...
  1 +page-menu {
  2 + .top-menu-page {
  3 + background-image: url('../assets/img/background.png');
  4 + background-size: cover;
  5 +
  6 + .title{
  7 + position: relative;
  8 + text-align: center;
  9 +
  10 + .card-title {
  11 + position: absolute;
  12 + top: 36%;
  13 + font-size: 2.0em;
  14 + width: 100%;
  15 + font-weight: bold;
  16 + color: #505050;
  17 + }
  18 +
  19 + .card-subtitle {
  20 + font-size: 1.0em;
  21 + position: absolute;
  22 + top: 55%;
  23 + width: 100%;
  24 + color: #505050;
  25 + }
  26 +
  27 + }
  28 + }
  29 +}
... ...
  1 +import { Component } from '@angular/core';
  2 +import { NavController, NavParams } from 'ionic-angular';
  3 +import { DataService } from '../../providers/data-service';
  4 +import { Menu } from '../../providers/define-menu';
  5 +import { UnitPage } from '../unit/unit';
  6 +
  7 +/*
  8 + Generated class for the Menu page.
  9 +
  10 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  11 + Ionic pages and navigation.
  12 +*/
  13 +@Component({
  14 + selector: 'page-menu',
  15 + templateUrl: 'menu.html'
  16 +})
  17 +export class MenuPage {
  18 + list_f: Menu[];
  19 + list_s: Menu[];
  20 + list_t: Menu[];
  21 +
  22 + constructor(public navCtrl: NavController, private dataSevice: DataService) {
  23 + this.list_f = dataSevice.getMenuFirst();
  24 +
  25 + this.list_s = dataSevice.getMenuSecond();
  26 +
  27 + this.list_t = dataSevice.getMenuThird();
  28 + }
  29 +
  30 + ionViewDidLoad() {
  31 + console.log('ionViewDidLoad MenuPage');
  32 + }
  33 +
  34 + itemSelected(item: Menu) {
  35 + this.navCtrl.push(UnitPage, {menuId: item.menuId, title:item.title});
  36 + }
  37 +}
... ...
  1 +<!--
  2 + Generated template for the Qa page.
  3 +
  4 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  5 + Ionic pages and navigation.
  6 +-->
  7 +<ion-header>
  8 + <ion-navbar color="primary">
  9 + <ion-title>{{title}}</ion-title>
  10 + </ion-navbar>
  11 +</ion-header>
  12 +
  13 +<ion-content padding class="qa-page">
  14 + <ion-card class="question-card">
  15 + <ion-card-content class="question-content">
  16 + <p>
  17 + 問題 {{qa1.qaId+1}} / 全 {{qaList.length}} 問
  18 + </p>
  19 + <font size="5" [innerHTML] = "qa1.questionString"></font>
  20 +
  21 + <img src="assets/img/q/{{qa1.questionImage}}" *ngIf="qa1.questionImage != ''" />
  22 +
  23 + </ion-card-content>
  24 + <br /><br />
  25 + <p *ngFor="let choice of qa1.choicesId">
  26 + <button ion-button full color="secondary" (click)="itemSelected(choice)" [outline]="selectstate[choice]" [disabled]="buttonDisabled" large>
  27 + {{qa1.choicesString[choice]}}
  28 + </button>
  29 + </p>
  30 +
  31 + <ion-buttons end padding class="question-button">
  32 + <button ion-button icon-left (click)="openAnswer()" [disabled]="buttonDisabled">
  33 + <ion-icon name="checkmark"></ion-icon>
  34 + 解答
  35 + </button>
  36 + </ion-buttons>
  37 + </ion-card>
  38 +
  39 + <ion-card *ngIf="buttonDisabled" class="answer-card">
  40 + <ion-card-content class="answer-content">
  41 + <ion-item>
  42 + <ion-thumbnail item-left>
  43 + <img src="assets/img/ok.png" *ngIf="result == '正解'">
  44 + <img src="assets/img/ng.png" *ngIf="result != '正解'">
  45 + </ion-thumbnail>
  46 + <ion-card-title color="{{resultcolor}}">{{result}}</ion-card-title>
  47 + </ion-item>
  48 +
  49 + <p><br>解答</p>
  50 + <font size="5" [innerHTML] = "qa1.answerString"></font>
  51 + <br /><br />
  52 + <img src="assets/img/a/{{qa1.answerImage}}" *ngIf="qa1.answerImage != ''" />
  53 + </ion-card-content>
  54 +
  55 + <ion-buttons end padding class="answer-button">
  56 + <button ion-button *ngIf="index < (qaList.length-1)" color="dark" icon-left (click)="goToNext()">
  57 + <ion-icon name="arrow-forward"></ion-icon>
  58 + 次の問題
  59 + </button>
  60 + <button ion-button *ngIf="index >= (qaList.length-1)" color="dark" icon-left (click)="backToUnit()">
  61 + <ion-icon name="done-all"></ion-icon>
  62 + 終了
  63 + </button>
  64 + </ion-buttons>
  65 + </ion-card>
  66 +</ion-content>
... ...
  1 +page-qa {
  2 + .qa-page {
  3 + background-image: url('../assets/img/qabackground.png');
  4 +
  5 + .button-md {
  6 + text-transform: none;
  7 + }
  8 + }
  9 +}
... ...
  1 +import { Component } from '@angular/core';
  2 +import { NavController, NavParams } from 'ionic-angular';
  3 +import { DataService } from '../../providers/data-service';
  4 +import { Qa } from '../../providers/define-qa';
  5 +import { Content } from 'ionic-angular';
  6 +import { ViewChild } from '@angular/core';
  7 +import { Observable } from 'rxjs/Rx';
  8 +
  9 +/*
  10 + Generated class for the Qa page.
  11 +
  12 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  13 + Ionic pages and navigation.
  14 +*/
  15 +@Component({
  16 + selector: 'page-qa',
  17 + templateUrl: 'qa.html'
  18 +})
  19 +export class QaPage {
  20 + @ViewChild(Content) content: Content;
  21 +
  22 + qaList: Qa[];
  23 + qa1: Qa;
  24 + menuId: number;
  25 + unitId: number;
  26 + index: number;
  27 + title:string;
  28 + buttonDisabled: boolean;
  29 + ds: DataService;
  30 + nv: NavController;
  31 + selected: number;
  32 + result: string;
  33 + resultcolor: string;
  34 + selectstate: Array<boolean> = new Array();
  35 + subscription;
  36 + screenHeight:number;
  37 +
  38 + constructor(public navCtrl: NavController, public navParams: NavParams, private dataSevice: DataService) {
  39 + this.menuId = navParams.get("menuId");
  40 + this.unitId = navParams.get("unitId");
  41 + this.title = navParams.get("title");
  42 +
  43 + this.index = 0;
  44 + this.qaList = dataSevice.getQa(this.menuId, this.unitId);
  45 + this.qa1 = this.qaList[this.index];
  46 + this.buttonDisabled = null;
  47 + this.ds = dataSevice;
  48 + this.nv = navCtrl;
  49 + this.selected = -1;
  50 + for (var i = 0; i < this.qa1.choicesId.length; i++) {
  51 + this.selectstate.push(false);
  52 + }
  53 +
  54 + }
  55 +
  56 + ionViewDidLoad() {
  57 + console.log('ionViewDidLoad QaPage');
  58 + }
  59 +
  60 + itemSelected(id: number) {
  61 +
  62 + for (var i = 0; i < this.qa1.choicesId.length; i++) {
  63 + if(this.selectstate[i] == true) {
  64 + this.selectstate[i] = false;
  65 + }
  66 + }
  67 + this.selectstate[id] = true;
  68 + this.selected = id;
  69 + }
  70 +
  71 + openAnswer() {
  72 + if (this.buttonDisabled == null)
  73 + {
  74 + this.result = "解答";
  75 + this.resultcolor = "dark";
  76 +
  77 + if (this.selected === this.qa1.answerId) { //正解
  78 + this.result = "正解";
  79 + this.resultcolor = "danger";
  80 + }
  81 + else {
  82 + this.result = "不正解";
  83 + this.resultcolor = "primary";
  84 + }
  85 +
  86 + this.buttonDisabled = true;
  87 + if (this.index >= (this.qaList.length - 1))
  88 + {
  89 + var key: string;
  90 + key = this.qa1.menuId + ":" + this.qa1.unitId;
  91 + this.dataSevice.saveInfo(key);
  92 + }
  93 +
  94 + var element = document.getElementsByClassName('question-card');
  95 + this.screenHeight = element[0].clientHeight;
  96 + this.subscription = Observable.timer(300)
  97 + .subscribe(x => {
  98 + this.content.scrollTo(0, this.screenHeight, 300);
  99 + }
  100 + );
  101 + }
  102 + }
  103 +
  104 + goToNext() {
  105 + this.index++;
  106 + this.buttonDisabled = null;
  107 + this.selected = -1;
  108 + this.qa1 = this.qaList[this.index];
  109 + this.selectstate = new Array();
  110 + for (var i = 0; i < this.qa1.choicesId.length; i++) {
  111 + this.selectstate.push(false);
  112 + }
  113 + this.content.scrollToTop(300);
  114 +
  115 + }
  116 +
  117 + backToUnit() {
  118 + this.nv.pop();
  119 + }
  120 +}
... ...
  1 +<!--
  2 + Generated template for the Unit page.
  3 +
  4 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  5 + Ionic pages and navigation.
  6 +-->
  7 +<ion-header>
  8 +
  9 + <ion-navbar color="primary">
  10 + <ion-title>{{title}}</ion-title>
  11 + </ion-navbar>
  12 +
  13 +</ion-header>
  14 +
  15 +
  16 +<ion-content padding class="unit-page">
  17 +
  18 + <ion-row>
  19 + <ion-col>
  20 + <ion-buttons start>
  21 + <button ion-button icon-left (click) ="gotoHelp()">
  22 + <ion-icon name="help-circle"></ion-icon>
  23 + 進め方
  24 + </button>
  25 + </ion-buttons>
  26 + </ion-col>
  27 +
  28 + <ion-col>
  29 + <ion-buttons end>
  30 + <button ion-button icon-left (click)="inputKey()" *ngIf="isOpenNext == false">
  31 + <ion-icon name="lock"></ion-icon>
  32 + 次のステージへ
  33 + </button>
  34 + <button ion-button icon-left color="danger" (click)="nextStage()" *ngIf="isOpenNext">
  35 + <ion-icon name="unlock"></ion-icon>
  36 + 次のステージへ
  37 + </button>
  38 + </ion-buttons>
  39 + </ion-col>
  40 + </ion-row>
  41 +
  42 + <ion-card class="unit-card">
  43 + <ion-card-header class="unit-card-header">
  44 + 学習1
  45 + </ion-card-header>
  46 +
  47 + <ion-fab right top>
  48 + <button ion-fab color="danger" mini>
  49 + <ion-icon *ngIf="openkeyword1" name="bowtie"></ion-icon>
  50 + <ion-icon *ngIf="openkeyword1 == false" name="key"></ion-icon>
  51 + </button>
  52 + <ion-fab-list side="left">
  53 + <button ion-fab *ngIf="openkeyword1"><b>{{keyword.words[0]}}</b></button>
  54 + <button ion-fab *ngIf="openkeyword1 == false"><ion-icon name="help"></ion-icon></button>
  55 + </ion-fab-list>
  56 + </ion-fab>
  57 +
  58 + <ion-list class="unit-list" padding>
  59 + <ion-item *ngFor="let ptn1 of list1; let i = index;" (click)="itemSelected(ptn1)">
  60 + <ion-icon name='ribbon' item-left [color]="list1state[i] != done ? 'secondary' : 'light'"></ion-icon>
  61 + {{ptn1.unitName}}
  62 + <ion-note item-right *ngIf="list1state[i] != done">クリア!</ion-note>
  63 + <ion-note item-right *ngIf="list1state[i] == done">未実施</ion-note>
  64 + </ion-item>
  65 + </ion-list>
  66 + </ion-card>
  67 +
  68 + <ion-card class="unit-card">
  69 + <ion-card-header class="unit-card-header">
  70 + 学習2
  71 + </ion-card-header>
  72 +
  73 + <img src="assets/img/unitdisable.png" *ngIf="list2dsp == false"/>
  74 +
  75 + <ion-fab right top *ngIf="list2dsp">
  76 + <button ion-fab color="danger" mini>
  77 + <ion-icon *ngIf="openkeyword2" name="bowtie"></ion-icon>
  78 + <ion-icon *ngIf="openkeyword2 == false" name="key"></ion-icon>
  79 + </button>
  80 + <ion-fab-list side="left">
  81 + <button ion-fab *ngIf="openkeyword2"><b>{{keyword.words[1]}}</b></button>
  82 + <button ion-fab *ngIf="openkeyword2 == false"><ion-icon name="help"></ion-icon></button>
  83 + </ion-fab-list>
  84 + </ion-fab>
  85 +
  86 + <ion-list class="unit-list" *ngIf="list2dsp" padding>
  87 + <ion-item *ngFor="let ptn2 of list2; let i = index;" (click)="itemSelected(ptn2)">
  88 + <ion-icon name='ribbon' item-left [color]="list2state[i] != done ? 'secondary' : 'light'"></ion-icon>
  89 + {{ptn2.unitName}}
  90 + <ion-note item-right *ngIf="list2state[i] != done">クリア!</ion-note>
  91 + <ion-note item-right *ngIf="list2state[i] == done">未実施</ion-note>
  92 + </ion-item>
  93 + </ion-list>
  94 + </ion-card>
  95 +
  96 + <ion-card class="unit-card">
  97 + <ion-card-header class="unit-card-header">
  98 + 学習3
  99 + </ion-card-header>
  100 +
  101 + <img src="assets/img/unitdisable.png" *ngIf="list3dsp == false"/>
  102 +
  103 + <ion-fab right top *ngIf="list3dsp">
  104 + <button ion-fab color="danger" mini>
  105 + <ion-icon *ngIf="openkeyword3" name="bowtie"></ion-icon>
  106 + <ion-icon *ngIf="openkeyword3 == false" name="key"></ion-icon>
  107 + </button>
  108 + <ion-fab-list side="left">
  109 + <button ion-fab *ngIf="openkeyword3"><b>{{keyword.words[2]}}</b></button>
  110 + <button ion-fab *ngIf="openkeyword3 == false"><ion-icon name="help"></ion-icon></button>
  111 + </ion-fab-list>
  112 + </ion-fab>
  113 +
  114 + <ion-list class="unit-list" *ngIf="list3dsp" padding>
  115 + <ion-item *ngFor="let ptn3 of list3; let i = index;" (click)="itemSelected(ptn3)">
  116 + <ion-icon name='ribbon' item-left [color]="list3state[i] != done ? 'secondary' : 'light'"></ion-icon>
  117 + {{ptn3.unitName}}
  118 + <ion-note item-right *ngIf="list3state[i] != done">クリア!</ion-note>
  119 + <ion-note item-right *ngIf="list3state[i] == done">未実施</ion-note>
  120 + </ion-item>
  121 + </ion-list>
  122 + </ion-card>
  123 +
  124 + <ion-card class="unit-card">
  125 + <ion-card-header class="unit-card-header">
  126 + 学習4
  127 + </ion-card-header>
  128 +
  129 + <img src="assets/img/unitdisable.png" *ngIf="list4dsp == false"/>
  130 +
  131 + <ion-fab right top *ngIf="list4dsp">
  132 + <button ion-fab color="danger" mini>
  133 + <ion-icon *ngIf="openkeyword4" name="bowtie"></ion-icon>
  134 + <ion-icon *ngIf="openkeyword4 == false" name="key"></ion-icon>
  135 + </button>
  136 + <ion-fab-list side="left">
  137 + <button ion-fab *ngIf="openkeyword4"><b>{{keyword.words[3]}}</b></button>
  138 + <button ion-fab *ngIf="openkeyword4 == false"><ion-icon name="help"></ion-icon></button>
  139 + </ion-fab-list>
  140 + </ion-fab>
  141 +
  142 + <ion-list class="unit-list" *ngIf="list4dsp" padding>
  143 + <ion-item *ngFor="let ptn4 of list4; let i = index;" (click)="itemSelected(ptn4)">
  144 + <ion-icon name='ribbon' item-left [color]="list4state[i] != done ? 'secondary' : 'light'"></ion-icon>
  145 + {{ptn4.unitName}}
  146 + <ion-note item-right *ngIf="list4state[i] != done">クリア!</ion-note>
  147 + <ion-note item-right *ngIf="list4state[i] == done">未実施</ion-note>
  148 + </ion-item>
  149 + </ion-list>
  150 + </ion-card>
  151 +
  152 + <ion-card class="unit-card">
  153 + <ion-card-header class="unit-card-header">
  154 + 学習5
  155 + </ion-card-header>
  156 +
  157 + <img src="assets/img/unitdisable.png" *ngIf="list5dsp == false"/>
  158 +
  159 + <ion-fab right top *ngIf="list5dsp">
  160 + <button ion-fab color="danger" mini>
  161 + <ion-icon *ngIf="openkeyword5" name="bowtie"></ion-icon>
  162 + <ion-icon *ngIf="openkeyword5 == false" name="key"></ion-icon>
  163 + </button>
  164 + <ion-fab-list side="left">
  165 + <button ion-fab *ngIf="openkeyword5"><b>{{keyword.words[4]}}</b></button>
  166 + <button ion-fab *ngIf="openkeyword5 == false"><ion-icon name="help"></ion-icon></button>
  167 + </ion-fab-list>
  168 + </ion-fab>
  169 +
  170 + <ion-list class="unit-list" *ngIf="list5dsp" padding>
  171 + <ion-item *ngFor="let ptn5 of list5; let i = index;" (click)="itemSelected(ptn5)">
  172 + <ion-icon name='ribbon' item-left [color]="list5state[i] != done ? 'secondary' : 'light'"></ion-icon>
  173 + {{ptn5.unitName}}
  174 + <ion-note item-right *ngIf="list5state[i] != done">クリア!</ion-note>
  175 + <ion-note item-right *ngIf="list5state[i] == done">未実施</ion-note>
  176 + </ion-item>
  177 + </ion-list>
  178 + </ion-card>
  179 +
  180 + <ion-card class="unit-card" *ngIf="isList6exist">
  181 + <ion-card-header class="unit-card-header">
  182 + 学習6
  183 + </ion-card-header>
  184 +
  185 + <img src="assets/img/unitdisable.png" *ngIf="list6dsp == false"/>
  186 +
  187 + <ion-fab right top *ngIf="list6dsp">
  188 + <button ion-fab color="danger" mini>
  189 + <ion-icon *ngIf="openkeyword6" name="bowtie"></ion-icon>
  190 + <ion-icon *ngIf="openkeyword6 == false" name="key"></ion-icon>
  191 + </button>
  192 + <ion-fab-list side="left">
  193 + <button ion-fab *ngIf="openkeyword6"><b>{{keyword.words[5]}}</b></button>
  194 + <button ion-fab *ngIf="openkeyword6 == false"><ion-icon name="help"></ion-icon></button>
  195 + </ion-fab-list>
  196 + </ion-fab>
  197 +
  198 + <ion-list class="unit-list" *ngIf="list6dsp" padding>
  199 + <ion-item *ngFor="let ptn6 of list6; let i = index;" (click)="itemSelected(ptn6)">
  200 + <ion-icon name='ribbon' item-left [color]="list6state[i] != done ? 'secondary' : 'light'"></ion-icon>
  201 + {{ptn6.unitName}}
  202 + <ion-note item-right *ngIf="list6state[i] != done">クリア!</ion-note>
  203 + <ion-note item-right *ngIf="list6state[i] == done">未実施</ion-note>
  204 + </ion-item>
  205 + </ion-list>
  206 + </ion-card>
  207 +
  208 + <ion-card class="unit-card" *ngIf="isList7exist">
  209 + <ion-card-header class="unit-card-header">
  210 + 学習7
  211 + </ion-card-header>
  212 +
  213 + <img src="assets/img/unitdisable.png" *ngIf="list7dsp == false"/>
  214 +
  215 + <ion-fab right top *ngIf="list7dsp">
  216 + <button ion-fab color="danger" mini>
  217 + <ion-icon *ngIf="openkeyword7" name="bowtie"></ion-icon>
  218 + <ion-icon *ngIf="openkeyword7 == false" name="key"></ion-icon>
  219 + </button>
  220 + <ion-fab-list side="left">
  221 + <button ion-fab *ngIf="openkeyword7"><b>{{keyword.words[6]}}</b></button>
  222 + <button ion-fab *ngIf="openkeyword7 == false"><ion-icon name="help"></ion-icon></button>
  223 + </ion-fab-list>
  224 + </ion-fab>
  225 +
  226 + <ion-list class="unit-list" *ngIf="list7dsp" padding>
  227 + <ion-item *ngFor="let ptn7 of list7; let i = index;" (click)="itemSelected(ptn7)">
  228 + <ion-icon name='ribbon' item-left [color]="list7state[i] != done ? 'secondary' : 'light'"></ion-icon>
  229 + {{ptn7.unitName}}
  230 + <ion-note item-right *ngIf="list7state[i] != done">クリア!</ion-note>
  231 + <ion-note item-right *ngIf="list7state[i] == done">未実施</ion-note>
  232 + </ion-item>
  233 + </ion-list>
  234 + </ion-card>
  235 +
  236 +</ion-content>
... ...
  1 +page-unit {
  2 + .unit-page {
  3 + background-image: url('../assets/img/unitbackground.png');
  4 +
  5 + .card {
  6 + background: #076B31;
  7 + .item {
  8 + background: #076B31;
  9 + }
  10 + }
  11 + .unit-card{
  12 + position: relative;
  13 +
  14 + .unit-card-header {
  15 + font-weight: bold;
  16 + color: white
  17 + }
  18 +
  19 + .label {
  20 + color: white
  21 + }
  22 +
  23 + }
  24 +
  25 + }
  26 +}
... ...
  1 +import { Component } from '@angular/core';
  2 +import { NavController, NavParams } from 'ionic-angular';
  3 +import { DataService } from '../../providers/data-service';
  4 +import { Unit } from '../../providers/define-unit';
  5 +import { Keyword } from '../../providers/define-keyword';
  6 +import { QaPage } from '../qa/qa';
  7 +import { ExtunitPage } from '../extunit/extunit';
  8 +import { HelpPage } from '../help/help';
  9 +import { AlertController } from 'ionic-angular';
  10 +import { ToastController } from 'ionic-angular';
  11 +
  12 +/*
  13 + Generated class for the Unit page.
  14 +
  15 + See http://ionicframework.com/docs/v2/components/#navigation for more info on
  16 + Ionic pages and navigation.
  17 +*/
  18 +@Component({
  19 + selector: 'page-unit',
  20 + templateUrl: 'unit.html'
  21 +})
  22 +export class UnitPage {
  23 + menuId:number;
  24 + allNum: number;
  25 + title:string;
  26 +
  27 + list1: Unit[];
  28 + list2: Unit[];
  29 + list3: Unit[];
  30 + list4: Unit[];
  31 + list5: Unit[];
  32 + list6: Unit[];
  33 + list7: Unit[];
  34 +
  35 + list2dsp: boolean;
  36 + list3dsp: boolean;
  37 + list4dsp: boolean;
  38 + list5dsp: boolean;
  39 + list6dsp: boolean;
  40 + list7dsp: boolean;
  41 + isList6exist: boolean;
  42 + isList7exist: boolean;
  43 +
  44 + list1state: Array<String> = new Array();
  45 + list2state: Array<String> = new Array();
  46 + list3state: Array<String> = new Array();
  47 + list4state: Array<String> = new Array();
  48 + list5state: Array<String> = new Array();
  49 + list6state: Array<String> = new Array();
  50 + list7state: Array<String> = new Array();
  51 +
  52 + list1num: number;
  53 + list2num: number;
  54 + list3num: number;
  55 + list4num: number;
  56 + list5num: number;
  57 + list6num: number;
  58 + list7num: number;
  59 +
  60 + keyword: Keyword;
  61 + openkeyword1: boolean;
  62 + openkeyword2: boolean;
  63 + openkeyword3: boolean;
  64 + openkeyword4: boolean;
  65 + openkeyword5: boolean;
  66 + openkeyword6: boolean;
  67 + openkeyword7: boolean;
  68 +
  69 + isOpenNext:boolean;
  70 +
  71 + currentItem: Unit;
  72 +
  73 + stageStateKey: string;
  74 +
  75 + constructor(public navCtrl: NavController, private navParams: NavParams,
  76 + public alertCtrl: AlertController, public toastCtrl: ToastController, private dataSevice: DataService) {
  77 +
  78 + this.menuId = navParams.get("menuId");
  79 + this.title = navParams.get("title");
  80 + this.stageStateKey = "stageState" + this.menuId;
  81 +
  82 + this.currentItem = null;
  83 +
  84 + this.list2dsp = false;
  85 + this.list3dsp = false;
  86 + this.list4dsp = false;
  87 + this.list5dsp = false;
  88 + this.list6dsp = false;
  89 + this.list7dsp = false;
  90 +
  91 + this.keyword = dataSevice.getKeyword(this.menuId);
  92 + this.openkeyword1 = false;
  93 + this.openkeyword2 = false;
  94 + this.openkeyword3 = false;
  95 + this.openkeyword4 = false;
  96 + this.openkeyword5 = false;
  97 + this.openkeyword6 = false;
  98 + this.openkeyword7 = false;
  99 +
  100 + this.isOpenNext = false;
  101 + this.dataSevice.getInfo(this.stageStateKey)
  102 + .then(val =>
  103 + {
  104 + if(val == "done")
  105 + {
  106 + this.isOpenNext = true;
  107 + }else {
  108 + this.isOpenNext = false;
  109 + }
  110 + });
  111 +
  112 + this.allNum = dataSevice.getUnitNum(this.menuId);
  113 +
  114 + this.isList6exist = true;
  115 + this.isList7exist = true;
  116 + if(this.allNum < 6)
  117 + {
  118 + this.isList6exist = false;
  119 + this.isList7exist = false;
  120 + }
  121 + else if(this.allNum < 7)
  122 + {
  123 + this.isList7exist = false;
  124 + }
  125 +
  126 + var cnt=0;
  127 + this.list1 = dataSevice.getUnit(this.menuId,cnt); cnt++;
  128 + this.list2 = dataSevice.getUnit(this.menuId,cnt); cnt++;
  129 + this.list3 = dataSevice.getUnit(this.menuId,cnt); cnt++;
  130 + this.list4 = dataSevice.getUnit(this.menuId,cnt); cnt++;
  131 + this.list5 = dataSevice.getUnit(this.menuId,cnt); cnt++;
  132 +
  133 + this.list1num = this.list1.length;
  134 + this.list2num = this.list2.length;
  135 + this.list3num = this.list3.length;
  136 + this.list4num = this.list4.length;
  137 + this.list5num = this.list5.length;
  138 +
  139 + this.updateStatus(1);
  140 + this.updateStatus(2);
  141 + this.updateStatus(3);
  142 + this.updateStatus(4);
  143 + this.updateStatus(5);
  144 +
  145 +
  146 + if(this.isList6exist)
  147 + {
  148 + this.list6 = dataSevice.getUnit(this.menuId,cnt); cnt++;
  149 +
  150 + this.list6num = this.list6.length;
  151 +
  152 + this.updateStatus(6);
  153 + }
  154 +
  155 + if(this.isList7exist)
  156 + {
  157 + this.list7 = dataSevice.getUnit(this.menuId,cnt); cnt++;
  158 +
  159 + this.list7num = this.list7.length;
  160 +
  161 + this.updateStatus(7);
  162 + }
  163 +
  164 + }
  165 +
  166 + ionViewWillEnter() {
  167 + if(this.currentItem != null)
  168 + {
  169 + var key: string;
  170 + key = this.menuId + ":" + this.currentItem.unitId;
  171 + this.dataSevice.getInfo(key)
  172 + .then(data => {
  173 + this.updateStatus(this.currentItem.unitId + 1);
  174 + });
  175 + }
  176 + }
  177 +
  178 + ionViewDidLoad() {
  179 + console.log('ionViewDidLoad UnitPage');
  180 + }
  181 +
  182 + itemSelected(item: Unit) {
  183 + this.currentItem = item;
  184 + this.navCtrl.push(QaPage,{menuId: this.menuId, unitId: item.unitId, title: item.unitName});
  185 + }
  186 +
  187 + inputKey() {
  188 + var isAllClear = false;
  189 + if(this.isList7exist)
  190 + {
  191 + if(this.openkeyword7)
  192 + {
  193 + isAllClear = true;
  194 + }
  195 + }
  196 + else if(this.isList6exist)
  197 + {
  198 + if(this.openkeyword6)
  199 + {
  200 + isAllClear = true;
  201 + }
  202 + }
  203 + else
  204 + {
  205 + if(this.openkeyword5)
  206 + {
  207 + isAllClear = true;
  208 + }
  209 + }
  210 +
  211 + if(!isAllClear)
  212 + {
  213 + let alert = this.alertCtrl.create({
  214 + title: '次のステージへ',
  215 + subTitle: 'すべての問題に挑戦すると、新しいステージを入手できます',
  216 + buttons: ['OK']
  217 + });
  218 + alert.present();
  219 + return;
  220 + }
  221 +
  222 + let prompt = this.alertCtrl.create({
  223 + title: '次のステージへ',
  224 + message: "各単元で入手した文字を並び替え、キーワードをひらがなで入力してください",
  225 + inputs: [
  226 + {
  227 + name: 'keyword',
  228 + placeholder: 'キーワード'
  229 + },
  230 + ],
  231 + buttons: [
  232 + {
  233 + text: 'Cancel',
  234 + handler: data => {
  235 + }
  236 + },
  237 + {
  238 + text: 'OK',
  239 + handler: data => {
  240 + var msg = "キーワードが違います";
  241 + if(data.keyword == this.keyword.answer)
  242 + {
  243 + msg = "次のステージを獲得しました!"
  244 + this.isOpenNext = true;
  245 + this.dataSevice.saveInfo(this.stageStateKey);
  246 + }
  247 +
  248 + const toast = this.toastCtrl.create({
  249 + message: msg,
  250 + position: 'middle',
  251 + duration: 2000
  252 + });
  253 +
  254 + toast.present();
  255 + }
  256 + }
  257 + ]
  258 + });
  259 + prompt.present();
  260 +
  261 + }
  262 +
  263 + updateStatus(num: number)
  264 + {
  265 + switch(num)
  266 + {
  267 + case 1:
  268 + var promiseArray1 = new Array();
  269 + for (var i = 0; i < this.list1num; i++) {
  270 + var key: string;
  271 + key = this.menuId + ":" + this.list1[i].unitId;
  272 + promiseArray1.push(this.dataSevice.getInfo(key));
  273 + }
  274 +
  275 + Promise.all(promiseArray1)
  276 + .then(val =>
  277 + {
  278 + var alldone = true;
  279 + for(var i = 0; i< this.list1num; i++)
  280 + {
  281 + this.list1state[i] = val[i];
  282 + if(val[i] == null)
  283 + {
  284 + alldone = false;
  285 + }
  286 + }
  287 +
  288 + if(alldone)
  289 + {
  290 + this.openkeyword1 = true;
  291 + this.list2dsp = true;
  292 + }
  293 + });
  294 + break;
  295 + case 2:
  296 + var promiseArray2 = new Array();
  297 + for (var i = 0; i < this.list2num; i++) {
  298 + var key: string;
  299 + key = this.menuId + ":" + this.list2[i].unitId;
  300 + promiseArray2.push(this.dataSevice.getInfo(key));
  301 + }
  302 +
  303 + Promise.all(promiseArray2)
  304 + .then(val =>
  305 + {
  306 + var alldone = true;
  307 + for(var i = 0; i< this.list2num; i++)
  308 + {
  309 + this.list2state[i] = val[i];
  310 + if(val[i] == null)
  311 + {
  312 + alldone = false;
  313 + }
  314 + }
  315 +
  316 + if(alldone)
  317 + {
  318 + this.openkeyword2 = true;
  319 + this.list3dsp = true;
  320 + }
  321 + });
  322 +
  323 + break;
  324 + case 3:
  325 + var promiseArray3 = new Array();
  326 + for (var i = 0; i < this.list3num; i++) {
  327 + var key: string;
  328 + key = this.menuId + ":" + this.list3[i].unitId;
  329 + promiseArray3.push(this.dataSevice.getInfo(key));
  330 + }
  331 +
  332 + Promise.all(promiseArray3)
  333 + .then(val =>
  334 + {
  335 + var alldone = true;
  336 + for(var i = 0; i< this.list3num; i++)
  337 + {
  338 + this.list3state[i] = val[i];
  339 + if(val[i] == null)
  340 + {
  341 + alldone = false;
  342 + }
  343 + }
  344 +
  345 + if(alldone)
  346 + {
  347 + this.openkeyword3 = true;
  348 + this.list4dsp = true;
  349 + }
  350 + });
  351 +
  352 + break;
  353 + case 4:
  354 + var promiseArray4 = new Array();
  355 + for (var i = 0; i < this.list4num; i++) {
  356 + var key: string;
  357 + key = this.menuId + ":" + this.list4[i].unitId;
  358 + promiseArray4.push(this.dataSevice.getInfo(key));
  359 + }
  360 +
  361 + Promise.all(promiseArray4)
  362 + .then(val =>
  363 + {
  364 + var alldone = true;
  365 + for(var i = 0; i< this.list4num; i++)
  366 + {
  367 + this.list4state[i] = val[i];
  368 + if(val[i] == null)
  369 + {
  370 + alldone = false;
  371 + }
  372 + }
  373 +
  374 + if(alldone)
  375 + {
  376 + this.openkeyword4 = true;
  377 + this.list5dsp = true;
  378 + }
  379 + });
  380 + break;
  381 + case 5:
  382 +
  383 + var promiseArray5 = new Array();
  384 + for (var i = 0; i < this.list5num; i++) {
  385 + var key: string;
  386 + key = this.menuId + ":" + this.list5[i].unitId;
  387 + promiseArray5.push(this.dataSevice.getInfo(key));
  388 + }
  389 +
  390 + Promise.all(promiseArray5)
  391 + .then(val =>
  392 + {
  393 + var alldone = true;
  394 + for(var i = 0; i< this.list5num; i++)
  395 + {
  396 + this.list5state[i] = val[i];
  397 + if(val[i] == null)
  398 + {
  399 + alldone = false;
  400 + }
  401 + }
  402 +
  403 + if(alldone)
  404 + {
  405 + this.openkeyword5 = true;
  406 + this.list6dsp = true;
  407 + }
  408 + });
  409 + break;
  410 + case 6:
  411 + var promiseArray6 = new Array();
  412 + for (var i = 0; i < this.list6num; i++) {
  413 + var key: string;
  414 + key = this.menuId + ":" + this.list6[i].unitId;
  415 + promiseArray6.push(this.dataSevice.getInfo(key));
  416 + }
  417 +
  418 + Promise.all(promiseArray6)
  419 + .then(val =>
  420 + {
  421 + var alldone = true;
  422 + for(var i = 0; i< this.list6num; i++)
  423 + {
  424 + this.list6state[i] = val[i];
  425 + if(val[i] == null)
  426 + {
  427 + alldone = false;
  428 + }
  429 + }
  430 +
  431 + if(alldone)
  432 + {
  433 + this.openkeyword6 = true;
  434 + this.list7dsp = true;
  435 + }
  436 + });
  437 + break;
  438 + case 7:
  439 + var promiseArray7 = new Array();
  440 + for (var i = 0; i < this.list7num; i++) {
  441 + var key: string;
  442 + key = this.menuId + ":" + this.list7[i].unitId;
  443 + promiseArray7.push(this.dataSevice.getInfo(key));
  444 + }
  445 +
  446 + Promise.all(promiseArray7)
  447 + .then(val =>
  448 + {
  449 + var alldone = true;
  450 + for(var i = 0; i< this.list7num; i++)
  451 + {
  452 + this.list7state[i] = val[i];
  453 + if(val[i] == null)
  454 + {
  455 + alldone = false;
  456 + }
  457 + }
  458 +
  459 + if(alldone)
  460 + {
  461 + this.openkeyword7 = true;
  462 + }
  463 + });
  464 + break;
  465 + default:
  466 + break;
  467 + }
  468 + }
  469 +
  470 + nextStage() {
  471 + this.navCtrl.push(ExtunitPage, {menuId: this.menuId, title: this.title});
  472 + }
  473 +
  474 + gotoHelp(){
  475 + this.navCtrl.push(HelpPage);
  476 + }
  477 +
  478 +}
... ...
  1 +import { Injectable } from '@angular/core';
  2 +import { Qa } from './define-qa';
  3 +/*
  4 + Generated class for the DataService provider.
  5 +
  6 + See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  7 + for more info on providers and Angular 2 DI.
  8 +*/
  9 +@Injectable()
  10 +export class ContentsExtqa {
  11 + extqa :Qa[];
  12 +
  13 + constructor() {
  14 + this.extqa = this.createExtqa();
  15 + }
  16 +
  17 + private createExtqa(): Qa[] {
  18 + var qa = [{
  19 + menuId: 0,
  20 + unitId: 100,
  21 + qaId: 0,
  22 + questionString: '図で、∠ P と ∠ Q の大きさは{ ? }、また、このようになる法則を{ ? }という',
  23 + questionImage: 'q0010000.png',
  24 + choicesId: [0,1,2,3],
  25 + choicesString: [ '∠ P < ∠ Q、反射の法則','∠ P = ∠ Q、反射の法則','∠ P > ∠ Q、全反射' , '∠ P = ∠ Q、全反射'],
  26 + answerId: 1,
  27 + answerString: '∠ P = ∠ Q、反射の法則',
  28 + answerImage: ''
  29 + }, {
  30 + menuId: 0,
  31 + unitId: 100,
  32 + qaId: 1,
  33 + questionString: '図で、光は水中を{ ? }のように進む、また、このような光の性質を、光の{ ? }という',
  34 + questionImage: 'q0010001.png',
  35 + choicesId: [0, 1, 2, 3],
  36 + choicesString: ['ア、屈折', 'イ、屈折', 'ウ、反射', 'イ、反射'],
  37 + answerId: 0,
  38 + answerString: 'ア、屈折',
  39 + answerImage: ''
  40 + }, {
  41 + menuId: 0,
  42 + unitId: 101,
  43 + qaId: 0,
  44 + questionString: '鏡にうつって見える小球 P の像は、実像か、それとも虚像か',
  45 + questionImage: 'q0010100.png',
  46 + choicesId: [0, 1],
  47 + choicesString: ['実像', '虚像'],
  48 + answerId: 1,
  49 + answerString: '虚像',
  50 + answerImage: ''
  51 + }, {
  52 + menuId: 0,
  53 + unitId: 102,
  54 + qaId: 0,
  55 + questionString: '物体をさらにレンズに近づけて、F とレンズの間に置いたとき、できる像は何という像か',
  56 + questionImage: 'q0010200.png',
  57 + choicesId: [0, 1],
  58 + choicesString: ['実像', '虚像'],
  59 + answerId: 1,
  60 + answerString: '虚像',
  61 + answerImage: ''
  62 + }, {
  63 + menuId: 0,
  64 + unitId: 103,
  65 + qaId: 0,
  66 + questionString: '図のモノコードの弦をはじいたときの音を、オシロスコープで調べると、波形は A のようになった。'
  67 + +'<br />弦をはじく強さは変えないで、R を Pに近づけてはじいたときの波形はどのようになるか。',
  68 + questionImage: 'q0010300.png',
  69 + choicesId: [0, 1, 2],
  70 + choicesString: ['①', '②', '③'],
  71 + answerId: 1,
  72 + answerString: '②',
  73 + answerImage: ''
  74 + }, {
  75 + menuId: 0,
  76 + unitId: 103,
  77 + qaId: 1,
  78 + questionString: '花火が打ち上げられてから 5 秒後にドーンという音が聞こえた。音の速さを 340 m/秒 とすると、花火を打ち上げたところまでの距離は何 m か',
  79 + questionImage: '',
  80 + choicesId: [0, 1, 2, 3],
  81 + choicesString: ['1700', '680', '1600', '1520'],
  82 + answerId: 0,
  83 + answerString: '1700',
  84 + answerImage: ''
  85 + }, {
  86 + menuId: 0,
  87 + unitId: 104,
  88 + qaId: 0,
  89 + questionString: '図のように、天井から糸で 200g の球がつり下がっている。球にはたらく重力の大きさはいくらか。ただし、100g の物体にはたらく重力の大きさを 1N とする',
  90 + questionImage: 'q0010400.png',
  91 + choicesId: [0, 1, 2, 3],
  92 + choicesString: ['1N', '2N', '3N', '4N'],
  93 + answerId: 1,
  94 + answerString: '2N',
  95 + answerImage: ''
  96 + }, {
  97 + menuId: 0,
  98 + unitId: 105,
  99 + qaId: 0,
  100 + questionString: '質量 180g の木片の、面積が 45㎠ の面を下にして机に置いた。木片が机の面におよぼす圧力は何パスカルか',
  101 + questionImage: '',
  102 + choicesId: [0, 1, 2, 3],
  103 + choicesString: ['180 Pa', '4 Pa', '400 Pa', '8.1 Pa'],
  104 + answerId: 2,
  105 + answerString: '400 Pa <br />1 Pa = 1N/㎡ で、質量 180g の木片にはたらく重力の大きさは 1.8N 、45㎠ = 0.0045㎡ なので、求める圧力は、1.8 ÷ 0.0045 = 400[Pa]',
  106 + answerImage: ''
  107 + }, {
  108 + menuId: 0,
  109 + unitId: 105,
  110 + qaId: 1,
  111 + questionString: '質量 180g 、体積360㎠ の木片やばねばかり、水などを用意し、実験を行った。'
  112 + +'<br />図の A のように、木片に質量 300g のおもりをつけ、図の B のようにおもりだけを水中にいれたところ、ばねばかりの目もりは 4.3 N を示した。このときの浮力の大きさはいくらか',
  113 + questionImage: 'q0010501.png',
  114 + choicesId: [0, 1, 2, 3],
  115 + choicesString: ['3 N', '1.5 N', '2 N', '0.5 N'],
  116 + answerId: 3,
  117 + answerString: '0.5 N<br />空気中での木片とおもりの重さの合計は、1.8 + 3.0 = 4.8[N] したがって、Bでの浮力の大きさは、4.8 - 4.3 = 0.5[N]',
  118 + answerImage: ''
  119 + }, {
  120 + menuId: 1,
  121 + unitId: 100,
  122 + qaId: 0,
  123 + questionString: '図のように、砂糖、木片、食塩、プラスチック片、金属片をそれぞれ燃焼さじにのせて加熱し、石灰水を入れた集気びんの中で燃えるものはすべて燃やした。'
  124 + +'<br />その後、物質をとり出して集気びんをふると、砂糖、木片、プラスチック片の場合は石灰水が白くにごり、食塩、金属片は変化しなかった。'
  125 + +'<br />石灰水が白くにごったことから、燃えて何が発生したとわかるか',
  126 + questionImage: 'q0110000.png',
  127 + choicesId: [0, 1, 2, 3],
  128 + choicesString: ['酸素', '水素', '二酸化炭素', 'アンモニア'],
  129 + answerId: 2,
  130 + answerString: '二酸化炭素',
  131 + answerImage: ''
  132 + }, {
  133 + menuId: 1,
  134 + unitId: 100,
  135 + qaId: 1,
  136 + questionString: 'プラスチックについて正しいものを選べ',
  137 + questionImage: 'q0110001.png',
  138 + choicesId: [0, 1, 2, 3],
  139 + choicesString: ['①', '②', '①、②', '②、③'],
  140 + answerId: 2,
  141 + answerString: '①、②',
  142 + answerImage: ''
  143 + }, {
  144 + menuId: 1,
  145 + unitId: 100,
  146 + qaId: 2,
  147 + questionString: '金属をみがくと光を受けて輝く性質がある。この性質を何というか',
  148 + questionImage: '',
  149 + choicesId: [0, 1, 2, 3],
  150 + choicesString: ['金属光沢', '輝度', '屈折', '反射'],
  151 + answerId: 0,
  152 + answerString: '金属光沢',
  153 + answerImage: ''
  154 + }, {
  155 + menuId: 1,
  156 + unitId: 101,
  157 + qaId: 0,
  158 + questionString: '個体の氷が液体の水や気体の水蒸気にすがたを変えることを何というか',
  159 + questionImage: 'q0110100.png',
  160 + choicesId: [0, 1, 2],
  161 + choicesString: ['沸点', '状態変化', '融解'],
  162 + answerId: 1,
  163 + answerString: '状態変化',
  164 + answerImage: ''
  165 + }, {
  166 + menuId: 1,
  167 + unitId: 101,
  168 + qaId: 1,
  169 + questionString: '次のア~エから増加しているものを選べ',
  170 + questionImage: 'q0110101.png',
  171 + choicesId: [0, 1, 2, 3],
  172 + choicesString: ['ア', 'イ', 'ウ', 'エ'],
  173 + answerId: 3,
  174 + answerString: 'エ',
  175 + answerImage: ''
  176 + }, {
  177 + menuId: 1,
  178 + unitId: 101,
  179 + qaId: 2,
  180 + questionString: '物質が個体・液体・気体とすがたを変えたとき、その物質が持っている性質は{ ? }',
  181 + questionImage: '',
  182 + choicesId: [0, 1],
  183 + choicesString: ['変化する', '変わらない'],
  184 + answerId: 1,
  185 + answerString: '変わらない',
  186 + answerImage: ''
  187 + }, {
  188 + menuId: 1,
  189 + unitId: 102,
  190 + qaId: 0,
  191 + questionString: '図の X の物質名と、気体の捕集法の名前を答えよ',
  192 + questionImage: 'q0110200.png',
  193 + choicesId: [0, 1, 2, 3],
  194 + choicesString: ['硫酸、水上置換', '塩酸、水上置換', '塩酸、上方置換', '硫酸、下方置換'],
  195 + answerId: 1,
  196 + answerString: '塩酸、水上置換',
  197 + answerImage: ''
  198 + }, {
  199 + menuId: 1,
  200 + unitId: 102,
  201 + qaId: 1,
  202 + questionString: '図で発生する Y の気体名と、気体の捕集法の名前を答えよ',
  203 + questionImage: 'q0110201.png',
  204 + choicesId: [0, 1, 2, 3],
  205 + choicesString: ['二酸化炭素、下方置換', '酸素、下方置換', '二酸化炭素、上方置換', '水素、上方置換'],
  206 + answerId: 0,
  207 + answerString: '二酸化炭素、下方置換',
  208 + answerImage: ''
  209 + }, {
  210 + menuId: 1,
  211 + unitId: 103,
  212 + qaId: 0,
  213 + questionString: '水とエタノールの混合物を図のような装置で加熱した。図2のグラフのアのとき、図1の A にたまる液体に多くふくまれる物質は何か',
  214 + questionImage: 'q0110300.png',
  215 + choicesId: [0, 1],
  216 + choicesString: ['水', 'エタノール'],
  217 + answerId: 1,
  218 + answerString: 'エタノール',
  219 + answerImage: ''
  220 + }, {
  221 + menuId: 1,
  222 + unitId: 104,
  223 + qaId: 0,
  224 + questionString: '図は、100g の水にとける物質の質量と温度の関係を示したものである。今、70℃ の水 100g に硝酸カリウムをとけるだけとかして水溶液をつくった。'
  225 + +'<br />この硝酸カリウム水溶液を 50℃ まで冷やすと、とけきれなくなって結晶として出てくるのは約何g か',
  226 + questionImage: 'q0110400.png',
  227 + choicesId: [0, 1, 2, 3],
  228 + choicesString: ['20', '40', '60', '80'],
  229 + answerId: 2,
  230 + answerString: '60',
  231 + answerImage: ''
  232 + }, {
  233 + menuId: 1,
  234 + unitId: 105,
  235 + qaId: 0,
  236 + questionString: '水に食塩を完全にとかして食塩水をつくった。A の食塩水にさらに 60g の水を加えると、食塩水の濃度は何%になるか',
  237 + questionImage: 'q0110500.png',
  238 + choicesId: [0, 1, 2, 3],
  239 + choicesString: ['25 %', '12.5 %', '17.5 %', '8.5 %'],
  240 + answerId: 1,
  241 + answerString: '12.5 %',
  242 + answerImage: ''
  243 + }, {
  244 + menuId: 1,
  245 + unitId: 105,
  246 + qaId: 1,
  247 + questionString: '水に食塩を完全にとかして食塩水をつくった。B の食塩水の濃度は何%か。小数第1位を四捨五入して求めよ',
  248 + questionImage: 'q0110501.png',
  249 + choicesId: [0, 1, 2, 3],
  250 + choicesString: ['14 %', '16 %', '12 %', '17 %'],
  251 + answerId: 3,
  252 + answerString: '17 %',
  253 + answerImage: ''
  254 + }, {
  255 + menuId: 2,
  256 + unitId: 100,
  257 + qaId: 0,
  258 + questionString: '図のように乾電池、スイッチ、豆電球、電流計をつないだ回路がある。スイッチを入れたところ、電流計の針は図3のようにさし示した。'
  259 + +'<br />このとき、回路に流れた電流の強さは何 A か。ただし、-端子は 5A につないであるものとする',
  260 + questionImage: 'q0210000.png',
  261 + choicesId: [0, 1, 2, 3],
  262 + choicesString: ['40 A', '35 A', '3.5 A', '2 A'],
  263 + answerId: 2,
  264 + answerString: '3.5 A',
  265 + answerImage: ''
  266 + }, {
  267 + menuId: 2,
  268 + unitId: 101,
  269 + qaId: 0,
  270 + questionString: '図のような回路がある。スイッチを入れたとき、電熱線 a には 3A の電流が流れ、電熱線 b の両端には 6V の電圧が加わった。'
  271 + +'<br />電熱線 b に流れる電流の強さは{ ? }、電熱線 a に加わる電圧の大きさは{ ? }',
  272 + questionImage: 'q0210100.png',
  273 + choicesId: [0, 1, 2, 3],
  274 + choicesString: ['3 A、3 V', '9 A、6 V', '3 A、6 V', '3 A、9 V'],
  275 + answerId: 0,
  276 + answerString: '3 A、3 V',
  277 + answerImage: ''
  278 + }, {
  279 + menuId: 2,
  280 + unitId: 102,
  281 + qaId: 0,
  282 + questionString: '図のような回路がある。スイッチを入れたとき、電熱線 a に 2A の電流が流れ、回路の P 点 には 5 A の電流が流れた。'
  283 + +'<br />電熱線a と電熱線b の抵抗の大きさは、それぞれ何Ωか',
  284 + questionImage: 'q0210200.png',
  285 + choicesId: [0, 1, 2, 3],
  286 + choicesString: ['電熱線a:8Ω、電熱線b:4Ω', '電熱線a:6Ω、電熱線b:4Ω', '電熱線a:4Ω、電熱線b:6Ω', '電熱線a:4Ω、電熱線b:8Ω'],
  287 + answerId: 1,
  288 + answerString: '電熱線a:6Ω、電熱線b:4Ω',
  289 + answerImage: ''
  290 + }, {
  291 + menuId: 2,
  292 + unitId: 103,
  293 + qaId: 0,
  294 + questionString: '2本の電熱線 P , Q について、加えた電圧の大きさと流れた電流の強さの関係を調べたら、グラフのようになった。'
  295 + +'<br />電熱線 P , Q の抵抗の大きさはそれぞれ何Ωか',
  296 + questionImage: 'q0210300.png',
  297 + choicesId: [0, 1, 2, 3],
  298 + choicesString: ['電熱線P:20Ω、電熱線Q:40Ω', '電熱線P:40Ω、電熱線Q:40Ω', '電熱線P:20Ω、電熱線Q:80Ω', '電熱線P:60Ω、電熱線Q:40Ω'],
  299 + answerId: 0,
  300 + answerString: '電熱線P:20Ω、電熱線Q:40Ω',
  301 + answerImage: ''
  302 + }, {
  303 + menuId: 2,
  304 + unitId: 104,
  305 + qaId: 0,
  306 + questionString: '図のように、200gの水の中に電熱線を入れて、回路に 5 V の電圧を加えると、電流計は 1.2 A を示した。5 分間に電熱線から出た熱量はいくらか',
  307 + questionImage: 'q0210400.png',
  308 + choicesId: [0, 1, 2, 3],
  309 + choicesString: ['1200 J', '1800 J', '30 J', '300 J'],
  310 + answerId: 1,
  311 + answerString: '1800 J',
  312 + answerImage: ''
  313 + }, {
  314 + menuId: 2,
  315 + unitId: 105,
  316 + qaId: 0,
  317 + questionString: '図1のように、プラスチックのストロー2本をまとめてティッシュペーパーでこすった。'
  318 + +'<br />次に、図2のように、ストローの1本を糸でつるし、その右端に手前からもう1本のストローやティッシュペーパーを近づけたとき、'
  319 + +'つるしたストローが離れるように動くのは、ストローとティッシュペーパーのどちらを近づけたときか',
  320 + questionImage: 'q0210500.png',
  321 + choicesId: [0, 1],
  322 + choicesString: ['ストロー', 'ティッシュペーパー'],
  323 + answerId: 0,
  324 + answerString: 'ストロー',
  325 + answerImage: ''
  326 + }, {
  327 + menuId: 2,
  328 + unitId: 105,
  329 + qaId: 1,
  330 + questionString: '図のような放電管のア、イの電極に、高電圧をかけたところ、回転車が図の矢印のように回転した。+極はア、イのどちらか',
  331 + questionImage: 'q0210501.png',
  332 + choicesId: [0, 1],
  333 + choicesString: ['ア', 'イ'],
  334 + answerId: 1,
  335 + answerString: 'イ',
  336 + answerImage: ''
  337 + }, {
  338 + menuId: 3,
  339 + unitId: 100,
  340 + qaId: 0,
  341 + questionString: '図は、棒磁石とそのまわりにできる磁界のようすを磁力線で示したものである。ただし磁界の向きは示していない。'
  342 + +'<br />A の位置に磁針を置くとどのようになるか。ア~エから1つ選べ',
  343 + questionImage: 'q0310000.png',
  344 + choicesId: [0, 1, 2, 3],
  345 + choicesString: ['ア', 'イ', 'ウ', 'エ'],
  346 + answerId: 0,
  347 + answerString: 'ア',
  348 + answerImage: ''
  349 + }, {
  350 + menuId: 3,
  351 + unitId: 100,
  352 + qaId: 1,
  353 + questionString: '2本の棒磁石の磁極を図の A、B のように、近づけて置いた。磁極の間に引き合う力がはたらいているのはどちらか',
  354 + questionImage: 'q0310001.png',
  355 + choicesId: [0, 1],
  356 + choicesString: ['A', 'B'],
  357 + answerId: 0,
  358 + answerString: 'A',
  359 + answerImage: ''
  360 + }, {
  361 + menuId: 3,
  362 + unitId: 101,
  363 + qaId: 0,
  364 + questionString: '図は、棒磁石とそのまわりにできる磁界のようすを磁力線で示したものである。ただし磁界の向きは示していない。'
  365 + +'<br />A の位置に磁針を置くとどのようになるか。ア~エから1つ選べ',
  366 + questionImage: 'q0310000.png',
  367 + choicesId: [0, 1, 2, 3],
  368 + choicesString: ['ア', 'イ', 'ウ', 'エ'],
  369 + answerId: 0,
  370 + answerString: 'ア',
  371 + answerImage: ''
  372 + }, {
  373 + menuId: 3,
  374 + unitId: 102,
  375 + qaId: 0,
  376 + questionString: '図は、コイルに電流を流して、まわりにできる磁界のようすを調べようとしたものである。コイルの内側と外側では、磁界の向きは同じか、逆か',
  377 + questionImage: 'q0310200.png',
  378 + choicesId: [0, 1],
  379 + choicesString: ['同じ', '逆'],
  380 + answerId: 1,
  381 + answerString: '逆',
  382 + answerImage: ''
  383 + }, {
  384 + menuId: 3,
  385 + unitId: 103,
  386 + qaId: 0,
  387 + questionString: '図のような装置で、スイッチを入れて導線に電流を流した。'
  388 + +'<br />このとき、磁石の N 極と S 極の間にある導線は、ア~エのどの向きにふれるか',
  389 + questionImage: 'q0310300.png',
  390 + choicesId: [0, 1, 2, 3],
  391 + choicesString: ['ア', 'イ', 'ウ', 'エ'],
  392 + answerId: 0,
  393 + answerString: 'ア',
  394 + answerImage: ''
  395 + }, {
  396 + menuId: 3,
  397 + unitId: 104,
  398 + qaId: 0,
  399 + questionString: '図のように、コイルに棒磁石の N 極をさしこんだら、検流計の針が-極側にふれた。'
  400 + +'<br />棒磁石のN極をコイルに差し込んだままにして止めたとき、検流計の針は+極側と-極側のどちら側にふれるか。それとも、針はふれないか',
  401 + questionImage: 'q0310400.png',
  402 + choicesId: [0, 1, 2],
  403 + choicesString: ['+極側', '-極側', 'ふれない'],
  404 + answerId: 2,
  405 + answerString: 'ふれない',
  406 + answerImage: ''
  407 + }, {
  408 + menuId: 3,
  409 + unitId: 105,
  410 + qaId: 0,
  411 + questionString: 'オシロスコープで電流の表示が波形となるのは、直流、交流のどちらか',
  412 + questionImage: '',
  413 + choicesId: [0, 1],
  414 + choicesString: ['直流', '交流'],
  415 + answerId: 1,
  416 + answerString: '交流',
  417 + answerImage: ''
  418 + }, {
  419 + menuId: 3,
  420 + unitId: 105,
  421 + qaId: 1,
  422 + questionString: '発光ダイオードを用いて回路をつくり、点灯させ、暗い部屋で左右に振ったとき、図のように点線状に見えた。このとき用いた電流は、直流、交流のどちらか',
  423 + questionImage: 'q0310501.png',
  424 + choicesId: [0, 1],
  425 + choicesString: ['直流', '交流'],
  426 + answerId: 1,
  427 + answerString: '交流',
  428 + answerImage: ''
  429 + }, {
  430 + menuId: 3,
  431 + unitId: 105,
  432 + qaId: 2,
  433 + questionString: '変圧器を用いて簡単に電圧を変えることができる電流は、直流、交流のどちらか',
  434 + questionImage: '',
  435 + choicesId: [0, 1],
  436 + choicesString: ['直流', '交流'],
  437 + answerId: 1,
  438 + answerString: '交流',
  439 + answerImage: ''
  440 + }, {
  441 + menuId: 4,
  442 + unitId: 100,
  443 + qaId: 0,
  444 + questionString: '図のような装置で、炭酸水素ナトリウムを加熱した。試験管 B の石灰水はどのような変化をするか。また、試験管 A に白色の固体が残るが、この物質は何か',
  445 + questionImage: 'q0410000.png',
  446 + choicesId: [0, 1, 2, 3],
  447 + choicesString: ['白くにごる、炭酸ナトリウム', '白くにごる、塩化ナトリウム', '変化しない、炭素', '変化しない、炭酸ナトリウム'],
  448 + answerId: 0,
  449 + answerString: '白くにごる、炭酸ナトリウム',
  450 + answerImage: ''
  451 + }, {
  452 + menuId: 4,
  453 + unitId: 101,
  454 + qaId: 0,
  455 + questionString: '図のような装置で、酸化銀を加熱した。実験後、試験管 A に残る物質は何か。また、試験管 B に集まる気体は何か',
  456 + questionImage: 'q0410100.png',
  457 + choicesId: [0, 1, 2, 3],
  458 + choicesString: ['銀、二酸化炭素', '炭素、酸素', '銀、酸素', '炭素、酸素'],
  459 + answerId: 2,
  460 + answerString: '銀、酸素',
  461 + answerImage: ''
  462 + }, {
  463 + menuId: 4,
  464 + unitId: 102,
  465 + qaId: 0,
  466 + questionString: '図のような装置で、水に少量の水酸化ナトリウムを加えて、電流を流したところ、A、B の気体が集まった。集まった気体 A、B はそれぞれ何か',
  467 + questionImage: 'q0410200.png',
  468 + choicesId: [0, 1, 2, 3],
  469 + choicesString: ['酸素、二酸化炭素', '酸素、水素', '二酸化炭素、水素', '水素、酸素'],
  470 + answerId: 3,
  471 + answerString: '水素、酸素',
  472 + answerImage: ''
  473 + }, {
  474 + menuId: 4,
  475 + unitId: 103,
  476 + qaId: 0,
  477 + questionString: '原子の性質について述べた3つの文で、誤っているものはどれか',
  478 + questionImage: 'q0410300.png',
  479 + choicesId: [0, 1, 2],
  480 + choicesString: ['ア', 'イ', 'ウ'],
  481 + answerId: 1,
  482 + answerString: 'イ',
  483 + answerImage: ''
  484 + }, {
  485 + menuId: 4,
  486 + unitId: 103,
  487 + qaId: 1,
  488 + questionString: '次の原子を、それぞれ原子の記号で表せ。'
  489 + +'<br />塩素{ ? } 硫黄{ ? } 銅{ ? } 銀{ ? }',
  490 + questionImage: '',
  491 + choicesId: [0, 1, 2, 3],
  492 + choicesString: ['C、I、Cu、Ag', 'Cl、Ag、Cu、S', 'Cl、S、Cu、Ag', 'Cu、S、Cl、Au'],
  493 + answerId: 2,
  494 + answerString: 'Cl、S、Cu、Ag',
  495 + answerImage: ''
  496 + }, {
  497 + menuId: 4,
  498 + unitId: 104,
  499 + qaId: 0,
  500 + questionString: '鉄と硫黄の粉末をよく混ぜ合わせ、アルミニウムはくで包んだものを2つ用意した。図のように A は一端を加熱し、反応が始まったら砂を入れた皿の上に置いた。B はそのままにした。'
  501 + +'<br />A、B のアルミニウムはくの中の物質をそれぞれ一部とって試験管に入れ、うすい塩酸を加えたとき、卵のくさったようなにおいがするのは A、B のどちらか',
  502 + questionImage: 'q0410400.png',
  503 + choicesId: [0, 1],
  504 + choicesString: ['A', 'B'],
  505 + answerId: 0,
  506 + answerString: 'A',
  507 + answerImage: ''
  508 + }, {
  509 + menuId: 4,
  510 + unitId: 105,
  511 + qaId: 0,
  512 + questionString: '次の化学変化を化学反応式で書け。'
  513 + +'<br />鉄と硫黄を混ぜて加熱したときの変化',
  514 + questionImage: '',
  515 + choicesId: [0, 1, 2, 3],
  516 + choicesString: ['Fe + S → FeS', 'Cu + S → CuS', '2Fe + S → 2FeS', 'Fe + 2S → FeS₂'],
  517 + answerId: 0,
  518 + answerString: 'Fe + S → FeS',
  519 + answerImage: ''
  520 + }, {
  521 + menuId: 4,
  522 + unitId: 105,
  523 + qaId: 1,
  524 + questionString: '次の化学変化を化学反応式で書け。'
  525 + +'<br />炭酸水素ナトリウムを加熱したときの変化',
  526 + questionImage: '',
  527 + choicesId: [0, 1, 2, 3],
  528 + choicesString: ['NaHCO₃ → Na₂CO₃ + CO₂ + H₂O', '2NaHCO₃ → Na₂CO₃ + CO₂ + 2H₂O', '2NaHCO₃ → Na₂CO₃ + CO₂ + H₂O', 'NaHCO₃ → Na₂CO₃ + 2CO₂ + H₂O'],
  529 + answerId: 2,
  530 + answerString: '2NaHCO₃ → Na₂CO₃ + CO₂ + H₂O',
  531 + answerImage: ''
  532 + }, {
  533 + menuId: 5,
  534 + unitId: 100,
  535 + qaId: 0,
  536 + questionString: '図のように銅の粉末 0.8g をステンレスの皿に入れて加熱し、冷えてから質量を測定した。これを何回かくり返したところ,図2のようなグラフになった。銅の粉末 0.8g と化合した酸素の質量は 何g か',
  537 + questionImage: 'q0510000.png',
  538 + choicesId: [0, 1, 2, 3],
  539 + choicesString: ['3.0 g', '0.3 g', '1.0 g', '0.2 g'],
  540 + answerId: 3,
  541 + answerString: '0.2 g',
  542 + answerImage: ''
  543 + }, {
  544 + menuId: 5,
  545 + unitId: 101,
  546 + qaId: 0,
  547 + questionString: '図のように酸化銅の粉末と木炭の粉末を混ぜて加熱した。この実験について次のように表すとき、①、②にあてはまる物質名は何か'
  548 + +'<br />( ① ) + 炭素 → ( ② ) + 二酸化炭素',
  549 + questionImage: 'q0510100.png',
  550 + choicesId: [0, 1, 2, 3],
  551 + choicesString: ['①銅、②酸化銅', '①酸化銅、②銅', '①鉄、②銅', '①鉄、②酸化鉄'],
  552 + answerId: 1,
  553 + answerString: '①酸化銅、②銅',
  554 + answerImage: ''
  555 + }, {
  556 + menuId: 5,
  557 + unitId: 102,
  558 + qaId: 0,
  559 + questionString: '図の実験 A ~ C を行い、反応の前後で全体の質量を測定した。化学変化の前後で質量が増えるのは{ ? }、化学変化の前後で質量が変わらないのは{ ? }',
  560 + questionImage: 'q0510200.png',
  561 + choicesId: [0, 1, 2, 3],
  562 + choicesString: ['A、B', 'B、A', 'A、C', 'B、C'],
  563 + answerId: 3,
  564 + answerString: 'B、C',
  565 + answerImage: ''
  566 + }, {
  567 + menuId: 5,
  568 + unitId: 103,
  569 + qaId: 0,
  570 + questionString: '銅の粉末とマグネシウムの粉末をそれぞれ質量を変えてはかりとり、ステンレスの皿にのせて加熱した。よく冷えてから質量をはかり,また加熱した。これをくり返し,金属の質量とできる酸化物の質量の関係を調べたら,図のグラフを得た。'
  571 + +'<br />酸素 1g と化合する、銅とマグネシウムの質量はそれぞれ何g か',
  572 + questionImage: 'q0510300.png',
  573 + choicesId: [0, 1, 2, 3],
  574 + choicesString: ['銅:4.0 g、マグネシウム:1.5 g', '銅:3.5 g、マグネシウム:1.0 g', '銅:4.0 g、マグネシウム:2.0 g', '銅:5.0 g、マグネシウム:1.5 g'],
  575 + answerId: 0,
  576 + answerString: '銅:4.0 g、マグネシウム:1.5 g',
  577 + answerImage: ''
  578 + }, {
  579 + menuId: 5,
  580 + unitId: 104,
  581 + qaId: 0,
  582 + questionString: 'うすい塩酸 20 c㎥ を入れた三角フラスコに、0.2 g の亜鉛を入れて、発生した気体を集め、その体積をはかった。亜鉛の質量を 0.4 g、0.6 g、0.8 g、1.0 g、1.2 g にして、それぞれ同様の実験を行ったところ、図のようなグラフを得た。'
  583 + +'<br />この実験で用いたうすい塩酸 10 c㎥ に 0.6g の亜鉛を加えたとき、発生する気体の体積は何c㎥か',
  584 + questionImage: 'q0510400.png',
  585 + choicesId: [0, 1, 2, 3],
  586 + choicesString: ['100 c㎥', '150 c㎥', '250 c㎥', '300 c㎥'],
  587 + answerId: 1,
  588 + answerString: '150 c㎥',
  589 + answerImage: ''
  590 + }, {
  591 + menuId: 5,
  592 + unitId: 105,
  593 + qaId: 0,
  594 + questionString: 'ア~ウのうち、発熱反応は{ ? }、吸熱反応は{ ? }',
  595 + questionImage: 'q0510500.png',
  596 + choicesId: [0, 1, 2, 3],
  597 + choicesString: ['発熱反応:ア、吸熱反応:イ・ウ', '発熱反応:ウ、吸熱反応:イ', '発熱反応:ア、吸熱反応:ウ', '発熱反応:ア・ウ、吸熱反応:イ'],
  598 + answerId: 3,
  599 + answerString: '発熱反応:ア・ウ、吸熱反応:イ',
  600 + answerImage: ''
  601 + }, {
  602 + menuId: 6,
  603 + unitId: 100,
  604 + qaId: 0,
  605 + questionString: 'タンポポの花をルーペで観察するとき、動かすのはタンポポの花とルーペのどちらか',
  606 + questionImage: '',
  607 + choicesId: [0, 1],
  608 + choicesString: ['タンポポの花', 'ルーペ'],
  609 + answerId: 0,
  610 + answerString: 'タンポポの花',
  611 + answerImage: ''
  612 + }, {
  613 + menuId: 6,
  614 + unitId: 100,
  615 + qaId: 1,
  616 + questionString: 'タンポポの花で、めしべと子房はどれか。それぞれア~オから選べ',
  617 + questionImage: 'q0610001.png',
  618 + choicesId: [0, 1, 2, 3],
  619 + choicesString: ['めしべ:ア、子房:イ', 'めしべ:イ、子房:エ', 'めしべ:ア、子房:オ', 'めしべ:イ、子房:オ'],
  620 + answerId: 3,
  621 + answerString: 'めしべ:イ、子房:オ',
  622 + answerImage: ''
  623 + }, {
  624 + menuId: 6,
  625 + unitId: 101,
  626 + qaId: 0,
  627 + questionString: '図の A~E から、植物の特徴をもつ生物をすべて選べ',
  628 + questionImage: 'q0610100.png',
  629 + choicesId: [0, 1, 2, 3],
  630 + choicesString: ['B、D、E', 'B、E', 'A、D、E', 'B、D'],
  631 + answerId: 0,
  632 + answerString: 'B、D、E',
  633 + answerImage: ''
  634 + }, {
  635 + menuId: 6,
  636 + unitId: 101,
  637 + qaId: 1,
  638 + questionString: 'アには 10×、イには 40 と示されていた。このときの顕微鏡の倍率はいくらか',
  639 + questionImage: 'q0610101.png',
  640 + choicesId: [0, 1, 2, 3],
  641 + choicesString: ['100 倍', '400 倍', '40 倍', '10 倍'],
  642 + answerId: 1,
  643 + answerString: '400 倍',
  644 + answerImage: ''
  645 + }, {
  646 + menuId: 6,
  647 + unitId: 101,
  648 + qaId: 2,
  649 + questionString: '顕微鏡の倍率を高くすると、視野の広さと明るさはそれぞれどうなるか',
  650 + questionImage: '',
  651 + choicesId: [0, 1, 2, 3],
  652 + choicesString: ['広さ:せまくなる、明るさ:明るくなる', '広さ:広くなる、明るさ:暗くなる', '広さ:せまくなる、明るさ:暗くなる', '広さ:広くなる、明るさ:明るくなる'],
  653 + answerId: 2,
  654 + answerString: '広さ:せまくなる、明るさ:暗くなる',
  655 + answerImage: ''
  656 + }, {
  657 + menuId: 6,
  658 + unitId: 101,
  659 + qaId: 3,
  660 + questionString: '顕微鏡のピントを合わせるとき、対物レンズとプレパラートの距離はどうするか',
  661 + questionImage: '',
  662 + choicesId: [0, 1],
  663 + choicesString: ['遠ざけていく', '近づけていく'],
  664 + answerId: 0,
  665 + answerString: '遠ざけていく',
  666 + answerImage: ''
  667 + }, {
  668 + menuId: 6,
  669 + unitId: 102,
  670 + qaId: 0,
  671 + questionString: '図はサクラの花のつくりを表している。ア~エで、めしべとおしべはそれぞれどれか',
  672 + questionImage: 'q0610200.png',
  673 + choicesId: [0, 1, 2, 3],
  674 + choicesString: ['めしべ:ウ、おしべ:ア', 'めしべ:エ、おしべ:ア', 'めしべ:エ、おしべ:イ', 'めしべ:ア、おしべ:エ'],
  675 + answerId: 1,
  676 + answerString: 'めしべ:エ、おしべ:ア',
  677 + answerImage: ''
  678 + }, {
  679 + menuId: 6,
  680 + unitId: 102,
  681 + qaId: 1,
  682 + questionString: '図はマツの花のつくりを表している。C は何か',
  683 + questionImage: 'q0610201.png',
  684 + choicesId: [0, 1, 2, 3],
  685 + choicesString: ['めしべ', '子房', 'おしべ', '胚珠'],
  686 + answerId: 3,
  687 + answerString: '胚珠',
  688 + answerImage: ''
  689 + }, {
  690 + menuId: 6,
  691 + unitId: 103,
  692 + qaId: 0,
  693 + questionString: '図は被子植物の根のつくりを表したものである。A~C で主根はどれか',
  694 + questionImage: 'q0610300.png',
  695 + choicesId: [0, 1, 2],
  696 + choicesString: ['A', 'B', 'C'],
  697 + answerId: 2,
  698 + answerString: 'C',
  699 + answerImage: ''
  700 + }, {
  701 + menuId: 6,
  702 + unitId: 103,
  703 + qaId: 1,
  704 + questionString: '被子植物の葉の裏側には気孔が多くある。気孔の開閉によって調節されるのは、次のうちのどれか',
  705 + questionImage: '',
  706 + choicesId: [0, 1, 2],
  707 + choicesString: ['呼吸する量', '光合成する量', '蒸散する量'],
  708 + answerId: 2,
  709 + answerString: '蒸散する量',
  710 + answerImage: ''
  711 + }, {
  712 + menuId: 6,
  713 + unitId: 104,
  714 + qaId: 0,
  715 + questionString: '一晩暗いところに置いたはち植えのアサガオの1枚の葉の一部を図の①のようにアルミニウムはくでおおい、十分に日光を当て、②~④のように処理した。'
  716 + +'④の葉で、青紫色に変化するのはア~ウのうちどれか',
  717 + questionImage: 'q0610400.png',
  718 + choicesId: [0, 1, 2],
  719 + choicesString: ['ア', 'イ', 'ウ'],
  720 + answerId: 2,
  721 + answerString: 'ウ',
  722 + answerImage: ''
  723 + }, {
  724 + menuId: 6,
  725 + unitId: 104,
  726 + qaId: 1,
  727 + questionString: '植物が1日中行っていて、酸素を取り入れ、二酸化炭素を出すはたらきを何というか',
  728 + questionImage: '',
  729 + choicesId: [0, 1],
  730 + choicesString: ['呼吸', '光合成'],
  731 + answerId: 0,
  732 + answerString: '呼吸',
  733 + answerImage: ''
  734 + }, {
  735 + menuId: 6,
  736 + unitId: 105,
  737 + qaId: 0,
  738 + questionString: '8種類の植物のうち、裸子植物はどれか。すべて選べ',
  739 + questionImage: 'q0610500.png',
  740 + choicesId: [0, 1, 2, 3],
  741 + choicesString: ['ゼニゴケ', 'ゼニゴケ、ワラビ', 'イチョウ、ソテツ', 'イチョウ、ワラビ'],
  742 + answerId: 2,
  743 + answerString: 'イチョウ、ソテツ',
  744 + answerImage: ''
  745 + }, {
  746 + menuId: 6,
  747 + unitId: 105,
  748 + qaId: 1,
  749 + questionString: '8種類の植物のうち、種子をつくらずに胞子でなかまをふやす植物で、根・茎・葉の区別がある植物はどれか',
  750 + questionImage: 'q0610501.png',
  751 + choicesId: [0, 1, 2, 3],
  752 + choicesString: ['ゼニゴケ', 'ワラビ', 'ソテツ', 'ササ'],
  753 + answerId: 1,
  754 + answerString: 'ワラビ',
  755 + answerImage: ''
  756 + }, {
  757 + menuId: 7,
  758 + unitId: 100,
  759 + qaId: 0,
  760 + questionString: '図は、れき・砂・泥が混ざった土砂が流れこむ、ある河口近くの海岸のようすを断面図で表したものである。'
  761 + +'<br />ア~ウの層をつくっている堆積物の粒の大きい順にア~ウの記号を並べよ',
  762 + questionImage: 'q0710000.png',
  763 + choicesId: [0, 1, 2, 3],
  764 + choicesString: ['ア→イ→ウ', 'ウ→イ→ア', 'ア→ウ→イ', 'ウ→ア→イ'],
  765 + answerId: 0,
  766 + answerString: 'ア→イ→ウ',
  767 + answerImage: ''
  768 + }, {
  769 + menuId: 7,
  770 + unitId: 101,
  771 + qaId: 0,
  772 + questionString: '泥岩は、おもに何が堆積してできた岩石か',
  773 + questionImage: '',
  774 + choicesId: [0, 1, 2],
  775 + choicesString: ['砂', 'れき', '泥'],
  776 + answerId: 2,
  777 + answerString: '泥',
  778 + answerImage: ''
  779 + }, {
  780 + menuId: 7,
  781 + unitId: 101,
  782 + qaId: 1,
  783 + questionString: '図は、ある土地のボーリング資料をもとに、地層の重なりのようすを柱状図で表したものである。'
  784 + +'<br />地層の重なり方から考えて、このあたりの土地の海岸からの距離はどう変化したといえるか',
  785 + questionImage: 'q0710101.png',
  786 + choicesId: [0, 1, 2],
  787 + choicesString: ['海岸から次第に遠くなった', '海岸から次第に近くなった', 'ほとんど変わっていない'],
  788 + answerId: 0,
  789 + answerString: '海岸から次第に遠くなった',
  790 + answerImage: ''
  791 + }, {
  792 + menuId: 7,
  793 + unitId: 102,
  794 + qaId: 0,
  795 + questionString: '図は、火山のしくみを表したものである。'
  796 + +'<br />A は地下の高温の液体状のものである。また、B は A が火口から噴出して流れたものである。A、B をそれぞれ何というか',
  797 + questionImage: 'q0710200.png',
  798 + choicesId: [0, 1, 2, 3],
  799 + choicesString: ['A:溶岩、B:マグマ', 'A:火山ガス、B:マグマ', 'A:マグマ、B:溶岩'],
  800 + answerId: 2,
  801 + answerString: 'A:マグマ、B:溶岩',
  802 + answerImage: ''
  803 + }, {
  804 + menuId: 7,
  805 + unitId: 103,
  806 + qaId: 0,
  807 + questionString: '図は、2種類の火成岩のつくりを示したものである。'
  808 + +'<br />図1、図2は深成岩・火山岩のどちらか',
  809 + questionImage: 'q0710300.png',
  810 + choicesId: [0, 1],
  811 + choicesString: ['図1:深成岩、図2:火山岩', 'A:火山岩、B:深成岩'],
  812 + answerId: 0,
  813 + answerString: 'A:深成岩、B:火山岩',
  814 + answerImage: ''
  815 + }, {
  816 + menuId: 7,
  817 + unitId: 103,
  818 + qaId: 1,
  819 + questionString: '次のア~カの鉱物の中で、有色鉱物はどれか',
  820 + questionImage: 'q0710301.png',
  821 + choicesId: [0, 1, 2, 3],
  822 + choicesString: ['ア、ウ、カ', 'ア、イ、エ、カ', 'ウ、カ', 'ア、ウ、エ、カ'],
  823 + answerId: 3,
  824 + answerString: 'ア、ウ、エ、カ',
  825 + answerImage: ''
  826 + }, {
  827 + menuId: 7,
  828 + unitId: 104,
  829 + qaId: 0,
  830 + questionString: 'グラフは、ある地震の波について、震源からの距離と地震の波の到着時刻の関係を示したものである。グラフ A で表される波の伝わる速さは、毎秒何kmか',
  831 + questionImage: 'q0710400.png',
  832 + choicesId: [0, 1, 2, 3],
  833 + choicesString: ['4 km', '8 km', '12 km', '16 km'],
  834 + answerId: 1,
  835 + answerString: '8 km',
  836 + answerImage: ''
  837 + }, {
  838 + menuId: 7,
  839 + unitId: 104,
  840 + qaId: 1,
  841 + questionString: '地震ではマグニチュードが大きいほど、何が大きくなるのか',
  842 + questionImage: '',
  843 + choicesId: [0, 1],
  844 + choicesString: ['地震の規模', '揺れの大きさ'],
  845 + answerId: 0,
  846 + answerString: '地震の規模',
  847 + answerImage: ''
  848 + }, {
  849 + menuId: 7,
  850 + unitId: 105,
  851 + qaId: 0,
  852 + questionString: '図のように、地層に大きな力がはたらき、ある面を境にして地層がくいちがう変動を何というか',
  853 + questionImage: 'q0710500.png',
  854 + choicesId: [0, 1],
  855 + choicesString: ['断層', 'しゅう曲'],
  856 + answerId: 0,
  857 + answerString: '断層',
  858 + answerImage: ''
  859 + }, {
  860 + menuId: 7,
  861 + unitId: 105,
  862 + qaId: 1,
  863 + questionString: '図のように、地層に大きな力がはたらき、地層がおし曲げられる変動を何というか',
  864 + questionImage: 'q0710501.png',
  865 + choicesId: [0, 1],
  866 + choicesString: ['断層', 'しゅう曲'],
  867 + answerId: 1,
  868 + answerString: 'しゅう曲',
  869 + answerImage: ''
  870 + }, {
  871 + menuId: 7,
  872 + unitId: 105,
  873 + qaId: 2,
  874 + questionString: '大きな地震によってつくられる土地の変化として適当なものを、ア~ウから1つ選べ',
  875 + questionImage: 'q0710502.png',
  876 + choicesId: [0, 1, 2],
  877 + choicesString: ['ア', 'イ', 'ウ'],
  878 + answerId: 0,
  879 + answerString: 'ア',
  880 + answerImage: ''
  881 + }];
  882 +
  883 + return qa;
  884 + }
  885 +
  886 +}
... ...
  1 +import { Injectable } from '@angular/core';
  2 +import { Unit } from './define-unit';
  3 +/*
  4 + Generated class for the DataService provider.
  5 +
  6 + See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  7 + for more info on providers and Angular 2 DI.
  8 +*/
  9 +@Injectable()
  10 +export class ContentsExtunit {
  11 + extunit: Unit[];
  12 +
  13 + constructor() {
  14 + this.extunit = this.createExtUnit();
  15 + }
  16 +
  17 + private createExtUnit(): Unit[] {
  18 + var unit = [{
  19 + menuId: 0,
  20 + unitId: 100,
  21 + level: '10',
  22 + unitName: '光の反射'
  23 + }, {
  24 + menuId: 0,
  25 + unitId: 101,
  26 + level: '10',
  27 + unitName: '光の屈折'
  28 + }, {
  29 + menuId: 0,
  30 + unitId: 102,
  31 + level: '10',
  32 + unitName: '凸レンズと像'
  33 + }, {
  34 + menuId: 0,
  35 + unitId: 103,
  36 + level: '10',
  37 + unitName: '音の性質と速さ'
  38 + }, {
  39 + menuId: 0,
  40 + unitId: 104,
  41 + level: '10',
  42 + unitName: '力とばねののび'
  43 + }, {
  44 + menuId: 0,
  45 + unitId: 105,
  46 + level: '10',
  47 + unitName: '圧力・浮力'
  48 + }, {
  49 + menuId: 1,
  50 + unitId: 100,
  51 + level: '10',
  52 + unitName: '物質の性質'
  53 + }, {
  54 + menuId: 1,
  55 + unitId: 101,
  56 + level: '10',
  57 + unitName: '物質の状態変化'
  58 + }, {
  59 + menuId: 1,
  60 + unitId: 102,
  61 + level: '10',
  62 + unitName: '気体の性質'
  63 + }, {
  64 + menuId: 1,
  65 + unitId: 103,
  66 + level: '10',
  67 + unitName: '融点と沸点'
  68 + }, {
  69 + menuId: 1,
  70 + unitId: 104,
  71 + level: '10',
  72 + unitName: '水溶液の性質'
  73 + }, {
  74 + menuId: 1,
  75 + unitId: 105,
  76 + level: '10',
  77 + unitName: '水溶液の濃度'
  78 + }, {
  79 + menuId: 2,
  80 + unitId: 100,
  81 + level: '10',
  82 + unitName: '回路(1)'
  83 + }, {
  84 + menuId: 2,
  85 + unitId: 101,
  86 + level: '10',
  87 + unitName: '回路(2)'
  88 + }, {
  89 + menuId: 2,
  90 + unitId: 102,
  91 + level: '10',
  92 + unitName: '回路(3)'
  93 + }, {
  94 + menuId: 2,
  95 + unitId: 103,
  96 + level: '10',
  97 + unitName: '抵抗'
  98 + }, {
  99 + menuId: 2,
  100 + unitId: 104,
  101 + level: '10',
  102 + unitName: '電流による発熱'
  103 + }, {
  104 + menuId: 2,
  105 + unitId: 105,
  106 + level: '10',
  107 + unitName: '静電気'
  108 + }, {
  109 + menuId: 3,
  110 + unitId: 100,
  111 + level: '10',
  112 + unitName: '磁石の磁界(1)'
  113 + }, {
  114 + menuId: 3,
  115 + unitId: 101,
  116 + level: '10',
  117 + unitName: '磁石の磁界(2)'
  118 + }, {
  119 + menuId: 3,
  120 + unitId: 102,
  121 + level: '10',
  122 + unitName: 'コイルのまわりの磁界'
  123 + }, {
  124 + menuId: 3,
  125 + unitId: 103,
  126 + level: '10',
  127 + unitName: '電流が磁界から受ける力'
  128 + }, {
  129 + menuId: 3,
  130 + unitId: 104,
  131 + level: '10',
  132 + unitName: '電磁誘導'
  133 + }, {
  134 + menuId: 3,
  135 + unitId: 105,
  136 + level: '10',
  137 + unitName: '直流と交流'
  138 + }, {
  139 + menuId: 4,
  140 + unitId: 100,
  141 + level: '10',
  142 + unitName: '分解(1)'
  143 + }, {
  144 + menuId: 4,
  145 + unitId: 101,
  146 + level: '10',
  147 + unitName: '分解(2)'
  148 + }, {
  149 + menuId: 4,
  150 + unitId: 102,
  151 + level: '10',
  152 + unitName: '分解(3)'
  153 + }, {
  154 + menuId: 4,
  155 + unitId: 103,
  156 + level: '10',
  157 + unitName: '原子と分子'
  158 + }, {
  159 + menuId: 4,
  160 + unitId: 104,
  161 + level: '10',
  162 + unitName: '化合'
  163 + }, {
  164 + menuId: 4,
  165 + unitId: 105,
  166 + level: '10',
  167 + unitName: '化学反応式'
  168 + }, {
  169 + menuId: 5,
  170 + unitId: 100,
  171 + level: '10',
  172 + unitName: '酸化'
  173 + }, {
  174 + menuId: 5,
  175 + unitId: 101,
  176 + level: '10',
  177 + unitName: '還元'
  178 + }, {
  179 + menuId: 5,
  180 + unitId: 102,
  181 + level: '10',
  182 + unitName: '化学変化の前後の質量'
  183 + }, {
  184 + menuId: 5,
  185 + unitId: 103,
  186 + level: '10',
  187 + unitName: '金属と化合する酸素の質量'
  188 + }, {
  189 + menuId: 5,
  190 + unitId: 104,
  191 + level: '10',
  192 + unitName: '化合する物質の質量の割合'
  193 + }, {
  194 + menuId: 5,
  195 + unitId: 105,
  196 + level: '10',
  197 + unitName: '化学変化と熱'
  198 + }, {
  199 + menuId: 6,
  200 + unitId: 100,
  201 + level: '10',
  202 + unitName: '身近な生物の観察'
  203 + }, {
  204 + menuId: 6,
  205 + unitId: 101,
  206 + level: '10',
  207 + unitName: '水中の小さな生物と顕微鏡'
  208 + }, {
  209 + menuId: 6,
  210 + unitId: 102,
  211 + level: '10',
  212 + unitName: '花のつくり'
  213 + }, {
  214 + menuId: 6,
  215 + unitId: 103,
  216 + level: '10',
  217 + unitName: '根・茎・葉のつくり'
  218 + }, {
  219 + menuId: 6,
  220 + unitId: 104,
  221 + level: '10',
  222 + unitName: '光合成と呼吸'
  223 + }, {
  224 + menuId: 6,
  225 + unitId: 105,
  226 + level: '10',
  227 + unitName: '植物のなかま'
  228 + }, {
  229 + menuId: 7,
  230 + unitId: 100,
  231 + level: '10',
  232 + unitName: '地層のでき方'
  233 + }, {
  234 + menuId: 7,
  235 + unitId: 101,
  236 + level: '10',
  237 + unitName: '堆積岩と化石'
  238 + }, {
  239 + menuId: 7,
  240 + unitId: 102,
  241 + level: '10',
  242 + unitName: '火山とマグマ'
  243 + }, {
  244 + menuId: 7,
  245 + unitId: 103,
  246 + level: '10',
  247 + unitName: '火成岩と鉱物'
  248 + }, {
  249 + menuId: 7,
  250 + unitId: 104,
  251 + level: '10',
  252 + unitName: '地震のゆれと伝わり方'
  253 + }, {
  254 + menuId: 7,
  255 + unitId: 105,
  256 + level: '10',
  257 + unitName: '地層の変形'
  258 + }];
  259 +
  260 + return unit;
  261 + }
  262 +
  263 +
  264 +}
... ...
  1 +import { Injectable } from '@angular/core';
  2 +import { Keyword } from './define-keyword';
  3 +/*
  4 + Generated class for the DataService provider.
  5 +
  6 + See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  7 + for more info on providers and Angular 2 DI.
  8 +*/
  9 +@Injectable()
  10 +export class ContentsKeyword {
  11 + keyword: Keyword[];
  12 +
  13 + constructor() {
  14 + this.keyword = this.createKeyword();
  15 + }
  16 +
  17 + private createKeyword(): Keyword[] {
  18 + var keyword = [{
  19 + menuId: 0, //6文字
  20 + words: ["う","ご","う","こ","い","せ"],
  21 + answer: 'こうごうせい'
  22 + }, {
  23 + menuId: 1, //7文字
  24 + words: ["あ","ん","り","べ","し","だ","き"],
  25 + answer: 'しべりあきだん'
  26 + }, {
  27 + menuId: 2, //7文字
  28 + words: ["し","う","る","い","そ","よ","う"],
  29 + answer: 'そうしようるい'
  30 + }, {
  31 + menuId: 3, //6文字
  32 + words: ["へ","く","ん","か","が","か"],
  33 + answer: 'かがくへんか'
  34 + }, {
  35 + menuId: 4, //5文字
  36 + words: ["ゆ","ぶ","う","き","つ"],
  37 + answer: 'ゆうきぶつ'
  38 + }, {
  39 + menuId: 5, //7文字
  40 + words: ["こ","と","ど","み","ん","あ","り"],
  41 + answer: 'みとこんどりあ'
  42 + }, {
  43 + menuId: 6, //6文字
  44 + words: ["か","お","せ","い","う","い"],
  45 + answer: 'かいおうせい'
  46 + }, {
  47 + menuId: 7, //6文字
  48 + words: ["く","ぼ","ま","さ","い","う"],
  49 + answer: 'さいぼうまく'
  50 + }];
  51 +
  52 + return keyword;
  53 + }
  54 +
  55 +}
... ...
  1 +import { Injectable } from '@angular/core';
  2 +import { Menu } from './define-menu';
  3 +/*
  4 + Generated class for the DataService provider.
  5 +
  6 + See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  7 + for more info on providers and Angular 2 DI.
  8 +*/
  9 +@Injectable()
  10 +export class ContentsMenu {
  11 + menu: Menu[];
  12 +
  13 + constructor() {
  14 + this.menu = this.createMenu();
  15 + }
  16 +
  17 +
  18 + private createMenu(): Menu[] {
  19 + var menu = [{
  20 + menuId: 0,
  21 + grade: '1',
  22 + title: '身のまわりの現象'
  23 + }, {
  24 + menuId: 1,
  25 + grade: '1',
  26 + title: '身のまわりの物質'
  27 + }, {
  28 + menuId: 2,
  29 + grade: '1',
  30 + title: '電流とその利用(1)'
  31 + }, {
  32 + menuId: 3,
  33 + grade: '1',
  34 + title: '電流とその利用(2)'
  35 + }, {
  36 + menuId: 4,
  37 + grade: '1',
  38 + title: '化学変化と原子・分子(1)'
  39 + }, {
  40 + menuId: 5,
  41 + grade: '1',
  42 + title: '化学変化と原子・分子(2)'
  43 + }, {
  44 + menuId: 6,
  45 + grade: '1',
  46 + title: '植物の生活と種類'
  47 + }, {
  48 + menuId: 7,
  49 + grade: '1',
  50 + title: '大地の変化'
  51 + }];
  52 +
  53 + return menu;
  54 + }
  55 +
  56 +
  57 +
  58 +}
... ...
  1 +import { Injectable } from '@angular/core';
  2 +import { Qa } from './define-qa';
  3 +/*
  4 + Generated class for the DataService provider.
  5 +
  6 + See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  7 + for more info on providers and Angular 2 DI.
  8 +*/
  9 +@Injectable()
  10 +export class ContentsQa {
  11 + qa :Qa[];
  12 +
  13 + constructor() {
  14 + this.qa = this.createQa();
  15 + }
  16 +
  17 + private createQa(): Qa[] {
  18 + var qa = [{
  19 + menuId: 0,
  20 + unitId: 0,
  21 + qaId: 0,
  22 + questionString: '光が、鏡で反射するとき、入射角と反射角の大きさは{ ? }',
  23 + questionImage: '',
  24 + choicesId: [0,1,2],
  25 + choicesString: [ '反射角が大きい','入射角が大きい','等しい'],
  26 + answerId: 2,
  27 + answerString: '等しい',
  28 + answerImage: 'a000000.png'
  29 + }, {
  30 + menuId: 0,
  31 + unitId: 0,
  32 + qaId: 1,
  33 + questionString: '図で、反射角は{ ? }である',
  34 + questionImage: 'q000001.png',
  35 + choicesId: [0, 1, 2],
  36 + choicesString: ['ア', 'イ', 'ウ'],
  37 + answerId: 2,
  38 + answerString: 'ウ',
  39 + answerImage: ''
  40 + }, {
  41 + menuId: 0,
  42 + unitId: 1,
  43 + qaId: 0,
  44 + questionString: '光が、空気中から水中に進むとき、屈折角は入射角に比べて{ ? }',
  45 + questionImage: '',
  46 + choicesId: [0, 1],
  47 + choicesString: ['大きい', '小さい'],
  48 + answerId: 1,
  49 + answerString: '小さい',
  50 + answerImage: 'a000100.png'
  51 + }, {
  52 + menuId: 0,
  53 + unitId: 1,
  54 + qaId: 1,
  55 + questionString: '光の入射角がある角度以上大きくなると、光はすべて反射してしまう。この現象を{ ? }という',
  56 + questionImage: '',
  57 + choicesId: [0, 1, 2],
  58 + choicesString: ['全反射', '拡散反射', '屈折'],
  59 + answerId: 0,
  60 + answerString: '全反射',
  61 + answerImage: ''
  62 + }, {
  63 + menuId: 0,
  64 + unitId: 2,
  65 + qaId: 0,
  66 + questionString: '凸レンズの軸に平行な光は、レンズを通過後{ ? }を通る',
  67 + questionImage: '',
  68 + choicesId: [0, 1, 2],
  69 + choicesString: ['周辺部', '焦点', '上端'],
  70 + answerId: 1,
  71 + answerString: '焦点',
  72 + answerImage: 'a000200.png'
  73 + }, {
  74 + menuId: 0,
  75 + unitId: 2,
  76 + qaId: 1,
  77 + questionString: '物体が焦点の外側にあるとき、できる像は{ ? }の{ ? }である',
  78 + questionImage: '',
  79 + choicesId: [0, 1, 2, 3],
  80 + choicesString: ['正立、実像', '正立、虚像', '倒立、実像', '倒立、虚像'],
  81 + answerId: 2,
  82 + answerString: '倒立、実像',
  83 + answerImage: ''
  84 + }, {
  85 + menuId: 0,
  86 + unitId: 2,
  87 + qaId: 2,
  88 + questionString: '物体が焦点の内側にあるとき見える像は{ ? }である',
  89 + questionImage: '',
  90 + choicesId: [0, 1],
  91 + choicesString: ['実像', '虚像'],
  92 + answerId: 1,
  93 + answerString: '虚像',
  94 + answerImage: ''
  95 + }, {
  96 + menuId: 0,
  97 + unitId: 3,
  98 + qaId: 0,
  99 + questionString: '振幅が大きいほど音は{ ? }',
  100 + questionImage: '',
  101 + choicesId: [0, 1],
  102 + choicesString: ['小さい', '大きい'],
  103 + answerId: 1,
  104 + answerString: '大きい',
  105 + answerImage: 'a000300.png'
  106 + }, {
  107 + menuId: 0,
  108 + unitId: 3,
  109 + qaId: 1,
  110 + questionString: '打ち上げ花火が見えてから 3 秒後に音が聞こえた。花火までの距離は約{ ? }m である。なお、音の速さは 340 m/秒とする',
  111 + questionImage: '',
  112 + choicesId: [0, 1, 2, 3],
  113 + choicesString: ['920', '340', '110', '1020'],
  114 + answerId: 3,
  115 + answerString: '1020',
  116 + answerImage: ''
  117 + }, {
  118 + menuId: 0,
  119 + unitId: 4,
  120 + qaId: 0,
  121 + questionString: '1kg の物体にはたらく重力の大きさは{ ? }N',
  122 + questionImage: '',
  123 + choicesId: [0, 1, 2, 3],
  124 + choicesString: ['1', '10', '100', '1000'],
  125 + answerId: 1,
  126 + answerString: '10',
  127 + answerImage: ''
  128 + }, {
  129 + menuId: 0,
  130 + unitId: 4,
  131 + qaId: 1,
  132 + questionString: 'ニュートンばかりは、ばねの{ ? }を利用して力の大きさを調べるはかり',
  133 + questionImage: '',
  134 + choicesId: [0, 1],
  135 + choicesString: ['長さ', 'のび'],
  136 + answerId: 1,
  137 + answerString: 'のび',
  138 + answerImage: ''
  139 + }, {
  140 + menuId: 0,
  141 + unitId: 5,
  142 + qaId: 0,
  143 + questionString: '2㎡ の面を 8N の力で垂直に押したときの面にはたらく圧力は{ ? }Pa',
  144 + questionImage: '',
  145 + choicesId: [0, 1, 2, 3],
  146 + choicesString: ['4', '8', '2', '16'],
  147 + answerId: 0,
  148 + answerString: '4',
  149 + answerImage: 'a000500.png'
  150 + }, {
  151 + menuId: 0,
  152 + unitId: 5,
  153 + qaId: 1,
  154 + questionString: '水圧は水中の物体に対して{ ? }向きにはたらく',
  155 + questionImage: '',
  156 + choicesId: [0, 1],
  157 + choicesString: ['下', 'あらゆる'],
  158 + answerId: 1,
  159 + answerString: 'あらゆる',
  160 + answerImage: ''
  161 + }, {
  162 + menuId: 0,
  163 + unitId: 5,
  164 + qaId: 2,
  165 + questionString: '図で、物体にはたらく浮力の大きさは{ ? }N',
  166 + questionImage: 'q000502.png',
  167 + choicesId: [0, 1, 2, 3],
  168 + choicesString: ['2', '0.1', '0.2', '0.8'],
  169 + answerId: 2,
  170 + answerString: '0.2',
  171 + answerImage: ''
  172 + }, {
  173 + menuId: 1,
  174 + unitId: 0,
  175 + qaId: 0,
  176 + questionString: '砂糖は{ ? }物、食塩は{ ? }物',
  177 + questionImage: '',
  178 + choicesId: [0, 1, 2, 3],
  179 + choicesString: ['無機、無機', '無機、有機', '有機、有機', '有機、無機'],
  180 + answerId: 3,
  181 + answerString: '有機、無機',
  182 + answerImage: 'a010000.png'
  183 + }, {
  184 + menuId: 1,
  185 + unitId: 0,
  186 + qaId: 1,
  187 + questionString: 'プラスチックは{ ? }て、加工がしやすい',
  188 + questionImage: '',
  189 + choicesId: [0, 1],
  190 + choicesString: ['軽く', '重く'],
  191 + answerId: 0,
  192 + answerString: '軽く',
  193 + answerImage: ''
  194 + }, {
  195 + menuId: 1,
  196 + unitId: 0,
  197 + qaId: 2,
  198 + questionString: '金属は、熱や{ ? }をよく通し、光沢が{ ? }',
  199 + questionImage: '',
  200 + choicesId: [0, 1, 2, 3],
  201 + choicesString: ['電気、ある', '光、ある', '電気、ない', '光、ない'],
  202 + answerId: 0,
  203 + answerString: '電気、ある',
  204 + answerImage: ''
  205 + }, {
  206 + menuId: 1,
  207 + unitId: 1,
  208 + qaId: 0,
  209 + questionString: '物質の状態は{ ? }で変化する',
  210 + questionImage: '',
  211 + choicesId: [0, 1, 2, 3],
  212 + choicesString: ['水', '電気', '湿度', '温度'],
  213 + answerId: 3,
  214 + answerString: '温度',
  215 + answerImage: 'a010100.png'
  216 + }, {
  217 + menuId: 1,
  218 + unitId: 1,
  219 + qaId: 1,
  220 + questionString: '物質の状態変化で変化するのは{ ? }である',
  221 + questionImage: '',
  222 + choicesId: [0, 1],
  223 + choicesString: ['体積', '質量'],
  224 + answerId: 0,
  225 + answerString: '体積',
  226 + answerImage: ''
  227 + }, {
  228 + menuId: 1,
  229 + unitId: 2,
  230 + qaId: 0,
  231 + questionString: '表の気体で、燃える気体は{ ? }で、ほかの物質を燃やす気体は{ ? }である',
  232 + questionImage: 'q010200.png',
  233 + choicesId: [0, 1, 2, 3],
  234 + choicesString: ['水素、酸素', '二酸化炭素、水素', '酸素、水素', 'アンモニア、酸素'],
  235 + answerId: 0,
  236 + answerString: '水素、酸素',
  237 + answerImage: ''
  238 + }, {
  239 + menuId: 1,
  240 + unitId: 2,
  241 + qaId: 1,
  242 + questionString: '亜鉛に塩酸を注ぐと、{ ? }が発生する',
  243 + questionImage: '',
  244 + choicesId: [0, 1, 2, 3],
  245 + choicesString: ['二酸化炭素', '水素', '酸素', '窒素'],
  246 + answerId: 1,
  247 + answerString: '水素',
  248 + answerImage: ''
  249 + }, {
  250 + menuId: 1,
  251 + unitId: 2,
  252 + qaId: 2,
  253 + questionString: '図のような気体の集め方を{ ? }(法)といい、{ ? }を集める時に使う。',
  254 + questionImage: 'q010202.png',
  255 + choicesId: [0, 1, 2, 3],
  256 + choicesString: ['下方置換、アンモニア', '下方置換、水素', '上方置換、アンモニア', '上方置換、酸素'],
  257 + answerId: 2,
  258 + answerString: '上方置換、アンモニア',
  259 + answerImage: ''
  260 + }, {
  261 + menuId: 1,
  262 + unitId: 3,
  263 + qaId: 0,
  264 + questionString: '図で、A のときの温度を水の{ ? }という',
  265 + questionImage: 'q010300.png',
  266 + choicesId: [0, 1],
  267 + choicesString: ['融点', '沸点'],
  268 + answerId: 0,
  269 + answerString: '融点',
  270 + answerImage: ''
  271 + }, {
  272 + menuId: 1,
  273 + unitId: 3,
  274 + qaId: 1,
  275 + questionString: '融点や沸点が一定の値を示さないのは、{ ? }である',
  276 + questionImage: '',
  277 + choicesId: [0, 1],
  278 + choicesString: ['純粋な物質', '混合物'],
  279 + answerId: 1,
  280 + answerString: '混合物',
  281 + answerImage: 'a010301.png'
  282 + }, {
  283 + menuId: 1,
  284 + unitId: 3,
  285 + qaId: 2,
  286 + questionString: '食塩水を蒸留して得られた水は{ ? }物質',
  287 + questionImage: '',
  288 + choicesId: [0, 1, 2],
  289 + choicesString: ['純粋な', '混合', '水溶性'],
  290 + answerId: 0,
  291 + answerString: '純粋な',
  292 + answerImage: ''
  293 + }, {
  294 + menuId: 1,
  295 + unitId: 3,
  296 + qaId: 3,
  297 + questionString: '蒸留で最初に出てくるのは沸点の{ ? }物質',
  298 + questionImage: '',
  299 + choicesId: [0, 1],
  300 + choicesString: ['高い', '低い'],
  301 + answerId: 1,
  302 + answerString: '低い',
  303 + answerImage: ''
  304 + }, {
  305 + menuId: 1,
  306 + unitId: 4,
  307 + qaId: 0,
  308 + questionString: '食塩水のこさは、どこをとっても{ ? }',
  309 + questionImage: '',
  310 + choicesId: [0, 1],
  311 + choicesString: ['ばらつきがある', '均一である'],
  312 + answerId: 1,
  313 + answerString: '均一である',
  314 + answerImage: ''
  315 + }, {
  316 + menuId: 1,
  317 + unitId: 4,
  318 + qaId: 1,
  319 + questionString: 'ろ過で、液体から個体をこし分けるには{ ? }を使う',
  320 + questionImage: '',
  321 + choicesId: [0, 1, 2],
  322 + choicesString: ['塩化コバルト紙', 'リトマス紙', 'ろ紙'],
  323 + answerId: 2,
  324 + answerString: 'ろ紙',
  325 + answerImage: ''
  326 + }, {
  327 + menuId: 1,
  328 + unitId: 5,
  329 + qaId: 0,
  330 + questionString: '水 100g に、砂糖 25g を加えてよくかき混ぜ、完全にとかしてできた砂糖水の濃度は{ ? }%',
  331 + questionImage: '',
  332 + choicesId: [0, 1, 2, 3],
  333 + choicesString: ['75', '25', '12', '20'],
  334 + answerId: 3,
  335 + answerString: '20',
  336 + answerImage: 'a010500.png'
  337 + }, {
  338 + menuId: 1,
  339 + unitId: 6,
  340 + qaId: 0,
  341 + questionString: '60℃のホウ酸の飽和水溶液を冷やすと、ホウ酸が結晶として出てくる。このような操作を{ ? }という',
  342 + questionImage: '',
  343 + choicesId: [0, 1, 2, 3],
  344 + choicesString: ['状態変化', '電解', '再結晶', '蒸留'],
  345 + answerId: 2,
  346 + answerString: '再結晶',
  347 + answerImage: ''
  348 + }, {
  349 + menuId: 1,
  350 + unitId: 6,
  351 + qaId: 1,
  352 + questionString: '60℃ の食塩水から食塩を結晶して取り出すには、食塩水を{ ? }方法がよい',
  353 + questionImage: '',
  354 + choicesId: [0, 1],
  355 + choicesString: ['冷やす', '加熱して水を蒸発させる'],
  356 + answerId: 1,
  357 + answerString: '加熱して水を蒸発させる',
  358 + answerImage: ''
  359 + }, {
  360 + menuId: 2,
  361 + unitId: 0,
  362 + qaId: 0,
  363 + questionString: '図の回路は{ ? }回路で、電流の通り道は枝分かれ{ ? }',
  364 + questionImage: 'q020000.png',
  365 + choicesId: [0, 1, 2, 3],
  366 + choicesString: ['直列、している', '並列、している', '直列、していない', '並列、していない'],
  367 + answerId: 2,
  368 + answerString: '直列、していない',
  369 + answerImage: 'a020000.png'
  370 + }, {
  371 + menuId: 2,
  372 + unitId: 1,
  373 + qaId: 0,
  374 + questionString: '図で、P を流れる電流は{ ? }A、電源の電圧の大きさは{ ? }V である',
  375 + questionImage: 'q020100.png',
  376 + choicesId: [0, 1, 2, 3],
  377 + choicesString: ['5、5', '5、10', '10、10', '10、20'],
  378 + answerId: 1,
  379 + answerString: '5、10',
  380 + answerImage: 'a020100.png'
  381 + }, {
  382 + menuId: 2,
  383 + unitId: 2,
  384 + qaId: 0,
  385 + questionString: '図の Q 点を流れる電流は{ ? }A、抵抗 P に加わる電圧は{ ? }V',
  386 + questionImage: 'q020200.png',
  387 + choicesId: [0, 1, 2, 3],
  388 + choicesString: ['5、5', '10、5', '10、6', '6、10'],
  389 + answerId: 2,
  390 + answerString: '10、6',
  391 + answerImage: 'a020200.png'
  392 + }, {
  393 + menuId: 2,
  394 + unitId: 3,
  395 + qaId: 0,
  396 + questionString: 'ある電熱線に 2V の電圧を加えると 0.2A の電流が流れた。この電熱線の抵抗の大きさは{ ? }Ω',
  397 + questionImage: '',
  398 + choicesId: [0, 1, 2, 3],
  399 + choicesString: ['0.1', '0.5', '2', '10'],
  400 + answerId: 3,
  401 + answerString: '10',
  402 + answerImage: 'a020300.png'
  403 + }, {
  404 + menuId: 2,
  405 + unitId: 4,
  406 + qaId: 0,
  407 + questionString: '図の回路の全体の抵抗は{ ? }Ω',
  408 + questionImage: 'q020400.png',
  409 + choicesId: [0, 1, 2, 3],
  410 + choicesString: ['30', '20', '12', '10'],
  411 + answerId: 0,
  412 + answerString: '30',
  413 + answerImage: 'a020400.png'
  414 + }, {
  415 + menuId: 2,
  416 + unitId: 5,
  417 + qaId: 0,
  418 + questionString: '電圧と電流の積で表す量を{ ? }という',
  419 + questionImage: '',
  420 + choicesId: [0, 1, 2],
  421 + choicesString: ['電源', '電力', '抵抗'],
  422 + answerId: 1,
  423 + answerString: '電力',
  424 + answerImage: 'a020500.png'
  425 + }, {
  426 + menuId: 2,
  427 + unitId: 5,
  428 + qaId: 1,
  429 + questionString: '2W の電力を 2 時間使った時の電力量は{ ? }Wh',
  430 + questionImage: '',
  431 + choicesId: [0, 1, 2, 3],
  432 + choicesString: ['1', '2', '3', '4'],
  433 + answerId: 3,
  434 + answerString: '4',
  435 + answerImage: ''
  436 + }, {
  437 + menuId: 2,
  438 + unitId: 5,
  439 + qaId: 2,
  440 + questionString: '図のような装置で発熱量を調べると、発熱量は電力に{ ? }することがわかる',
  441 + questionImage: 'q020502.png',
  442 + choicesId: [0, 1],
  443 + choicesString: ['比例', '反比例'],
  444 + answerId: 0,
  445 + answerString: '比例',
  446 + answerImage: ''
  447 + }, {
  448 + menuId: 2,
  449 + unitId: 6,
  450 + qaId: 0,
  451 + questionString: '異種の静電気をもつ物質どうしを近づけると{ ? }合う',
  452 + questionImage: '',
  453 + choicesId: [0, 1],
  454 + choicesString: ['反発し', '引き'],
  455 + answerId: 1,
  456 + answerString: '引き',
  457 + answerImage: ''
  458 + }, {
  459 + menuId: 2,
  460 + unitId: 6,
  461 + qaId: 1,
  462 + questionString: '電流の流れる向きは、{ ? }極 =>{ ? }極',
  463 + questionImage: '',
  464 + choicesId: [0, 1],
  465 + choicesString: ['+、-', '-、+'],
  466 + answerId: 0,
  467 + answerString: '+、-',
  468 + answerImage: ''
  469 + }, {
  470 + menuId: 3,
  471 + unitId: 0,
  472 + qaId: 0,
  473 + questionString: '磁石と磁石の間にはたらく力を{ ? }といい、N 極どうしや S 極どうしの間には{ ? }合う力がはたらく',
  474 + questionImage: '',
  475 + choicesId: [0, 1, 2, 3],
  476 + choicesString: ['磁力、引き', '磁力、反発し', '交流、引き', '交流、反発し'],
  477 + answerId: 1,
  478 + answerString: '磁力、反発し',
  479 + answerImage: ''
  480 + }, {
  481 + menuId: 3,
  482 + unitId: 0,
  483 + qaId: 1,
  484 + questionString: '磁針の N 極がさす向きを{ ? }の向きという',
  485 + questionImage: '',
  486 + choicesId: [0, 1, 2, 3],
  487 + choicesString: ['力', '磁石', '電流', '磁界'],
  488 + answerId: 3,
  489 + answerString: '磁界',
  490 + answerImage: ''
  491 + }, {
  492 + menuId: 3,
  493 + unitId: 1,
  494 + qaId: 0,
  495 + questionString: '導線のまわりの磁界は、電流を中心に{ ? }にできる',
  496 + questionImage: '',
  497 + choicesId: [0, 1],
  498 + choicesString: ['同心円状', '放射線状'],
  499 + answerId: 0,
  500 + answerString: '同心円状',
  501 + answerImage: 'a030100.png'
  502 + }, {
  503 + menuId: 3,
  504 + unitId: 1,
  505 + qaId: 1,
  506 + questionString: '図で導線に矢印の向きに電流を流したとき、できる磁界の向きは{ ? }である',
  507 + questionImage: 'q030101.png',
  508 + choicesId: [0, 1],
  509 + choicesString: ['ア', 'イ'],
  510 + answerId: 1,
  511 + answerString: 'イ',
  512 + answerImage: ''
  513 + }, {
  514 + menuId: 3,
  515 + unitId: 2,
  516 + qaId: 0,
  517 + questionString: 'コイルの内側の磁界の向きを求める時は、右手の4本の指先を、{ ? }の向きに合わせる',
  518 + questionImage: '',
  519 + choicesId: [0, 1],
  520 + choicesString: ['磁界', '電流'],
  521 + answerId: 1,
  522 + answerString: '電流',
  523 + answerImage: ''
  524 + }, {
  525 + menuId: 3,
  526 + unitId: 2,
  527 + qaId: 1,
  528 + questionString: 'コイルのまわりの磁界の向きは内側と外側で{ ? }になる',
  529 + questionImage: '',
  530 + choicesId: [0, 1],
  531 + choicesString: ['逆', '同じ'],
  532 + answerId: 0,
  533 + answerString: '逆',
  534 + answerImage: 'a030201.png'
  535 + }, {
  536 + menuId: 3,
  537 + unitId: 3,
  538 + qaId: 0,
  539 + questionString: '電流が磁界から受ける力、磁界、電流の3つの向きは、互いに{ ? }になる',
  540 + questionImage: '',
  541 + choicesId: [0, 1],
  542 + choicesString: ['水平', '垂直'],
  543 + answerId: 1,
  544 + answerString: '垂直',
  545 + answerImage: 'a030300.png'
  546 + }, {
  547 + menuId: 3,
  548 + unitId: 3,
  549 + qaId: 1,
  550 + questionString: '図のようなとき、同線のふれる向きは{ ? }である',
  551 + questionImage: 'q030301.png',
  552 + choicesId: [0, 1, 2, 3],
  553 + choicesString: ['ア', 'イ', 'ウ', 'エ'],
  554 + answerId: 0,
  555 + answerString: 'ア',
  556 + answerImage: ''
  557 + }, {
  558 + menuId: 3,
  559 + unitId: 4,
  560 + qaId: 0,
  561 + questionString: '図のように、コイルの上で棒磁石をを上下させたら、コイルに{ ? }が生じ、{ ? }電流が流れた。この現象を{ ? }という',
  562 + questionImage: '',
  563 + choicesId: [0, 1, 2, 3],
  564 + choicesString: ['電圧、磁界、電磁誘導', '電圧、誘導、電磁誘導', 'N極、磁界、発光ダイオード', '磁力、誘導、磁界の変化'],
  565 + answerId: 1,
  566 + answerString: '電圧、誘導、電磁誘導',
  567 + answerImage: 'a030400.png'
  568 + }, {
  569 + menuId: 3,
  570 + unitId: 4,
  571 + qaId: 1,
  572 + questionString: '図で、棒磁石を下げたときと、上げたときでは、コイルに流れる電流の向きは{ ? }である。'
  573 + + '<br />また、下げたり上げたりする速さを速くすると、コイルに流れる電流は{ ? }なる',
  574 + questionImage: 'q030401.png',
  575 + choicesId: [0, 1, 2, 3],
  576 + choicesString: ['同じ向き、強く', '逆向き、弱く', '同じ向き、弱く', '逆向き、強く'],
  577 + answerId: 3,
  578 + answerString: '逆向き、強く',
  579 + answerImage: 'a030401.png'
  580 + }, {
  581 + menuId: 3,
  582 + unitId: 5,
  583 + qaId: 0,
  584 + questionString: '乾電池による電流は{ ? }',
  585 + questionImage: '',
  586 + choicesId: [0, 1],
  587 + choicesString: ['直流', '交流'],
  588 + answerId: 0,
  589 + answerString: '直流',
  590 + answerImage: ''
  591 + }, {
  592 + menuId: 3,
  593 + unitId: 5,
  594 + qaId: 1,
  595 + questionString: '家庭に届く、電線を流れる電流は{ ? }',
  596 + questionImage: '',
  597 + choicesId: [0, 1],
  598 + choicesString: ['直流', '交流'],
  599 + answerId: 1,
  600 + answerString: '交流',
  601 + answerImage: ''
  602 + }, {
  603 + menuId: 3,
  604 + unitId: 5,
  605 + qaId: 2,
  606 + questionString: 'オシロスコープで調べたときに波形の線に見えるのは{ ? }',
  607 + questionImage: '',
  608 + choicesId: [0, 1],
  609 + choicesString: ['直流', '交流'],
  610 + answerId: 1,
  611 + answerString: '交流',
  612 + answerImage: 'a030502.png'
  613 + }, {
  614 + menuId: 4,
  615 + unitId: 0,
  616 + qaId: 0,
  617 + questionString: '物質が別の 2 種類以上の物質に分かれる化学変化を{ ? }という',
  618 + questionImage: '',
  619 + choicesId: [0, 1, 2, 3],
  620 + choicesString: ['酸化', '化合', '分解', '分離'],
  621 + answerId: 2,
  622 + answerString: '分解',
  623 + answerImage: 'a040000.png'
  624 + }, {
  625 + menuId: 4,
  626 + unitId: 0,
  627 + qaId: 1,
  628 + questionString: '炭酸水素ナトリウムの分解で生じる固体は{ ? }',
  629 + questionImage: '',
  630 + choicesId: [0, 1, 2],
  631 + choicesString: ['炭素', '水素', '炭酸ナトリウム'],
  632 + answerId: 2,
  633 + answerString: '炭酸ナトリウム',
  634 + answerImage: ''
  635 + }, {
  636 + menuId: 4,
  637 + unitId: 0,
  638 + qaId: 2,
  639 + questionString: '炭酸水素ナトリウムの分解で生じる物質のうち、石灰水を白くにごらせるのは{ ? }である',
  640 + questionImage: '',
  641 + choicesId: [0, 1, 2],
  642 + choicesString: ['二酸化炭素', '水素', '炭酸ナトリウム'],
  643 + answerId: 0,
  644 + answerString: '二酸化炭素',
  645 + answerImage: ''
  646 + }, {
  647 + menuId: 4,
  648 + unitId: 0,
  649 + qaId: 3,
  650 + questionString: '酸化銀を加熱して分解すると、個体の{ ? }と気体の{ ? }が生じ、固体をスプーンの底でこすると{ ? }を示す',
  651 + questionImage: '',
  652 + choicesId: [0, 1, 2, 3],
  653 + choicesString: ['銀、二酸化炭素、金属光沢', '鉄、酸素、金属光沢', '銀、酸素、金属光沢', '鉄、水素、化学反応'],
  654 + answerId: 2,
  655 + answerString: '銀、酸素、金属光沢',
  656 + answerImage: ''
  657 + }, {
  658 + menuId: 4,
  659 + unitId: 1,
  660 + qaId: 0,
  661 + questionString: '電流を流して物質を分解することを{ ? }という',
  662 + questionImage: '',
  663 + choicesId: [0, 1, 2, 3],
  664 + choicesString: ['電気分解', '酸化', '還元', '中和'],
  665 + answerId: 0,
  666 + answerString: '電気分解',
  667 + answerImage: ''
  668 + }, {
  669 + menuId: 4,
  670 + unitId: 1,
  671 + qaId: 1,
  672 + questionString: '水に少量の水酸化ナトリウムを加えて電流を流すと、陽極には{ ? }、陰極には{ ? }が発生する',
  673 + questionImage: '',
  674 + choicesId: [0, 1, 2, 3],
  675 + choicesString: ['酸素、水素', '二酸化炭素、酸素', '水素、酸素', '水素、二酸化炭素'],
  676 + answerId: 0,
  677 + answerString: '酸素、水素',
  678 + answerImage: 'a040101.png'
  679 + }, {
  680 + menuId: 4,
  681 + unitId: 1,
  682 + qaId: 2,
  683 + questionString: '水の分解で発生する水素と酸素の体積比は{ ? }',
  684 + questionImage: '',
  685 + choicesId: [0, 1, 2, 3],
  686 + choicesString: ['1:4', '1:2', '3:1', '2:1'],
  687 + answerId: 3,
  688 + answerString: '2:1',
  689 + answerImage: ''
  690 + }, {
  691 + menuId: 4,
  692 + unitId: 1,
  693 + qaId: 3,
  694 + questionString: '水の分解で発生した気体で、火を近づけるとポッと音を立てて燃えるのは{ ? }から発生した気体である',
  695 + questionImage: '',
  696 + choicesId: [0, 1],
  697 + choicesString: ['陽極', '陰極'],
  698 + answerId: 1,
  699 + answerString: '陰極',
  700 + answerImage: ''
  701 + }, {
  702 + menuId: 4,
  703 + unitId: 2,
  704 + qaId: 0,
  705 + questionString: '原子は、種類によって質量や大きさが{ ? }いて、ほかの種類の原子に変わったり、なくなったり{ ? }',
  706 + questionImage: '',
  707 + choicesId: [0, 1, 2, 3],
  708 + choicesString: ['異なって、しない', '決まって、しない', '異なって、する', '決まって、する'],
  709 + answerId: 1,
  710 + answerString: '決まって、しない',
  711 + answerImage: ''
  712 + }, {
  713 + menuId: 4,
  714 + unitId: 2,
  715 + qaId: 1,
  716 + questionString: '原子の記号で、C は{ ? }、Fe は{ ? }を表す',
  717 + questionImage: '',
  718 + choicesId: [0, 1, 2, 3],
  719 + choicesString: ['炭素、銅', '酸素、鉄', '炭素、ナトリウム', '炭素、鉄'],
  720 + answerId: 3,
  721 + answerString: '炭素、鉄',
  722 + answerImage: ''
  723 + }, {
  724 + menuId: 4,
  725 + unitId: 3,
  726 + qaId: 0,
  727 + questionString: '鉄と硫黄の混合物を加熱すると{ ? }ができる。このような化学変化を{ ? }という',
  728 + questionImage: '',
  729 + choicesId: [0, 1, 2, 3],
  730 + choicesString: ['酸化鉄、化合', '酸化鉄、酸化', '硫化鉄、化合', '硫化鉄、酸化'],
  731 + answerId: 2,
  732 + answerString: '硫化鉄、化合',
  733 + answerImage: 'a040300.png'
  734 + }, {
  735 + menuId: 4,
  736 + unitId: 3,
  737 + qaId: 1,
  738 + questionString: '酸素の化学式は{ ? }、二酸化炭素の化学式は{ ? }',
  739 + questionImage: '',
  740 + choicesId: [0, 1, 2, 3],
  741 + choicesString: ['O₂、CO₂', 'CO₂、O₂', 'O、CO', 'O₂、CO'],
  742 + answerId: 0,
  743 + answerString: 'O₂、CO₂',
  744 + answerImage: ''
  745 + }, {
  746 + menuId: 4,
  747 + unitId: 4,
  748 + qaId: 0,
  749 + questionString: '化学反応式では、両辺の原子の種類と数は{ ? }',
  750 + questionImage: '',
  751 + choicesId: [0, 1, 2],
  752 + choicesString: ['等しいとは限らない', '等しい', '異なる'],
  753 + answerId: 1,
  754 + answerString: '等しい',
  755 + answerImage: 'a040400.png'
  756 + }, {
  757 + menuId: 4,
  758 + unitId: 4,
  759 + qaId: 1,
  760 + questionString: '銅の酸化を化学反応式で表すと、2Cu + { ? }→{ ? }',
  761 + questionImage: '',
  762 + choicesId: [0, 1, 2, 3],
  763 + choicesString: ['O₂、CuO₂', 'O₂、CuO', '2O₂、2CuO', 'O₂、2CuO'],
  764 + answerId: 3,
  765 + answerString: 'O₂、2CuO',
  766 + answerImage: ''
  767 + }, {
  768 + menuId: 4,
  769 + unitId: 4,
  770 + qaId: 2,
  771 + questionString: '酸化銀の分解の化学反応式は{ ? }',
  772 + questionImage: '',
  773 + choicesId: [0, 1, 2, 3],
  774 + choicesString: ['2Ag₂O → 4Ag + O₂', '2Au₂O → 4Au + O₂', 'Ag₂O → 2Ag + O', '2AgO → 2Ag + O₂'],
  775 + answerId: 0,
  776 + answerString: '2Ag₂O → 4Ag + O₂',
  777 + answerImage: ''
  778 + }, {
  779 + menuId: 5,
  780 + unitId: 0,
  781 + qaId: 0,
  782 + questionString: '物質が酸素と化合する反応を{ ? }という',
  783 + questionImage: '',
  784 + choicesId: [0, 1, 2],
  785 + choicesString: ['還元', '酸化', '吸熱'],
  786 + answerId: 1,
  787 + answerString: '酸化',
  788 + answerImage: ''
  789 + }, {
  790 + menuId: 5,
  791 + unitId: 0,
  792 + qaId: 1,
  793 + questionString: '鉄が酸化してできる物質は{ ? }',
  794 + questionImage: '',
  795 + choicesId: [0, 1, 2, 3],
  796 + choicesString: ['二酸化炭素', '硫化鉄', '酸化銅', '酸化鉄'],
  797 + answerId: 3,
  798 + answerString: '酸化鉄',
  799 + answerImage: ''
  800 + }, {
  801 + menuId: 5,
  802 + unitId: 1,
  803 + qaId: 0,
  804 + questionString: '酸化物から酸素を取り除く反応を{ ? }という',
  805 + questionImage: '',
  806 + choicesId: [0, 1, 2],
  807 + choicesString: ['還元', '酸化', '吸熱'],
  808 + answerId: 0,
  809 + answerString: '還元',
  810 + answerImage: ''
  811 + }, {
  812 + menuId: 5,
  813 + unitId: 1,
  814 + qaId: 1,
  815 + questionString: '酸化銅の還元では、酸化銅 + 炭素 → 銅 +{ ? }',
  816 + questionImage: '',
  817 + choicesId: [0, 1, 2, 3],
  818 + choicesString: ['酸素', '二酸化炭素', 'ナトリウム', '水素'],
  819 + answerId: 1,
  820 + answerString: '二酸化炭素',
  821 + answerImage: ''
  822 + }, {
  823 + menuId: 5,
  824 + unitId: 2,
  825 + qaId: 0,
  826 + questionString: '図のように、物質が自由に出入りできる反応の場合、反応の前後で質量がちがってくる。'
  827 + +'<br />反応後の質量が反応前より大きくなるのは{ ? }反応である',
  828 + questionImage: 'q050200.png',
  829 + choicesId: [0, 1],
  830 + choicesString: ['沈殿ができる', '金属を加熱する'],
  831 + answerId: 1,
  832 + answerString: '金属を加熱する',
  833 + answerImage: 'a050200.png'
  834 + }, {
  835 + menuId: 5,
  836 + unitId: 2,
  837 + qaId: 1,
  838 + questionString: '図のように、密閉した容器の中でうすい塩酸と石灰石を反応させたとき、反応の前後で質量の総和は{ ? }',
  839 + questionImage: 'q050201.png',
  840 + choicesId: [0, 1],
  841 + choicesString: ['変化する', '変化しない'],
  842 + answerId: 1,
  843 + answerString: '変化しない',
  844 + answerImage: ''
  845 + }, {
  846 + menuId: 5,
  847 + unitId: 3,
  848 + qaId: 0,
  849 + questionString: '鉄 7g と硫黄 4g が完全に化合すると、硫化鉄は{ ? }g できる',
  850 + questionImage: '',
  851 + choicesId: [0, 1, 2, 3],
  852 + choicesString: ['3', '7', '11', '10'],
  853 + answerId: 2,
  854 + answerString: '11',
  855 + answerImage: ''
  856 + }, {
  857 + menuId: 5,
  858 + unitId: 4,
  859 + qaId: 0,
  860 + questionString: '銅が酸化されて酸化銅になったとき、増えた質量は化合した{ ? }の分の質量',
  861 + questionImage: '',
  862 + choicesId: [0, 1, 2],
  863 + choicesString: ['酸素', '銅', '二酸化炭素'],
  864 + answerId: 0,
  865 + answerString: '酸素',
  866 + answerImage: ''
  867 + }, {
  868 + menuId: 5,
  869 + unitId: 5,
  870 + qaId: 0,
  871 + questionString: 'グラフで、銅と酸化銅の質量の比は{ ? }',
  872 + questionImage: 'q050500.png',
  873 + choicesId: [0, 1, 2, 3],
  874 + choicesString: ['1:4', '1:5', '4:5', '3:4'],
  875 + answerId: 2,
  876 + answerString: '4:5',
  877 + answerImage: ''
  878 + }, {
  879 + menuId: 5,
  880 + unitId: 5,
  881 + qaId: 1,
  882 + questionString: 'グラフで、マグネシウムと化合した酸素の質量の比は{ ? }',
  883 + questionImage: 'q050501.png',
  884 + choicesId: [0, 1, 2, 3],
  885 + choicesString: ['3:2', '5:2', '5:3', '3:5'],
  886 + answerId: 0,
  887 + answerString: '3:2',
  888 + answerImage: ''
  889 + }, {
  890 + menuId: 5,
  891 + unitId: 6,
  892 + qaId: 0,
  893 + questionString: '水酸化バリウムに塩化アンモニウムを加えると{ ? }反応が起こる',
  894 + questionImage: '',
  895 + choicesId: [0, 1],
  896 + choicesString: ['発熱', '吸熱'],
  897 + answerId: 1,
  898 + answerString: '吸熱',
  899 + answerImage: ''
  900 + }, {
  901 + menuId: 6,
  902 + unitId: 0,
  903 + qaId: 0,
  904 + questionString: 'タンポポは日当たりの{ ? }ところにはえていて、図のアを{ ? }という',
  905 + questionImage: 'q060000.png',
  906 + choicesId: [0, 1, 2, 3],
  907 + choicesString: ['よい、根', '悪い、がく', 'よい、がく', '悪い、葉'],
  908 + answerId: 2,
  909 + answerString: 'よい、がく',
  910 + answerImage: ''
  911 + }, {
  912 + menuId: 6,
  913 + unitId: 1,
  914 + qaId: 0,
  915 + questionString: 'ミジンコは動物で、ミカヅキモは{ ? }である',
  916 + questionImage: '',
  917 + choicesId: [0, 1],
  918 + choicesString: ['動物', '植物'],
  919 + answerId: 1,
  920 + answerString: '植物',
  921 + answerImage: 'a060100.png'
  922 + }, {
  923 + menuId: 6,
  924 + unitId: 1,
  925 + qaId: 1,
  926 + questionString: 'レンズで先にとりつけるのは{ ? }レンズである',
  927 + questionImage: '',
  928 + choicesId: [0, 1],
  929 + choicesString: ['接眼', '対物'],
  930 + answerId: 0,
  931 + answerString: '接眼',
  932 + answerImage: ''
  933 + }, {
  934 + menuId: 6,
  935 + unitId: 1,
  936 + qaId: 2,
  937 + questionString: '接眼レンズが 10×、対物レンズが 15 のときの倍率は{ ? }',
  938 + questionImage: '',
  939 + choicesId: [0, 1, 2, 3],
  940 + choicesString: ['10 倍', '15 倍', '150 倍', '200 倍'],
  941 + answerId: 2,
  942 + answerString: '150 倍',
  943 + answerImage: 'a060102.png'
  944 + }, {
  945 + menuId: 6,
  946 + unitId: 2,
  947 + qaId: 0,
  948 + questionString: 'ふつう花の中央に{ ? }があり、まわりにおしべがある',
  949 + questionImage: '',
  950 + choicesId: [0, 1, 2],
  951 + choicesString: ['めしべ', '花弁', 'がく'],
  952 + answerId: 0,
  953 + answerString: 'めしべ',
  954 + answerImage: ''
  955 + }, {
  956 + menuId: 6,
  957 + unitId: 2,
  958 + qaId: 1,
  959 + questionString: '子房がなく胚珠がむき出しなのは{ ? }植物である',
  960 + questionImage: '',
  961 + choicesId: [0, 1],
  962 + choicesString: ['被子', '裸子'],
  963 + answerId: 1,
  964 + answerString: '裸子',
  965 + answerImage: 'a060201.png'
  966 + }, {
  967 + menuId: 6,
  968 + unitId: 2,
  969 + qaId: 2,
  970 + questionString: '被子植物が受粉すると、やがて子房が{ ? }、胚珠が{ ? }になる',
  971 + questionImage: '',
  972 + choicesId: [0, 1, 2, 3],
  973 + choicesString: ['果実、がく', '果実、種子', '種子、果実', 'がく、種子'],
  974 + answerId: 1,
  975 + answerString: '果実、種子',
  976 + answerImage: ''
  977 + }, {
  978 + menuId: 6,
  979 + unitId: 3,
  980 + qaId: 0,
  981 + questionString: 'ひげ根があるのは{ ? }葉類',
  982 + questionImage: '',
  983 + choicesId: [0, 1],
  984 + choicesString: ['単子', '双子'],
  985 + answerId: 0,
  986 + answerString: '単子',
  987 + answerImage: 'a060300.png'
  988 + }, {
  989 + menuId: 6,
  990 + unitId: 3,
  991 + qaId: 1,
  992 + questionString: '蒸散量の調節は{ ? }の開閉で行われる',
  993 + questionImage: '',
  994 + choicesId: [0, 1, 2, 3],
  995 + choicesString: ['維管束', '孔辺細胞', '葉緑体', '気孔'],
  996 + answerId: 3,
  997 + answerString: '気孔',
  998 + answerImage: 'a060301.png'
  999 + }, {
  1000 + menuId: 6,
  1001 + unitId: 3,
  1002 + qaId: 2,
  1003 + questionString: '気孔はふつう葉の{ ? }に多い',
  1004 + questionImage: '',
  1005 + choicesId: [0, 1],
  1006 + choicesString: ['裏', '表'],
  1007 + answerId: 0,
  1008 + answerString: '裏',
  1009 + answerImage: ''
  1010 + }, {
  1011 + menuId: 6,
  1012 + unitId: 3,
  1013 + qaId: 3,
  1014 + questionString: '図で道管は{ ? }である',
  1015 + questionImage: 'q060303.png',
  1016 + choicesId: [0, 1, 2],
  1017 + choicesString: ['ア', 'イ', 'ウ'],
  1018 + answerId: 0,
  1019 + answerString: 'ア',
  1020 + answerImage: ''
  1021 + }, {
  1022 + menuId: 6,
  1023 + unitId: 4,
  1024 + qaId: 0,
  1025 + questionString: '植物が日光を受けて、デンプンなどの栄養分をつくるはたらきを{ ? }といい、{ ? }もつくられる',
  1026 + questionImage: '',
  1027 + choicesId: [0, 1, 2, 3],
  1028 + choicesString: ['光合成、二酸化炭素', '光合成、酸素', '呼吸、酸素', '呼吸、二酸化炭素'],
  1029 + answerId: 1,
  1030 + answerString: '光合成、酸素',
  1031 + answerImage: ''
  1032 + }, {
  1033 + menuId: 6,
  1034 + unitId: 4,
  1035 + qaId: 1,
  1036 + questionString: '光合成を行うときの原料は、水と{ ? }である',
  1037 + questionImage: '',
  1038 + choicesId: [0, 1],
  1039 + choicesString: ['二酸化炭素', '酸素'],
  1040 + answerId: 0,
  1041 + answerString: '二酸化炭素',
  1042 + answerImage: ''
  1043 + }, {
  1044 + menuId: 6,
  1045 + unitId: 5,
  1046 + qaId: 0,
  1047 + questionString: 'シダ植物には、根、茎、葉の区別が{ ? }',
  1048 + questionImage: '',
  1049 + choicesId: [0, 1],
  1050 + choicesString: ['ある', 'ない'],
  1051 + answerId: 0,
  1052 + answerString: 'ある',
  1053 + answerImage: 'a060500.png'
  1054 + }, {
  1055 + menuId: 6,
  1056 + unitId: 5,
  1057 + qaId: 1,
  1058 + questionString: 'シダ植物やコケ植物は、{ ? }をつくってなかまをふやす',
  1059 + questionImage: '',
  1060 + choicesId: [0, 1, 2],
  1061 + choicesString: ['種子', '胞子', '球根'],
  1062 + answerId: 1,
  1063 + answerString: '胞子',
  1064 + answerImage: ''
  1065 + }, {
  1066 + menuId: 7,
  1067 + unitId: 0,
  1068 + qaId: 0,
  1069 + questionString: '川の上流では{ ? }、運ぱんがさかんである',
  1070 + questionImage: '',
  1071 + choicesId: [0, 1],
  1072 + choicesString: ['侵食', '堆積'],
  1073 + answerId: 0,
  1074 + answerString: '侵食',
  1075 + answerImage: ''
  1076 + }, {
  1077 + menuId: 7,
  1078 + unitId: 0,
  1079 + qaId: 1,
  1080 + questionString: '海岸近くには{ ? }が、遠くには{ ? }が堆積',
  1081 + questionImage: '',
  1082 + choicesId: [0, 1],
  1083 + choicesString: ['れきや砂、泥や粘土', '泥や粘土、れきや砂'],
  1084 + answerId: 0,
  1085 + answerString: 'れきや砂、泥や粘土',
  1086 + answerImage: ''
  1087 + }, {
  1088 + menuId: 7,
  1089 + unitId: 1,
  1090 + qaId: 0,
  1091 + questionString: 'おもにれきがおし固められてできた岩石を{ ? }という',
  1092 + questionImage: '',
  1093 + choicesId: [0, 1],
  1094 + choicesString: ['砂岩', 'れき岩', '泥岩'],
  1095 + answerId: 1,
  1096 + answerString: 'れき岩',
  1097 + answerImage: ''
  1098 + }, {
  1099 + menuId: 7,
  1100 + unitId: 1,
  1101 + qaId: 1,
  1102 + questionString: '泥や粘土がおし固められてできた岩石を{ ? }という',
  1103 + questionImage: '',
  1104 + choicesId: [0, 1],
  1105 + choicesString: ['砂岩', 'れき岩', '泥岩'],
  1106 + answerId: 2,
  1107 + answerString: '泥岩',
  1108 + answerImage: ''
  1109 + }, {
  1110 + menuId: 7,
  1111 + unitId: 1,
  1112 + qaId: 2,
  1113 + questionString: 'アンモナイトの化石は、{ ? }代の{ ? }化石',
  1114 + questionImage: '',
  1115 + choicesId: [0, 1, 2, 3],
  1116 + choicesString: ['中生、示相', '古生、示相', '中生、示準', '古生、示準'],
  1117 + answerId: 2,
  1118 + answerString: '中生、示準',
  1119 + answerImage: ''
  1120 + }, {
  1121 + menuId: 7,
  1122 + unitId: 2,
  1123 + qaId: 0,
  1124 + questionString: 'マグマのねばりけが弱いほど{ ? }',
  1125 + questionImage: '',
  1126 + choicesId: [0, 1],
  1127 + choicesString: ['流れやすい', '流れにくい'],
  1128 + answerId: 0,
  1129 + answerString: '流れやすい',
  1130 + answerImage: ''
  1131 + }, {
  1132 + menuId: 7,
  1133 + unitId: 2,
  1134 + qaId: 1,
  1135 + questionString: '円すいの形をした火山は、爆発とマグマの流出が交互に起こる。その代表が{ ? }である',
  1136 + questionImage: '',
  1137 + choicesId: [0, 1, 2],
  1138 + choicesString: ['有珠山', '三原山', '富士山'],
  1139 + answerId: 2,
  1140 + answerString: '富士山',
  1141 + answerImage: 'a070201.png'
  1142 + }, {
  1143 + menuId: 7,
  1144 + unitId: 3,
  1145 + qaId: 0,
  1146 + questionString: '火山岩で、結晶になれなかった部分が{ ? }で、大きな結晶の部分が{ ? }',
  1147 + questionImage: '',
  1148 + choicesId: [0, 1],
  1149 + choicesString: ['石基、斑晶', '斑晶、石基'],
  1150 + answerId: 0,
  1151 + answerString: '石基、斑晶',
  1152 + answerImage: ''
  1153 + }, {
  1154 + menuId: 7,
  1155 + unitId: 3,
  1156 + qaId: 1,
  1157 + questionString: '等粒状組織をもつ岩石は、{ ? }である',
  1158 + questionImage: '',
  1159 + choicesId: [0, 1],
  1160 + choicesString: ['火山岩', '深成岩'],
  1161 + answerId: 1,
  1162 + answerString: '深成岩',
  1163 + answerImage: 'a070301.png'
  1164 + }, {
  1165 + menuId: 7,
  1166 + unitId: 3,
  1167 + qaId: 2,
  1168 + questionString: '石英や長石を多くふくむほど、岩石は{ ? }っぽくなる',
  1169 + questionImage: '',
  1170 + choicesId: [0, 1],
  1171 + choicesString: ['白', '黒'],
  1172 + answerId: 0,
  1173 + answerString: '白',
  1174 + answerImage: ''
  1175 + }, {
  1176 + menuId: 7,
  1177 + unitId: 4,
  1178 + qaId: 0,
  1179 + questionString: '地震発生後、まず P 波による{ ? }が起こり、続いて S 波による{ ? }が起こる',
  1180 + questionImage: '',
  1181 + choicesId: [0, 1],
  1182 + choicesString: ['主要動、初期微動', '初期微動、主要動'],
  1183 + answerId: 1,
  1184 + answerString: '白初期微動、主要動',
  1185 + answerImage: 'a070400.png'
  1186 + }, {
  1187 + menuId: 7,
  1188 + unitId: 4,
  1189 + qaId: 1,
  1190 + questionString: '初期微動継続時間は震源からの距離が遠くなるほど{ ? }',
  1191 + questionImage: '',
  1192 + choicesId: [0, 1],
  1193 + choicesString: ['短くなる', '長くなる'],
  1194 + answerId: 1,
  1195 + answerString: '長くなる',
  1196 + answerImage: 'a070401.png'
  1197 + }, {
  1198 + menuId: 7,
  1199 + unitId: 5,
  1200 + qaId: 0,
  1201 + questionString: '{ ? }は、地震の規模の大きさを表す',
  1202 + questionImage: '',
  1203 + choicesId: [0, 1],
  1204 + choicesString: ['震度', 'マグニチュード'],
  1205 + answerId: 1,
  1206 + answerString: 'マグニチュード',
  1207 + answerImage: ''
  1208 + }, {
  1209 + menuId: 7,
  1210 + unitId: 5,
  1211 + qaId: 1,
  1212 + questionString: '大きな力がはたらき、地層がくいちがう変動を{ ? }という',
  1213 + questionImage: '',
  1214 + choicesId: [0, 1],
  1215 + choicesString: ['しゅう曲', '断層'],
  1216 + answerId: 1,
  1217 + answerString: '断層',
  1218 + answerImage: 'a070501.png'
  1219 + }];
  1220 +
  1221 + return qa;
  1222 + }
  1223 +
  1224 +}
... ...
  1 +import { Injectable } from '@angular/core';
  2 +import { Unit } from './define-unit';
  3 +/*
  4 + Generated class for the DataService provider.
  5 +
  6 + See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  7 + for more info on providers and Angular 2 DI.
  8 +*/
  9 +@Injectable()
  10 +export class ContentsUnit {
  11 + unit: Unit[];
  12 +
  13 + constructor() {
  14 + this.unit = this.createUnit();
  15 + }
  16 +
  17 + private createUnit(): Unit[] {
  18 + var unit = [{
  19 + menuId: 0,
  20 + unitId: 0,
  21 + level: '1',
  22 + unitName: '光の反射'
  23 + }, {
  24 + menuId: 0,
  25 + unitId: 1,
  26 + level: '1',
  27 + unitName: '光の屈折'
  28 + }, {
  29 + menuId: 0,
  30 + unitId: 2,
  31 + level: '1',
  32 + unitName: '凸レンズと像'
  33 + }, {
  34 + menuId: 0,
  35 + unitId: 3,
  36 + level: '1',
  37 + unitName: '音の性質と速さ'
  38 + }, {
  39 + menuId: 0,
  40 + unitId: 4,
  41 + level: '1',
  42 + unitName: '力とばねののび'
  43 + }, {
  44 + menuId: 0,
  45 + unitId: 5,
  46 + level: '1',
  47 + unitName: '圧力・浮力'
  48 + }, {
  49 + menuId: 1,
  50 + unitId: 0,
  51 + level: '2',
  52 + unitName: '物質の性質'
  53 + }, {
  54 + menuId: 1,
  55 + unitId: 1,
  56 + level: '2',
  57 + unitName: '物質の状態変化'
  58 + }, {
  59 + menuId: 1,
  60 + unitId: 2,
  61 + level: '2',
  62 + unitName: '気体の性質'
  63 + }, {
  64 + menuId: 1,
  65 + unitId: 3,
  66 + level: '2',
  67 + unitName: '融点と沸点'
  68 + }, {
  69 + menuId: 1,
  70 + unitId: 4,
  71 + level: '2',
  72 + unitName: '水溶液の性質'
  73 + }, {
  74 + menuId: 1,
  75 + unitId: 5,
  76 + level: '2',
  77 + unitName: '水溶液の濃度'
  78 + }, {
  79 + menuId: 1,
  80 + unitId: 6,
  81 + level: '2',
  82 + unitName: '溶解度'
  83 + }, {
  84 + menuId: 2,
  85 + unitId: 0,
  86 + level: '3',
  87 + unitName: '回路'
  88 + }, {
  89 + menuId: 2,
  90 + unitId: 1,
  91 + level: '3',
  92 + unitName: '直列回路と電流・電圧'
  93 + }, {
  94 + menuId: 2,
  95 + unitId: 2,
  96 + level: '3',
  97 + unitName: '並列回路と電流・電圧'
  98 + }, {
  99 + menuId: 2,
  100 + unitId: 3,
  101 + level: '3',
  102 + unitName: '電流と電圧の関係'
  103 + }, {
  104 + menuId: 2,
  105 + unitId: 4,
  106 + level: '3',
  107 + unitName: '全体の抵抗'
  108 + }, {
  109 + menuId: 2,
  110 + unitId: 5,
  111 + level: '3',
  112 + unitName: '電力量・電流による発熱'
  113 + }, {
  114 + menuId: 2,
  115 + unitId: 6,
  116 + level: '3',
  117 + unitName: '静電気・電流の正体'
  118 + }, {
  119 + menuId: 3,
  120 + unitId: 0,
  121 + level: '3',
  122 + unitName: '磁石の磁界'
  123 + }, {
  124 + menuId: 3,
  125 + unitId: 1,
  126 + level: '3',
  127 + unitName: '電流(導線)のまわりの磁界'
  128 + }, {
  129 + menuId: 3,
  130 + unitId: 2,
  131 + level: '3',
  132 + unitName: 'コイルのまわりの磁界'
  133 + }, {
  134 + menuId: 3,
  135 + unitId: 3,
  136 + level: '3',
  137 + unitName: '電流が磁界から受ける力'
  138 + }, {
  139 + menuId: 3,
  140 + unitId: 4,
  141 + level: '3',
  142 + unitName: '電磁誘導'
  143 + }, {
  144 + menuId: 3,
  145 + unitId: 5,
  146 + level: '3',
  147 + unitName: '直流と交流'
  148 + }, {
  149 + menuId: 4,
  150 + unitId: 0,
  151 + level: '3',
  152 + unitName: '分解'
  153 + }, {
  154 + menuId: 4,
  155 + unitId: 1,
  156 + level: '3',
  157 + unitName: '水の電気分解'
  158 + }, {
  159 + menuId: 4,
  160 + unitId: 2,
  161 + level: '3',
  162 + unitName: '原子と分子'
  163 + }, {
  164 + menuId: 4,
  165 + unitId: 3,
  166 + level: '3',
  167 + unitName: '化合・化学式'
  168 + }, {
  169 + menuId: 4,
  170 + unitId: 4,
  171 + level: '3',
  172 + unitName: '化学反応式'
  173 + }, {
  174 + menuId: 5,
  175 + unitId: 0,
  176 + level: '3',
  177 + unitName: '酸化'
  178 + }, {
  179 + menuId: 5,
  180 + unitId: 1,
  181 + level: '3',
  182 + unitName: '還元'
  183 + }, {
  184 + menuId: 5,
  185 + unitId: 2,
  186 + level: '3',
  187 + unitName: '化学変化の前後の質量'
  188 + }, {
  189 + menuId: 5,
  190 + unitId: 3,
  191 + level: '3',
  192 + unitName: '質量保存の法則'
  193 + }, {
  194 + menuId: 5,
  195 + unitId: 4,
  196 + level: '3',
  197 + unitName: '金属と化合する酸素の質量'
  198 + }, {
  199 + menuId: 5,
  200 + unitId: 5,
  201 + level: '3',
  202 + unitName: '化合する物質の質量の割合'
  203 + }, {
  204 + menuId: 5,
  205 + unitId: 6,
  206 + level: '3',
  207 + unitName: '化学変化と熱'
  208 + }, {
  209 + menuId: 6,
  210 + unitId: 0,
  211 + level: '3',
  212 + unitName: '身近な生物の観察'
  213 + }, {
  214 + menuId: 6,
  215 + unitId: 1,
  216 + level: '3',
  217 + unitName: '水中の小さな生物と顕微鏡'
  218 + }, {
  219 + menuId: 6,
  220 + unitId: 2,
  221 + level: '3',
  222 + unitName: '花のつくり'
  223 + }, {
  224 + menuId: 6,
  225 + unitId: 3,
  226 + level: '3',
  227 + unitName: '根・茎・葉のつくり'
  228 + }, {
  229 + menuId: 6,
  230 + unitId: 4,
  231 + level: '3',
  232 + unitName: '光合成と呼吸'
  233 + }, {
  234 + menuId: 6,
  235 + unitId: 5,
  236 + level: '3',
  237 + unitName: '植物のなかま'
  238 + }, {
  239 + menuId: 7,
  240 + unitId: 0,
  241 + level: '3',
  242 + unitName: '地層のでき方'
  243 + }, {
  244 + menuId: 7,
  245 + unitId: 1,
  246 + level: '3',
  247 + unitName: '堆積岩と化石'
  248 + }, {
  249 + menuId: 7,
  250 + unitId: 2,
  251 + level: '3',
  252 + unitName: '火山とマグマ'
  253 + }, {
  254 + menuId: 7,
  255 + unitId: 3,
  256 + level: '3',
  257 + unitName: '火成岩と鉱物'
  258 + }, {
  259 + menuId: 7,
  260 + unitId: 4,
  261 + level: '3',
  262 + unitName: '地震のゆれと伝わり方'
  263 + }, {
  264 + menuId: 7,
  265 + unitId: 5,
  266 + level: '3',
  267 + unitName: '震度とマグニチュード、地震の原因、地層の変形'
  268 + }];
  269 + return unit;
  270 + }
  271 +
  272 +}
... ...
  1 +import { Injectable } from '@angular/core';
  2 +import 'rxjs/add/operator/map';
  3 +import { Menu } from './define-menu';
  4 +import { Unit } from './define-unit';
  5 +import { Qa } from './define-qa';
  6 +import { Keyword } from './define-keyword';
  7 +import { Contents } from './define-contents';
  8 +import { Storage } from '@ionic/storage';
  9 +/*
  10 + Generated class for the DataService provider.
  11 +
  12 + See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  13 + for more info on providers and Angular 2 DI.
  14 +*/
  15 +@Injectable()
  16 +export class DataService {
  17 + st: Storage;
  18 + st_res: string;
  19 + contents: Contents;
  20 + menu: Menu[];
  21 + unit: Unit[];
  22 + subject: Qa[];
  23 + extunit: Unit[];
  24 + extqa: Qa[];
  25 + keyword: Keyword[];
  26 +
  27 + constructor(st: Storage) {
  28 + this.st = st;
  29 + this.contents = new Contents;
  30 + this.menu = this.contents.menu;
  31 + this.unit = this.contents.unit;
  32 + this.subject = this.contents.qa;
  33 + this.extunit = this.contents.extunit;
  34 + this.extqa = this.contents.extqa;
  35 + this.keyword = this.contents.keyword;
  36 + }
  37 +
  38 + public getMenuFirst(): Menu[]{
  39 + var menuFirst: Menu[] = new Array();
  40 + for (var i = 0; i < this.menu.length; i++) {
  41 + if (this.menu[i].grade === '1') {
  42 + menuFirst.push(this.menu[i]);
  43 + }
  44 + }
  45 + return menuFirst;
  46 + }
  47 +
  48 + public getMenuSecond(): Menu[]{
  49 + var menuSecond: Menu[] = new Array();
  50 + for (var i = 0; i < this.menu.length; i++) {
  51 + if (this.menu[i].grade === '2') {
  52 + menuSecond.push(this.menu[i]);
  53 + }
  54 + }
  55 + return menuSecond;
  56 + }
  57 +
  58 + public getMenuThird(): Menu[]{
  59 + var menuThird: Menu[] = new Array();
  60 + for (var i = 0; i < this.menu.length; i++) {
  61 + if (this.menu[i].grade === '3') {
  62 + menuThird.push(this.menu[i]);
  63 + }
  64 + }
  65 + return menuThird;
  66 + }
  67 +
  68 + public getUnitNum(menuId: number): number {
  69 + var num = 0;
  70 + var chk = -1;
  71 + for (var i = 0; i < this.unit.length; i++) {
  72 + if (this.unit[i].menuId === menuId) {
  73 + if(chk != this.unit[i].unitId)
  74 + {
  75 + num++;
  76 + chk = this.unit[i].unitId;
  77 + }
  78 + }
  79 + }
  80 + return num;
  81 + }
  82 +
  83 + public getUnit(menuId: number, unitId:number): Unit[] {
  84 + var subjectList: Unit[] = new Array();
  85 + for (var i = 0; i < this.unit.length; i++) {
  86 + if ((this.unit[i].unitId === unitId) && (this.unit[i].menuId === menuId)) {
  87 + subjectList.push(this.unit[i]);
  88 + }
  89 + }
  90 + return subjectList;
  91 + }
  92 +
  93 + public getExtUnit(menuId: number): Unit[] {
  94 + var subjectList: Unit[] = new Array();
  95 + for (var i = 0; i < this.extunit.length; i++) {
  96 + if (this.extunit[i].menuId === menuId) {
  97 + subjectList.push(this.extunit[i]);
  98 + }
  99 + }
  100 + return subjectList;
  101 + }
  102 +
  103 +
  104 + public getQa(menuId: number, unitId: number): Qa[] {
  105 + var qaItem: Qa[] = new Array();
  106 + for (var i = 0; i < this.subject.length; i++) {
  107 + if ((this.subject[i].menuId === menuId) && (this.subject[i].unitId === unitId)) {
  108 + qaItem.push(this.subject[i]);
  109 + }
  110 + }
  111 + return qaItem;
  112 + }
  113 +
  114 + public getExtqa(menuId: number, unitId: number): Qa[] {
  115 + var qaItem: Qa[] = new Array();
  116 + for (var i = 0; i < this.extqa.length; i++) {
  117 + if ((this.extqa[i].menuId === menuId) && (this.extqa[i].unitId === unitId)) {
  118 + qaItem.push(this.extqa[i]);
  119 + }
  120 + }
  121 + return qaItem;
  122 + }
  123 +
  124 + public getKeyword(menuId: number): Keyword {
  125 + var key: Keyword;
  126 + for (var i = 0; i < this.keyword.length; i++) {
  127 + if (this.keyword[i].menuId === menuId) {
  128 + key = this.keyword[i];
  129 + }
  130 + }
  131 + return key;
  132 + }
  133 +
  134 + public saveInfo(key: string) {
  135 + this.st.get(key).then(val => {
  136 + if (val == "done") {
  137 + } else {
  138 + this.st.set(key, "done");
  139 + }
  140 + });
  141 + }
  142 +
  143 + public getInfo(key: string): any {
  144 + return this.st.get(key);
  145 + }
  146 +
  147 +}
... ...
  1 +import { Injectable } from '@angular/core';
  2 +import { Menu } from './define-menu';
  3 +import { Unit } from './define-unit';
  4 +import { Qa } from './define-qa';
  5 +import { Keyword } from './define-keyword';
  6 +import { ContentsMenu } from './content-menu';
  7 +import { ContentsUnit } from './content-unit';
  8 +import { ContentsQa } from './content-qa';
  9 +import { ContentsExtunit } from './content-extunit';
  10 +import { ContentsExtqa } from './content-extqa';
  11 +import { ContentsKeyword } from './content-keyword';
  12 +/*
  13 + Generated class for the DataService provider.
  14 +
  15 + See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  16 + for more info on providers and Angular 2 DI.
  17 +*/
  18 +@Injectable()
  19 +export class Contents {
  20 + menu: Menu[];
  21 + unit: Unit[];
  22 + qa :Qa[];
  23 + extunit: Unit[];
  24 + extqa :Qa[];
  25 + keyword: Keyword[];
  26 +
  27 + constructor() {
  28 + var menu = new ContentsMenu();
  29 + this.menu = menu.menu;
  30 +
  31 + var unit = new ContentsUnit();
  32 + this.unit = unit.unit;
  33 +
  34 + var qa = new ContentsQa();
  35 + this.qa = qa.qa;
  36 +
  37 + var extunit = new ContentsExtunit();
  38 + this.extunit = extunit.extunit;
  39 +
  40 + var extqa = new ContentsExtqa();
  41 + this.extqa = extqa.extqa;
  42 +
  43 + var keyword = new ContentsKeyword();
  44 + this.keyword = keyword.keyword;
  45 + }
  46 +
  47 +}
... ...
  1 +export interface Keyword {
  2 + menuId: number;
  3 + words: string[];
  4 + answer: string;
  5 +}
... ...
  1 +export interface Menu {
  2 + menuId: number;
  3 + grade: string;
  4 + title: string;
  5 +}
... ...
  1 +export interface Qa {
  2 + menuId: number;
  3 + unitId: number;
  4 + qaId: number;
  5 + questionString: string;
  6 + questionImage: string;
  7 + choicesId: number[];
  8 + choicesString: string[];
  9 + answerId: number;
  10 + answerString: string;
  11 + answerImage: string;
  12 +}
... ...
  1 +export interface Unit {
  2 + menuId: number;
  3 + unitId: number;
  4 + level: string;
  5 + unitName: string;
  6 +}
... ...
  1 +/**
  2 + * Check out https://googlechrome.github.io/sw-toolbox/docs/master/index.html for
  3 + * more info on how to use sw-toolbox to custom configure your service worker.
  4 + */
  5 +
  6 +
  7 +'use strict';
  8 +importScripts('./build/sw-toolbox.js');
  9 +
  10 +self.toolbox.options.cache = {
  11 + name: 'ionic-cache'
  12 +};
  13 +
  14 +// pre-cache our key assets
  15 +self.toolbox.precache(
  16 + [
  17 + './build/main.js',
  18 + './build/main.css',
  19 + './build/polyfills.js',
  20 + 'index.html',
  21 + 'manifest.json'
  22 + ]
  23 +);
  24 +
  25 +// dynamically cache any other local assets
  26 +self.toolbox.router.any('/*', self.toolbox.cacheFirst);
  27 +
  28 +// for any other requests go to the network, cache,
  29 +// and then only use that cached resource if your user goes offline
  30 +self.toolbox.router.default = self.toolbox.networkFirst;
\ No newline at end of file
... ...
Please register or login to post a comment