当前位置:首页 » 编程语言 » c语言成绩管理系统设计

c语言成绩管理系统设计

发布时间: 2022-08-22 23:49:04

c语言学生成绩管理系统的设计

#include<stdio.h>
#define N 40
#include<string.h>
struct student{
long num;
char name[10];
float score[5];
int number[6][6];
float sum;
};
void menu()
{
printf(" ****************************************\n");
printf(" 1--------------查询\n");
printf(" 2--------------排序\n");
printf(" 3--------------插入\n 4--------------删除\n");
printf(" 0--------------退出\n");
printf(" ****************************************\n");
}
void input(struct student s[],int *n)
{
printf("please intput the number of the student you want to add\n");
int x,i,j,b,flag=0;
scanf("%d",&x);
b=*n+x;
for(i=*n+1;i<=b;i++)
{
flag=1;
scanf("%ld",&s[i].num);
for(j=1;j<i;j++)
if(s[i].num==s[j].num&&i>1)
{ printf("input error\n");flag=0;i--;b--;break;}
if(flag)
{
scanf("%s",s[i].name);
for(j=1;j<=5;j++)
scanf("%f",&s[i].score[j]);
}
}
*n=b;if(flag) printf("添加成功\n");
}
void Delete(struct student s[],int *n)
{
printf("please input the name of the student you want to delete\n");
char m[10];int j;
scanf("%s",m);
for(j=1;j<=*n;j++)
if(strcmp(s[j].name,m)==0)
{
*n=*n-1;
for(;j<=*n;j++)
s[j]=s[j+1];
break;
}
printf("Delete succeed!\n");
}
void find(struct student s[],int n)
{
long b=0;char c[10],kk[10];
printf(" ****************************************\n");
printf(" 1.1----------按学号查询\n");
printf(" 1.2----------按姓名查询\n");
printf(" 1.3----------按成绩查询\n");
printf(" ****************************************\n");
int j,e;
float soc;
scanf("%s",kk);
if(strcmp(kk,"1.1/0")==0){
printf("请输入学生学号\n");
scanf("%s",c);
{
for(j=0,e=strlen(c);j<e;j++)
b=b*10+c[j]-48;
printf("学号\t姓名\t高数\t英语读写 英语听说 计导 程序(一) 总分\n");
for(j=1;j<=n;j++)
if(b==s[j].num)
{
printf("%ld\t%s\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\n",s[j].num,s[j].name,s[j].score[1],s[j].score[2],s[j].score[3],s[j].score[4],s[j].score[5],s[j].sum);
}
}
}
else if(strcmp(kk,"1.2")==0)
{
printf("请输入学生姓名\n");
scanf("%s",c);
printf("学号\t姓名\t高数\t英语读写 英语听说 计导 程序(一) 总分\n");
for(j=1;j<=n;j++)
if(strcmp(s[j].name,c)==0)
{
printf("%ld\t%s\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\n",s[j].num,s[j].name,s[j].score[1],s[j].score[2],s[j].score[3],s[j].score[4],s[j].score[5],s[j].sum);
}
}
else
{
printf("请输入学生分数\n");
scanf("%f",&soc);
printf("学号\t姓名\t高数\t英语读写 英语听说 计导 程序(一) 总分\n");
for(j=1;j<=n;j++)
if(s[j].sum==soc)
{
printf("%ld\t%s\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\n",s[j].num,s[j].name,s[j].score[1],s[j].score[2],s[j].score[3],s[j].score[4],s[j].score[5],s[j].sum);
}
}
}
void sort(struct student s[],int n)
{
int j,f,g,h;
for(j=1;j<=5;j++)
for(h=1;h<=5;h++)
s[0].number[j][h]=0;
for(j=1;j<=n;j++)
for(f=1,s[j].sum=0;f<=5;f++)
s[j].sum=s[j].sum+s[j].score[f];
for(f=1;f<=5;f++)
for(g=1;g<=n;g++)
if(s[g].score[f]>=90)
s[0].number[f][5]++;
else if(s[g].score[f]>=80&&s[g].score[f]<90)
s[0].number[f][4]++;
else if(s[g].score[f]>=70&&s[g].score[f]<80)
s[0].number[f][3]++;
else if(s[g].score[f]>=60&&s[g].score[f]<70)
s[0].number[f][2]++;
else
s[0].number[f][1]++;
struct student temp;
for(j=1;j<n;j++)
for(g=1;g<=n-j;g++)
if(s[g].sum>s[g+1].sum )
{
temp=s[g];
s[g]=s[g+1];
s[g+1]=temp;
}
}
void print1(struct student s[],int n)
{
printf("学号\t姓名\t高数\t英语读写 英语听说 计导 程序(一) 总分\n");
for(;n>0;n--)
printf("%ld\t%s\t%-0.2f\t%0.2f\t %0.2f\t %0.2f\t %0.2f\t %0.2f\n",s[n].num,s[n].name,s[n].score[1],s[n].score[2],s[n].score[3],s[n].score[4],s[n].score[5],s[n].sum );
}
int main()
{
menu();
int x,n=0;
struct student stu[N];
while(scanf("%d",&x)!=EOF&&x!=0)
{
switch(x)
{
case 1:find(stu,n);break;
case 2:sort(stu,n);print1(stu,n);break;
case 3:input(stu,&n);sort(stu,n);break;
case 4:Delete(stu,&n);break;
default:printf("Input error!\n");
}
}
return 0;
}

注:
(1)在插入的时候,先是输入添加的学生个数,按回车之后分别输入学生的学号、姓名、高数成绩、英语读写成绩、英语听说成绩、计算机导论、程序设计成绩
(2)在删除时,可以输入学生的姓名或者学号

㈡ 用c语言做一个学生成绩管理系统。。。。。

自己制作成绩查询系统成本高昂,建议使用易查分系统,三分钟即可搭建完成。

㈢ C语言程序设计学生成绩管理系统

给你把核心大约写一下吧你再具体修改一下
sum(中间成绩求和数据)=o
for(i=0;i<5;i++)
{sum=科目数组名[i][0]+sum<br>}
sum/5=平均成绩
sum1=0
for(i=0;i<5;i++)
{
for(j=0;j<50;j++)
{科目数组名[i][j]+sum1=sum1;
}
sum1/50=平均成绩
输出
}
至于找出学生和课程,你找出2维数组里的最大值,也是for循环也能完成,然后看他所在的行列,就能得出相应的学生和课程了、

㈣ C语言课程设计学生成绩管理系统

这是昨晚一个人找我做的,他给了我一百块钱买我的代码,现在我不要你的钱了,你采纳我我就发代码给你

㈤ C语言设计 学生成绩管理系统

#include <iostream.h>
#include <string.h>
int i=0;
int No[50],yu[50],shu[50],zhuan[50],sum[50],ave[50];
char Name[50][20];
void Duan();
void chi();
void Pi();
void input();
void output();
void main()
{
char n;
while(n!='f')
{
cout<<"***********************************************************"<<endl;
cout<<" a:录入学生信息 "<<endl;
cout<<" b:求平均分总分 "<<endl;
cout<<" c:按总分进行排序 "<<endl;
cout<<" d:追加入一信息 "<<endl;
cout<<" e:输出学生信息 "<<endl;
cout<<" f:退出录入 "<<endl;
cout<<"***********************************************************"<<endl;

cin>>n;
switch(n)
{
case 'a' :
Duan();
break;
case 'b':
chi();
break;
case 'c' :
Pi();
break;
case 'd' :
input();
break;
case 'e' :
output();
break;
defaul:
break;
}
}
}
void Duan()
{

cout<<"输入学生信息名字"<<endl;
cin>>Name[i];
cout<<"输入学生信息学号"<<endl;
cin>>No[i];
cout<<"输入学生信息语文"<<endl;
cin>>yu[i];
cout<<"输入学生信息数学"<<endl;
cin>>shu[i];
cout<<"输入学生信息专业"<<endl;
cin>>zhuan[i];
i++;
}
void chi()
{
for (int a=0;a<=i;a++)
{
sum[a]=yu[a]+shu[a]+zhuan[a];
ave[a]=sum[a]/3;
}
cout<<"***********平均分,总分计算完毕!*******************************"<<endl;
}
void Pi()
{
int a1,a3,a4,a5,a6,a7;
char a2[20];
for (int a=1;a<i-1;a++)
{
int m=a-1;
for(int b=0;b<m-1;b++)
{
if(sum[b]<sum[b+1])
{
a1=No[b];No[b]=No[b+1];No[b+1]=a1;
a3=yu[b];yu[b]=yu[b+1]; yu[b+1]=a3;
a4=shu[b];shu[b]=shu[b+1]; shu[b]=a4;
a5=zhuan[b];zhuan[b]=zhuan[b+1]; zhuan[b]=a5;
a6=sum[b];sum[b]=sum[b+1]; sum[b]=a6;
a7=ave[b];ave[b]=ave[b+1]; ave[b]=a7;
strcpy(a2,Name[b]);
strcpy(Name[b],Name[b+1]);
strcpy(Name[b+1],a2);
}
}
}
cout<<"***********************排序完毕*********************************"<<endl;
}
void input()
{
Duan();
sum[i-1]=yu[i-1]+shu[i-1]+zhuan[i-1];
ave[i-1]=sum[i-1]/3;
Pi();
}
void output()
{
for(int x=0;x<i;x++)
{
cout<<Name[x]<<endl;
cout<<No[x]<<endl;
cout<<yu[x]<<endl;
cout<<shu[x]<<endl;
cout<<zhuan[x]<<endl;
cout<<sum[x]<<endl;
cout<<ave[x]<<endl;
}
}

这个是我去年写的!没有发表过的啊!下边的是我找的你看看吧!

#include<string.h>
#include<iostream.h>
#define N 10
class std
{
int No;
char name[10];
float Eng;
float Chi;
float Mat;
float total;
public:
void setname(char na[]){strcpy(name,na);};
void setNo(int n){No=n;};
void setEng(float e){Eng=e;};
void setChi(float c){Chi=c;};
void setMat(float m){Mat=m;};
void settotal(float t){total=t;};
char* getname(){return name;};
int getNo(){return No;};
float getEng(){return Eng;};
float getChi(){return Chi;};
float getMat(){return Mat;};
float gettotal(){ return total;};
};

class compute
{
int ns;
std na[N];
static float sumEng;
static float sumChi;
static float sumMat;
public:
void getdata();
void sort();
void disp();
float aveEng()
{
return sumEng/ns;
}
float aveChi()
{
return sumChi/ns;
}
float aveMat()
{
return sumMat/ns;
}
};

float compute::sumEng=0.0;
float compute::sumChi=0.0;
float compute::sumMat=0.0;
void compute::getdata()
{
int i,sno;
float En,Ch,Ma,Tol;
char tname[10];
cout<<"Please input the amounts of students!";
cin>>ns;
for(i=0;i<ns;i++)
{
cout<<"Input the student's NO.:";
cin>>sno;
na[i].setNo(sno);
cout<<"Input the student's name.:";
cin>>tname;
na[i].setname(tname);
cout<<"Input the student's English score:";
cin>>En;
sumEng=sumEng+En;
na[i].setEng(En);
cout<<"Input the student's Chinese score:";
cin>>Ch;
sumChi=sumChi+Ch;
na[i].setChi(Ch);
cout<<"Input the student's Maths score:";
cin>>Ma;
sumMat=sumMat+Ma;
na[i].setMat(Ma);
Tol=En+Ch+Ma;
na[i].settotal(Tol);
}
}
void compute::sort() //直接选择排序
{
int i,j,pick;
std temp;
for(i=0;i<ns-1;i++)
{
pick=i;
for(j=i+1;j<ns;j++)
{
if(na[j].gettotal()>na[pick].gettotal())
pick=j;
}
temp=na[i];
na[i]=na[pick];
na[pick]=temp;
}
}
void compute::disp()
{
cout<<"List"<<" NO"<<" Name"<<" English"<<" Chinese"<<" Maths"<<" Total "<<endl;
for(int i=0;i<ns;i++)
{
cout<<i+1<<" "<<na[i].getNo()<<" "<<na[i].getname()<<" "<<na[i].getEng()<<" "
<<na[i].getChi()<<" "<<na[i].getMat()<<" "<<na[i].gettotal()<<endl;
}
}

void main()
{
compute obj;
obj.getdata();
obj.sort();
obj.disp();
cout<<"The average score of English is:"<<obj.aveEng()<<endl;
cout<<"The average score of Chinese is:"<<obj.aveChi()<<endl;
cout<<"The average score of Maths is:"<<obj.aveMat()<<endl;
}

㈥ c语言实现设计一个学生成绩管理系统课程

参考代码如下,不过还是建议自己写一写比较好:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct student //结构体
{
char name[20]; //姓名
char number[20]; //学号
double math; //数学
double english; //英语
double chinese; //语文
double program; //程序
}s[50];

void head() //界面
{
printf(
"**********************************************************************\n"
"** **\n"
"** **\n"
"** 学生成绩管理系统 **\n"
"** **\n"
"** 1.信息录入 **\n"
"** 2.信息统计 **\n"
"** 3.信息浏览 **\n"
"** 4.信息查询 **\n"
"** 5.信息排序 **\n"
"** 6.信息删除 **\n"
"** 0.退出系统 **\n"
"** **\n"
"**********************************************************************\n"
);
}
void ru(struct student s[], int* n) //文件导入函数
{
FILE *p;
int i=*n;
if((p=fopen("数据.txt", "r"))==NULL)
{
n=n;
}
else
{
while(!feof(p))
{
fscanf(p, "%s%s%lf%lf%lf%lf\n", s[i].name, s[i].number, &s[i].math, &s[i].english, &s[i].chinese, &s[i].program);
i++;
*n=*n+1;
}
}
fclose(p);
}
void chu(struct student s[], int n)
{
FILE *p;
int i=0;
if((p=fopen("数据.txt", "w"))==NULL)
{
printf("无法打开此文件!");
}
else
{
while(i<n-1)
{
fprintf(p, "%s %s %lf %lf %lf %lf\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
i++;
}
fprintf(p, "%s %s %lf %lf %lf %lf", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
}
fclose(p);
}
void dayin(struct student s[], int n) //显示所有信息
{
int i;
double all=0.0;
printf("\n姓名\t\t学号\t\t数学\t英语\t语文\t程序\t总分\n");
for (i=0; i<n; i++)
{
all=s[i].math+s[i].english+s[i].chinese+s[i].program;
printf("%s\t\t%s\t\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program, all);
}
}
void shuru(struct student s[], int* n) //信息输入函数
{
int i=*n, j, k, m;
printf("请输入学生姓名:");
scanf("%s", s[i].name);
printf("请输入学生学号:");
for (j=0; ; j++)
{
m=0;
scanf("%s", s[i].number);
for (k=0; k<i; k++)
{
if (strcmp(s[i].number, s[k].number)==0)
{
m=m+1;
printf("学号重复,请重新输入学号:");
break;
}
}
if (m==0)
{
break;
}
}
printf("请输入数学成绩:");
scanf("%lf", &s[i].math);
printf("请输入英语成绩:");
scanf("%lf", &s[i].english);
printf("请输入语文成绩:");
scanf("%lf", &s[i].chinese);
printf("请输入程序成绩:") ;
scanf("%lf", &s[i].program);
printf("添加信息成功!\n");
*n=*n+1;
chu(s, *n);
}
void paixu(struct student s[], int n) //排序函数
{
int i, j;
double all1, all2;
struct student stu;
for (i=0; i<n-1; i++)
{
for (j=i+1; j<n; j++)
{
all1=s[i].math+s[i].english+s[i].chinese+s[i].program;
all2=s[j].math+s[j].english+s[j].chinese+s[j].program;
if (all1<all2)
{
stu=s[i];
s[i]=s[j];
s[j]=stu;
}
}
}
printf("排序后的数据:\n");
dayin(s, n);
}
void chazhao(struct student s[], int n) //查找函数
{
char name[20], num[20];
int m1, m2=0, i, j;
printf("1.按姓名查找\n2.按学号查找\n选择查询方式(1或2):");
scanf("%d", &m1);
if (m1==1)
{
printf("请输入您要查找的学生姓名:");
scanf("%s", name);
for (i=0; i<n; i++)
{
if (strcmp(s[i].name, name)==0)
{
m2=m2+1;
if (m2==1)
{
printf("\n姓名\t\t学号\t数学\t英语\t语文\t程序\n");
}
printf("%s\t\t%s\t\t%s\t\t%s\t\t%s\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
}
}
if (m2==0)
{
printf("没有此学生信息!\n");
}
}
else if (m1==2)
{
printf("请输入您要查找的学生学号:");
scanf("%s", num);
j=0;
for (i=0; i<n; i++)
{
if (strcmp(s[i].number, num)==0)
{
m2=m2+1;
if (m2==1)
{
printf("\n姓名\t\t学号\t数学\t英语\t语文\t程序\n");
}
printf("%s\t\t%s\t\t%s\t\t%s\t\t%s\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
}
}
if (m2==0)
{
printf("没有此学生信息!\n");
}
}
}
void shanchu(struct student s[], int* n) //删除函数
{
char num[20];
int m=0, i, j;
printf("请输入您要删除的学生学号:");
scanf("%s", num);
for (i=0; i<=*n; i++)
{
if (strcmp(s[i].number, num)==0)
{
m=m+1;
for (j=i; j<*n; j++)
{
s[j]=s[j+1];
}
*n=*n-1;
}
}
if (m==0)
{
printf("没有此学生信息!\n");
}
else
{
chu(s, *n);
printf("删除完毕!\n");
}
}
void allAndAver(struct student s[], int n)
{
int i ;
double all=0.0, aver=0.0;
for (i=0; i<n; i++)
{
all=s[i].math+s[i].english+s[i].chinese+s[i].program;
aver=all/4;
printf("%s\t\t%s\t\t%.1lf\t%.1lf\n", s[i].name, s[i].number, all, aver);
}
}
void Fail(struct student s[], int n) //统计单科不及格人数
{
int i, fail[4]={0};
for (i=0; i<n; i++)
{
if (s[i].math<60)
{
fail[0]++;
}
if (s[i].english<60)
{
fail[1]++;
}
if (s[i].chinese<60)
{
fail[2]++;
}
if (s[i].program<60)
{
fail[3]++;
}
}
printf("\n不及格信息:\n");
printf("数学不及格的人数为:%d人\n", fail[0]);
printf("英语不及格的人数为:%d人\n", fail[1]);
printf("语文不及格的人数为:%d人\n", fail[2]);
printf("程序不及格的人数为:%d人\n", fail[3]);
}
void Max(struct student s[], int n) //统计单科最高分人数
{
int i, counter[4]={0};
double max[4]={s[0].math, s[0].english, s[0].chinese, s[0].program};
for (i=0; i<n; i++)
{
if (s[i].math>max[0])
{
max[0]=s[i].math;
}
if (s[i].math>max[1])
{
max[1]=s[i].math;
}
if (s[i].math>max[2])
{
max[2]=s[i].math;
}
if (s[i].math>max[3])
{
max[3]=s[i].math;
}
}
for (i=0; i<n; i++)
{
if (s[i].math==max[0])
{
counter[0]++;
}
if (s[i].math==max[1])
{
counter[1]++;
}
if (s[i].math==max[2])
{
counter[2]++;
}
if (s[i].math==max[3])
{
counter[3]++;
}
}
printf("\n最高分信息:\n");
printf("数学最高分为:%.1lf, 人数为:%d人\n", max[0], counter[0]);
printf("英语最高分为:%.1lf, 人数为:%d人\n", max[1], counter[1]);
printf("语文最高分为:%.1lf, 人数为:%d人\n", max[2], counter[2]);
printf("程序最高分为:%.1lf, 人数为:%d人\n", max[3], counter[3]);
}
void Min(struct student s[], int n) //统计单科最低分人数
{
int i, counter[4]={0};
double min[4]={s[0].math, s[0].english, s[0].chinese, s[0].program};
for (i=0; i<n; i++)
{
if (s[i].math<min[0])
{
min[0]=s[i].math;
}
if (s[i].math<min[1])
{
min[1]=s[i].math;
}
if (s[i].math<min[2])
{
min[2]=s[i].math;
}
if (s[i].math<min[3])
{
min[3]=s[i].math;
}
}
for (i=0; i<n; i++)
{
if (s[i].math==min[0])
{
counter[0]++;
}
if (s[i].math==min[1])
{
counter[1]++;
}
if (s[i].math==min[2])
{
counter[2]++;
}
if (s[i].math==min[3])
{
counter[3]++;
}
}
printf("\n最低分信息:\n");
printf("数学最低分为:%.1lf, 人数为:%d人\n", min[0], counter[0]);
printf("英语最低分为:%.1lf, 人数为:%d人\n", min[1], counter[1]);
printf("语文最低分为:%.1lf, 人数为:%d人\n", min[2], counter[2]);
printf("程序最低分为:%.1lf, 人数为:%d人\n", min[3], counter[3]);
}
void tongji(struct student s[], int n) //统计函数
{
printf("统计信息如下:\n");
printf("\n姓名\t\t学号\t\t总分\t平均分\n");
allAndAver(s, n);
Max(s, n);
Min(s, n) ;
Fail(s, n);
}
int main() //主函数
{
int k, n=0;
ru(s, &n);
chu(s, n);
while (1)
{
head();
printf("\n请按对应的键选择相应的功能:");
scanf("%d",&k);
switch (k)
{
case 1:
shuru(s, &n);
break;
case 2:
tongji(s, n);
break;
case 3:
dayin(s, n);
break;
case 4:
chazhao(s, n);
break;
case 5:
paixu(s, n);
break;
case 6:
shanchu(s, &n);
break;
case 0:
exit(1);
break;
default : printf("请输入正确的命令!\n");
}
system("pause");
system("cls");
}
return 0;
}

㈦ 设计一个C语言学生成绩管理系统

给你一个参考;记住学习永远是自己的,要学会自己思考,真学实用

/*用链表实现学生成绩信息的管理*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct stud_node
{
int num;
char name[20];
int score;
struct stud_node *next;
};
struct stud_node *Create_Stu_Doc();/*新建链表*/
struct stud_node *InsertDoc(struct stud_node *head,struct stud_node *stud);/*插入*/
struct stud_node *DeleteDoc(struct stud_node *head,int num);/*删除*/
void Print_Stu_Doc(struct stud_node *head);/*遍历*/

int main(void)
{
struct stud_node *head,*p;
int choice,num,score;
char name[20];
int size=sizeof(struct stud_node);

do
{
printf("1:添加 2:插入 3:删除 4:打印 0:退出\n");
scanf("%d",&choice);
switch(choice)
{
case 1:head=Create_Stu_Doc();break;
case 2:printf("请输入学号,姓名和成绩:\n");
scanf("%d%s%d",&num,name,&score);
p=(struct stud_node *)malloc(size);
p->num=num;
strcpy(p->name,name);
p->score=score;
head=InsertDoc(head,p);
break;
case 3:
printf("请输入学号:\n");
scanf("%d",&num);
head=DeleteDoc(head,num);
break;
case 4:
Print_Stu_Doc(head);
break;
case 0:break;
}
}while(choice!=0);

return 0;
}

/*新建链表*/
struct stud_node *Create_Stu_Doc()
{
struct stud_node *head,*p;
int num,score;
char name[20];
int size=sizeof(struct stud_node);

head=NULL;
printf("请输入学号,姓名和成绩:\n");
scanf("%d%s%d",&num,name,&score);
while(num!=0)
{
p=(struct stud_node*)malloc(size);
p->num=num;
strcpy(p->name,name);
p->score=score;
head=InsertDoc(head,p);/*调用插入函数*/
scanf("%d%s%d",&num,name,&score);
}
return head;
}

/*插入操作*/
struct stud_node *InsertDoc(struct stud_node *head,struct stud_node *stud)
{
struct stud_node *ptr,*ptr1,*ptr2;

ptr2=head;
ptr=stud;/*ptr指向待插入的新的学生记录结点*/
/*原链表为空时的插入*/
if(head==NULL)
{
head=ptr;
head->next=NULL;
}
else/*原链表不为空时的插入*/
{
while((ptr->num>ptr2->num)&&(ptr2->next!=NULL))
{
ptr1=ptr2;/*ptr1,ptr2各后移一个结点*/
ptr2=ptr2->next;
}
if(ptr->num<=ptr2->num)/*在ptr1与ptr2之间插入新结点*/
{
if(head==ptr2)
head=ptr;
else ptr1->next=ptr;
ptr->next=ptr2;
}
else/*新插入结点成为尾结点*/
{
ptr2->next=ptr;
ptr->next=NULL;
}
}
return head;
}

/*删除操作*/
struct stud_node *DeleteDoc(struct stud_node *head,int num)
{
struct stud_node *ptr1,*ptr2;

/*要被删除结点为表头结点*/
while(head!=NULL && head->num==num)
{
ptr2=head;
head=head->next;
free(ptr2);
}
if(head==NULL)/*链表空*/
return NULL;
/*要被删除结点为非表头结点*/
ptr1=head;
ptr2=head->next;/*从表头的下一个结点搜索所有符合删除要求的结点*/
while(ptr2!=NULL)
{
if(ptr2->num==num)/*ptr2所指结点符合删除要求*/
{
ptr1->next=ptr2->next;
free(ptr2);
}
else
ptr1=ptr2;/*ptr1后移一个结点*/
ptr2=ptr1->next;/*ptr2指向ptr1的后一个结点*/
}
return head;
}

/*遍历操作*/
void Print_Stu_Doc(struct stud_node *head)
{
struct stud_node *ptr;
if(head==NULL)
{
printf("\nNo Records\n");
return;
}
printf("\nThe Students' Records Are:\n");
printf("Num\tName Score\n");
for(ptr=head;ptr;ptr=ptr->next)
printf("%8d %20s %6d\n",ptr->num,ptr->name,ptr->score);
}

㈧ 用C语言设计一个学生成绩管理系统

#include <stdio.h>
#include <string.h>

#include <stdlib.h>
#defineMAX1000

/*定义学生成绩信息结构*/
struct stu
{

char id[8];
char name[8];


(8)c语言成绩管理系统设计扩展阅读:

short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)

long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)

long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)

signed:修饰整型数据,有符号数据类型。(C89标准新增)

unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)

复杂类型关键字

struct:结构体声明。(K&R时期引入)

union:联合体声明。(K&R时期引入)

enum:枚举声明。(C89标准新增)

typedef:声明类型别名。(K&R时期引入)

sizeof:得到特定类型或特定类型变量的大小。(K&R时期引入)

inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)

热点内容
视频软件源码 发布:2024-05-18 22:22:24 浏览:428
安卓换苹果sim卡去哪里换 发布:2024-05-18 22:21:29 浏览:636
顺丰薪资默认密码是多少 发布:2024-05-18 22:15:04 浏览:790
浏览器打不开服务器通信怎么办 发布:2024-05-18 21:32:22 浏览:961
创建存储空间 发布:2024-05-18 21:20:57 浏览:122
sql日期和时间 发布:2024-05-18 21:16:19 浏览:143
安卓网页怎么截取 发布:2024-05-18 20:53:56 浏览:972
在配置更新的时候没电关机怎么办 发布:2024-05-18 20:36:10 浏览:928
win7访问win2000 发布:2024-05-18 20:27:41 浏览:389
青岛人社局密码多少 发布:2024-05-18 20:19:10 浏览:735