當前位置:首頁 » 編程語言 » 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標准新增)

熱點內容
cgxrar解壓密碼 發布:2024-05-05 19:47:24 瀏覽:632
ubuntu編譯linux內核 發布:2024-05-05 19:46:05 瀏覽:7
php靜態方法調用對象 發布:2024-05-05 19:24:30 瀏覽:366
電腦LNS伺服器地址 發布:2024-05-05 19:22:15 瀏覽:376
不屬於編譯程序組成的部分是什麼 發布:2024-05-05 19:05:34 瀏覽:613
壓縮麵食 發布:2024-05-05 18:55:45 瀏覽:804
linux的gz解壓命令 發布:2024-05-05 18:24:13 瀏覽:311
伺服器機櫃屬於什麼輻射 發布:2024-05-05 18:02:10 瀏覽:336
存儲成本計算 發布:2024-05-05 18:02:10 瀏覽:584
如何把手機改安卓10 發布:2024-05-05 17:39:07 瀏覽:498