bspd15(教务系统功能升级及初学指针)

基于d14海峰教务系统升级1.0版本,增添了注册和登录两种功能,制作了注册和登录的初始界面,并与添加成绩、修改成绩等功能界面链接。

代码如下:

//海峰考务系统
//students[学生数量][2]    第一列保存学号,第二列保存成绩
#include<stdio.h> 


#define INCREASE_SCORE 1
#define SEARCH_ALL 2
#define SEARCH_SCORE 3
#define MAX_SCORE 4
#define MIN_SCORE 5
#define AVE_SCORE 6
#define MODIFY_SCORE 7
#define EXIT 8
#define ENROLL 9
#define LOGIN 10

//定义全局变量
int students[10][2]={0};
int index = 0; //表示当前学生个数
int account_max  = 10;//表示最大注册账户数量; 
int acc_passwd[10][2];
//打印系统菜单函数
int menu_0();
int menu();
void increase_score();
void print_score();
int search_score();
int  max_score();
int  min_score(); 
float ave_score();
int modify_score();
int exit();
int enroll();
int login();


int main()
{
    int option;
    char ch;
    while(1)
    {
        option=menu_0();
        switch(option)
        {
        case 1:
        enroll();
        break;
        case 2:
        login();
        break;
        default:
        printf("输入错误\n");
        break;
        }
        
    }
    
    
    while(1)
    {
    option=menu();
    switch(option)
    {
        case INCREASE_SCORE:
            increase_score();
            print_score();
            break;
        case SEARCH_ALL:
            print_score();
            break;
        case SEARCH_SCORE:
            search_score();
            
            break;
        case MAX_SCORE:
        max_score();
            break;
        case MIN_SCORE:
        min_score();
            break;
        case AVE_SCORE:
        ave_score();
            break;
        case MODIFY_SCORE:
        modify_score();
            break;
        case EXIT:
        
            break;
        default:
            printf("输入错误\n");
            break;
    }
    printf("是否继续?(y/n):");
    getchar();
    scanf("%c",&ch) ;
    if(ch=='y')
    {
        continue;
    }
    else
    {
        printf("感谢使用,再见"); 
        break;
    }
}
return 0;
    
}
int menu_0()
{
    int option;
    printf("*************************************************\n");
    printf("              1.注册\n");
    printf("              2.登录\n");
    printf("*************************************************\n");
    printf("请选择:");
    scanf("%d",&option); 
    return option;
 } 

int menu()
{
    int option;
    printf("************欢迎进入海峰考务系统****************\n");
    printf("              1.添加学生成绩\n");
    printf("              2.查看所有学生成绩\n");
    printf("              3.根据学号查看成绩\n");
    printf("              4.查看成绩最高分和学号\n");
    printf("              5.查看成绩最低分和学号\n");
    printf("              6.查看成绩平均分\n");
    printf("              7.根据学号修改成绩\n");
    printf("              8.退出\n");
    printf("              9.注册\n");
    printf("              10.登录\n");
    printf("*************************************************\n");
    printf("请选择:");
    scanf("%d",&option); 
    return option;
 } 

 void increase_score()
 {
     long long id;
     int score;
     printf("请输入学生的学号:");
     scanf("%d",&id); 
     printf("请输入学生的成绩:");
     scanf("%d",&score); 
     if(index>10)
     {
         printf("数组已满"); 
    }
    else
    {
        students[index][0]=id;
        students[index][1]=score;
        index++;
        printf("添加成功\n"); 
    }
 }
 
 
 void print_score()
 {
     int i;
     for(i=0;i<index;i++)
     {
         printf("学生的学号:%d,学生的成绩%d\n",students[i][0],students[i][1]);
     }
 }
 
 
int search_score()
{
     int i;
     long long id;
     printf("请输入学号:");
     scanf("%d",&id) ;
    for(i=0;i<index;i++)
    if(students[i][0]==id)
    {
        printf("查找到了\n"); 
        printf("该学号的学生成绩是%d",students[i][1]);
    }
    else
    {
    
        continue; 
        printf("找不到");
    }
    
}


int  max_score()
{
    int i;
     int id;
     int max_score=students[0][1];
    for(i=0;i<index;i++)
    {
    if(max_score<students[i][1])
    {
        max_score=students[i][1];
        id = i;
        
    }
    }
    printf("成绩最高的学生是%d\n",max_score);
    printf("成绩最高的学生学号是%d\n",students[id][0]);
    
    
}

int  min_score()
{
    int i;
     int id;
     int min_score=students[0][1];
    for(i=0;i<index;i++)
    {
    if(min_score>students[i][1])
    {
        min_score=students[i][1];
        id=i;
        
    }
    
    
}
    printf("成绩最低的学生是%d\n",min_score);
    printf("成绩最低的学生学号是%d\n",students[id][0]);
}

float ave_score()
{
     int i;
     float sum =0;
    for(i=0;i<index;i++)
    {
        sum=students[i][1]+sum;
    }
    printf("平均值为%.1f",sum/index);
}
int modify_score()
{
     int i;
     long long id;
     int new_score;
    printf("请输入学号:");
     scanf("%d",&id) ;
     printf("请输入修改的成绩:");
     scanf("%d",&new_score) ;
    for(i=0;i<index;i++)
    {
    if(students[i][0]==id)
    {
        students[i][1]=new_score;
        return 0;
    }
    else
    {
        continue; 
    }        
    }
    printf("未找到该学号\n");
    return -1;
}
int  exit()
{
    return 0;
}
int enroll()
{
    long long user;
    long long passwd;
    printf("请输入注册名:");
    scanf("%d",&user);
    printf("请输入密码:");
    scanf("%d",&passwd); 
        if(index>10)
     {
         printf("注册最大人数超限"); 
    }
    else
    {
        acc_passwd[index][0]=user;
        acc_passwd[index][1]=passwd;
        index++;
        printf("success\n"); 
    }
return 0;
 }
int login()
{
    int i;
    long long user;
    long long passwd;
    printf("请输入账号:");
    scanf("%d",&user);
    printf("请输入密码:");
    scanf("%d",&passwd);
    for(i=0;i<account_max;i++)
    {
        if(acc_passwd[i][0]==user&&acc_passwd[i][1]==passwd)
        {
        
            printf("登陆成功");
            return  0;
        }
        else
        {
            continue; 
        }
        printf("账号或者密码不对");
     } 
     
     return 0; 
}

·指针

每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址。

指针也就是内存地址,指针变量是用来存放内存地址的变量。就像其他变量或常量一样,必须在使用指针存储其他变量地址之前,对其进行声明。

使用指针时会频繁进行以下几个操作:定义一个指针变量、把变量地址赋值给指针、访问指针变量中可用地址的值。这些是通过使用一元运算符 * 来返回位于操作数所指定地址的变量的值。

程序->使用指针寻找数组中的最大元素和最小元素

#define N 10
void max_min(int a[],int n,int *max,int *min);

int main(void)
{
    int b[N],i,big,small;
    
    
    printf("Enter %d numbers:",N);
    for(i=0;i<N;i++)
    {
        scanf("%d",&b[i]);    
    } 
    max_min(b,N,&big,&small);
    
    printf("Largest:%d\n",big);
    printf("Smallest:%d\n",small);
    
    return 0;
}

void max_min(int a[],int n,int *max,int *min)
{
    int i;
    
    *max = *min =a[0];
    for(i=1;i<n;i++)
    {
        if(a[i]>*max)
        {
            *max = a[i];
        }
        else if(a[i]<*min)
        {
            *min = a[i];
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值