95992828九五至尊2

C程序范例,隐藏的代码引发的教育学

二月 4th, 2019  |  882828九五至尊手机版

1.在写程序此前,我想告知大家,那些顺序初学者很可能可能看不懂,可是那很健康,因为这是自身在求学完C语言之后写的。所以大家好好学习吧!

写过代码的人,相信都对一个见解深有体会,那就是:No Magic。

是因为这是在自家大一刚学到数组时编辑的程序,有多如牛毛冗余的片段,但即刻做出来仍然很欢悦的。

用中文来说,就是没有不用写代码而落实的意义。比如您在先后里只写了一行打印“Hello
World”的代码,那么那些顺序就只好打印这么一行字符,只可以干这样一件事,其余的政工都不会干。再比如您的先后做了一个表格的界面出来,除非您额外写了“排序”的代码,否则那么些表格界面是不会自动达成“排序”那一个功能的。你想让您的程序干越多的活,那就得写越多的代码。

#include<stdio.h>
#include<string.h>
\\注意老师登录的密码是123456
\\注意管理员登陆的密码是654321
struct kecheng
{
    long int num;
    char id[16];
    int cj;
    char name[16];
};
struct student 
{
    long int num;
    char name[20];
    int age;
    char sex[4];
    char b[30];
    char p[15];
};
int n,w,q;
char c1,c2,c3,c4,c5,c6;
char n1,n2,n3,n4,n5,n6;
struct student stu[100];
struct student *p;
struct kecheng ke[100];
struct kecheng *a;
void lr();
void ll();
void lls();
void lrs();
void cx();
void cxs();
void xg();
void xgs();
void sc();
void scs();
void jm();
void jms();
void main()\\主界面显示
{   
    int m=1;
    do
{  
    int z;
    m+=1;
    printf("+------------------------+\n");
    printf("|欢迎进入学生成绩信息系统|\n");
    printf("+------------------------+\n");
    printf("提示:请按照提示操作^_^\n");
    printf("+---------------------+\n");
    printf("|+[1]---登陆学生界面  |\n");
    printf("|+[2]---登录教师界面  |\n");
    printf("|+[3]---登陆管理员界面|\n");
    printf("|+--------------------+\n");
    printf("请输入您的选择:\n");
    scanf("%d",&z);
    if(z==1)
    {   
        int a;
        printf("+---------------------------+\n");
        printf("|+[1]---学生成绩的查询      |\n");
        printf("|+[2]---学生个人信息的查询  |\n");
        printf("|+[3]---学生成绩单的打印    |\n");
        printf("|+[0]---退出                |\n");
        printf("+---------------------------+\n");
        printf("请输入您想查询功能的编号\n");
        scanf("%d",&a);
        switch(a)
        {
        case 1:cxs();break;
        case 2:cx();break;
        case 3:lls();break;
        case 0:break;
        default:printf("无效选项\n");
        }
    }
    if(z==2)
    {   
        int b,i=0;
        do
        {
        jm();
        i+=1;
        if(w==1)continue;
        if(w==0)break;
        }while(i<1);
        printf("\n");
        printf("+-------------------------+\n");
        printf("|+[1]---学生信息的录入    |\n");
        printf("|+[2]---课程成绩信息的录入|\n");
        printf("|+[3]---学生课程成绩单查询|\n");
        printf("|+[4]---学生信息单查询    |\n");
        printf("|+[5]---退出              |\n");
        printf("+-------------------------+\n");
        printf("请输入您想查询功能的编号\n");
        scanf("%d",&b);
        switch(b)
        {
        case 1:lr();break;
        case 2:lrs();break;
        case 3:lls();break;
        case 4:ll();break;
        case 5:break;
        default:printf("无效选项\n");
        }
    }
    if(z==3)
    {
        int c,i=0;
        do
        {
        jms();
        i+=1;
        if(q==1)continue;
        if(q==0)break;
        }while(i<1);
        printf("+------------------------------+\n");
        printf("|+[1]---学生信息的删除         |\n");
        printf("|+[2]---学生课程成绩信息的删除 |\n");
        printf("|+[3]---初始密码的管理         |\n");
        printf("|+[4]---学生信息的修改         |\n");
        printf("|+[5]---课程成绩信息的修改     |\n");
        printf("|+[0]---退出                   |\n");
        printf("+-------------------------+\n");
        printf("请输入您想查询功能的编号\n");
        scanf("%d",&c);
        switch(c)
        {
        case 1:sc();break;
        case 2:scs();break;
        case 3:break;
        case 4:xg();break;
        case 5:xgs();break;
        case 0:break;
        default:printf("无效选项\n");
        }
    }
}while(m<=10);
}
void jm()\\给老师加密的部分
{   
    int i=1;
    do
{  
    printf("请输入您的密码\n");
    i+=1;
    c1=getch();printf("*");
    c2=getch();printf("*");
    c3=getch();printf("*");
    c4=getch();printf("*");
    c5=getch();printf("*");
    c6=getch();printf("*");
    if(c1=='1'&&c2=='2'&&c3=='3'&&c4=='4'&&c5=='5'&&c6=='6')
    {
        printf("登录成功\n");
        return w=1;
    }
    if(c1!='1'||c2!='2'||c3!='3'||c4!='4'||c5!='5'||c6!='6')
    {
        printf("登录失败\n");
        return w=0;
    }
}while(i<=3);
}
void jms()\\给管理员加密的部分
{   
    int i=1;
    do
{  
    printf("请输入您的密码\n");
    i+=1;
    n1=getch();printf("*");
    n2=getch();printf("*");
    n3=getch();printf("*");
    n4=getch();printf("*");
    n5=getch();printf("*");
    n6=getch();printf("*");
    if(n1=='6'&&n2=='5'&&n3=='4'&&n4=='3'&&n5=='2'&&n6=='1')
    {
        printf("登录成功\n");
        return q=1;
    }
    if(n1!='6'||n2!='5'||n3!='4'||n4!='3'||n5!='2'||n6!='1')
    {
        printf("登录失败\n");
        return q=0;
    }
}while(i<=3);
}
void ll()
{
    int i,j;
    if(n!=0)
    { printf("学生总数:%d\n", n);
    printf("学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
    printf("-----------------------------------------------------\n");
    for(i=0;i<n;i++)
    printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
    }
    else printf("提示:无学生数据,请输入数据!");
}
void cx()\\查询功能
{
    int c;
    int w,i,j=0;
    char name[20];
    if(n!=0)
    {
      do{ printf("\n");
      printf("+--------------------+\n");
      printf("| 按学号查询 请按 1 |\n");
      printf("| 按姓名查询 请按 2 |\n"); 
      printf("| 取消        请按 0 |\n");
      printf("+--------------------+\n");
      printf("请输入您的选择:");
      scanf("%d", &c);
      switch(c)
      {
      case 0:break;
      case 1:
      printf("请输入学生的学号;");
      scanf("%ld", &w);
      printf("\n");
      for(i=0;i<n;i++)
      if(stu[i].num==w) 
      {
      printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
      printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
      j=1;
      }
      if(j==0)
       printf("提示:没有该学生记录,请核对!");
       break;
      case 2:
        printf("请输入学生的姓名:");
        scanf("%s", name);
        printf("\n");
        for(i=0;i<n;i++)
        if(strcmp(name,stu[i].name)==0)
        {
        printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
        j=1;
        printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
        }
      if(j==0)
      printf("提示:没有该学生记录,请核对!");
       break;
       default:
       printf("\n提示:无效选项!");
        break;
      }

      }while(c!= 0);
    } else printf("提示:无学生数据,请输入数据!");
     return;
}
void lr()\\录入功能
{
     int y;
     if(n==0)
     p=stu;
     do
     {
      printf("--------------------\n");
       printf("请输入学生的学号:");
       scanf("%ld",&p->num);
       printf("请输入学生的姓名:");
       scanf("%s",p->name);  
      printf("请输入学生的年龄:");
      scanf("%d",&p->age);
      printf("请输入学生的性别:");
      scanf("%s",p->sex);
      printf("请输入学生的地址:");
      scanf("%s",p->b);
      printf("请输入学生的电话:");
      scanf("%s",p->p);
      n++;
      p++;
      printf("\n1.继续输入.\n0.输入完毕.\n");
       printf("请选择:");
      scanf("%d",&y);
     }
     while(y==1);
     printf("提示:输入完毕!你一共输入%d个\n",n);

} 
void lrs()管理员界面的录入功能
{
     int y;
     if(n==0)
     a=ke;
     do 
     {
     printf("--------------------\n");
     printf("请输入课程的编号:");
     scanf("%ld",&a->num);
     printf("请输入课程名称:");
     scanf("%s",&a->id);
     printf("请输入课程的成绩:");
     scanf("%d",&a->cj);
     printf("请输入课程的代课老师:");
     scanf("%s",&a->name);
     n++;
     a++;
     printf("\n1.继续输入.\n0.输入完毕.\n");
     printf("请选择:");
     scanf("%d",&y);
     }
    while(y==1);
    printf("提示:输入完毕!你一共输入%d个\n",n);

}
void sc()\\删除功能
{
     long int num;
     int i,j,e; 
    if(n!=0)
    {
     printf("学号\t姓名\t年龄\t性别\t地址\t\t电话\n"); 
     printf("-----------------------------------------------------\n");
    for(i=0;i<n;i++)
       printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
    printf("请输入您要删除的学生的学号:");
     scanf("%ld", &num);
    printf("\n");
    for(i=0;i<n;i++)
    if(num==stu[i].num)
    j=i;
    if(j!=(n-1))
    {
     for(e=i-1;e<n;e++,j++)
     {
      stu[j].num=stu[j+1].num;
      strcpy(stu[j].name,stu[j+1].name);
      strcpy(stu[j].sex,stu[j+1].sex);
      stu[j].age=stu[j+1].age;
      strcpy(stu[j].b,stu[j+1].b);\\直接将数组中的这个位置跳过,这样就可以实现删除功能
      strcpy(stu[j].p,stu[j+1].p);
       n--;p--;
     }
}else {n--;p--;}
     printf("提示:删除完毕!");
    }else printf("提示:无学生数据,请输入数据!");
}
void lls()
{
     int i,j;
     if(n!=0)
     { 
        printf("课程总数:%d\n", n);   
        printf("课程编号\t课程名\t成绩\t代课老师\n");
        printf("-----------------------------------------------------\n");
        for(i=0;i<n;i++)
        printf("%ld\t%s\t%d\t%s\n",ke[i].num,ke[i].id,ke[i].cj,ke[i].name);
     }
     else printf("提示:无课程成绩数据,请输入数据!");
}
void cxs()\\查询
{
     int c;
     int w,i,j=0;
     char name[20];
     if(n!=0)
     {
     do{ printf("\n");
     printf("+--------------------+\n");
     printf("| 按学号查询 请按 1 |\n");
     printf("| 按姓名查询 请按 2 |\n"); 
     printf("| 取消        请按 0 |\n");
     printf("+--------------------+\n");
     printf("请输入您的选择:");
     scanf("%d", &c);
     switch(c) 
     {
case 0:break;
case 1:
printf("请输入学生的学号;");
scanf("%ld", &w);
printf("\n");
     for(i=0;i<n;i++)
      if(ke[i].num==w)
      {
        printf("\n课程编号\t课程名称\t成绩\t代课老师\n");
        printf("%ld\t%s\t%d\t%s\n",ke[i].num,ke[i].id,ke[i].cj,ke[i].name);
        j=1;
      }
      if(j==0)
      printf("提示:没有该课程成绩记录,请核对!");
      break;
case 2:
printf("请输入学生的姓名:");
scanf("%s", name);
printf("\n");
for(i=0;i<n;i++)
if(strcmp(name,stu[i].name)==0)
{
printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
j=1;
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
}
if(j==0)
printf("提示:没有该学生记录,请核对!");
break;
default:
printf("\n提示:无效选项!");
break;
}

}while(c!= 0);
}else printf("提示:无课程成绩数据,请输入数据!");
return;
}
void scs()\\在管理员界面实现删除功能
{
long int num;
int i,j,e; 
if(n!=0)
{
printf("课程编号\t课程名称\t课程成绩\t代课老师\n");
printf("-----------------------------------------------------\n");
for(i=0;i<n;i++)
printf("%ld\t%s\t%d\t%s\n",ke[i].num,ke[i].id,ke[i].cj,ke[i].name);
printf("请输入您要删除的课程的编号:");
scanf("%ld", &num);
printf("\n");
for(i=0;i<n;i++)
if(num==ke[i].num)
j=i;
if(j!=(n-1))
{
for(e=i-1;e<n;e++,j++)
{
ke[j].num=ke[j+1].num;
strcpy(ke[j].id,ke[j+1].id);
strcpy(ke[j].cj,ke[j+1].cj);
strcpy(ke[j].name,ke[j+1].name);
n--;a--;
}
}else {n--;a--;}
printf("提示:删除完毕!");
}else printf("提示:无学生数据,请输入数据!");
}
void xg()\\实现修改功能
{
long int num;
int i,j,c;
if(n!=0)
{
printf("请输入您要修改的学生的学号:");
scanf("%ld", &num);
printf("\n");
for(i=0;i<n;i++)
if(stu[i].num==num)
j=i;
do{
printf("请选择您要修改的学生的信息内容:\n");
printf("+----------------------+\n");
printf("| 姓名 请按 1 |\n");
printf("| 年龄 请按 2 |\n");
printf("| 性别 请按 3 |\n");
printf("| 学号 请按 4 |\n");
printf("| 地址 请按 5 |\n");
printf("| 电话 请按 6 |\n");
printf("| 取消 请按 0 |\n");
printf("+----------------------+\n");
printf("请输入您的选择:");
scanf("%d", &c);
printf("\n");
switch(c)
{
case 0:break;

case 1:printf("请输入新姓名:");
scanf("%s",stu[j].name);
break;
case 2:printf("请输入新年龄:");
scanf("%d",&stu[j].age);
break;
case 3:printf("请输入新性别:");
scanf("%s",stu[j].sex);
break;
case 4:printf("请输入新学号:");
scanf("%ld",&stu[j].num);
break;
case 5:printf("请输入新地址:");
scanf("%s",stu[j].b);
break;
case 6:printf("请输入新电话:");
scanf("%s",stu[j].p);
break;
default:
printf("\n无效选项!");
break;
}

}while(c!= 0);
}else printf("提示:无学生数据,请输入数据!");
}
void xgs()
{
long int num;
int i,j,c;
if(n!=0)
{
printf("请输入您要修改的课程的编号:");
scanf("%ld", &num);
printf("\n");
for(i=0;i<n;i++)
if(ke[i].num==num)
j=i;
do{
printf("请选择您要修改的课程成绩的信息内容:\n");
printf("+----------------------+\n");
printf("| 课程编号 请按 1 |\n");
printf("| 课程名   请按 2 |\n");
printf("| 成绩     请按 3 |\n");
printf("| 代课老师 请按 4 |\n");
printf("+----------------------+\n");
printf("请输入您的选择:");
scanf("%d", &c);
printf("\n");
switch(c)
{
case 0:break;

case 1:printf("请输入新课程编号:");
scanf("%ld",&ke[j].num);
break;
case 2:printf("请输入新课程名称:");
scanf("%s",ke[j].id);
break;
case 3:printf("请输入成绩:");
scanf("%d",&ke[j].cj);
break;
case 4:printf("请输入新代课老师:");
scanf("%s",ke[j].name);
break;
default:
printf("\n无效选项!");
break;
}

}while(c!= 0);
}else printf("提示:无课程成绩数据,请输入数据!");
}

其一道理也可以扭转理解,如若你发现你的程序额外达成了意义,但是你从未写过那样的代码,那么就可以推断:必定有人帮您写了附加的代码,这几个“人”可能是厂商已经写好的框架,可能是开发工具,它自动帮你写了一部分代码,也恐怕是其一顺序的上一任小编,他把代码写到了隐藏的地点。

记得曾经有一周每日都是夜间2:00才睡,固然并不到家可是当程序做出来的时候心里依旧很欢喜的,希望与大家共同努力!

总的说来,那时候你得宠信必定有代码存在哦。

说回上个例子,你就写了一个报表的界面,哎,发现照旧它“天生”可以排序,那自然是有人帮您写了附加的代码了,比如说苹果公司的Cocoa框架。

乍一听,有诸如此类的作业多好哎,不用自己工作,事情就和好成了,不用操心啊。可是一个好好的程序员不会对如此的事情甩手不理的,他必定要找出何人帮他写了附加的代码,至少要询问那几个代码的运作逻辑。他缘何要如此做啊?答案是:那个不领悟的代码很可能将来会出难点!

卓绝的程序员必须控制他所写的代码的上上下下细节,那样他才清楚她的先后在分歧境况下会有怎么又的显现,他才能预测她的次序的行为,会不会出标题。再说回排序的例子,当前您的报表是可以完结对数字进行排序,但怎么着用户在您的报表里面输入了数字和字符,那你的表格会怎么着排序呢?假若您不懂外人帮您写好的“排序”的代码,那么就是不通晓您的次第会做出什么作为,说不定它会弹出一个告警骂用户不用乱输入呢!

那几个视角,想想实在蛮好玩的,可以上涨到从事历史学的规模。

比方说这么个现象:某天,某一服务器暴发故障导致公司事情暂停,这时候IT老总怒火冲天的来了,对着服务器工程师劈头盖脸就骂:你干的善事?!我不管您用什么艺术,总而言之必须在中午前给我解决故障!!

这一场合看官有无经历过?其实用观看者的见解来看,那话妙就妙在:我随便你用怎么着艺术。

最妙的就是八个字:我随便

主任提出大方向,定好靶子,即“急速复苏故障”,然后就可以“不管”了,坐着等下部的人把工作成功,完结目的。一定程度上,那位官员也算做了领导者工作,灾害面前没有躲起来而是径直面对,而且做出了回应的步履。可是思想又好象哪儿不对。

自我就想起了No
Magic的管理学,事情要完毕,就必须有人付出劳动的,不是说您说了一句话,然后喝完咖啡之后,事情就会自行达成的。事情一定是出于某人付出了附加的分神而形成的。若是你随便她现实用了什么形式,那么可能就会埋下祸根。

话说这些服务器工程师也就是个临时工,他查阅了瞬间服务器,哎,原来是某一个卡出了难题啊,但是这一个服务器型号太老了,厂商已经远非附件换了,上头又逼得紧,那就上电脑城某某摊位买一张吧,反正我和档主也熟。这一个故障就那样应付过去吧,反正这家集团待遇也不是很好,下个月就跳槽罢。

882828九五至尊手机版,至于摊档买的那么些卡好倒霉用嘛,呃,我也不论了。

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图