1-30作业

1、利用结构体与共用体,做一个学生、教师信息管理系统

(1)1_stu_teacher_func.h

 #ifndef __FUNC_H__                                      
 #define __FUNC_H__                                      
                                                         
 typedef union                                           
 {                                                       
     float score;                                        
     float jixiao;                                       
 }Test;                                                  
 typedef struct school                                   
 {                                                       
     int id;                                             
     char name[10];                                      
     Test t;                                             
     int flage;                                          
 }stuAtec;                                               
 void insert_stuMsg(stuAtec* pst,int *pnum);             
 void insert_tecMsg(stuAtec* pte,int *pnum);             
 void show_stuMsg(stuAtec* pst,int num);                 
 void show_tecMsg(stuAtec* pte,int num);                 
 void select_Msg(stuAtec* pa,int num);                   
                                                         
 #endif                                                  

(2)1_stu_teacher_func.c

#include <stdio.h>                                        
#include "./1_stu_teacher_func.h"                         
void insert_stuMsg(stuAtec* pst,int *pnum)                
{                                                         
    printf("请输入学生id>>>");                            
    scanf("%d",&((pst+*pnum)->id));                       
    getchar();                                            
    printf("请输入学生姓名>>>");                          
    scanf("%s",((pst+*pnum))->name);                      
    getchar();                                            
    printf("请输入学生成绩>>>");                          
    scanf("%f",&(pst[*pnum].t.score));                    
    getchar();                                            
    printf("请输入学生的标签>>>");                        
    scanf("%d",&((pst+*pnum)->flage));                    
    getchar();                                            
                                                          
                                                          
    (*pnum)++;                                            
    return;                                               
                                                          
}                                                         
                                                          
void insert_tecMsg(stuAtec* pte,int *pnum)                
{                                                         
                                                          
    printf("请输入老师id>>>");                            
    scanf("%d",&((pte+*pnum)->id));                       
    getchar();                                            
    printf("请输入老师姓名>>>");                          
    scanf("%s",((pte+*pnum))->name);                      
    getchar();                                            
    printf("请输入老师绩效>>>");                          
    scanf("%f",&(pte[*pnum].t.jixiao));                   
    getchar();                                            
    printf("请输入老师的标签>>>");                        
    scanf("%d",&((pte+*pnum)->flage));                    
    getchar();                                                                             
                                                                                           
    (*pnum)++;                                                                             
                                                                                           
    return;                                                                                
}                                                                                          
                                                                                           
void show_stuMsg(stuAtec* pst,int num)                                                     
{                                                                                          
    int i;                                                                                 
    int count1=0;                                                                          
    for(i=0;i<num;i++)                                                                     
    {                                                                                      
        if(pst[i].flage==0)                                                                
        {                                                                                  
            printf("%d %s %g %d\n",pst[i].id,pst[i].name,pst[i].t.score,pst[i].flage);     
            ++count1;                                                                      
        }                                                                                  
    }                                                                                      
    printf("总记录数为:%d\n",count1);                                                      
}                                                                                          
                                                                                           
void show_tecMsg(stuAtec* pte,int num)                                                   
{                                                                                        
    int i;                                                                               
    int count2=0;                                                                        
    for(i=0;i<num;i++)                                                                   
    {                                                                                    
        if(pte[i].flage==1)                                                              
        {                                                                                
            printf("%d %s %g %d\n",pte[i].id,pte[i].name,pte[i].t.jixiao,pte[i].flage);  
            ++count2;                                                                    
                                                                                         
        }                                                                                
    }                                                                                    
    printf("总记录数为:%d\n",count2);                                                    
                                                                                         
}                                                                                        

void select_Msg(stuAtec *pa,int num)                                                       
{                                                                                          
    int i,flage,id;                                                                        
    printf("请输入要查找的数据标志(老师为1,学生为0)>>>");                                 
    scanf("%d",&flage);                                                                    
    getchar();                                                                             
    printf("请输入要查找信息的id>>>>");                                                    
    scanf("%d",&id);                                                                       
    getchar();                                                                             
    for(i=0;i<num;i++)                                                                     
    {                                                                                      
        if(flage==pa[i].flage && id==pa[i].id)                                             
        {                                                                                  
            if(flage==0)                                                                   
            {                                                                              
                printf("此信息是学生信息\n");                                              
                printf("%d %s %g %d\n",pa[i].id,pa[i].name,pa[i].t.score,pa[i].flage);     
                                                                                           
            }                                                                              
            else if(flage==1)                                                              
            {                                                                              
                printf("此信息是老师信息\n");                                              
                printf("%d %s %g %d\n",pa[i].id,pa[i].name,pa[i].t.jixiao,pa[i].flage);    
            }                                                                              
            else                                                                           
            {                                                                              
                printf("查无此信息\n");                                                    
            }                                                                              
                                                                                           
        }                                                                                  
    }                                                                                      
}                                                                                          
                                                                                           
                                                                                           

(3)schoolmsg.c

#include <stdio.h>                                                           
#include "./1_stu_teacher_func.h"                                            
#define N 100                                                                
                                                                             
int main(int argc, const char *argv[])                                       
{                                                                            
    stuAtec st[N];                                                           
    int num=0;//学生和老师信息个数                                           
    int choose;                                                              
    while(1)                                                                 
    {                                                                        
        printf("-------------------1.插入学生信息---------------------\n");  
        printf("-------------------2.插入教师信息---------------------\n");  
        printf("-------------------3.遍历学生信息---------------------\n");  
        printf("-------------------4.遍历学生信息---------------------\n");  
        printf("-------------------5.查找信息---------------------\n");      
        printf("-------------------6.修改信息---------------------\n");      
        printf("-------------------7.退出---------------------\n");          
        printf("请选择要执行的业务:");                                       
        scanf("%d",&choose);                                                 
        getchar();                                                           
        switch(choose)                                               
        {                                                            
                                                                     
            case 1:                                                  
                insert_stuMsg(st,&num);                              
                printf("num=%d__%d__\n",num,__LINE__);               
                break;                                               
            case 2:                                                  
                insert_tecMsg(st,&num);                              
                break;                                               
            case 3:                                                  
                show_stuMsg(st,num);                                 
                break;                                               
            case 4:                                                  
                show_tecMsg(st,num);                                 
                break;                                               
            case 5:                                                  
                select_Msg(st,num);                                  
                break;                                               
            case 6:                                                  
                update_Msg(st,num);                                  
            case 7:                                                  
                goto END;                                            
            defulat:                                                 
                printf("输入错误!\n");                              
        }                                                            
                                                                     
    }                                                                
                                                                     
END:                                                                 
    return 0;                                                        
}                                                                    

(4)运行结果

ubuntu@ubuntu:1_30_test$ gcc schoolmsg.c 1_stu_teacher_func.c
ubuntu@ubuntu:1_30_test$ ./a.out
-------------------1.插入学生信息---------------------
-------------------2.插入教师信息---------------------
-------------------3.遍历学生信息---------------------
-------------------4.遍历学生信息---------------------
-------------------5.查找信息---------------------
-------------------6.修改信息---------------------
-------------------7.退出---------------------
请选择要执行的业务:1
请输入学生id>>>1
请输入学生姓名>>>dd
请输入学生成绩>>>55
请输入学生的标签>>>0
num=1__27__
-------------------1.插入学生信息---------------------
-------------------2.插入教师信息---------------------
-------------------3.遍历学生信息---------------------
-------------------4.遍历学生信息---------------------
-------------------5.查找信息---------------------
-------------------6.修改信息---------------------
-------------------7.退出---------------------
请选择要执行的业务:5
请输入要查找的数据标志(老师为1,学生为0)>>>0
1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值