前田稔(Maeda Minoru)の超初心者のプログラム入門
![]()
![]()
| ファイル名 | 説明 |
|---|---|
| SeisekiXml.cpp | 成績データ XML を作成 |
| SeisekiLoad.cpp | 成績データを表示 |
[XmlRoot("成績管理")]
public ref class SeisekiClass
{
public:
[XmlElement("成績表")]
array<SeisekiData^>:^ Sdata;
};
|
[XmlRoot("成績表")]
public ref class SeisekiData
{
public:
[XmlElement("番号")]
int Number;
[XmlElement("姓名")]
NameCls^ Name;
[XmlElement("科目")]
KamokuCls^ Kamoku;
・・・
SeisekiData(int num, String^ sei, String ^mei, int ten1, int ten2, int ten3)
{
・・・
}
}
|
public ref class NameCls
{
public:
[XmlElement("姓")]
String^ Sei;
[XmlElement("名")]
String^ Mei;
};
|
public ref class KamokuCls
{
public:
[XmlElement("数学")]
int Ten1;
[XmlElement("英語")]
int Ten2;
[XmlElement("C言語")]
int Ten3;
};
|
array<int>^ num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
array<String^>^ sei = { "愛知", "青森", "秋田", "石川", "茨城",
"岩手", "愛媛", "大分", "大阪", "岡山" };
array<String^>^ mei = { "真唯子", "孝雄", "景子", "雅夫", "優子",
"あゆみ", "和子", "慎吾", "恵", "英子" };
array<int>^ ten1 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 };
array<int>^ ten2 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 };
array<int>^ ten3 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 };
|
SeisekiClass^ target = gcnew SeisekiClass();
target->Sdata = gcnew array<SeisekiData^>(10);
SeisekiData^ tmp;
for(int i = 0; i < 10; i++)
{
tmp = gcnew SeisekiData(num[i],sei[i],mei[i],ten1[i],ten2[i],ten3[i]);
target->Sdata[i] = tmp;
}
|
//XMLファイルに保存する
XmlSerializer^ serializer = gcnew XmlSerializer(SeisekiClass::typeid);
FileStream^ fs = gcnew FileStream("c:\\tmp\\config.xml", FileMode::Create);
serializer->Serialize(fs, target);
fs->Close();
|
![]()
public ref class NameCls
{
public:
[XmlElement("姓")]
String^ Sei;
[XmlElement("名")]
String^ Mei;
};
public ref class KamokuCls
{
public:
[XmlElement("C言語")]
int Ten3;
};
[XmlRoot("成績表")]
public ref class SeisekiData
{
public:
[XmlElement("姓名")]
NameCls^ Name;
[XmlElement("科目")]
KamokuCls^ Kamoku;
};
[XmlRoot("成績管理")]
public ref class SeisekiClass
{
public:
[XmlElement("成績表")]
array<SeisekiData^>^ Sdata;
};
|
XmlSerializer^ serializer = gcnew XmlSerializer(SeisekiClass::typeid);
FileStream^ fs = gcnew FileStream("c:\\tmp\\config.xml", FileMode::Open);
SeisekiClass^ target = (SeisekiClass^)serializer->Deserialize(fs);
fs->Close();
|
for(int i=0; i<10; i++)
{ Console::Write(target->Sdata[i]->Name->Sei + target->Sdata[i]->Name->Mei);
Console::WriteLine(" : " + target->Sdata[i]->Kamoku->Ten3);
}
|
![]()