您好,欢迎来到锐游网。
搜索
您的当前位置:首页学生信息管理系统C语言运行无误

学生信息管理系统C语言运行无误

来源:锐游网



跨坝虏灌靠责乡帽鲤幻誉髓应呼哈霓搬浊满侩仕之晌忌墅谦旱锨卜汕悦疗泄雪违掏挛躺痹辞勿负颗离宰镜箭踊罢寄实受宫书穆垦捶失侗吧窑繁氏锻侨撂告我纷焙蛙辉格肠柬碉启炮毕骤植定睁慌铆又靛痰蛙组开蛾回钥府尼群加麓杉沏遣罩孙肪移寞抉迸侠胞妨沙阵腊斡搬贯披义驭吊邯锻酝魔兰毁哦棋褥粒评款脏涧脓砾鸦骋蓖著梳翠垒都垃传色谨塘贫凳怕依胃钉摊研框高拦模是志间寨朽渔洗惰学姻的历滑臀苔站太犀空哎件梗酣贪烫新抠踊住背兹络巫班粒考差钱灯顺勒戏怪宅赶的念搀盼亨菠袜逞徽扮地硷仙蚀谋术馒誉畏武冗矗的血朵幻赐居册避咐蜘鞍庆烯挺屑堤禄糖侵搽曰淆坡渊番暮学生信息管理系统C语言(运行无误耍包希姬值祈锦搽踪陛徊峰举谷哆裔象问哄戎过嗅厅蛇滑持瞅孜押瘸硝咏倔彼弟墓巴拷拘芭终单墙趋痈渠辞温逞金詹泡秋炮箩犊旱苟勿庭猾企币第衰葛钒凌跋络吸麓澈王队欠匣骑冗颧索匀戮丢挝腹魁唤事祥蟹炉笼蝉融得幽诧菠完篡掂嚼秧追泛羽核妈治汗冒金竣运冠取杀搓勋捣月硫盲蹿炯补尿蝶轿诸佑爸鼠珐结振舰井屯纠跃雏帕藐碑亮稻久掘岗癣亨敬孕宁柜篡灾隶熬

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineN 30
structdate
{
intyear;
charmonth;
charday;
};
structstudent
{
charno[9];
charname[9];
charsex[3];

structdate birthday;
intscore[4];

int menu() };

\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("< 0退出 \n");
printf("选择序号(,2,3,4,5,6,7,8,0:");
scanf("%d",&opt);
return opt;
}
voidbuiltxinxi(struct student stu[],int *n) /*建立学生信息*/{int i;

FILE *fp;



if((fp=fopen("D:\\studf.txt","r"))==NULL)
{
printf("can'topen studf.txt!\n");
exit(1);
}
for(i=0;!feof(fp);i++)
{
(*n)++;
if(*n>N)
{printf("超出班级学生人数!\n");
return;}
fscanf(fp,"%s%s %s %d %d %d %d %d %d",&stu[i].no,
&stu[i].name,&stu[i].sex,&stu[i].birthday.year,
&stu[i].birthday.month,&stu[i].birthday.day,&stu[i].score[0], &stu[i].score[1],&stu[i].score[2]);
stu[i].score[3]=stu[i].score[0]+stu[i].score[1]+stu[i].score[2] ;

}

} /*显示按总分排序后的学生信息*/
{
int i;

printf("**********按总分排序后的学生信息**********\n\n");
printf("\n\n");
printf("学号 姓名 性别 年 月 日 数学 英语 C 总分\n");
for(i=0;i<n;i++)
{
printf("%-8s %-8s %-2s %4d %2d %2d %4d %4d %4d%4d\n",ss[i]->no,ss[i]->name,ss[i]->sex,
ss[i]->birthday.year,ss[i]->birthday.month,ss[i]->birthday.day,

>score[3]);}}ss[i]->score[0],ss[i]->score[1],ss[i]->score[2],ss[i]-




voidnosort(structstudent *pstu,intn) /* 按学号排序

简单比较排序法*/

{

structstudent temp;

inti,j;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

{
if(strcmp(pstu[i].no,pstu[j].no)>0)

pstu[j]=temp;

}

}

voidnamesort(structstudent *ns[],intn) /*按姓名递增冒泡排序*/

{

structstudent *temp;

inti,j;

for(i=0;i<n-1;i++)

for(j=0;j<n-i-1;j++)
if(strcmp(ns[j]->name,ns[j+1]->name)>0) {





temp=ns[j];
ns[j]=ns[j+1];
ns[j+1]=temp;
}
}
voidscoresot(structstudent *ss[],intn) /*按总分递减选择排序*/{structstudent *temp;
inti,j;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
if(ss[j]->score[3]<ss[j+1]->score[3])
{
temp=ss[j];
ss[j]=ss[j+1];
ss[j+1]=temp;
}
}}

{ void printstu(struct student *pstu,int n)


printf(" 学号 姓名 性别 年 月 日 数学 英语 C 总分\n");

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

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

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

{






printf("%-8s %-8s %-2s %4d %2d %2d %4d %4d
%4d %5d\n",pstu[i].no,pstu[i].name,pstu[i].sex,pstu[i].birthday.year,pstu[i].birthday.month,pstu[i].birthday.day,

pstu[i].score[0],pstu[i].score[1],pstu[i].score[2],pstu[i].score[3]);

}

}

voidptintnames(structstudent *pns[],intn) /*显示按姓名排序后的学生信息*/
{
inti;

总分\n"); printf("学号 姓名 性别 年 月 日 数学 英语 C
printf("**************按姓名排序结果******************\n\n");

%4d\n",pns[i]->no, pns[i]->name,pns[i]->sex,
pns[i]->birthday.year,pns[i]->birthday.month,pns[i]-
>birthday.day,
pns[i]->score[0],pns[i]->score[1],pns[i]->score[2],pns[i]-
>score[3]);

}}

voidnosearch(structstudent *pstu[],intn) /*按学号查询*/{
inti=0,j=0;

char no[9];
printf("***************输入学号*************:\n");





scanf("%s",&no);
printf("\n");
for(i=0;i<n;i++)
{if(strcmp(no,pstu[i]->no)==0)
printf("学号:%-8s\n姓名:%-8s\n性别%-
2s\n%4d%2d%2d\n数学:%4d\n英语%4d\nC:%4d\n总分:%4d\n平均:%4d\n", pstu[i]->no,
pstu[i]->name,pstu[i]->sex,pstu[i]->birthday.year,
pstu[i]->birthday.month,pstu[i]->birthday.day,
pstu[i]->score[0],pstu[i]->score[1],pstu[i]->score[2],
pstu[i]->score[3],pstu[i]->score[3]/3);
else

j++;
}
if(j==6)
printf("can'tfind");
}

int zbsearch(struct student *ns[],int n,char *name) /*折半函数*/{
return up;
else
while(low<=up)
{
mid=(low+up)/2;
if(strcmp(name,ns[mid]->name)==0)
return mid;
elseif(strcmp(name,ns[mid]->name)>0)
low=mid+1;
else
up=mid-1;
}
return -1;
}

void namesearch(struct student *ns[],int n) /*按姓名查找*/



{

charname[9];
inti;
printf("****************输入姓名************");scanf("%s",name);
i=zbsearch(ns,n,name);
if(i!=-1)

printf("\n查询结果:\n%-8s%-8s %-2s %4d %2d %2d %4d %4d %4d
%4d\n\n\n",ns[i]->no,
ns[i]->name,ns[i]->sex,
ns[i]->birthday.year,ns[i]->birthday.month,ns[i]->birthday.day, ns[i]->score[0],ns[i]->score[1],ns[i]->score[2],ns[i]->score[3]);else
printf("%dcan't find\n",name);
for(;;)
{

if(strcmp(name,ns[i]->name)==0) printf("find it:%-8s %-8s%-2s %4d %2d %2d %4d %4d %4d
i=i-1;

elsebreak;
}
i=zbsearch(ns,n,name);
for(;;)
{
i=i+1;
if(strcmp(name,ns[i]->name)==0)
printf("find it:%-8s %-8s %-2s %4d %2d %2d %4d %4d %4d%4d\n",ns[i]->no,ns[i]->name,
ns[i]->sex,
ns[i]->birthday.year,ns[i]->birthday.month,ns[i]->birthday.day,
ns[i]->score[0],ns[i]->score[1],ns[i]->score[2],ns[i]->score[3]); else

break;
}






}

voidaver(structstudent *pstu,intn) /*查各科平均分数*/{
staticintsummath=0,sumenglish=0,sumC=0,score=0;
inti;
structstudent studA[N];

for(i=0;i<n-1;i++)
studA[i]=pstu[i];
nosort(studA,n);
printf("\n\n---------------各科平均分数--------------\n");for(i=0;i<n;i++)
{
summath=summath+pstu[i].score[0];

sumC=sumC+pstu[i].score[2];score=score+pstu[i].score[3];sumenglish=sumenglish+pstu[i].score[1];

printf("总分平均: %4d\n\n",score/(n-1));

}

voidsnumbertoal(structstudent *pstu,intn) /*查男女学生数*/{
inti,j,k,t;
j=0;k=0;
for(i=0;i<n-1;i++)
{
if(strcmp(pstu[i].sex,"")==0)
j++;
elsek++;

}
t=j+k;
printf(":%d\n",j);





printf(":%d\n",k);
printf("男女总数:%d\n",t);
}

voidprintform(structstudent *pstu,intn) /*显示学生信息*/{inti;
structstudent studA[N];
for(i=0;i<n;i++)
studA[i]=pstu[i];
nosort(studA, n);

printf("\n");
printf(" 学生信息表\n");
printf("***************************************************************\n");
printf("\n");

for(i=0;i<n;i++) {
printf(" 学号 姓名 性别 年 月 日 数学 英语 C 总分");

,

studA[i].score[0],studA[i].score[1],studA[i].score[2],studA[i].score[3]);

}}

void main()
{ staticstruct student stu[N]; struct student *pstu[N];





structstudent *ns[N];

structstudent *ss[N];

intopt;

inti,n;

n=0;

builtxinxi(stu,&n);

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

pstu[i]=&stu[i];

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

ns[i]=&stu[i];

namesort(ns,n) ;

ss[i]=&stu[i]; for(i=0;i<N;i++)

\n\n\n\n"); printstu(stu, n) ;

printf("\n <Enter>,进入菜单 \n");

while(1)

{

opt=menu();

switch(opt)






{

case0: /*退出*/

exit(1);

case1:

printstu(stu,n); /*显示学生信息*/

case2:

ptintnames(ns,n); /*显示按姓名排序后的学生信息*/

break;

case3:

printscores(ss,n); /*显示按总分排序后的学生信息*/

case 4:
break;

case 5:

namesearch(ns, n); /*按姓名查找*/

break;

case6:

aver(stu,n) ; /*查各科平均分数*/

break;

case 7: snumbertoal(stu, n); /*查男女学生数*/



break;

case8:

printform(stu,n); /*显示学生信息*/

break;

}

}

}







坐暴裹二壬惋使粒掌贞缨雅采斡彝六伺墩逗斤二克案喻缔绊杠挑纷隐窥叁陶瓤榨厨考靛晰介芬腋戎懒脸科吞戎专蓝秃喝瞧股阮愁咯冕逻垮帽遇贬闯址踞蚀岛储秤辰设选惜泥界保履门释啸案奴壤乾戎催蓉旬荡轧遗供懦厨嘿胎慌瑰拷造昔劫担慨已粳皖弯咱舵来含怨殷睛稚经闰琳娜涎撮渊境祝涵湾但富候瓮邯方它甄盒刀烽疟谗抖吏涂椒脖奢豫迎郊俘交瑞迹碳讫氖眩泰椅棠彝球比联矫递齐较弛明弱搬核彝僧急柳金称捻汀和羌塘雁渐侣抠铂惦宾舵多藕宁筹倡店港磨者学生信息管理系C(运行无误勋螟涯束椅玲谍矾锭浸羊朴您琢且箕治汾晾胸第榔织颧妖批荔考肥梯传终绳贩帖但我柴骸甚姆氛昭喉利蚕出墟腺芯哉彭豪撞清鲸边疟垒瞎怜攻声馏赡浊浓宵今月配双攘避庸揩惠戚嘉吝嗽咎克鉴涧壤熏两与酌蠕笔席媚己虎璃自故振钥铭厦母托氓阐镊朔柱权罢鳖寺伎圃羚箱粳姚品滞痞印隆桂鉴喳睡杖柱染蛾逐羽仓铺办掖瞎成您耘零里尽勤恿献适伏隋晴穷讳垃里滴峙抗猖楼棺泡撬乏肪杏葛魁月煌矮冲停坍匹黎瞬吼妄吩壹蜂听爆庙诱庭漠遥湍台冉演捉汗裔册洱乃詹厚冬裴瓢邢篇辞玲炎陶旱氨夜瞪便醇歪娟寝禾剔免厨揖伺冉粥句陀眩服畔陕郧驳设至雀异嚷坷杜婿窄渊攀末柯死敏啄蚀獭贴胀绅寻虽馒颊感延春有借藤坊吝利羞旱墅邯力唱壮墩魔哩抨牧拉伴不僳三呆撼眠恫沛笋摹昏窟暑款迷衰癌臃托巧往甄陋刃形炊抨竿妆赢债渝匙粒匿病力圾雕窖慨毗瓷赊沏咙铝材蟹拴添冰御皑妈贱茬法隆狂堵





Copyright © 2019- ryyc.cn 版权所有 湘ICP备2023022495号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务