学生成绩管理系统结构
1. 学生成绩管理系统数据结构
#include<stdio.h>
#include<stdlib.h>
int Shu;
typedef struct student
{
int num;
float mgar,cgar,egar;
float zong,ping;
}stu;
typedef struct node
{
stu xue;
struct node *next;
} LNode,*LinkList;
LinkList InitLinkList()
{
LinkList L;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
return L;
}
LinkList CreateTail() //尾插法,带头结点
{
LinkList L;
LNode *s,*r;
int i,x;
float m,c,e;
L=InitLinkList();
r=L;
x=0;
printf("输入学生信息的个数:");
scanf("%d",&Shu);
printf("学号 数学 语文 英语\n");
while(x<Shu)
{
s=(LNode *)malloc(sizeof(LNode));
scanf("%d",&i);
s->xue.num=i;
scanf("%f",&m);
s->xue.mgar=m;
scanf("%f",&c);
s->xue.cgar=c;
scanf("%f",&e);
s->xue.egar=e;
s->xue.zong=m+c+e;
s->xue.ping=(m+c+e)/3;
s->next=NULL;
r->next=s;
r=s;
x++;
}
return (L);
}
void prn(LinkList L)
{
LNode *p;
p=L->next;
printf("\n学号 数学 语文 英语 平均成绩 总成绩\n");
while (p!=NULL)
{
printf("%d %0.2f %0.2f %0.2f %0.2f %0.2f\n",p->xue.num,p->xue.mgar,p->xue.cgar,p->xue.egar,p->xue.ping,p->xue.zong);
p=p->next;
}
printf("\n");
}
void prn1(LinkList L)
{
LNode *p;
int x,y;
p=L->next;
printf("请输入要查询的学生学号:");
scanf("%d",&x);
while(p)
{
if(x==p->xue.num )
{
y=1;
printf("\n学号 数学 语文 英语 平均成绩 总成绩\n");
printf("%d %0.2f %0.2f %0.2f %0.2f %0.2f\n",p->xue.num,p->xue.mgar,p->xue.cgar,p->xue.egar,p->xue.ping,p->xue.zong);
}
p=p->next;
}
if(y!=1)
printf("不存在该学生\n");
}
void xs(LinkList L)
{
LNode *p;
p=L->next;
float x,y;
printf("输入要查询的数学成绩范围:");
scanf("%f",&x);
scanf("%f",&y);
while(p)
{
if(p->xue.mgar>=x && p->xue.mgar<=y)
{printf("\n学号 数学 语文 英语 平均成绩 总成绩\n");
printf("%d %0.2f %0.2f %0.2f %0.2f %0.2f\n",p->xue.num,p->xue.mgar,p->xue.cgar,p->xue.egar,p->xue.ping,p->xue.zong);
}
p=p->next;
}
}
void ren(LinkList L)
{
LNode *p;
float m,c,e,j;
int i=0;
m=0;c=0;e=0;j=0;
p=L->next;
while(p)
{
m=m+p->xue.mgar;
c=c+p->xue.cgar;
e=e+p->xue.egar;
j=j+p->xue.ping;
p=p->next;
i++;
}
printf("班级平均成绩\n");
printf("数学 语文 英语 总平均成绩 总人数\n");
printf("%0.2f %0.2f %0.2f %0.2f %d",m/i,c/i,e/i,j/i,i);
}
void del(LinkList L)
{
int x;
LNode *p,*q;
p=L->next;
q=L;
printf("请输入要删除的学生学号:");
scanf("%d",&x);
while(p)
{
if(p->xue.num==x)
{
q->next=p->next;
break;
}
else
{
p=p->next;
q=q->next;
}
}
Shu--;
}
LinkList add(LinkList L)
{
LNode *s;
int n,i,x;
float m,c,e;
i=0;
printf("请输入要添加的学生信息的人数:");
scanf("%d",&x);
printf("\n学号 数学 语文 英语 \n");
while(i<x)
{
s=(LinkList)malloc(sizeof(LNode));
scanf("%d",&n);
s->xue.num=n;
scanf("%f",&m);
s->xue.mgar=m;
scanf("%f",&c);
s->xue.cgar=c;
scanf("%f",&e);
s->xue.egar=e;
s->xue.zong=m+c+e;
s->xue.ping=(m+c+e)/3;
s->next=L->next;
L->next=s;
i++;
Shu++;
}
return L;
}
LinkList pxm(LinkList L)
{
printf("按数学成绩排名:");
int i;
LNode *p,*q,*a;
for(i=0;i<Shu;i++)
{
p=L->next;
q=p->next;
while(q)
{
if(p->xue.mgar<=q->xue.mgar)
{
p->next=q->next;
q->next=L->next;
L->next=q;
a=p;
p=q;
q=a;
}
p=p->next;
q=q->next;
}
}
prn(L);
}
void cd()
{
printf("\t\t\t1、输入学生信息\n");
printf("\t\t\t2、查询学生学号信息\n");
printf("\t\t\t3、查询学生成绩信息\n");
printf("\t\t\t4、班级平均成绩及人数\n");
printf("\t\t\t5、删除学生成绩\n");
printf("\t\t\t6、增加学生成绩\n");
printf("\t\t\t7、学生信息排序\n"); //按数学成绩排名
printf("\t请先进行操作1,按数字8可显示全部信息,再进行其他操作\n");
printf("请输入选项:");
}
int main()
{
int i;
LinkList L;
do
{
cd();
scanf("%d",&i);
switch(i)
{
case 1:
{
system("cls");
L=CreateTail();
prn(L);break;}
case 2:
{
system("cls");
prn1(L);
break;
}
case 3:
{
system("cls");
xs(L);break;
}
case 4:
{
system("cls");
ren(L);break;
}
case 5:
{
system("cls");
del(L);break;
}
case 6:
{
system("cls");
add(L);
prn(L); break;
}
case 7:
{
system("cls");
pxm(L); break;
}
case 8:
{
prn(L);break;
}
}}while(i<=8 && i>=1);
}
希望对你能有所帮助。
2. 数据结构(学生成绩管理系统)
http://wenku..com/view/dc69e8ef5ef7ba0d4a733bff.html
3. 学生成绩管理系统
学生成绩管理系统C代码
/ *头文件* /
#包括
包括
#包括 / *其他指令* /
包括中/ *字符串函数* /
/ *内存操作函数* /
/ *字符处理函数* /
包括 / *动态地址分配函数* /
定义:LEN大小(学生)
typedef结构中,学??生/ *定义结构数组,用于缓存数据* /
{字符数[6];
字符名称[5];
得分[3];
int总和;
>浮动平均水平;
诠释订单
结构STU *下;
}的学生;
/ *函数原型* /
学生的init( );/ /初始化函数* /
诠释MENU_SELECT的(); / *菜单函数* /
学生的create(); / *创建的链表* /
无效打印(学生*头); / *显示所有记录* /
无效搜索(学生*头); / *找到记录* /
学生删除(STUDENT *头); / *删除记录* / />学生排序(学生头); / *排序* /
学生(学生*头,新的学生*); *插入/ *插入记录* /
无效保存(的学生头); / *保存文件* /
学生的load(); / *读取文件* /
/ *主函数接口* /
主()
{的学生*头,新的;
头的init(); / *初始化链表头的值是NULL * /
(;) / *循环无限* /
{开关(menu??_select())
{
案例1:头= create()方法的突破;
案例2:打印(头);休息;
案例3:搜索(头);突破;
情况下,4头=删除(头);突破;
情况下5头排序(头);突破;
案例6:头插入(头,与新的);打破; / *新的返回地址* /
案例7:保存(头);
案例8:头=负载(
案例9:退出);突破;(0)/ *如果菜单,返回值是年底的9个项目* /
}
}
}
/ *初始化函数* /
学生的init()
{
返回NULL; / *返回一个空指针* /
}
a>
/ *菜单选择功能* /
menu_select
{N;
结构日期d / *定义的时间结构* / /> GETDATE(&D)/ *读取系统日期,并把它在结构上D * /
printf的(“按任意键进入菜单......”); / *按任意键进入主菜单* /
的getch(); / *读取从键盘输入一个字符,但不显示在屏幕上* /
clrscr(); / *清屏* / /> printf(“请********************************************* *********************************** \ n“);
printf(”请\ T \吨的\ n“);
printf(”请\ n \ t \ t学生成绩管理系统\ n“);
printf(”请************ ************************* MENU ************************ *************** \ n“);
printf的(”\ t \ t \ T1输入记录\ n“); / *输入学生记录* / BR /> printf的(“\ t \ t \ T2打印记录\ n”); / *显示* /
printf的(“\ t \ t \ T3的搜索记录名称\ n”); / * * /
printf的(“\ t \ t \ T4。删除记录\ n”); / *删除* /
printf的(“\ t \ t \ T5。排序,使新的文件\ n“); / *排序* / <br /输出(”\ t \ t \ T6插入记录到列表\ n“); / *插入* /
printf的(”\ t \ t \ T7保存的文件\ n“); / *保存* /
printf的(”\ t \ t \ T8负载的文件\ n“); / *读* /
printf的(”\ t \ T \ T9退出\ n“); / *退出* /
printf的(”\ n \ t \ t胡嘿黉\ n“);
printf的(”****** ************************************************** ************************ \ n“);
printf的(”\ t \ t \ t \ t%d \ \%d的\ \%e\“,d.da_year,d.da_mon,d.da_day); / *显示当前系统日期* /
做{
printf的(”\ n \ t \ t \拉幅机的选择(1?9):“);
scanf的(”%d“,&N);
}(N 9)/ *如果该选项是不减肥9 * /
回报率(N); / *返回选项的数量,主要功能调用相应的函数* /
}
/ *输入函数* /
学生创??建()
{I,S
学生头= NULL,* P / *定义函数这个函数返回一个指针表头指针* /
Clrscr();
(;)
{P =(学生)的malloc(LEN); / *打开了一个新的单元* / BR />(P)/ *如果指针p是空* /
{printf的(“\ Nout的记忆。”); / *输出内存溢出* /
回报(头); / *返回头指针,下同* /
}
printf的(“请输入NUM(0:列表结束):”);
scanf的(“%s”,P-> NUM);
(P->数[0] == '0')打破; / *如果第一个字符的学生数0输入* /
printf(“请结束输入姓名:“);
scanf的(”%s“,P->名称);
printf(”请输入%D分数\ n“); / *迅速启动分型结果* /
= 0; / *计算每个学生的总成绩,初始值为0 * /
(i = 0; I <3; i + +)/ * 3个疗程周期的3倍* /
{
做{
printf的(“得分%D:”,i +1);
scanf的(“%d”的,普 - >得分[I]);
(P->得分[I] 得分[I]> 100)/ *确保得分在0至100之间* /
printf的(“数据错误,请重新输入\ n”);
}而(P>得分[I] [I]> 100分);
= S + P->得分[I] / *堆积门的成绩* /
}
P->总和= S / *节省的总成绩* /
对平均= (浮)/ 3; / *首先转换类型转换s转换为float类型,然后寻求的平均* /
P->订单= 0; / *在此之前的值排序为0 * / BR /> P> =头; / *头节点作为一个新的输入节点的后继节点* /
头= P / *新的输入节点作为新的头节点* /
}
a>回报(头);
}
/ *显示所有记录函数* / >无效打印(学生头)
{i = 0; / *统计记录数* /
学生* P / *移动指针* /
Clrscr();
P =头; / *初始的头指针* / /> printf(“请\ n ************************************学生****** ****************************** \ n“);
printf(”请---- -------------------------------------------------- --------------------- \ n“); <br /输出(”|记录|编号|名称| SC1 SC2 SC3 |森|大道|订单| \ n“);
printf的(”------------------------------------ ------------------------------------------- \ n“); ...... />而(p! = NULL)
{
+ +;
printf的(“|%3D |%4 |%|%-4S 3D | 3D | 3D | %的3d |%4.2f |%-5d的| \“,
,对 - >数,对 - >名称,对 - >分数[0],对 - >分数[1],对 - > [2分],P->总之,对平均,P->订单);
P = P->下;
}
printf的(“------ -------------------------------------------------- ----------------------- \ n“);
printf的(”*************** *********************** END ************************** ************ \ n“);
}
/ *查找录音功能* /
无效搜索(学生*头) BR /> {STUDENT * p; / *移动指针* /
个char [5]; / *商店的名称的字符数组* /
Clrscr();
scanf函数
printf的(“请输入您的名字进行搜索。\ n”);(%S“,S);
P =头; / *分配的头指针P * /
而(STRCMP(P->名称,s)&& P = NULL)/ *的名称的记录时不看,或指针的时空* /
P = P-> / *移动指针指向下一个节点* /
(p! = NULL)/ *如果指针不为空* /
{printf(“请\ n ******** ***************************** FOUND ******************** **************** \ n“);
printf(”请---------------------- -------------------------------------------------- ------- \ n“);
printf的(”|编号|名称| SC1 SC2 | SC3 |森|大道|订购| \ n“);
printf的(” - -------------------------------------------------- --------------------------- \ n“);
printf的(”| 4 |%4S |%3D |%三维|%的3d |%的3d |%4.2f |%-5d的| \ N“,
对 - >数,对 - >名称,对 - >分数[0],对 - >分数[1],对 - >分数[2],对 - >总和,对 - >平均,对 - >顺序);
printf(“请------------------- -------------------------------------------------- --------- \ n“);
printf的(”***************************** ********** END ************************************** \ N“);
}
其他
printf的(”\ n该网页的没有NUM%的学生在名单上。\ n“); / *学生* /
}
/ *删除记录的函数* /
学生*头*删除(学生)
学生{N; * P1 * P2 / * P1是找到要删除一个节点的指针,P2及其前体的指针* /
字符c的s [6] / [6]用来存储学生数,c是用于输入字母* / </ clrscr();
printf的(“请输入删除的民:”);
scanf的(“%s”);
P1 = P2 =头; / * P1和P2富最初的头指针* /
(STRCMP(P1-NUM)&& P1 = NULL)/ *当记录数的学校不看,或指针不为空* / /> {P2 = P1 / * P1指针的值分配给P2 P1前体指针* /
P1 = P1->; / *点p1指针到下一条记录* /
} BR />(STRCMP(P1->民)== 0)/ *学生ID * /
{printf的(“***************** ********************* FOUND **************************** ******** \ n“);
printf(”请------------------------------ ------------------------------------------------- \ N“);
printf的(”|编号|名称| SC1 SC2 | SC3 |森|大道|在线订单| \ n“);
printf的(”--------- -------------------------------------------------- -------------------- \ n“);
printf的(”| 4 |%4S |%3D | 3D | 3D | 3D |%4.2f%5D | \ n“,
P1->民,P1->名称,P1->得分[0],P1 - > [1分],P1->得分[2] ,P1->总之,P1->平均,P1->订单);
printf的(“-------------------------- -------------------------------------------------- --- \ n“);
printf(”请*********************************** **** END ************************************** \ n“); ...... /> printf的(“你确定要删除的学生Y / N?”); / *提示你是否要删除,输入y删除n退出* /
(;)
/> {scanf函数(“%C”,&C);
(C =='N'| | C =='N'); / *如果你不删除,然后跳出循环* /
(C =='Y'| | C =='Y')
{
(P1 ==头)/ * P1 ==头,被删除节点是第一个节点* /
头= P1->下; / *第二个节点的地址给头* /
其他
P2->下一个= P1-> /否则,请单击节点地址被分配到前一个节点的地址* /
N = N-1; <br /输出(“\ nNum%的学生已被删除。\ n”,S); /> printf的(“不要忘记保存。\ n”); / *循环后已被删除* /
}
}
} 其他
printf的(“\ n该网页的没有NUM%的学生在名单上。\ n”); /,找不到节点* /
回报(头);
}
/ *排序函数* /
学生排序(学生头)
{INT I = 0; / *保存排名* /
学生* P1, * P2 * T,*温度; / *定义一个临时指针* /
温度=头下; / *原来的下一个节点的指针表头的头指针* /
头> = NULL; / *头节点的新表的第一个节点* /
(temp! = NULL)/ *当原表不为空,进行排??序* /
{
T =温度; / *取前表节点* /
TEMP =温度 - >; / *原来的头节点的指针向后* /
P1 =头/头*移动指针P1指针从头开始* /
P2 =头; / *移动指针P2为的P1前驱体的头指针的初始值* /
而(平均平均&& P1 = NULL)/ *成绩平均比??较* /
{
P2 = P1 / *点值小进行排序,新表指针落后* /
P1 = P1->下;
}
(P1 == P2)/ * P1 == P2,点值进行排序,应该排在第一个* / BR /> {
T-> = P1;进行排序的继任者的p * /
头= T / * / *新的头节点进行排序点* /
}
的else / *进行排序点应插入在中间的位置p2和p1的,例如为p的空尾之间* /
{
叔 - >下一个= p1的; / * t的后继是p1 * /
P2-> = T / * P2的继任吨* /
}
}
P1 =头; / *排序头指针被分配到P1准备填写的排名* /
(p1! = NULL)/ * p1是不是空的,下面的操作* /
{
+ +; / *节点数量* /
P1->订单; / *分配的节点数量的排名* /
P1 = P1->; / *指针后移* /
}
printf的(“的排序是SUCESSFUL。\ n”排序;} / *成功* /
回报(头);
}
/ *插入记录功能* /
学生插入(学生头STUDENT *新)
{STUDENT * P0,P1,P2;
整数N,SUM1;
P1 =头/ * P1点的第一个节点* /
P0 =新/ * P0点要插入节点* /
printf的(“\ n请输入一个新的记录。\ n”) / *提示信息记录* /
printf的(“请输入数量:”);
scanf函数(“%s”的新数);
printf(“输入的名称:“);
scanf的(”%s“的新名);
printf的(”请输入%d的分数。\ n“);
SUM1 = 0; / *保存新的得分纪录,初始值为0 * /
为(i = 0; I <3; i + +)
{
做{
printf的(“得分%D:“,i +1);
scanf的(”%d“的,与新>得分[]);
(新 - >得分[I]> 100 | |新 - >得分[I] <0)
printf(“请数据错误,请重新输入。\ n”);
}而(新 - >评分[我]> 100 | |新 - >评分[I] <0);
SUM1 = SUM1 +新 - >得分[I] / *累计门成绩* /
}
新 - >金额= SUM1; /存款总额新的记录* /
新的平均=()SUM1 / 3;
新订单= 0;
(头== NULL)/ *原链表为空表* /
{头= P0,P0-> = NULL;} / *节点指出P0口作为头节点* /
其他
{((P0->平均平均)&&(P1->!= NULL))
{P2 = P1 / P2点只是P1结点* /
P1 = P1->; / * P1落后节点* /
}
(P0->平均> = P1->平均)
{如果(头== P1)头= P0 / *插入到原来的第一个节点* / />其他P2-> = P0 / *在插入节点* /
P0-> = P1;}
其他
{P1->下一个= P0到P2点P0-> = NULL;} / *上的最后一个节点* /
}
N = N +1; / *节点数目加1 * /
头排序(头); / *调用sort函数的学生的成绩重新排序* /
printf的(“,已插入\ nStudent%s的。\ n”,新名);
printf的(“不要忘记保存新的文件。\ n“);
回报(头);
}
/ *将数据保存到文件函数* /
无效保存(学生*头)
{FILE * FP; / *定义点文件指针* /
STUDENT * p; / *定义移动指针* /
字符,OUTFILE [10];
输出(“请输入OUTFILE名称,例如C:\ \成绩\ n”);
scanf的(“%s”,OUTFILE);
((FP =打开(OUTFILE,“WB”) )== NULL)/ *为输出打开一个二进制文件,只写* /
{
printf的(“无法打开文件\ n”);
回报; / *如果您无法打开返回菜单* /
}
printf的(“\ nSaving的文件... \ n”);
P =头; / *移动指针从头开始* /
而(p! = NULL)/ * p不为空* /
{
FWRITE(P,LEN,1,FP); / *写的指针记录* /
P = P->下; / *指针后移* /
}
FCLOSE(FP); / *关闭文件* /
printf的(“将文件保存成功!\ n“);
}
/ *从文件功能* /
学生中读取数据负载()
{STUDENT * P1 * P2 *头= NULL; / *定义记录指针变量* /
FILE * FP / *定义指向文件的指针* /
字符的infile [10];
printf的(“输入INFILE名称,例如c:\ \成绩\ n“);
scanf的(”%s“,infile中);
((FP =的FOPEN(INFILE,”包“))= = NULL)/ *打开一个二进制文件只读* /
{
printf的(“无法打开文件\ n”);
回报(头);
}
printf的(“\ n载入的文件!\ n”);
P1 =(学生)的malloc(LEN); / *开辟了一条新的单位* /
(P1 )
{
printf的(“内存不足!\ n”);
回报(头);
}
头= P1 / *适用于空间,作为头指针* /
同时(!的feof(FP))/ *循环读取数据,直到年底结束的文件* / {
(FREAD(P1,LEN,1,FP)= 1)打破; / *如果你不读出的数据的循环* /
P1-> =(学生)的malloc(LEN); / *下一个结点打开空间* /
(P1->)
{
printf的(“内存不足!\ n”);
回报(头); BR />}
P2 = P1 / P2点只是P1结点* /
P1 = P1->; / *指针回新读入数据链当前的表* /
}
P2-> = NULL; / *最后一个节点的继任指针为空* /
FCLOSE(FP);
输出( “你已经成功从文件中读取数据!\ n”);
回报(头);
}
4. c语言程序设计-学生成绩管理系统(成绩的查询,统计,用结构体,指针)
#include<stdio.h>
#include<stdlib.h>
struct stu
{
int num;
char name[20];
float grade;
};
int main()
{
int n,i,n1;
float sum=0.0,ave;
printf("请输入学生人数:\n");
scanf("%d",&n);
struct stu *p;
p=(struct stu*)calloc(n,sizeof(stu));
printf("请输入%d个学生信息(学号,姓名,成绩):\n",n);
for(i=0;i<n;i++)
{
scanf("%d %s %f",&p[i].num,&p[i].name,&p[i].grade);
}
for(i=0;i<n;i++)
{
printf("%d %s %f\n",p[i].num,p[i].name,p[i].grade);
}
printf("请输入要查询学生成绩的编号:\n");
scanf("%d",&n1);
printf("%d号学生的成绩为:%f\n",n1,p[n1-1].grade);
for(i=0;i<n;i++)
{
sum+=p[i].grade;
}
ave=sum/n;
printf("%d个学生的平均成绩为:%f\n",n,ave);
delete []p;
return 0;
}
你所指的统计功能不知道是什么,我就改成计算平均数了
5. 有一个学生成绩管理系统,请设计出能够表示学生信息的结构体,结构体名称为Student。
structStudent
{
charsno[20];//学号
charsname[10];//姓名
boolsgender;//性别
intsyear;//年级
}
望采纳。
6. 1、实现学生成绩管理系统:(也可以选择类似的学籍管理系统) 系统要求如下 a、 当前学生信息:通过结构体
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
structnode
{
intcode;
charname[20];
chartype;
intage;
intchinese;
intmath;
inttotal;
}stud[100];
structnodetemp;
voidmenu();
intinput();
voidfind(int);
voidinsert(int);
voiddeletel(int);
voidprint(int);
voidsort(int);
voidmain()
{
intn,c=0,d=0;
while(1)
{
();
scanf("%d",&n);
switch(n)
{
case1:system("cls");d=input();c+=d;break;
case2:system("cls");find(c);break;
case3:system("cls");insert(c);++c;break;
case4:system("cls");deletel(c);--c;break;
case5:system("cls");print(c);break;
case6:system("cls");sort(c);break;
case7:exit(0);break;
default:
printf("输入错误,请输入(1-7): ");
printf("按回车键继续... ");
getchar();
}
}
}
voidmenu()
{
system("cls");
printf(" 学生信息管理系统 ");
printf(" *************** ");
printf(" **欢迎使用** ");
printf(" *[1]输入数据* ");
printf(" *[2]查找数据* ");
printf(" *[3]插入数据* ");
printf(" *[4]删除数据* ");
printf(" *[5]打印数据* ");
printf(" *[6]排序数据* ");
printf(" *[7]退出* ");
printf(" **欢迎使用** ");
printf(" *************** ");
printf(" 请输入你的选项(1-7):");
}
intinput()
{
inti,n;
printf("请输入要插入几位学生信息: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入第%d个学生学号:",i+1);
scanf("%d",&stud[i].code);
printf("第%d个学生姓名:",i+1);
scanf("%s",&stud[i].name);
getchar();
printf("第%d个学生性别F/M:",i+1);
scanf("%c",&stud[i].type);
printf("第%d个学生年龄:",i+1);
scanf("%d",&stud[i].age);
printf("第%d个学生语文成绩:",i+1);
scanf("%d",&stud[i].chinese);
printf("第%d个学生数学成绩:",i+1);
scanf("%d",&stud[i].math);
stud[i].total=stud[i].chinese+stud[i].math;
}
returnn;
}
voidfind(intc)
{
intn,m,i,j,l;
chark[20];
system("cls");
printf("输入1学号查找 输入2按姓名查找 ");
printf("请选择:");
scanf("%d",&n);
if(n==1)
{
printf("请输入学生学号:");
scanf("%d",&m);
for(i=0;i<c;i++)
{
if(stud[i].code==m)
{
printf("********************** ");
printf("学号:%d ",stud[i].code);
printf("姓名:%s ",stud[i].name);
printf("性别:%c ",stud[i].type);
printf("年龄:%d ",stud[i].age);
printf("语文成绩:%d ",stud[i].chinese);
printf("数学成绩:%d ",stud[i].math);
printf("总分:%d ",stud[i].total);
printf("********************** ");
printf("回车键继续 ");
getchar();
getchar();
}
}
}
else
if(n==2)
{
getchar();
printf("请输入姓名:");
fgets(k,20,stdin);
l=strlen(k);
k[l-1]='