/*★ 成績データ XML を作成 前田 稔 ★*/ #using #using using namespace System; using namespace System::IO; using namespace System::Text; using namespace System::Xml::Serialization; 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; }; [XmlRoot("成績表")] public ref class SeisekiData { public: [XmlElement("番号")] int Number; [XmlElement("姓名")] NameCls^ Name; [XmlElement("科目")] KamokuCls^ Kamoku; //Constructor SeisekiData() { } SeisekiData(int num, String^ sei, String ^mei, int ten1, int ten2, int ten3) { Name = gcnew NameCls(); Kamoku = gcnew KamokuCls(); Number = num; Name->Sei = sei; Name->Mei = mei; Kamoku->Ten1 = ten1; Kamoku->Ten2 = ten2; Kamoku->Ten3 = ten3; } }; [XmlRoot("成績管理")] public ref class SeisekiClass { public: [XmlElement("成績表")] array^ Sdata; }; int main() { array^ num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; array^ sei = { "愛知", "青森", "秋田", "石川", "茨城", "岩手", "愛媛", "大分", "大阪", "岡山" }; array^ mei = { "真唯子", "孝雄", "景子", "雅夫", "優子", "あゆみ", "和子", "慎吾", "恵", "英子" }; array^ ten1 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; array^ ten2 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; array^ ten3 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; SeisekiClass^ target = gcnew SeisekiClass(); target->Sdata = gcnew array(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(); return 0; }