前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【学生管理系统C语言】没有用数据库,正在学习C语言的看看吧

【学生管理系统C语言】没有用数据库,正在学习C语言的看看吧

作者头像
赵腰静
发布2018-03-09 13:43:53
1.7K0
发布2018-03-09 13:43:53
举报
文章被收录于专栏:程序猿程序猿

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<math.h>

# define SIZE1 33

# define SIZE2 7

# define PI 3.14159

struct student_grade //学生成绩

{

intnum; //学号

charname[10]; //姓名

floatgrd[7]; //成绩

floatave; //加权平均分

intmc; //名次

}gd[SIZE1],k; //结构体数组长度为全班人数

struct student_info //学生信息

{

intnum; //学号

charname[10]; //姓名

charsex[4]; //性别

intage; //年龄

charduty[10]; //职务

}info[SIZE1],l;

struct credits //课程学分

{

intnum; //编号

charsbj[10]; //课程名称

floatpnt; //学分

}pts[SIZE2];

int main()

{

intsection1();

intsection3();

char ch1;

do{

printf("\n\n\n\n\n\n\n\n\n");

printf(" ************** C语言程序设计上机实习****************\n");

printf(" ---------------------------------------------------------------------------\n\n");

printf(" 1 学生成绩管理\n\n");

printf(" 2 破译密码\n\n");

printf(" 3 显示心形\n\n");

printf(" 4 退 出\n\n");

printf(" 输入选择序号\n");

while((ch1=getchar(),ch1!='1'&&ch1!='2'&&ch1!='3'&&ch1!='4'));

switch(ch1)

{

case'1':section1(); break;

case'3':section3(); break;

case'4':return(0);

}

}while(1);

}

int section1()

{

void function1_1();

void function1_2();

void function1_3();

void function1_4();

void function1_5();

void function1_6();

void function1_7(); /*第1个2级菜单*/

char ch21;

do{

system("cls"); /*清屏*/

printf("\n\n\n\n\n\n\n\n\n\n");

printf(" *********************学 生 成 绩 管 理 系 统**********************\n");

printf(" ------------------------------------------------------------------------\n\n");

printf(" 1. 读入原始数据并显示 2. 计算平均分及名次\n\n");

printf(" 3. 输出课程平均分和各分数段人数 4 输出男生和女生课程平均成绩\n\n");

printf(" 5. 统计不及格情况 6. 输出优秀学生\n\n");

printf(" 7. 输出优秀学生干部 8. 返回上级菜单\n\n");

FILE*fp1,*fp2,*fp3;

int i,j;char str[100];

if((fp1=fopen("E:\\grade.txt","r"))==NULL)

{printf("cannot open file\n");

exit(0);}

fgets(str,100,fp1);

for(i=0;i<SIZE1;i++)

{

fscanf(fp1,"%d%s",&gd[i].num,gd[i].name);

for(j=0;j<SIZE2;j++)

fscanf(fp1,"%f",&gd[i].grd[j]);

}

fclose(fp1);

if((fp2=fopen("E:\\info.txt","r"))==NULL)

{printf("cannot open file\n");

exit(0);}

fgets(str,100,fp2);

for(i=0;i<SIZE1;i++)

fscanf(fp2,"%d%s%s%d%s",&info[i].num,info[i].name,info[i].sex,&info[i].age,info[i].duty);

fclose(fp2);

if((fp3=fopen("E:\\credits.txt","r"))==NULL)

{printf("cannot open file\n");

exit(0);}

fgets(str,100,fp3);

for(i=0;i<SIZE2;i++)

fscanf(fp3,"%d%s%f",&pts[i].num,pts[i].sbj,&pts[i].pnt);

fclose(fp3);

printf(" 输入选择序号\n");

while((ch21=getchar(),ch21!='1'&&ch21!='2'&&ch21!='3'&&ch21!='4'&&ch21!='5'&&ch21!='6'&&ch21!='7'&&ch21!='8'));

switch(ch21)

{

case'1' : function1_1(); break;

case'2' : function1_2(); break;

case'3' : function1_3(); break;

case'4' : function1_4(); break;

case'5' : function1_5(); break;

case'6' : function1_6(); break;

case'7' : function1_7(); break;

case'8' : return(0);

}

}while(1);

}

int section3() /*第3个2级菜单*/

{

voidfunction3_1();

char ch23;

do{

system("cls");

printf("\n\n\n\n\n\n\n\n\n\n");

printf(" *****************显示心形****************\n");

printf(" ---------------------------------------------------------\n");

printf(" 1. 运行\n\n");

printf(" 2. 返回上级菜单\n\n");

printf(" 输入选择序号\n");

while((ch23=getchar(),ch23!='1'&& ch23!='2'));

switch(ch23)

{

case'1' : function3_1(); break;

case'2' : return(0);

}

}while(1);

}

void function1_1() // 读入原始数据并显示

{

printf("加入读入原始数据并显示的程序内容\n");

int i,j;

printf(" 学号 姓名 高数 听力 英语 毛概 近代 体育 形式\n");

for(i=0;i<SIZE1;i++)

{

printf("%10d %12s",gd[i].num,gd[i].name);

for(j=0;j<SIZE2;j++)

printf("%6.2f ",gd[i].grd[j]);

printf("\n");

}

printf("\n\n");

printf(" 学号 姓名 性别 年龄 职务\n");

for(i=0;i<SIZE1;i++)

printf("%10d %12s %s %4d%12s\n",info[i].num,info[i].name,info[i].sex,info[i].age,info[i].duty);

printf("\n\n");

printf("编号 课程 学分\n");

for(i=0;i<SIZE2;i++)

printf("%d %s %f\n",pts[i].num,pts[i].sbj,pts[i].pnt);

printf(" *********按Enter键继续**********\n");

getchar();getchar();

}

void function1_2() //计算平均分及名次

{

printf("加入计算平均分及名次的程序内容\n");

int i,j;FILE *fp;

for(i=0;i<SIZE1;i++)

{

floatsum=0,n=0;

for(j=0;j<SIZE2;j++)

{

sum=sum+gd[i].grd[j]*pts[j].pnt;

n=n+pts[j].pnt;

}

gd[i].ave=sum/n;

}

for(j=0;j<SIZE1;j++)

for(i=0;i<SIZE1-j;i++)

if(gd[i].ave<gd[i+1].ave)

{

k=gd[i];

gd[i]=gd[i+1];

gd[i+1]=k;}

for(i=0;i<SIZE1;i++)

gd[i].mc=i+1;

if((fp=fopen("E:\\mc.txt","w"))==NULL)

{

printf("cannot open file\n");

exit(0);

}

fprintf(fp,"学号 姓名 高数 听力 英语 毛概 近代 体育 形式 平均分名次\n");

for(i=0;i<SIZE1;i++)

{

fprintf(fp,"%10d %6s",gd[i].num,gd[i].name);

for(j=0;j<SIZE2;j++)

fprintf(fp,"%6.2f ",gd[i].grd[j]);

fprintf(fp,"%6.2f %d\n",gd[i].ave,gd[i].mc);

}

fclose(fp);

printf("学号 姓名 高数 听力 英语 毛概 近代 体育 形式 平均分 名次\n");

for(i=0;i<SIZE1;i++)

{

printf("%10d %6s",gd[i].num,gd[i].name);

for(j=0;j<SIZE2;j++)

printf("%6.2f ",gd[i].grd[j]);

printf("%6.2f %d\n",gd[i].ave,gd[i].mc);

}

printf(" *********按Enter键继续**********\n");

getchar(); getchar();

}

void function1_3()

{

printf("加入计算课程平均分和分数段人数程序内容\n");

inti,j,k=0,rs[SIZE2][5]={0};

floatve[SIZE2]={0};

FILE*fp;

for(i=0;i<SIZE2;i++)

for(j=0;j<SIZE1;j++)

if(gd[j].grd[i]>=90)

rs[i][0]++;

else if(gd[j].grd[i]>=80)

rs[i][1]++;

else if(gd[j].grd[i]>=70)

rs[i][2]++;

else if(gd[j].grd[i]>=60)

rs[i][3]++;

else

rs[i][4]++;

for(i=0;i<SIZE2;i++)

{

{

for(j=0;j<SIZE1;j++)

ve[k]+=gd[j].grd[i];

}

ve[k]/=SIZE1;k++;

}

if((fp=fopen("E:\\chengji.txt","w"))==NULL)

{

printf("cannot open file\n");

exit(0);

}

fprintf(fp,"分数段 高数 听力 英语 毛概 近代 体育 形式\n");

fprintf(fp,">=90 ");

for(i=0;i<SIZE2;i++)

fprintf(fp,"%8d",rs[i][0]);

fprintf(fp,"\n");

fprintf(fp,"80~90 ");

for(i=0;i<SIZE2;i++)

fprintf(fp,"%8d",rs[i][1]);

fprintf(fp,"\n");

fprintf(fp,"70~80 ");

for(i=0;i<SIZE2;i++)

fprintf(fp,"%8d",rs[i][2]);

fprintf(fp,"\n");

fprintf(fp,"60~70 ");

for(i=0;i<SIZE2;i++)

fprintf(fp,"%8d",rs[i][3]);

fprintf(fp,"\n");

fprintf(fp,"<60 ");

for(i=0;i<SIZE2;i++)

fprintf(fp,"%8d",rs[i][4]);

fprintf(fp,"\n");

fprintf(fp,"课程平均分 ");

for(i=0;i<SIZE2;i++)

fprintf(fp,"%.2f ",ve[i]);

fclose(fp);

printf("分数段 高数 听力 英语 毛概 近代 体育 形式\n");

printf(">=90 ");

for(i=0;i<SIZE2;i++)

printf("%8d",rs[i][0]);

printf("\n");

printf("80~90 ");

for(i=0;i<SIZE2;i++)

printf("%8d",rs[i][1]);

printf("\n");

printf("70~80 ");

for(i=0;i<SIZE2;i++)

printf("%8d",rs[i][2]);

printf("\n");

printf("60~70 ");

for(i=0;i<SIZE2;i++)

printf("%8d",rs[i][3]);

printf("\n");

printf("<60 ");

for(i=0;i<SIZE2;i++)

printf("%8d",rs[i][4]);

printf("\n");

printf("课程平均分 ");

for(i=0;i<SIZE2;i++)

printf("%.1f ",ve[i]);

printf("\n *********按Enter键继续**********\n");

getchar();getchar();

}

void function1_4()

{

printf("加入计算男生和女生课程平均成绩程序内容\n ");

inti,j,k=0,l=0;

double m,sum;

double v1[7]={0},v2[7]={0};

FILE *fp3;

for(i=0;i<SIZE2;i++)

{

m=0;sum=0;

for(j=0;j<SIZE1;j++)

if(strcmp (info[j].sex,"男")==0)

{

sum+=gd[j].grd[i];

m++;

}

sum/=m;

v1[k]=sum;

k++;

}

for(i=0;i<SIZE2;i++)

{

m=0,sum=0;

for(j=0;j<SIZE1;j++)

if(strcmp(info[j].sex,"男")!=0)

{

sum+=gd[j].grd[i];

m++;

}

sum/=m;

v2[l]=sum;

l++;

}

if((fp3=fopen("E:\\nannv.txt","w"))==NULL)

{

printf("cannotopen file\n");

exit(0);

}

fprintf(fp3,"性别 高数 听力 英语 毛概 近代 体育 形式\n");

fprintf(fp3,"男 ");

for(i=0;i<SIZE2;i++)

fprintf(fp3,"%.2f ",v1[i]);

fprintf(fp3,"\n");

fprintf(fp3,"女 ");

for(i=0;i<SIZE2;i++)

fprintf(fp3,"%.2f ",v2[i]);

fprintf(fp3,"\n");

fclose(fp3);

printf("性别 高数 听力 英语 毛概 近代 体育 形式\n");

printf("男 ");

for(i=0;i<SIZE2;i++)

printf("%.2f ",v1[i]);

printf("\n");

printf("女 ");

for(i=0;i<SIZE2;i++)

printf("%.2f ",v2[i]);

printf("\n");

printf(" *********按Enter键继续**********\n");

getchar();getchar();

}

void function1_5()

{

printf("加入统计不及格情况程序内容\n");

inti,j;

FILE *lp;

for(i=0;i<SIZE1;i++)

if((lp=fopen("E:\\bujige.txt","w"))==NULL)

{

printf("can not open file\n");

exit(0);

}

fprintf(lp,"不及格科目 学号 姓名 分数\n");

for(j=0;j<SIZE2;j++)

for(i=0;i<SIZE1;i++)

if(gd[i].grd[j]<60)

fprintf(lp," %4s %8d%10s%6.2f\n",pts[j].sbj,gd[i].num,gd[i].name,gd[i].grd[j]);

fclose(lp);

printf("不及格科目 学号 姓名 分数\n");

for(j=0;j<SIZE2;j++)

for(i=0;i<SIZE1;i++)

if(gd[i].grd[j]<60)

printf(" %4s %8d%10s%6.2f\n",pts[j].sbj,gd[i].num,gd[i].name,gd[i].grd[j]);

printf(" *********按Enter键继续**********\n");

getchar();getchar();

}

void function1_6()

{

printf("加入输出优秀学生程序内容\n");

inti,j,m=0;

inta[]={0},b[]={0};

floatnum;

FILE*fp4;

if((fp4=fopen("E:\\yxxs.txt","w"))==NULL)

{

printf("cannot open file\n");

exit(0);

}

for(i=0;i<SIZE1;i++)

{

num=0;

for(j=0;j<SIZE2;j++)

num+=gd[i].grd[j];

gd[i].ave=num/SIZE2;

}

for(j=0;j<SIZE1;j++)

for(i=0;i<SIZE1-j;i++)

if(gd[i].ave<gd[i+1].ave)

{

k=gd[i];

gd[i]=gd[i+1];

gd[i+1]=k;

l=info[i];

info[i]=info[i+1];

info[i+1]=l;

}

for(i=0;i<SIZE1;i++)

gd[i].mc=i+1;

fprintf(fp4,"学号 姓名性别 职务 高数 听力 英语 毛概 近代 体育 形式 平均名次\n");

for(i=0;i<SIZE1;i++)

{

inta=0,b=0;

for(j=0;j<SIZE2;j++)

{

if(gd[i].grd[j]>=95)a++;

if(gd[i].grd[j]>=90) b++;

}

if(gd[i].ave>=90||gd[i].mc<=3||(gd[i].ave>=85&&(a>=0||b>=0)))

{

fprintf(fp4,"%10d%6s%4s%6s",gd[i].num,gd[i].name,info[i].sex,info[i].duty);

for(j=0;j<SIZE2;j++)

fprintf(fp4,"%6.2f",gd[i].grd[j]);

fprintf(fp4,"%6.2f%4d\n",gd[i].ave,gd[i].mc);

}

}

fclose(fp4);

printf("学号 姓名性别 职务 高数 听力 英语 毛概 近代 体育 形式 平均名次\n");

for(i=0;i<SIZE1;i++)

{

inta=0,b=0;

for(j=0;j<SIZE2;j++)

{

if(gd[i].grd[j]>=95)a++;

if(gd[i].grd[j]>=90) b++;

}

if(gd[i].ave>=90||gd[i].mc<=3||(gd[i].ave>=85&&(a>=1||b>=2)))

{

printf("%10d%6s%4s%6s",gd[i].num,gd[i].name,info[i].sex,info[i].duty);

for(j=0;j<SIZE2;j++)

printf("%6.2f",gd[i].grd[j]);

printf("%6.2f%4d\n",gd[i].ave,gd[i].mc);

}

}

printf("*********按Enter键继续**********\n");

getchar();getchar();

}

void function1_7()

{

printf("加入输出优秀学生干部程序内容\n");

int i,j,m=0;

floatnum;

char str[100];

FILE *fp4;

if((fp4=fopen("E:\\yxgb.txt","w"))==NULL)

{printf("cannot open file\n");

exit(0);}

for(i=0;i<SIZE1;i++)

{num=0;

for(j=0;j<SIZE2;j++)

num+=gd[i].grd[j];

gd[i].ave=num/7.0;

}

for(j=0;j<SIZE1;j++)

for(i=0;i<SIZE1-j;i++)

if(gd[i].ave<gd[i+1].ave)

{

k=gd[i];

gd[i]=gd[i+1];

gd[i+1]=k;

l=info[i];

info[i]=info[i+1];

info[i+1]=l;

}

for(i=0;i<SIZE1;i++)

gd[i].mc=i+1;

fprintf(fp4," 优秀学生干部名单 \n");

fprintf(fp4,"学号 姓名 性别 职务 高数 听力 英语 毛概 近代 体育 形式 平均名次\n");

for(i=0;i<SIZE1;i++)

{

inta=0,b=0;

for(j=0;j<SIZE2;j++)

{

if(gd[i].grd[j]>=95)a++;

if(gd[i].grd[j]>=90) b++;

}

if(((strcmp(info[i].duty,"无")!=0)&&(gd[i].ave>=85||gd[i].mc<=SIZE1*0.2||(gd[i].ave>=80&&(a>=1||b>=2)))))

{

fprintf(fp4,"%9d%7s%3s%9s",gd[i].num,gd[i].name,info[i].sex,info[i].duty);

for(j=0;j<SIZE2;j++)

fprintf(fp4,"%6.2f",gd[i].grd[j]);

fprintf(fp4,"%6.2f%3d\n",gd[i].ave,gd[i].mc);

}

}

fclose(fp4);

printf(" 优秀学生干部名单 \n");

printf("学号 姓名 性别 职务 高数 听力 英语 毛概 近代 体育 形式 平均名次\n");

for(i=0;i<SIZE1;i++)

{

inta=0,b=0;

for(j=0;j<SIZE2;j++)

{

if(gd[i].grd[j]>=95)a++;

if(gd[i].grd[j]>=90) b++;

}

if(((strcmp(info[i].duty,"无")!=0)&&(gd[i].ave>=85||gd[i].mc<=SIZE1*0.2||(gd[i].ave>=80&&(a>=1||b>=2)))))

{

printf("%9d%7s%3s%9s",gd[i].num,gd[i].name,info[i].sex,info[i].duty);

for(j=0;j<SIZE2;j++)

printf("%6.2f",gd[i].grd[j]);

printf("%6.2f%3d\n",gd[i].ave,gd[i].mc);

}

}

printf("*********按Enter键继续**********\n");

getchar();getchar();

}

void function3_1()

{

printf("加入显示心形的程序内容\n");

inti,j,q,x,y;

doubles,r;

char cs[52][50];

for(i=0;i<50;i++)

for(j=0;j<50;j++)

cs[i][j]=' ';

for(q=0;q<=360;q++)

{

s=q*PI/180;

r=20*(1-sin(s));

y=r*cos(s)+26;

x=5-r*sin(s);

cs[x][y]='\H';

}

for(i=0;i<50;i++)

{

for(j=0;j<52;j++)

printf("%c",cs[i][j]);

printf("\n");

}

printf(" *********按Enter键继续**********\n");

getchar();getchar();

}

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库SQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档