扩大
缩小

输出全班学生的信息

  1 /* 
  2  2    功能Function Description:     解决老师给的问题; 
  3  3    开发环境Environment:          DEV C++ 4.9.9.1
  4  4    技术特点Technique:
  5  5    版本Version:
  6  6    作者Author:                   遥感专业赵杰迪 
  7  7    日期Date:                      20121114
  8  8    备注Notes:                    主要纠结与随机数怎样产生,后来发现产生的是伪随机数,在网上查了下,就好了; 
  9  9    
 10 15 */
 11 
 12 #include<stdio.h>
 13 #include<string.h>
 14 #include<windows.h> 
 15 #include<algorithm> 
 16 #include<stdlib.h>
 17 ////////////////////////////////////////////////////////////////////////////////////////////////////////////
 18 char name[31][7]={"黄双燕","孙欣欣","吴明阳","      ","张梦娜","白胜富","陈良宇","高小旭","苟继承","韩冬冬",
 19 "李浩","刘川","刘永强","吕文明","罗强","马战林","彭凯峰","秦文发","孙亚洲","田中玉",
 20 "王鹏","徐楠楠","许忠雄","杨艳魁","张梦伟","张鹏鹏","赵杰迪","周和禹","周元可","朱彦凯","贾立娟"};
 21 ////////////////////////////////////////////////////////////////////////////////////////////////////////////
 22 void  suijishu()
 23 {
 24     int i,j,m,n,r ; 
 25      for(i=0;i<2;i++) 
 26       {   
 27         srand((i+GetTickCount())); 
 28           for(j=0;j<12365478;j++) 
 29           {  r=rand(); 
 30              r=rand();
 31           } 
 32           printf("%d",r);break;
 33          
 34       }
 35  }
 36 
 37 void allprint()
 38 {
 39      int i;
 40      printf("\t遥感三班基本信息如下:\n");                       //  标题
 41     printf(" 姓名\t\t学号\t\t随机数\n");                         //  属性
 42     for(i=0;i<31;i++)
 43     {
 44         if(i==30)printf("%s\t%18s\t",name[i],"311113010202");   //转专业学生,特殊处理;
 45         else if(i==26)printf("\n%s\t%16s%02d\t",name[i],"3111050603",i+1);//本人的要输入两次奥,其实不明白为啥? 
 46         else printf("%s\t%16s%02d\t",name[i],"3111050603",i+1); //本班原有学生,正常处理;
 47         suijishu();
 48         if(i==26)printf("\t这是我自己的\n");                                             //产生随机数;
 49         printf("\n");
 50     }
 51 }
 52 void searchprint(char *str)
 53 {
 54      int id,len,ok1=0,i ;                                    //标志变量ok1 ;
 55      len=strlen(str);
 56      if(len==12)
 57         {                                                   
 58             id=atoi(str+10);                                //将字符的后两位转为整型数;
 59             str[10]='\0';
 60             //puts(str);
 61             if(strcmp(str,"3111050603")==0&&id>=1&&id<=30)   //判断输入字符是否是本班学号; 
 62                 printf("%s\n",name[id-1]);
 63             else if(strcmp(str,"3111130102")==0)            //特殊处理;
 64                 printf("%s\n",name[30]);
 65             else
 66                ok1=1;
 67 
 68         }
 69         else if(len==4||len==6)
 70         {
 71             int ok2=0;                                         //标志变量ok2
 72             for(i=0;i<31;i++)
 73             {
 74                 if(strcmp(str,name[i])==0)
 75                 {
 76                     if(i==30) printf("%s\n","311113010202");  //特殊处理;
 77                     else  printf("%s%d\n","3111050603",i+1);
 78                     ok2=1;                                   //在姓名中找到才将标志变量ok2=1;
 79                 }
 80 
 81             }
 82             ok1=ok2==1?0:1;
 83             
 84         }
 85         else
 86             ok1=1;
 87         if(ok1)
 88               printf("输入错误,请输入学号或姓名!!!\n");
 89 
 90 } 
 91 
 92 int main()
 93 {
 94    
 95     char str[100];
 96     allprint();
 97     printf("请输入你要的查找(可输入学号或姓名《请以文件结束符结束!!》):\n");  //仅提供姓名和学号搜索,以CTRL+Z+ENTER结束; 
 98     while(~scanf("%s",str))
 99     {
100         searchprint(str);                                  //计算长度,分类讨论;
101         memset(str,0,sizeof(str));    
102     }
103     return 0;
104   system("pause");
105 }

 

posted on 2012-12-17 17:12  LinuxPanda  阅读(465)  评论(0编辑  收藏  举报

导航