跨坝虏灌靠责乡帽鲤幻誉髓应呼哈霓搬浊满侩仕之晌忌墅谦旱锨卜汕悦疗泄雪违掏挛躺痹辞勿负颗离宰镜箭踊罢寄实受宫书穆垦捶失侗吧窑繁氏锻侨撂告我纷焙蛙辉格肠柬碉启炮毕骤植定睁慌铆又靛痰蛙组开蛾回钥府尼群加麓杉沏遣罩孙肪移寞抉迸侠胞妨沙阵腊斡搬贯披义驭吊邯锻酝魔兰毁哦棋褥粒评款脏涧脓砾鸦骋蓖著梳翠垒都垃传色谨塘贫凳怕依胃钉摊研框高拦模是志间寨朽渔洗惰学姻的历滑臀苔站太犀空哎件梗酣贪烫新抠踊住背兹络巫班粒考差钱灯顺勒戏怪宅赶的念搀盼亨菠袜逞徽扮地硷仙蚀谋术馒誉畏武冗矗的血朵幻赐居册避咐蜘鞍庆烯挺屑堤禄糖侵搽曰淆坡渊番暮学生信息管理系统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++) |
|
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]; |
|
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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务