1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          c語言學生信息管理系統(使用C語言怎么編寫一個學生信息管理系統)

          來源:互聯網轉載 時間:2024-05-11 06:20:00

          一.題目分析

          1.功能概述

          1)查詢學生信息
          2)添加學生信息
          3)修改學生信息
          4)刪除學生信息
          5)刷新學生信息
          6)保存學生信息
          7)輸出當前學生信息

          2.題目要求:

          1)使用結構體建立學生信息體制
          2)實現七大基本功能
          3)采用文件存儲學生信息

          二.算法構造

          1.難點解析----對文件的操作

          1.1文件讀取

          FILE*fp;if((fp=fopen(filename,"r"))==NULL)return0;//從文件讀取信息while(fscanf(fp,"%s%s%s%d%d%d%d",&stu[j].StudentId,&stu[j].StudentName,&stu[j].StudentAge,&stu[j].StudentSex,&stu[j].score[0],&stu[j].score[1],&stu[j].score[2])==7){j++;}

          1.2文件寫入

          FILE*fp;fp=fopen(filename,"w");for(i=0;i<n;i++){fprintf(fp,"%s%s%d%c%.lf%.lf%.lf\n",stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}

          2.流程圖

          3.七大基本功能----函數實現

          3.1菜單函數:通過菜單建立用戶與程序之間的交流

          voidmenu()/*界面*/{intnum;printf("\n\n\n\n");printf("******************************************************\n\n");printf("*學生信息管理系統*\n\n");printf("******************************************************\n\n");printf("*********************系統功能菜單*************************\n");printf("--------------------------------------------\n");printf("*********************************************\n");printf("*0.系統幫助及說明**1.刷新學生信息*\n");printf("*********************************************\n");printf("*2.查詢學生信息**3.修改學生信息*\n");printf("*********************************************\n");printf("*4.增加學生信息**5.按學號刪除信息*\n");printf("*********************************************\n");printf("*6.顯示當前信息**7.保存當前學生信息*\n");printf("********************************************\n");printf("*8.退出系統*\n");printf("**********************\n");printf("--------------------------------------------\n");printf("請選擇菜單編號:");scanf("%d",&num);switch(num){case0:help();break;case1:flush();break;case2:seek();break;case3:modify();break;case4:insert();break;case5:del();break;case6:display();break;case7:save();break;case8:k=0;printf("即將退出程序!\n");break;default:printf("請在0-8之間選擇\n");}}

          3.2系統幫助與說明函數:適用于初次接觸學生信息管理系統的用戶參考

          voidhelp(){printf("\n0.歡迎使用系統幫助!\n");printf("\n1.初次進入系統后,請先選擇增加學生信息;\n");printf("\n2.按照菜單提示鍵入數字代號;\n");printf("\n3.增加學生信息后,切記保存;\n");printf("\n4.謝謝您的使用!\n");}

          3.3刷新學生信息函數

          功能:調用刷新信息函數后,文件中再無學生信息

          intflush(){charfilename[LEN+1];inti=0;printf("請輸入要刷新學生信息的文件名:\n");scanf("%s",filename);intj=0;FILE*fp;if((fp=fopen(filename,"r"))==NULL)return0;//從文件讀取信息while(fscanf(fp,"%s%s%s%d%d%d%d",&stu[j].StudentId,&stu[j].StudentName,&stu[j].StudentAge,&stu[j].StudentSex,&stu[j].score[0],&stu[j].score[1],&stu[j].score[2])==7){j++;}n=j;printf("刷新成功!!!");returnn;}

          3.4查詢學生信息函數

          功能:通過輸入要查詢的學生學號或者姓名,與系統中的學生信息進行對比,若相等,則輸出該學生的基本信息;反之,則輸出該學生在該管理系統中不存在

          查詢方式:

          1)按照學號查詢
          2)按照姓名查詢

          voidseek()/*查找*/{inti,item,flag;chars1[21];/*以姓名和學號最長長度+1為準*/printf("------------------\n");printf("-----1.按學號查詢-----\n");printf("-----2.按姓名查詢-----\n");printf("-----3.退出本菜單-----\n");printf("------------------\n");while(1){printf("請選擇子菜單編號:");scanf("%d",&item);flag=0;switch(item){case1:printf("請輸入要查詢的學生的學號:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(s1,stu[i].StudentId)==0){flag=1;printf("學生學號\t學生姓名\t年齡\t性別\tC語言成績\t高等數學\t大學英語成績\n");printf("--------------------------------------------------------------------\n");printf("%s\t%s\t%d\t%6\t%.1f\t%.1f\t%.1f\n",stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}if(0==flag)printf("該學號不存在!\n");break;case2:printf("請輸入要查詢的學生的姓名:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].StudentName,s1)==0){flag=1;printf("學生學號\t學生姓名\t年齡\t性別\tC語言成績\t高等數學\t大學英語成績\n");printf("--------------------------------------------------------------------\n");printf("%s\t%s\t%d\t%c\t%.1f\t%.1f\t%.1f\n",stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}if(0==flag)printf("該姓名不存在!\n");break;case3:return;default:printf("請在1-3之間選擇\n");}}}

          3.5修改學生信息

          功能:通過輸入學號來選擇要修改的該學號學生的信息內容,從而完成修改信息操作;

          //修改學生信息voidmodify()/*修改信息*/{inti,item,num=-1;charsex1,s1[LEN+1],s2[LEN+1];/*以姓名和學號最長長度+1為準*/floatscore1;printf("請輸入要要修改的學生的學號:\n");scanf("%s",s1);for(i=0;i<n;i++){if(strcmp(stu[i].StudentId,s1)==0){/*比較字符串是否相等*/num=i;printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年齡\n");printf("3.修改性別\n");printf("4.修改C語言成績\n");printf("5.修改高等數學成績\n");printf("6.修改大學英語成績\n");printf("7.退出本菜單\n");printf("------------------\n");while(1){printf("請選擇子菜單編號:");scanf("%d",&item);switch(item){case1:printf("請輸入新的姓名:\n");scanf("%s",s2);strcpy(stu[num].StudentName,s2);break;case2:printf("請輸入新的年齡:\n");scanf("%d",stu[num].StudentAge);break;case3:printf("請輸入新的性別:\n");scanf("%s",&sex1);stu[i].StudentSex=sex1;break;case4:printf("請輸入新的C語言成績:\n");scanf("%f",&score1);stu[num].score[0]=score1;break;case5:printf("請輸入新的高等數學成績:\n");scanf("%f",&score1);stu[num].score[1]=score1;break;case6:printf("請輸入新的大學英語成績:\n");scanf("%f",&score1);stu[num].score[2]=score1;break;case7:return;default:printf("請在1-7之間選擇\n");}}printf("修改完畢!請及時保存!\n");}else{printf("沒有該學生學號!!!");}}}

          3.6添加學生信息函數

          功能:添加學生信息,并保存至文件中

          //添加學生信息函數voidinsert()/*插入函數*/{inti=n,j,flag;printf("請輸入待增加的學生數:\n");scanf("%d",&m);if(m>0){do{flag=1;while(flag){flag=0;printf("請輸入第%d位學生的學號:\n",i+1);scanf("%s",stu[i].StudentId);for(j=0;j<i;j++){if(strcmp(stu[i].StudentId,stu[j].StudentId)==0){printf("該學號已存在,請重新輸入!\n");flag=1;break;}}}printf("請輸入第%d個學生的姓名:\n",i+1);scanf("%s",stu[i].StudentName);printf("請輸入第%d個學生的年齡:\n",i+1);scanf("%d",&stu[i].StudentAge);printf("請輸入第%d個學生的性別:\n",i+1);scanf("%c",&stu[i].StudentSex);printf("請輸入第%d個學生的C語言成績\n",i+1);scanf("%f",&stu[i].score[0]);printf("請輸入第%d個學生的高等數學成績:\n",i+1);scanf("%f",&stu[i].score[1]);printf("請輸入第%d個學生的大學英語成績:\n",i+1);scanf("%f",&stu[i].score[2]);if(0==flag){i++;}}while(i<n+m);}n+=m;printf("學生信息增加完畢!!!\n");system("pause");}

          3.7刪除學生信息函數

          功能:通過輸入要刪除學生信息的學號,刪除該學生在該管理系統中的所有信息;

          //刪除學生信息函數voiddel(){inti,j,flag=0;chars1[LEN+1];printf("請輸入要刪除學生的學號:\n");scanf("%s",s1);for(i=0;i<n;i++){if(strcpy(stu[i].StudentId,s1)==0){flag=1;//要刪除學生后面的學生往前移一位for(j=i;j<n-1;j++){stu[j]=stu[j+1];}}}//查找失敗if(0==flag){printf("該學號不存在!!!\n");}if(1==flag){printf("刪除成功!!!");//刪除成功,學生人數減1n--;}system("pause");}

          3.8顯示當前學生信息

          功能:可以輸出進行多種操作后的學生信息管理系統中的所有學生信息;

          //顯示全部數據信息voiddisplay(){inti;printf("共有%d位學生的信息:\n",n);if(0!=n){printf("學生學號\t學生姓名\t年齡\t性別\tC語言成績\t高等數學\t大學英語成績\n");printf("--------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%s\t%s\t%d\t%c\t%.1f\t%.1f\t%.1f\n",stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}}system("pause");}

          3.8保存學生信息

          功能:將進行某些操作后的學生信息保存到指定文件中

          voidsave(){inti;FILE*fp;charfilename[LEN+1];printf("請輸入要保存的文件名:\n");scanf("%s",filename);fp=fopen(filename,"w");for(i=0;i<n;i++){fprintf(fp,"%s%s%d%c%.lf%.lf%.lf\n",stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}printf("保存成功!!!\n");fclose(fp);system("pause");}

          三.源程序代碼

          #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>/*I/O函數*/#include<stdlib.h>/*其它說明*/#include<string.h>/*字符串函數*/#defineLEN15/*學號和姓名最大字符數,實際請更改*/#defineN50/*最大學生人數,實際請更改*/intk=1,n=0,m=0;/*n代表當前記錄的學生人數*///函數聲明voidreadfile();voidseek();voidmodify();voidinsert();voiddel();voiddisplay();voidsave();voidmenu();//結構體保存學生信息structstudent{charStudentId[LEN+1];charStudentName[LEN+1];intStudentAge;charStudentSex;floatscore[3];}stu[N];//主函數intmain(){while(k){menu();}system("pause");return0;}//系統幫助函數voidhelp(){printf("\n0.歡迎使用系統幫助!\n");printf("\n1.初次進入系統后,請先選擇增加學生信息;\n");printf("\n2.按照菜單提示鍵入數字代號;\n");printf("\n3.增加學生信息后,切記保存;\n");printf("\n4.謝謝您的使用!\n");}//刷新文件intflush(){charfilename[LEN+1];inti=0;printf("請輸入要刷新學生信息的文件名:\n");scanf("%s",filename);intj=0;FILE*fp;if((fp=fopen(filename,"r"))==NULL)return0;//從文件讀取信息while(fscanf(fp,"%s%s%s%d%d%d%d",&stu[j].StudentId,&stu[j].StudentName,&stu[j].StudentAge,&stu[j].StudentSex,&stu[j].score[0],&stu[j].score[1],&stu[j].score[2])==7){j++;}n=j;printf("刷新成功!!!");returnn;}//查找學生信息voidseek()/*查找*/{inti,item,flag;chars1[21];/*以姓名和學號最長長度+1為準*/printf("------------------\n");printf("-----1.按學號查詢-----\n");printf("-----2.按姓名查詢-----\n");printf("-----3.退出本菜單-----\n");printf("------------------\n");while(1){printf("請選擇子菜單編號:");scanf("%d",&item);flag=0;switch(item){case1:printf("請輸入要查詢的學生的學號:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(s1,stu[i].StudentId)==0){flag=1;printf("學生學號\t學生姓名\t年齡\t性別\tC語言成績\t高等數學\t大學英語成績\n");printf("--------------------------------------------------------------------\n");printf("%s\t%s\t%d\t%6\t%.1f\t%.1f\t%.1f\n",stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}if(0==flag)printf("該學號不存在!\n");break;case2:printf("請輸入要查詢的學生的姓名:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].StudentName,s1)==0){flag=1;printf("學生學號\t學生姓名\t年齡\t性別\tC語言成績\t高等數學\t大學英語成績\n");printf("--------------------------------------------------------------------\n");printf("%s\t%s\t%d\t%c\t%.1f\t%.1f\t%.1f\n",stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}if(0==flag)printf("該姓名不存在!\n");break;case3:return;default:printf("請在1-3之間選擇\n");}}}//修改學生信息voidmodify()/*修改信息*/{inti,item,num=-1;charsex1,s1[LEN+1],s2[LEN+1];/*以姓名和學號最長長度+1為準*/floatscore1;printf("請輸入要要修改的學生的學號:\n");scanf("%s",s1);for(i=0;i<n;i++){if(strcmp(stu[i].StudentId,s1)==0){/*比較字符串是否相等*/num=i;printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年齡\n");printf("3.修改性別\n");printf("4.修改C語言成績\n");printf("5.修改高等數學成績\n");printf("6.修改大學英語成績\n");printf("7.退出本菜單\n");printf("------------------\n");while(1){printf("請選擇子菜單編號:");scanf("%d",&item);switch(item){case1:printf("請輸入新的姓名:\n");scanf("%s",s2);strcpy(stu[num].StudentName,s2);break;case2:printf("請輸入新的年齡:\n");scanf("%d",stu[num].StudentAge);break;case3:printf("請輸入新的性別:\n");scanf("%s",&sex1);stu[i].StudentSex=sex1;break;case4:printf("請輸入新的C語言成績:\n");scanf("%f",&score1);stu[num].score[0]=score1;break;case5:printf("請輸入新的高等數學成績:\n");scanf("%f",&score1);stu[num].score[1]=score1;break;case6:printf("請輸入新的大學英語成績:\n");scanf("%f",&score1);stu[num].score[2]=score1;break;case7:return;default:printf("請在1-7之間選擇\n");}}printf("修改完畢!請及時保存!\n");}else{printf("沒有該學生學號!!!");}}}voidsort()//按學號排序{inti,j,k,*p,*q,s;chartemp[LEN+1],ctemp;floatftemp;for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(stu[j-1].StudentId,stu[j].StudentId)>0){strcpy(temp,stu[j-1].StudentId);strcpy(stu[j-1].StudentId,stu[j].StudentId);strcpy(stu[j].StudentId,temp);strcpy(temp,stu[j-1].StudentName);strcpy(stu[j-1].StudentName,stu[j].StudentName);strcpy(stu[j].StudentName,temp);ctemp=stu[j-1].StudentSex;stu[j-1].StudentSex=stu[j].StudentSex;stu[j].StudentSex=ctemp;p=&stu[j-1].StudentAge;q=&stu[j].StudentAge;s=*q;*q=*p;*p=s;for(k=0;k<3;k++){ftemp=stu[j-1].score[k];stu[j-1].score[k]=stu[j].score[k];stu[j].score[k]=ftemp;}}}}//添加學生信息函數voidinsert()/*插入函數*/{inti=n,j,flag;printf("請輸入待增加的學生數:\n");scanf("%d",&m);if(m>0){do{flag=1;while(flag){flag=0;printf("請輸入第%d位學生的學號:\n",i+1);scanf("%s",stu[i].StudentId);for(j=0;j<i;j++){if(strcmp(stu[i].StudentId,stu[j].StudentId)==0){printf("該學號已存在,請重新輸入!\n");flag=1;break;}}}printf("請輸入第%d個學生的姓名:\n",i+1);scanf("%s",stu[i].StudentName);printf("請輸入第%d個學生的年齡:\n",i+1);scanf("%d",&stu[i].StudentAge);printf("請輸入第%d個學生的性別:\n",i+1);scanf("%c",&stu[i].StudentSex);printf("請輸入第%d個學生的C語言成績\n",i+1);scanf("%f",&stu[i].score[0]);printf("請輸入第%d個學生的高等數學成績:\n",i+1);scanf("%f",&stu[i].score[1]);printf("請輸入第%d個學生的大學英語成績:\n",i+1);scanf("%f",&stu[i].score[2]);if(0==flag){i++;}}while(i<n+m);}n+=m;printf("學生信息增加完畢!!!\n");system("pause");}//刪除學生信息函數voiddel(){inti,j,flag=0;chars1[LEN+1];printf("請輸入要刪除學生的學號:\n");scanf("%s",s1);for(i=0;i<n;i++){if(strcpy(stu[i].StudentId,s1)==0){flag=1;//要刪除學生后面的學生往前移一位for(j=i;j<n-1;j++){stu[j]=stu[j+1];}}}//查找失敗if(0==flag){printf("該學號不存在!!!\n");}if(1==flag){printf("刪除成功!!!");//刪除成功,學生人數減1n--;}system("pause");}//顯示全部數據信息voiddisplay(){inti;printf("共有%d位學生的信息:\n",n);if(0!=n){printf("學生學號\t學生姓名\t年齡\t性別\tC語言成績\t高等數學\t大學英語成績\n");printf("--------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%s\t%s\t%d\t%c\t%.1f\t%.1f\t%.1f\n",stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}}system("pause");}voidsave(){inti;FILE*fp;charfilename[LEN+1];printf("請輸入要保存的文件名:\n");scanf("%s",filename);fp=fopen(filename,"w");for(i=0;i<n;i++){fprintf(fp,"%s%s%d%c%.lf%.lf%.lf\n",stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}printf("保存成功!!!\n");fclose(fp);system("pause");}voidmenu()/*界面*/{intnum;printf("\n\n\n\n");printf("******************************************************\n\n");printf("*學生信息管理系統*\n\n");printf("******************************************************\n\n");printf("*********************系統功能菜單*************************\n");printf("--------------------------------------------\n");printf("*********************************************\n");printf("*0.系統幫助及說明**1.刷新學生信息*\n");printf("*********************************************\n");printf("*2.查詢學生信息**3.修改學生信息*\n");printf("*********************************************\n");printf("*4.增加學生信息**5.按學號刪除信息*\n");printf("*********************************************\n");printf("*6.顯示當前信息**7.保存當前學生信息*\n");printf("********************************************\n");printf("*8.退出系統*\n");printf("**********************\n");printf("--------------------------------------------\n");printf("請選擇菜單編號:");scanf("%d",&num);switch(num){case0:help();break;case1:flush();break;case2:seek();break;case3:modify();break;case4:insert();break;case5:del();break;case6:display();break;case7:save();break;case8:k=0;printf("即將退出程序!\n");break;default:printf("請在0-8之間選擇\n");}}

          四.調試、測試以及實驗結果

          1.調試:

          2.測試:

          輸入數據類型與定義時不符合,程序運行過程中會出現錯誤

          3.實驗結果:

          (1)~(9)是一個連續的運行實驗結果

          (1)運行菜單

          (2)添加學生信息

          (3)保存學生信息

          (4)顯示全部信息

          (5)修改學生信息

          (6)顯示修改后全部信息

          (7)刷新學生信息

          (8)保存學生信息

          (9)顯示刷新后的全部信息

          上述內容就是使用C語言怎么編寫一個學生信息管理系統,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注本站行業資訊頻道。

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          跨行查詢要手續費嗎?要進行跨行查詢的話,去ATM機上就可以查詢了,任何一家銀行網點都是有ATM機的。ATM機不僅可以同行查詢,還可以跨行查詢;以及同城查詢、異地查詢。而且在ATM機上進行查詢一般是不會收取任何手續費用的,無論客戶是同行查詢,還是跨行查詢,又或者是同城查詢、異地查詢。如果是去銀行網點柜臺的話,那自然是查詢不了的。畢竟銀行網點柜臺只能查詢本行,不能查詢他行。而大家還需要注意,雖然在AT...

          (資料圖)哈嘍小伙伴們 ,今天給大家科普一個小知識。在日常生活中我們或多或少的都會接觸到現代戲劇作品都有哪些方面的一些說法,有的小伙伴還不是很了解,今天就給大家詳細的介紹一下關于現代戲劇作品都有哪些的相關內容。郭沫若的《棠棣之花》、《屈原》、《虎符》、《高漸離》、《孔雀膽》、《南冠草》; 歐陽笙(華漢)的《李秀成之死》、《天國春秋》、《草莽英雄》、《塞上風云》、《兩面人》; 歐陽予倩的《忠王李秀成...

          美國次貸危機(subprime crisis)也稱次級房貸危機,也譯為次債危機。它是指一場發生在美國,因次級抵押貸款機構破產、投資基金被迫關閉、股市劇烈震蕩引起的金融風暴。那么,美國次貸危機爆發的主要原因是什么?美國次貸危機如何解決的?一起來看看吧!美國次貸危機爆發的主要原因有:1.美國金融監管當局,特別是美聯儲貨幣政策的松緊變化。2.美國投資市場,以及全球經濟和投資環境一段時期內,情緒樂觀、持續...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>