C程序范例(1)——学生管理系统”数组“实现

1.在写程序之前,我想告诉大家,这个程序初学者很可能可能看不懂,但是这很正常,因为这是我在学习完C语言之后写的。所以大家好好学习吧!

由于这是在我大一刚学到数组时编写的程序,有许多冗余的部分,但当时做出来还是很高兴的。

#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才睡,虽然并不完善但是当程序做出来的时候心里还是很兴奋的,希望与大家共同努力!

转载于:https://www.cnblogs.com/yjds/p/5886474.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值