澳门新葡亰信誉平台游戏学生管理系统的几种实现方法(一位数组,二维数组,指针,结构体),二维结构体指针

by admin on 2020年1月22日

#include “stdio.h”
#include “conio.h”
#include “math.h”

学生管理系统的几种实现方法(一位数组,二维数组,指针,结构体),二维结构体指针

一位数组:

#include <stdio.h>
#include<string.h>
#define N 5
void luru(float s[],int n);
void shuchu(float s[],int n);
void chaxun(float s[],int n);
void paixu(float a[],int n);
int mimayanzheng();
void caidan();

 

 

void main(){
    int x,y,k;
    float a[N];
    x=mimayanzheng();
    if(x==1){
        caidan();
        for(k=0;k!=5;k=y){
            printf(“请输入选择:”);
            scanf(“%d”,&y);
            switch(y){
                case 1 :luru(a,N);break;
                case 2 :shuchu(a,N);break;
                case 3 :chaxun(a,N);break;
                case 4 :paixu(a,N);break;
                case 5 :break;
            }
        }
    }

   

}
int mimayanzheng(){
    int i,flat;
    char m[7]=”abc123″,x[10];
    printf(“请输入密码:”);
    for(i=0;i<3;i++){
        flat=0;
        scanf(“%s”,&x);
        if(!strcmp(m,x)){
            flat=1;
            break;
        }
        else if(i<2)
            printf(“请重新输入密码:”);
    }
    return flat;
}

void caidan(){
    printf(“+===============================+n”);
    printf(“+====学=生=成=绩=管=理=系=统====+n”);
    printf(“+===============================+n”);
    printf(“+===========1、  录入===========+n”);
    printf(“+===========2、  输出===========+n”);
    printf(“+===========3、  查询===========+n”);
    printf(“+===========4、  排序===========+n”);
    printf(“+===========5、  退出===========+n”);
    printf(“+===============================+n”);
}

void luru(float s[],int n){
    int i;
    for(i=0;i<n;i++){
        printf(“请输入第%d个同学的成绩:”,i+1);
        scanf(“%f”,&s[i]);
    }
}

void shuchu(float s[],int n){
    int i;
    for(i=0;i<n;i++)
    printf(“第%d个的同学成绩是:%f n”,i+1,s[i]);
}

void chaxun(float s[],int n){
    int i,flat;
    float x;
    printf(“请输入要查询的成绩:”);
    scanf(“%f”,&x);
    for(i=0,flat=0;i<n;i++)
        if(x==s[i])
            flat =1;
    if(flat==1)
        for(i=0;i<N;i++){
            if(s[i]==x)
                printf(“有此同学成绩,为第%d个同学的成绩n”,i+1);
            continue;
        }
    else
        printf(“没有此同学成绩n”);
}

void paixu(float a[],int n){
    int i,j,k;
    float temp;
    for(j=0;j<n-1;j++){
        k=j;
        for(i=j+1;i<n;i++)
            if(a[i]<a[k])
                k=i;
            if(k!=j){
            temp=a[k];
            a[k]=a[j];
            a[j]=temp;
            }
    }
    printf(“从小到大的排序是:”);
    for(i=0;i<N;i++)
        printf(“%f “,a[i]);
    printf(“n”);
}
 
 
 
 
 
二维数组:

#include <stdio.h>
#include<string.h>
#define a 2
#define b 3

void luru(float s[][b]);
void shuchu(float s[][b]);
void chaxun(float s[][b]);
void paixu(float m[][b]);
int mimayanzheng();
void caidan();

 

 

void main(){
    int x,y,k;
    float z[a][b];
    x=mimayanzheng();
    if(x==1){
        caidan();
        for(k=0;k!=5;k=y){
            printf(“请输入选择:”);
            scanf(“%d”,&y);
            switch(y){
                case 1 :luru(z);break;
                case 2 :shuchu(z);break;
                case 3 :chaxun(z);break;
                case 4 :paixu(z);break;
                case 5 :break;
            }
        }
    }

   

}
int mimayanzheng(){
    int i,flat;
    char m[7]=”abc123″,x[10];
    printf(“请输入密码:”);
    for(i=0;i<3;i++){
        flat=0;
        scanf(“%s”,&x);
        if(!strcmp(m,x)){
            flat=1;
            break;
        }
        else if(i<2)
            printf(“请重新输入密码:”);
    }
    return flat;
}

void caidan(){
    printf(“+===============================+n”);
    printf(“+====学=生=成=绩=管=理=系=统====+n”);
    printf(“+===============================+n”);
    printf(“+===========1、  录入===========+n”);
    printf(“+===========2、  输出===========+n”);
    printf(“+===========3、  查询===========+n”);
    printf(“+===========4、  排序===========+n”);
    printf(“+===========5、  退出===========+n”);
    printf(“+===============================+n”);
}

void luru(float s[a][b]){
    int i,j;
    for(j=0;j<a;j++){
        for(i=0;i<b;i++){
            printf(“请输入第%d个同学的第%d科成绩:”,j+1,i+1);
            scanf(“%f”,&s[j][i]);
        }
    }
}

void shuchu(float s[a][b]){
    int i,j;
    for(j=0;j<a;j++){
        for(i=0;i<b;i++){
           
printf(“第%d个同学的第%d科成绩是%f:n”,j+1,i+1,s[j][i]);
        }
    }
}

void chaxun(float s[a][b]){
    int i,j,flat;
    float x;
    printf(“请输入要查询的成绩:”);
    scanf(“%f”,&x);
    for(j=0;j<a;j++){
        for(i=0,flat=0;i<b;i++)
            if(x==s[j][i])
                flat =1;
    if(flat==1){
        for(j=0;j<a;j++){
            for(i=0;i<b;i++){
                if(s[j][i]==x)
                   
printf(“有此同学成绩,为第%d个同学的第%d科成绩n”,j+1,i+1);
            continue;
        }
        }
    }
    else
        printf(“没有此同学成绩n”);
    }
}

void paixu(float m[a][b]){
    int i,j,k,p;
    float temp;
    for(p=0;p<a;p++){
            for(j=0;j<b-1;j++){
                k=j;
                for(i=j+1;i<b;i++)
                    if(m[p][i]<m[p][k])
                        k=i;
                    if(k!=j){
                        temp=m[p][k];
                        m[p][k]=m[p][j];
                        m[p][j]=temp;
                    }
            }
    }
    printf(“从小到大的排序是:n”);
    for(j=0;j<a;j++){
        for(i=0;i<b;i++)
            printf(“%f “,m[j][i]);
        printf(“n”);
    }
    printf(“n”);
}
 

 

 

指针:

#include <stdio.h>
#include<string.h>
#define N 5
void luru(double *s,int n);
void shuchu(double *s,int n);
void chaxun(double *s,int n);
void paixu(double *a,int n);
int mimayanzheng();
void caidan();

 

 

void main(){
    int x,y,k;
    double b[N];
    double *a;
    a=b;
    x=mimayanzheng();
    if(x==1){
        caidan();
        for(k=0;k!=5;k=y){
            printf(“请输入选择:”);
            scanf(“%d”,&y);
            switch(y){
                case 1 :luru(a,N);break;
                case 2 :shuchu(a,N);break;
                case 3 :chaxun(a,N);break;
                case 4 :paixu(a,N);break;
                case 5 :break;
            }
        }
    }

   

}
int mimayanzheng(){
    int i,flat;
    char m[7]=”abc123″,x[10];
    printf(“请输入密码:”);
    for(i=0;i<3;i++){
        flat=0;
        scanf(“%s”,&x);
        if(!strcmp(m,x)){
            flat=1;
            break;
        }
        else if(i<2)
            printf(“请重新输入密码:”);
    }
    return flat;
}

void caidan(){
    printf(“+===============================+n”);
    printf(“+====学=生=成=绩=管=理=系=统====+n”);
    printf(“+===============================+n”);
    printf(“+===========1、  录入===========+n”);
    printf(“+===========2、  输出===========+n”);
    printf(“+===========3、  查询===========+n”);
    printf(“+===========4、  排序===========+n”);
    printf(“+===========5、  退出===========+n”);
    printf(“+===============================+n”);
}

void luru(double * s,int n){
    int i;
    double k;
    for(i=0;i<n;i++){
        printf(“请输入第%d个同学的成绩:”,i+1);
        scanf(“%lf”,&k);
        * (s+i)=k;
    }
}

void shuchu(double *s,int n){
    int i;
    for(i=0;i<n;i++)
    printf(“第%d个的同学成绩是:%lf n”,i+1,*(s+i));
}

void chaxun(double *s,int n){
    int i,flat;
    double x;
    printf(“请输入要查询的成绩:”);
    scanf(“%f”,&x);
    for(i=0,flat=0;i<n;i++)
        if(x==*(s+i))
            flat =1;
    if(flat==1)
        for(i=0;i<n;i++){
            if(*(s+i)==x)
                printf(“有此同学成绩,为第%d个同学的成绩n”,i+1);
            continue;
        }
    else
        printf(“没有此同学成绩n”);
}

void paixu(double *a,int n){
    int i,j,k;
    double temp;
    for(j=0;j<n-1;j++){
        k=j;
        for(i=j+1;i<n;i++)
            if(*(a+i)<*(a+k))
                k=i;
            if(k!=j){
            temp=*(a+k);
            *(a+k)=*(a+j);
            *(a+j)=temp;
            }
    }
    printf(“从小到大的排序是:”);
    for(i=0;i<N;i++)
        printf(“%f “,*(a+i));
    printf(“n”);
}
 
 
 
 
 
 
 
 
 
 
结构体:

#include <stdio.h>
#include<string.h>
#define N 5
void luru(struct xitong student[],int n);
void shuchu(struct xitong student[],int n);
void chaxun(struct xitong student[],int n);
void paixu(struct xitong student[],int n);
int mimayanzheng();
void caidan();
struct xitong{
    char xingming[10];
    int xuehao;
    float yuwen;
    float shuxue;
    float yingyu;
};

 

 

void main(){
    int x,y,k;
    struct xitong student [N];
    x=mimayanzheng();
    if(x==1){
        caidan();
        for(k=0;k!=5;k=y){
            printf(“请输入选择:”);
            scanf(“%d”,&y);
            switch(y){
                case 1 :luru(student,N);break;
                case 2 :shuchu(student,N);break;
                case 3 :chaxun(student,N);break;
                //case 4 :paixu(student,N);break;
                case 5 :break;
            }
        }
    }

   

}
int mimayanzheng(){
    int i,flat;
    char m[7]=”abc123″,x[10];
    printf(“请输入密码:”);
    for(i=0;i<3;i++){
        flat=0;
        scanf(“%s”,&x);
        if(!strcmp(m,x)){
            flat=1;
            break;
        }
        else if(i<2)
            printf(“请重新输入密码:”);
    }
    return flat;
}

void caidan(){
    printf(“+===============================+n”);
    printf(“+====学=生=成=绩=管=理=系=统====+n”);
    printf(“+===============================+n”);
    printf(“+===========1、  录入===========+n”);
    printf(“+===========2、  输出===========+n”);
    printf(“+===========3、  查询===========+n”);
    printf(“+===========4、  排序===========+n”);
    printf(“+===========5、  退出===========+n”);
    printf(“+===============================+n”);
}

void luru(struct xitong student[],int n){
    int i;
    for(i=0;i<n;i++){
       
printf(“请输入第%d个同学的信息(姓名,学号,语文,数学,英语):”,i+1);
        scanf(“%s %d %f %f
%f”,&student[i].xingming,&student[i].xuehao,&student[i].yuwen,&student[i].shuxue,&student[i].yingyu);
    }
}

void shuchu(struct xitong student[],int n){
    int i;
    for(i=0;i<n;i++)
    printf(“第%d个的同学信息是:
n姓名:%sn学号:%dn语文:%fn数学:%fn英语:%fn”,i+1,student[i].xingming,student[i].xuehao,student[i].yuwen,student[i].shuxue,student[i].yingyu);
}

void chaxun(struct xitong student[],int n){
    int i,flat;
    float x;
    printf(“请输入要查询的成绩:”);
    scanf(“%f”,&x);
    for(i=0,flat=0;i<n;i++)
       
if(x==student[i].yuwen||x==student[i].shuxue||x==student[i].yingyu)
            flat =1;
    if(flat==1)
        for(i=0;i<N;i++){
           
if(x==student[i].yuwen||x==student[i].shuxue||x==student[i].yingyu)
               
printf(“有此同学成绩,为%s同学的成绩n”,student[i].xingming);
            continue;
        }
    else
        printf(“没有此同学成绩n”);
}

一位数组: #include stdio.h #includestring.h #define N 5…

C语言 访问位置冲突 冒泡排序
程序运行到冒泡排序法的地方总是会出现访问冲突
#include
#include
#include
#include
#include
#define n 2//学校数目
#define m 2//男子项目数目
#define w 2//女子项目数目
#define null 0

main()
{
    float i,k,m,result;
    int j;
    printf(“hellon”);
   
printf(“====================================================================n”)
;
    do{printf(“ttCHOOES
ONE:ntt1:jiafanntt2.jianfanntt3.chengfanntt4.chufanntt5.kaigenhaonntt6.zhizuorenn”);
   
printf(“====================================================================n”);
    printf(“thank youn”);
    scanf(“%d”,&j);
    printf(“choose  one %dn”,j);/*选一个不是选一*/
         switch(j)
    {
     case 1 :
    
printf(“===================================================================n”);
     printf(“ttinput i and k:tt”);
     scanf(“%f %f”,&i,&k);
     printf(“%f+%f=%fn”,i,k,i+k);break;
     case 2:
    
printf(“===================================================================n”);
     printf(“ttinput i and k:tt”);
     scanf(“%f %f”,&i,&k);
     printf(“%f-%f=%fn”,i,k,i-k);break;
     case 3:
    
printf(“===================================================================n”);
     printf(“ttinput i and k:tt”);
     scanf(“%f %f”,&i,&k);
     printf(“%f*%f=%fn”,i,k,i*k);break;
     case 4:
    
printf(“===================================================================n”);
     printf(“ttinput i and k:tt”);
     if(“k==0”)
     scanf(“%f %f”,&i,&k);
     printf(“%f/%f=%fn”,i,k,i/k);break;
     case 5:
    
printf(“===================================================================n”);
     printf(“nttkai gen hao yun suanttn”);
        printf(“ttinput a:tt”);
       scanf(“%f”,&m);
       result = sqrt(m);
      printf(“ttThe square root of %lf is
%lfttn”,i,result);break;
     case 6:
    
printf(“===================================================================n”);
     printf(“write by lee yaon”);
    
printf(“===================================================================n”);
   }
    }while(j<7);
   
printf(“===================================================================n”);
     printf(“see you latern”);

typedef struct
{
int itemnum; //项目编号
int num; //取名次的数目
int range[5]; //名次
int mark[5]; //分数
}item; //定义项目结点的类型

    getch();
}

typedef struct
{
int schoolnum; //学校编号
int score; //学校总分
int mscore; //男团体总分
int wscore; //女团体总分
item c[m+w]; //项目数组
}school;

school h[n];

void inputinformation() //输入信息,建立系统
{
int i,j,k,s;
for(i=0;i<n;i++)
{
h[i].score=0;
h[i].mscore=0;
h[i].wscore=0;
} //初始化头结点
for(i=0;i<n;i++)
{
printf(“*****学校编号:”);
scanf_s(“%d”,&h[i].schoolnum); //输入头结点信息
for(j=0;j<m+w;j++)
{

printf(“*****项目编号:”);
scanf_s(“%d”,&h[i].c[j].itemnum);
printf(“*****取前名or前名:”);
scanf_s(“%d”,&h[i].c[j].num);
printf(“*****获得几个名次:”);
scanf_s(“%d”,&k); //输入项目信息
for(s=0;s<5;s++)
h[i].c[j].range[s]=0, h[i].c[j].mark[s]=0;
//初始化排名和分数
for(s=0;s<k;s++)
{

printf(“*****名次:”);
scanf_s(“%d”,&h[i].c[j].range[s]); //输入所获名次信息
if(h[i].c[j].num==3)
switch(h[i].c[j].range[s])
{
case 0: h[i].c[j].mark[s]=0; break;
case 1: h[i].c[j].mark[s]=5; break;
case 2: h[i].c[j].mark[s]=3; break;
case 3: h[i].c[j].mark[s]=2; break;
}
else
switch(h[i].c[j].range[s])
{
case 0: h[i].c[j].mark[s]=0; break;
case 1: h[i].c[j].mark[s]=7; break;
case 2: h[i].c[j].mark[s]=5; break;
case 3: h[i].c[j].mark[s]=3; break;
case 4: h[i].c[j].mark[s]=2; break;
case 5: h[i].c[j].mark[s]=1; break;
}

 h[i].score=h[i].score+h[i].c[j].mark[s];

//按取前三名还是取前五名分别记分
if(j<=m-1)
h[i].mscore=h[i].mscore+h[i].c[j].mark[s];
//是男子项目则记到男子分数里面去
else
h[i].wscore=h[i].wscore+h[i].c[j].mark[s];
//是女子项目则记到女子项目里面去
}
printf;
}
}
}

void output() //输出函数
{
int b;
int remember[5];
int i,j,k;
int a;
do
{
printf(“*******************1.按学校编号输出.*******************n”);
printf(“*******************2.按学校总分输出.*******************n”);
printf(“*******************3.按男团总分输出.*******************n”);
printf(“*******************4.按女团总分输出.*******************n”);
printf(“nn*******************
请选择编号*************************nn:”);
scanf_s(“%d”,&b);
switch
{
case 1:
for(i=0;i<n;i++)
{
printf(“nn*****学校编号:%dn”,h[i].schoolnum);
printf(“*****学校总分:%dn” ,h[i].score);
printf(“*****男团总分:%dn”,h[i].mscore);
printf(“*****女团总分: %dnnn”,h[i].wscore);
} //按编号顺序输出
break;

 case 2: for(i=0;i<n;i++) remember[i]=i; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) if(h[remember[i]].score<h[j].score) k=remember[i];

remember[i]=remember[j];
remember[j]=k;

 } // 用冒泡排序方法,用辅助数组记住头结点下标 for(i=0;i<n;i++) { printf("nn*****学校编号:%dn",h[remember[i]].schoolnum); printf("*****学校总分:%dn" ,h[remember[i]].score); printf("*****男团总分:%dn",h[remember[i]].mscore); printf("*****女团总分: %dnnn",h[remember[i]].wscore);

//按所记下标顺序输出
} //按学校总分输出
break;

 case 3: for(i=0;i<n;i++) remember[i]=i; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) if(h[remember[i]].score<h[j].score) k=remember[i]; remember[i]=remember[j]; remember[j]=k; } for(i=0;i<n;i++) { printf("nn*****学校编号:%dn",h[remember[i]].schoolnum); printf("*****学校总分:%dn" ,h[remember[i]].score); printf("*****男团总分:%dn",h[remember[i]].mscore); printf("*****女团总分: %dnnn",h[remember[i]].wscore); } //按男团总分输出 break; case 4: for(i=0;i<n;i++) remember[i]=i; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) if(h[remember[i]].score<h[j].score) k=remember[i]; remember[i]=remember[j]; remember[j]=k; } for(i=0;i<n;i++) { printf("nn*****学校编号:%dn",h[remember[i]].schoolnum); printf("*****学校总分:%dn" ,h[remember[i]].score); printf("*****男团总分:%dn",h[remember[i]].mscore); printf("*****女团总分: %dnnn",h[remember[i]].wscore); } break; //按女团总分输出 } printf("请选择2 继续,0 跳出n"); scanf_s("%d",&a);}while; //循环执行输出语句

}

void refer() //查询函数
{

int a,i,j,k,s;printf("n*****1:按学校编号查询n");printf("n*****2:按项目编号查询n");printf("nn*****请选择查询方式:"); //提供两种查询方式scanf_s("%d",&a);switch{ case 1: do { printf("要查询的学校编号:"); scanf_s("%d",&i); if printf("错误:这个学校没有参加此次运动会!nnn"); else { printf("要查询的项目编号:"); scanf_s("%d",&j); if(j>m+w||j==0) printf("此次运动会没有这个项目nnn");

//学校编号超出范围,则输出警告
else
{

printf(“这个项目取前%d名,该学校的成绩如下:n”, h[0].c[j-1].num);
for(k=0;k<5;k++)
if(h[i-1].c[j-1].range[k]!=0)
printf(“名次:%dn”,h[i-1].c[j-1].range[k]);
//输出要查询学校项目的成绩
}
}
printf(“请选择继续, 0 跳出n”);
scanf_s(“%d”,&s);
printf;
}while; //循环执行输出语句
break;

case 2: do { printf("要查询的项目编号:"); scanf_s("%d",&s); if(s>m+w||s==0) printf("此次运动会不包括这个项目.nnn");

//项目编号超出范围则输出警告
else
{
printf(“该项目取前%d名,取得名次的学校n”,h[0].c[s-1].num);
for(i=0; i<n;i++)
for(j=0;j<5;j++)
if(h[i].c[s-1].range[j]!=0)
printf(“学校编号:%d,名次:%dn”,h[i].schoolnum,
h[i].c[s-1].range[j]);
} //输出该项目取得名次学校的成绩
printf(“nnn继续,跳出n”);
scanf_s(“%d”,&i);
printf;

 }while; break;

}
}

int main()
{
int i;
printf(“======================欢迎使用======================n”);

printf(“nn*****************运动会分数统计系统********************n”);
printf(“nn********************1.输入信息*************************n”);
printf(“********************2.输出信息*************************n”);
printf(“********************3.查询信息*************************n”);
printf(“********************4.退出系统*************************n”);
printf(“================================================nn”);
printf(“********请选择要实现步骤的编号:nn”);
scanf_s(“%d”,&i);
switch
{
case 1:
inputinformation;
case 2:
output;
case 3:
refer;
case 4:
printf;
}
return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图