专栏首页程序猿【学生管理系统C语言】没有用数据库,正在学习C语言的看看吧

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

#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();

}

本文分享自微信公众号 - 数据库SQL(SQLdba)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-06-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【算法】老鼠走迷宫

    老鼠走迷官(一) 说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径。 解法老...

    赵腰静
  • Windows Server 2008 R2 搭建微信小程序

    注意哦~,Windows Server 2003不能部署微信小程序哦~,想要部署小程序请升级2008 R2及以上版本。 买在国内的云服,Windows 和 Li...

    赵腰静
  • 算法Blog之博弈原理

    博弈入门 寻找平衡状态(也称必败态, 奇异局势),(满足:任意非平衡态经过一次操作可以变为平衡态) 一.巴什博奕(Bash Game) 只有一堆n个物品,两个人...

    赵腰静
  • 技术怪题

    有些公司的题真的是会让咱们大跌眼镜。不信,看下面一道题。 int main() { if( )    {  printf("Hello "); }...

    猿人谷
  • C语言 第六章 多重循环练习

    一、循环输入 #include "stdio.h" void main() { char c; do { printf(...

    张果
  • PostgreSQL配置优化

    硬件和系统配置 操作系统 Ubuntu13.04 系统位数 64 CPU Intel(R) Core(TM)2 Duo CPU 内存 4G ...

    张善友
  • C语言常见程序讲解(一)

    之前发了很多有关C语言知识的文章。但是对于C语言的学习,只知道知识是不行的,需要自己亲自敲一些代码才能够学好C语言。在这里讲解一下简单的C语言程序(代码),希望...

    用户5935416
  • SpringBoot集成Swagger2

    Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来...

    用户2929716
  • posix,perl正则表达式区别

    1、正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式、正规表示式或常规表达式或正规化表示法或正规表...

    sunsky
  • 微信小程序下拉刷新功能

    王小婷

扫码关注云+社区

领取腾讯云代金券