当前位置:首页 » 编程语言 » c语言学生学籍管理系统结论与心得
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言学生学籍管理系统结论与心得

发布时间: 2022-08-24 07:29:08

c语言课程设计----学生学籍管理系统

<p><a href="https://wenwen.sogou.com/login/redirect?url=http%3a%2f%2fwww.docin.com%2fp-110271548.html" target="_blank">http://www.docin.com/p-110271548.html</a></p> <p>c语言编写的学生信息管理系统的设计与实现,不知道是不是你要的。</p>

⑵ c语言学生学籍管理系统

#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>//用getch();
using namespace std;
/*程序中一般用i表示学生序号,j表示科目序号
*其他循环变量用k,m,n表示
*最多统计10科50人的成绩信息
*temname用于临时储存姓名
*temsub用于临时储存科目名称
*data.txt用于储存成绩; data1.txt用于储存学科名称、学时、学分; data2.txt用于储存学生信息
*/
char name[51][20] ; //姓名
int Id[51] ; //学号
int sex[51] ; //性别
int tel[51] ; //联系方式
char subject[11][20] ; //学科
int score[11][51] ; //成绩 格式为score[j][i] j i 以1为初始值
int shi[11] ; //学时
int fen[11] ; //学分
/*添加科目*/
void subadd () //添加科目
{
int j;
char subjectname[20];
cout<<"输入添加科目名称:\t";
cin>>subjectname;
for (j=1;j<=10;j++)
{
if (strcmp(subject[j],"KONG")==0)
{
strcpy(subject[j],subjectname);
break;
}
}
cout<<endl<<"输入该科目学时:\t\t";
cin>>shi[j];
cout<<endl<<"输入该科目学分:\t\t";
cin>>fen [j];
cout<<endl<<"输入任意字符退出"<<endl;
getch();
}
/*删除科目*/
void subdel () //删除科目
{
int i,j,k;
char temsub[20];
cout<<"输入科目:"<<endl;
cin>>temsub;
for (j=1;j<=10;j++) //查找科目j
{
if ((strcmp(subject[j],temsub)!=0)&&(j==10))
{
cout<<"无此科目!"<<endl<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(subject[j],temsub)==0)
break;
}
for (k=j;k<=9;k++)
{
strcpy(subject[k],subject[k+1]); //删除科目j,将科目j后的数据移动
shi[k]=shi[k+1];
fen[k]=fen[k+1];
for (i=1;i<=50;i++) //删除科目j的成绩
{
score[k][i]=score[k+1][i];
}
}
cout<<"输入任意字符退出"<<endl;
getch();
}
/*判断成绩等级*/
void dengji(int af) //判断成绩等级
{
if (af>=90) cout<<"A";
else if (af>=80) cout<<"B";
else if (af>=70) cout<<"C";
else if (af>=60) cout<<"D";
else cout<<"E";
}
/*添加学生*/
void stuadd () //添加学生
{
int i,j;
char bijiao[20]="\0";
for (i=1;i<=50;i++)
{
if (strcmp(name[i],"KONG")==0)
break;
if ((strcmp(name[i],"KONG")!=0)&&(i==50))
{
cout<<"数据已满!"<<endl<<"输入任意字符退出"<<endl;
getch();
return;
}
}
cout<<"输入学生姓名:\t\t";
cin>>name[i];
cout<<endl<<"输入学生性别(男1/女2):";
cin>>sex[i];
cout<<endl<<"输入学生学号:\t\t";
cin>>Id[i];
cout<<endl<<"输入学生联系方式:\t";
cin>>tel[i];
for (j=1;j<=10;j++)
{
if (strcmp(subject[j],"KONG")==0) break;
cout<<"输入"<<subject[j]<<"成绩:\t\t";
cin>>score[j][i];
cout<<endl;
}
cout<<"姓名\t\t"<<name[i]<<endl<<"性别\t\t"<<sex[i]<<endl<<"学号\t\t"<<Id[i]<<endl<<"联系方式\t"<<tel[i]<<endl;
cout<<"科目\t\t分数\t\t等级\t\t"<<endl;
for (j=1;j<=10;j++)
{
if (strcmp(subject[j],"KONG")==0) break;
cout<<subject[j]<<"\t\t"<<score[j][i]<<"\t\t";
dengji(score[j][i]);
cout<<endl;
}
cout<<"输入任意字符退出"<<endl;
getch();
}
/*删除学生*/
void studel () //删除学生
{
int i,j,k;
char temname[20];
cout<<"输入学生姓名:"<<endl;
cin>>temname;
for (i=1;i<=50;i++)
{
if ((strcmp(name[i],temname)!=0)&&(i==50))
{
cout<<"无此学生!"<<endl<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(name[i],temname)==0)
break;
}
for (k=i;k<=49;k++)
{
strcpy(name[k],name[k+1]);
Id[k]=Id[k+1];
sex[k]=sex[k+1];
tel[k]=tel[k+1];

}
for (k=i;k<=49;k++)
{
for (j=1;j<=10;j++)
score[j][k]=score[j][k+1];
}
cout<<"输入任意字符退出"<<endl;
getch();
}
/*查询成绩*/
void chengji () //查询成绩
{
char temname[20];
int i,j=1,ji=0,zongfen=0; //学分积,总学分 ji为学分积,zongfen为总学分
cout<<"输入学生姓名:"<<endl;
cin>>temname;
cout<<endl;
for (i=1;i<=50;i++) //查找学生
{
if ((strcmp(name[i],temname)!=0)&&(i==50))
{
cout<<"无此学生!"<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(name[i],temname)==0)
break;
}
cout<<"姓名\t\t"<<name[i]<<endl<<"性别\t\t"<<sex[i]<<endl<<"学号\t\t"<<Id[i]<<endl<<"联系方式\t"<<tel[i]<<endl;
if (strcmp(subject[j],"KONG")!=0) cout<<"科目\t\t"<<"成绩\t\t"<<"等级\t\t"<<endl;
for (j=1;j<=10;j++)
{
if (strcmp(subject[j],"KONG")==0) break;
cout<<subject[j]<<"\t\t"<<score[j][i]<<"\t\t";
dengji(score[j][i]);
cout<<endl;
}
for (j=1;j<=10;j++) //计算学分积
{
if (strcmp(subject[j],"KONG")==0) break;
ji=ji+score[j][i]*fen[j];
zongfen=zongfen+fen[j];
}
ji=ji/zongfen;
cout<<"学分积\t\t"<<ji<<endl;
cout<<"输入任意字符退出"<<endl;
getch();
}
/*成绩统计*/
void tongji () //成绩统计
{
char temsub[20],na[51][20],tempna[20];
int sc[51],tempsc;
int j,k,m;
cout<<"输入科目名称:"<<endl;
cin>>temsub;
cout<<endl;
for (j=1;j<=10;j++) //查找科目j
{
if ((strcmp(subject[j],temsub)!=0)&&(j==10))
{
cout<<"无此科目!"<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(subject[j],temsub)==0)
break;
}
for (k=1;k<=50;k++) //成绩排序采用冒泡排序法
{
strcpy(na[k],name[k]);
sc[k]=score[j][k];
}
for (k=1;k<=50;k++)
{
for (m=1;m<51-k;m++)
{
if (sc[m]>sc[m+1])
{
tempsc=sc[m];strcpy(tempna,na[m]);
sc[m]=sc[m+1];strcpy(na[m],na[m+1]);
sc[m+1]=tempsc;strcpy(na[m+1],tempna);
}
}
}
cout<<"名次\t\t"<<"姓名\t\t"<<"成绩\t\t"<<"等级\t\t"<<endl;
for (k=50;k>=1;k--)
{
if (strcmp(na[k],"KONG")==0) break;
cout<<51-k<<"\t\t"<<na[k]<<"\t\t"<<sc[k]<<"\t\t";
dengji(sc[k]);
cout<<endl;
}
cout<<"输入任意字符退出"<<endl;
getch();
}
/*修改成绩*/
void xiugai() //修改成绩
{
int i,j;
char temname[20],temsub[20];
cout<<"要修改的学生姓名:\t";
cin>>temname;
cout<<endl;
for (i=1;i<=50;i++) //查找学生
{
if ((strcmp(name[i],temname)!=0)&&(i==50))
{
cout<<"无此学生!"<<endl<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(name[i],temname)==0)
{
cout<<"输入科目名称:\t\t";
cin>>temsub;
cout<<endl;
for (j=1;j<=10;j++) //查找科目j
{
if ((strcmp(subject[j],temsub)!=0)&&(j==10))
{
cout<<"无此科目!"<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(subject[j],temsub)==0)
{
cout<<"输入新的成绩:\t\t";
cin>>score[j][i];
cout<<endl;
break;
}
}
break;
}
}
cout<<"输入任意字符退出"<<endl;
getch();
}
/*主界面*/
void ShowMenu() //主界面
{
cout<<endl<<endl;
cout<<" 学 生 成 绩 管 理 系 统 "<<endl<<endl;
cout<<"***************************** 9.初始化程序 **************************"<<endl<<endl;
cout<<"----------------------------- 1.添加科目 --------------------------"<<endl;
cout<<"----------------------------- 2.删除科目 --------------------------"<<endl;
cout<<"----------------------------- 3.添加学生 --------------------------"<<endl;
cout<<"----------------------------- 4.删除学生 --------------------------"<<endl;
cout<<"----------------------------- 5.查询成绩 --------------------------"<<endl; //含学分积
cout<<"----------------------------- 6.各科排名 --------------------------"<<endl;
cout<<"----------------------------- 7.修改成绩 --------------------------"<<endl;
cout<<"----------------------------- 0.退出系统 --------------------------"<<endl;
cout<<"初始化同时会清空已输入的数据!!"<<endl<<"初次使用程序请初始化!!"<<endl;
cout<<"\n\t\t\n\t\t请选择:";
}
void readtxt() //读取信息
{
int i,j;
ifstream file("data.txt");
for (i=1;i<=50;i++)
{
for (j=1;j<=10;j++)
{
file>>score[j][i];
}
}
file.close();
}
void readtxt1()
{
int j;
ifstream file("data1.txt");
for (j=1;j<=10;j++)
{
file>>subject[j];
file>>shi[j];
file>>fen[j];
}
file.close();
}
void readtxt2()
{
int i;
ifstream file("data2.txt");
for (i=1;i<=50;i++)
{
file>>name[i];
file>>Id[i];
file>>sex[i];
file>>tel[i];
}
file.close();
}
/*存入成绩*/
void savetxt()
{
int i,j;
FILE *fp,*fp1,*fp2;
if ((fp=fopen("data.txt","w+"))==NULL) //存入成绩
{
cout<<"文件不能打开"<<endl;
exit(0);
}
for (i=1;i<=50;i++)
{
for (j=1;j<=10;j++)
{
fprintf(fp,"%d ",score[j][i]);
}
}
fclose(fp);

if ((fp1=fopen("data1.txt","w+"))==NULL) //存入学科名称、学时、学分
{
cout<<"文件不能打开"<<endl;
exit(0);
}
for (j=1;j<=10;j++)
{
fprintf(fp1,"%s %d %d ",subject[j],shi[j],fen[j]);
}
fclose(fp1);

if ((fp2=fopen("data2.txt","w+"))==NULL) //存入学生信息
{
cout<<"文件不能打开"<<endl;
exit(0);
}
for (i=1;i<=50;i++)
{
fprintf(fp2,"%s %d %d %d ",name[i],Id[i],sex[i],tel[i]);
}
fclose(fp2);
}
void chu() //初始化程序,将所有数据赋值"KONG"或0
{
int i,j;
for (j=0;j<=10;j++) //"KONG"用于表示空值,无数据
{
shi[j]=0;
fen[j]=0;
strcpy(subject[j],"KONG");
for (i=1;i<=50;i++)
{
score[j][i]=0;
}
}
for (i=0;i<=50;i++)
{
Id[i]=0;
sex[i]=0;
tel[i]=0;
strcpy(name[i],"KONG");
}
savetxt();
}
int main ()
{
system("color 30");//背景湖蓝色,字符黑色
int x,j,i=0;

readtxt ();
readtxt1();
readtxt2();
bool quit=false;
cout<<"\t\t -------------------------------------------------"<<endl; //欢迎界面开始
for(i=0;i<2;i++)
cout<<"\t\t|\t\t\t\t\t\t |"<<endl;
cout<<"\t\t|★★★★【 欢迎进入学生成绩管理系统 】★★★★ |"<<endl;
for(i=0;i<2;i++)
cout<<"\t\t|\t\t\t\t\t\t |"<<endl;
cout<<"\t\t -------------------------------------------------\n"<<endl; //欢迎界面结束
cout<<endl<<"\t\t按任意键开始";
getch();
while(!quit)
{
system("cls");
ShowMenu(); //显示主界面
cin>>x;
switch(x)
{
case 0:quit=true;break;
case 1:subadd();break;
case 2:subdel();break;
case 3:stuadd();break;
case 4:studel();break;
case 5:chengji();break;
case 6:tongji();break;
case 7:xiugai();break;
case 9:chu();break;
}
}
savetxt(); //程序退出前将数据存入记事本
return 0;
}

⑶ C语言学生学籍管理系统设计

语言学生学籍管理系统设计
你这个具体多少字,内容怎么说,我探讨清晰,你
懂我意思的

⑷ 学生学籍信息管理系统C语言的报告总结

首先做一下自我介绍,本人呢从事了3年的酒店管理软件开发职业经理人 在08年末自己创业了。就你说道的实训报告书面内容如何书写我有以下几点内容建议供你参考:
从以下几个问题出发:
■第1:如何让你自己的作品在众多同学中脱颖而出?(中心思想-做到同而不同(同样的作品不同的感觉))
■第2:如何开场引出你的作品?(设计一些问题或者经常出现的烦恼来与台下的评委做个简单的互动,把大家的注意力吸引到你的身边,同时不乏趣味面的单调,起到抛砖引玉的作用)
■第3:如何介绍自己的作品?(3.1因为针对实训课题是早已经拟定的,并给出了核心技术支持(可以是代码或者是技术理论步骤)所以此部分内容介绍应该干练些。3.2着重点在于基于题目作品之上的创意部分的思路的由来、核心技术的实现办法做重点的阐述(创意可以是功能优化方面的,复合型的多功能实现、核心技术指的是你所用到的新的知识点以及程序的算法部分))3.3对比同类作品(指你同学或者老师的提供的DEMO代码(在业内通常把演示程序叫做DEMO))的功能、性价比(运行速度、文件大小、程序稳定性、安全性等方面)做论证。让听众觉得你自己的作品更有说服力。
■第4:如何让自己的作品报告更加的吸引人呢?(1.要有完整的产品介绍(对于你来说就是一个报告书,你需要分为一下几个部分:创意方案、实体产品(把你的软件要打包刻录成光盘并包装或者在网络上发布)、PPT演示文稿、产品使用示范(在业内行话叫做DEMO演示系统))做到以上4点是产品的发布流程较完整,给人该绝更正规既可)
■■:如果你要是有其它问题或者想知道关于更多今后工作中的产品发布案例可以练习我的QQ313185141 或者登陆我工作室网络官方博客http://hi..com/firesoft 或者E-MAIL:[email protected]

⑸ 求C语言程序设计(学生学籍管理系统)的实验报告,

实验报告
实验人:** 学号:** 指导老师:**
院系:** 年级:** 班级:A**
实验地点: 实验日期:2008.06.18
----------------------------------------------------------------------------------------------------------------------
一. 实验所属课程名称:程序设计与C语言设计。
二. 实验名称:学员成绩管理系统。
三. 实验类型:操作性、综合性、设计性。
四. 实验软件:Microsoft Visual C++ 6.0。
五. 实验目的:培养我们综合运用理论知识来分析和解决实际问题的能力、严谨的科学态度、较强的程序编码能力和良好的程序设计习惯,最终实现由知识向智能的初步转化。
六. 实验内容、步骤:
(1).包含一个头文件,用于导入输入输出函数。
(2).定义一个结构( struct xueyuan ),保存每个学员的信息,包括学号( num )、姓名( name[15 ])、三门课成绩( c1、c2、c3 )、平均成绩( c )。
(3).使用结构数组保存所有学员的信息( struct xueyuan a[50] )。
(4).定义并实现单个学员信息的录入函数( struct xueyuan in() )。
(5).定义和实现main函数,调用单个学员信息输入函数( in() ),完成所有学员信息的录入。录入界面如图所示:

(6).定义一个display函数( void display (struct xuyuan a[],int t) )用来多次随时显示所有学员的信息。
(7).定于排序函数( void paixu(struct xueyuan a[],int t) ).实现按照学员平均成绩有大到小的排序功能(冒泡排序法)。
(8).在主函数中调用排序函数( paixu(a,t); ),并通过调用显示函数( display(a,t); ),显示排序前后的学员信息。如图:

(9).定于插入函数( void charu(struct xueyuan a[],int t) ),实现插入学员信息功能,要求插入后仍然保存成绩表有序(即在此函数中调用排序和显示函数)。
(10). 在主函数中调用插入函数(charu(a,t);)。如图:

(11).定于删除函数( void shanchu(struct xueyuan a[],int i,int t) ),实现删除学员信息功能,要求删除后仍保持成绩表有序。
(12)在主函数中调用删除函数(shanchu(a,i,t);),并通过调用显示函数( display(a,t); ),显示删除后的学员信息。如图:

七. 实验结果处理:通过以上步骤,编写出了一个能够实现学员成绩管理功能的程序。但通过自己对该程序不断检查和运行,发现该程序还有许多不足之处:
(1).在该程序的运行中,用户录入了第一个学员的信息后,在问用户是否继续输入时
,用户的输入可能不规范(即不是y或n),同样在问用户
是否插入和删除学员信息时该问题也同样存在。
解决该问题的关键代码如下:
printf("\n 是否继续?<y or n>");
fflush(stdin);
flag=getchar();
if(flag!='y' && flag!='n')
{
do
{
printf("对不起,你的输入有误,请重新输入:<y or n>");
fflush(stdin);
flag=getchar();
}while(flag!='y' && flag!='n');
}
(2).在用户继续输入或插入学员信息时,有可能会有重复输入的时候(即输如学号相同)。
解决该问题的关键代码如下:
printf("\n学号:");
scanf("%d",&b.num);
for(j=0;j<t;j++)//防止输入的学员的学号重复
{
if(b.num==a[j].num)
{
printf("对不起,您输入的学号重复,请重新输入:");
scanf("%d",&b.num);
j=-1;
}
}
八. 实验总结与心得体会:
从刚开始看完题目不知道从何入手到写完这个程序,我的感悟很多.................

⑹ 用c语言编写一个学生学籍管理系统

#include<iostream>
#include<string>
#include<fstream>

#include<iomanip>
using namespace std;

class student
{
protected:
int number;
char name[20];
char sex[6];
char place[20];
char nation[6];
char birth[20];
char party[10];
char id[20];
double score[3];
public:
student *next;
student(){ }
~student(){ }
char* getname(){ return name; }
int getnumber(){ return number;}
double getscore(int i) { return score[3];}
float getg(){ return (score[0]+score[1]+score[2]); }
void input()
{
int e=1;
cout<<"\t\t\t按提示输入:"<<endl;
cout<<"\t\t输入编号: ";
cin>>number;
cout<<"\t\t输入姓名: ";
cin>>name;
do
{
cout<<"\t\t输入性别: ";
cin>>sex;
if(strcmp(sex,"男")==0 || strcmp(sex,"女")==0)
{
cout<<"\t\t输入籍贯: ";
cin>>place;
cout<<"\t\t输入民族: ";
cin>>nation;
cout<<"\t\t输入生日: ";
cin>>birth;
cout<<"\t\t输入政治面貌: ";
cin>>party;
cout<<"\t\t输入身份证号: ";
cin>>id;
cout<<"\t\t输入数学分数: ";
cin>>score[0];
cout<<"\t\t输入英语分数: ";
cin>>score[1];
cout<<"\t\t输入计算机分数: ";
cin>>score[2];
e=0;
}
else
{
cout<<"\t\t\t无此类型性别!重新输入!"<<endl;
e=1;
}
}while(e);
return ;
}
void input(ifstream & is)
{
is>>number>>name>>sex>>place>>nation>>birth>>party>>id
>>score[0]>>score[1]>>score[2];
is.get();
}
void output()
{
cout<<"学生基本信息如下:"<<endl;
cout<<"编号:"<<number
<<" 姓名:"<<name
<<" 性别:"<<sex
<<" 籍贯:"<<place
<<" 民族:"<<nation
<<" 生日:"<<birth
<<" 政治面貌:"<<party<<endl
<<"身份证号:"<<id
<<" 数学:"<<score[0]
<<" 英语:"<<score[1]
<<" 计算机:"<<score[2]
<<" 总分:"<<getg()<<endl<<endl;
}
void output(ofstream & os)
{
os<<setw(6)<<number
<<setw(15)<<name
<<setw(6)<<sex
<<setw(20)<<place
<<setw(6)<<nation
<<setw(20)<<birth
<<setw(20)<<party
<<setw(20)<<id
<<setw(6)<<score[0]
<<setw(6)<<score[1]
<<setw(6)<<score[2]<<endl;
}
};

class school
{
public:
school(){ head=new student; head->next=NULL; key=0; }
~school(){ delete head; }
void input();
void mend();
void del();
int find(student **p,int num,char *pn="^");
void found();
void show();
void count();
void save();
void begin();
void clear();
char mainmenu();
int getkey(){ return key;}
void setkey(int k){ key=k; }
private:
student *head;
int key;
};
//录入函数
void school::input()
{
student *p,*p2=NULL;
p=head;
int n;
while(p->next)
p=p->next;
while(n)
{
p2=new student;
p2->input();
p->next=p2;
p2->next=NULL;
p=p->next;
school::setkey(1);
cout<<"\t\t\t按1继续,按0返回 : ";
cin>>n;
}
}
//子查找函数
int school::find(student **p1,int num,char *pn)
{
student *p;
p=head;
while(p->next)
{
(*p1)=p;
if( (p->next)->getnumber()==num||!strcmp( (p->next)->getname(),pn ) )
return 1;
p=p->next;
}
return 0;
}
//查找函数
void school::found()
{
student *p;
int num=-1,n=9;
char name[20]="^";
do
{
cout<<"\t\t1:按编号查找,2:按姓名查找: ";
cin>>n;
}while(n<1||n>2);
if(n==1)
{
cout<<"\t\t\t输入编号: ";
cin>>num;
}
if(n==2)
{
cout<<"\t\t\t输入姓名: ";
cin>>name;
}
if(!find(&p,num,name) )
{
cout<<"\t\t找不到你要查找的内容!"<<endl;
return;
}
(p->next)->output();
}
//删除函数
void school::del()
{
student *p,*p2;
int num;
cout<<"\t\t\t输入编号: ";
cin>>num;
if( !find(&p,num,"^") )
{
cout<<"\t\t找不到你要删除的内容!"<<endl;
return;
}
(p->next)->output();
p2=p->next;
p->next=p2->next;
delete p2;
school::setkey(1);
}
//显示函数
void school::show()
{
student *p;
p=head;
while(p->next)
{
(p->next)->output();
p=p->next;
}
}
//修改函数
void school::mend()
{
student *p;
int num=-1,n;
char name[20]="^";
do
{
cout<<"\t\t1:按编号修改,2:按姓名修改: ";
cin>>n;
}while(n<1||n>2);
if(n==1)
{
cout<<"\t\t\t输入编号: ";
cin>>num;
}
if(n==2)
{
cout<<"\t\t\t输入姓名: ";
cin>>name;
}
if( !find(&p,num,name) )
{
cout<<"\t\t找不到你要修改的内容!"<<endl;
return;
}
(p->next)->output();
(p->next)->input();
school::setkey(1);
}
//保存函数
void school::save()
{
student *p;
p=head;
ofstream os("student.txt",ios::out);
if (school::getkey()==1)
{
while(p->next)
{
(p->next)->output(os);
p=p->next;
}
}
cout<<"\t\t\t文件已保存! "<<endl;
school::setkey(0);
}
//初始化函数
void school::begin()
{
student *p,*p2;
p=head;
clear();
long t;
ifstream is("student.txt",ios::in);
if(!is)
{
ofstream os("student.txt",ios::out);
os.close();
return ;
}
int num=-1;
while(1)
{
num=-1;
t=is.tellg();
is>>num;
is.seekg(t);
if(num<0)
{
is.close();
return;
}
p2=new student;
p2->input(is);
p->next=p2;
p2->next=NULL;
p=p->next;
}
}
//清空函数
void school::clear()
{
student *p,*p2;
p=head->next;
while( p )
{
p2=p;
p=p->next;
delete p2;
}
}
//统计函数
void school::count()
{
student *p;
p=head;
int n=0;
double g[3]={0,0,0};
float j[3]={0,0,0};
while(p->next)
{
p=p->next;
n++;
for(int i=0;i<3;i++)
{
g[++i]=g[i]+( p->getscore(i) );
(p->getscore(i) )>=60? j[i++] : 0 ;
}
}
cout<<"\t\t\b\b\b\b数学总分:"<<g[0]<<" 平均分:"<<g[0]/n
<<" 及格率:"<<j[0]/n<<endl<<"\t\t\b\b\b\b英语总分:"<<g[1]
<<" 平均分:"<<g[1]/n<<" 及格率:"<<j[1]/n<<endl
<<"\t\t\b\b\b\b计算机总分: "<<g[2]<<" 平均分: "<<g[2]/n
<<" 及格率:"<<j[2]/n<<endl;
}
//主选菜单函数
char school::mainmenu()
{
char n[6];
cout<<"\n\n ☆☆☆☆欢迎进入高校学籍管理系统☆☆☆☆"<<endl<<endl
<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl
<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl
<<" * * 1: 录入学生信息 * *"<<endl
<<" * * 2: 显示学生信息 * *"<<endl
<<" * * 3: 查找学生信息 * *"<<endl
<<" * * 4: 删除学生信息 * *"<<endl
<<" * * 5: 修改学生信息 * *"<<endl
<<" * * 6: 统计学生成绩 * *"<<endl
<<" * * 7: 保存学生信息 * *"<<endl
<<" * * 0: 退出系统 * *"<<endl
<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl
<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl
<<" 请选择:";
cin>>n;
return n[0];
}
//主函数
void main()
{
school pp;
int k=1;
char n;
pp.begin();
while(k==1)
{
n=pp.mainmenu();
switch(n)
{
case '1':pp.input(); break;
case '2':pp.show(); break;
case '3':pp.found(); break;
case '4':pp.del(); break;
case '5':pp.mend(); break;
case '6':pp.count(); break;
case '7':pp.save(); break;
case '0':
if(pp.getkey()==1)
{
cout<<"\t\t\t是否保存? 1 : 保存 0:不保存 : ";
cin>>k;
if(k==1)
pp.save();
}
pp.clear();
k=0;
break;
}
}
}

⑺ 用c语言设计学生学籍管理系统

#include
#include
/*定义学生结构体*/
struct Student
{
char ID[20];
char Name[20];
float Mark1;
float Mark2;
float Mark3;
float Average;
};
/*声明学生数组及学生数量*/
struct Student students[1000];
int num=0;
/*求平均值*/
float Avg(struct Student stu)
{
return (stu.Mark1+stu.Mark2+stu.Mark3)/3;
}
/*通过学号返回数组下标*/
int Student_SearchByIndex(char id[])
{
int i;
for (i=0;i<num;i++)
{
if (strcmp(students[i].ID,id)==0)
{
return i;
}
}
return -1;
}
/*通过姓名返回数组下标*/
int Student_SearchByName(char name[])
{
int i;
for (i=0;i<num;i++)
{
if (strcmp(students[i].Name,name)==0)
{
return i;
}
}
return -1;
}
/*显示单条学生记录*/
void Student_DisplaySingle(int index)
{
printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("-------------------------------------------------------------\n");
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name,
students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);
}
/*插入学生信息*/
void Student_Insert()
{
while(1)
{
printf("请输入学号:");
scanf("%s",&students[num].ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students[num].Name);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark3);
getchar();
students[num].Average=Avg(students[num]);
num++;
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*修改学生信息*/
void Student_Modify()
{
//float mark1,mark2,mark3;
while(1)
{
char id[20];
int index;
printf("请输入要修改的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要修改的学生信息为:\n");
Student_DisplaySingle(index);
printf("-- 请输入新值--\n");
printf("请输入学号:");
scanf("%s",&students[index].ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students[index].Name);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark3);
getchar();
students[index].Average=Avg(students[index]);
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*删除学生信息*/
void Student_Delete()
{
int i;
while(1)
{
char id[20];
int index;
printf("请输入要删除的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要删除的学生信息为:\n");
Student_DisplaySingle(index);
printf("是否真的要删除?(y/n)");
if (getchar()=='y')
{
for (i=index;i<num-1;i++)
{
students[i]=students[i+1];//把后边的对象都向前移动
}
num--;
}
getchar();
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*按姓名查询*/
void Student_Select()
{
while(1)
{
char name[20];
int index;
printf("请输入要查询的学生的姓名:");
scanf("%s",&name);
getchar();
index=Student_SearchByName(name);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要查询的学生信息为:\n");
Student_DisplaySingle(index);
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*按平均值排序*/
void Student_SortByAverage()
{
int i,j;
struct Student tmp;
for (i=0;i<num;i++)
{
for (j=1;j<num-i;j++)
{
if (students[j-1].Average<students[j].Average)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}
}
/*显示学生信息*/
void Student_Display()
{
int i;
printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("-------------------------------------------------------------\n");
for (i=0;i<num;i++)
{
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name,
students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);
}
}
/*将学生信息从文件读出*/
void IO_ReadInfo()
{
FILE *fp;
int i;
if ((fp=fopen("Database.txt","rb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
if (fread(&num,sizeof(int),1,fp)!=1)
{
num=-1;
}
else
{
for(i=0;i<num;i++)
{
fread(&students[i],sizeof(struct Student),1,fp);
}
}
fclose(fp);
}
/*将学生信息写入文件*/
void IO_WriteInfo()
{
FILE *fp;
int i;
if ((fp=fopen("Database.txt","wb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
if (fwrite(&num,sizeof(int),1,fp)!=1)
{
printf("写入文件错误!\n");
}
for (i=0;i<num;i++)
{
if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1)
{
printf("写入文件错误!\n");
}
}
fclose(fp);
}
/*主程序*/
void main()
{
int choice;
IO_ReadInfo();
while(1)
{
/*主菜单*/
printf("\n------ 学生成绩管理系统------\n");
printf("1. 增加学生记录\n");
printf("2. 修改学生记录\n");
printf("3. 删除学生记录\n");
printf("4. 按姓名查询学生记录\n");
printf("5. 按平均成绩排序\n");
printf("6. 退出\n");
printf("请选择(1-6):");
scanf("%d",&choice);
getchar();
switch(choice)
{
case 1:
Student_Insert();
break;
case 2:
Student_Modify();
break;
case 3:
Student_Delete();
break;
case 4:
Student_Select();
break;
case 5:
Student_SortByAverage();
Student_Display();
break;
case 6:
exit(0);
break;
}
IO_WriteInfo();
}
}

⑻ c语言程序设计——学籍管理

"学生学籍管理"的C程序

#include<stdlib.h>
#include<stdio.h>
#include<malloc.h>
struct list{
int num;
char name[256];
int china;
int english;
int math;
struct list *next;
};
typedef struct list node;
typedef node *link;
void printf_list(link head)
{
link pointer;
pointer=head;
while(pointer!=NULL)
{
printf("number:%d\n",pointer->num);
printf("name:%s\n",pointer->name);
printf("china:%d\n",pointer->china);
printf("english:%d\n",pointer->english);
printf("math:%d\n",pointer->math);
pointer=pointer->next;
}
}
link creat_list(link head)
{
int cnum;
char cname[256];
int cchina;
int cenglish;
int cmath;
link pointer, newd;
int i;
head=(link)malloc(sizeof(node));
if(head==NULL)
{ printf("memory allocate failure!!\n");
exit(0);}
else{
printf("please input number:");
scanf("%d",&cnum);
printf("please input name:");
scanf("%s",&cname);
printf("please input china:");
scanf("%d",&cchina);
printf("please input english:");
scanf("%d",&cenglish);
printf("please input math:");
scanf("%d",&cmath);
head->num=cnum;
for(i=0;i<256;i++)
{
head->name[i]=cname[i];
}
head->china=cchina;
head->english=cenglish;
head->math=cmath;
head->next=NULL;
pointer=head;
while(1)
{
newd=(link)malloc(sizeof(node));
if(newd==NULL){
printf("memory allocate failure!!\n");
exit(0);}
printf("please input number:");
scanf("%d",&cnum);
if(cnum==0){
break; }
printf("please input name:");
scanf("%s",cname);
printf("please input china:");
scanf("%d",&cchina);
printf("please input english:");
scanf("%d",&cenglish);
printf("please input math:");
scanf("%d",&cmath);
newd->num=cnum;
for(i=0;i<256;i++){
newd->name[i]=cname[i];}
newd->china=cchina;
newd->english=cenglish;
newd->math=cmath;
newd->next=NULL;
pointer->next=newd;
pointer=newd;
}
}
return head;
}
void search_chengji(int key1,link head)
{
link pointer;
pointer=head;
while(pointer!=NULL)
{
if(pointer->num==key1)
{
printf("number:%d\n",pointer->num);
printf("name:%s\n",pointer->name);
printf("china:%d\n",pointer->china);
printf("english:%d\n",pointer->english);
printf("math:%d\n",pointer->math);
}
pointer=pointer->next;
}
}
link modify_chengji(link head,int key3)
{

link pointer;
char xname[256];
int xchina;
int xenglish;
int xmath;
int choose,i;
pointer=head;
printf("enter 0 exit modefiy\n");
printf("enter 1 modefiy name\n");
printf("enter 2 modefiy china\n");
printf("enter 3 modefiy english\n");
printf("enter 4 modefiy math\n");
scanf("%d",&choose);
switch(choose)
{
case 1:
printf("please input name:");
scanf("%s",&xname);
break;
case 2:
printf("please input china:");
scanf("%d",&xchina);
break;
case 3:
printf("please input english:");
scanf("%d",&xenglish);
break;
case 4:
printf("please input math:");
scanf("%d",&xmath);
break;
}
while(1){
pointer=pointer->next;
if(pointer->num==key3)
{
if(choose==1)
{ for(i=0;i<256;i++)
{
pointer->name[i]=xname[i];
}
break;
}
else if(choose==2)
{ pointer->china=xchina;
break;}
else if(choose==3)
{ pointer->english=xenglish;
break;
}
else if(choose==4)
{pointer->math=xmath;
break;}
}
}
return head;
}
link delete_chengji(link head,int key2)
{
link pointer;
link back;
pointer=head;
while(1)
{
if(head->num==key2)
{ head=pointer->next;
free(pointer);
break;
}
back=pointer;
pointer=pointer->next;
if(pointer->num==key2)
{
back->next=pointer->next;
free(pointer);
break;}
}
return head;
}
link insert_chengji(link head,link newd,int key3)
{
link pointer;
pointer=head;
while(1)
{
if(pointer==NULL){
newd->next=head;
head=newd;
break;}
if(pointer->num==key3){
newd->next=pointer->next;
pointer->next=newd;
break;}
pointer=pointer->next;
}
return head;
}
void pingjufen(link head)
{
link pointer;
int pchina,ppchina;
int penglish,ppenglish;
int pmath,ppmath;
int count;
pchina=0;
penglish=0;
pmath=0;
count=0;
pointer=head;
while(1)
{
pchina=pchina+pointer->china;
penglish=penglish+pointer->english;
pmath=pmath+pointer->math;
count=++count;
if(pointer->next==NULL)
{
break;
}
pointer=pointer->next;
}
ppchina=pchina/count;
ppenglish=penglish/count;
ppmath=pmath/count;
printf("china ping jun fen:%d\n",ppchina);
printf("english ping jun fen:%d\n",ppenglish);
printf("math ping jun fen:%d\n",ppmath);
}
void main()
{
for(;;)
{
link head;
link newd;
int key;
int keynum;
printf("0>exit the programm.\n");
printf("1>create list.\n");
printf("2>search chengji.\n");
printf("3>modify chengji.\n");
printf("4>delete chengji.\n");
printf("5>add chengji.\n");
printf("6>pingjunfeng.\n");
printf("7>print chengji.\n");
scanf("%d",&key);
switch(key){
case 0:
exit(0);
case 1:
head=creat_list(head);
if(head!=NULL)
{ printf_list(head);}
break;
case 2:
printf("please input 0 Exit.\n");
printf("please input number for search:");
scanf("%d",&keynum);
if(keynum==0){
break; }
search_chengji(keynum,head);
break;
case 3:
printf("please input number for modify:");
scanf("%d",&keynum);
head=modify_chengji(head,keynum);
if(head!=NULL)
{
printf_list(head);
}
break;
case 4:
printf("please input 0 exit\n");
printf("please input number for delete:");
scanf("%d",&keynum);
if(keynum==0){
break; }
head=delete_chengji(head,keynum);
break;
case 5:
if(head!=NULL){
newd=(link)malloc(sizeof(node));
printf("please input number:");
scanf("%d",&newd->num);
if(newd->num==0){
break;}
printf("please input name:");
scanf("%s",&newd->name);
printf("please input china:");
scanf("%d",&newd->china);
printf("please input english:");
scanf("%d",&newd->english);
printf("please input math:");
scanf("%d",&newd->math);
printf("please input the data number for insert:");
scanf("%d",&keynum);
head=insert_chengji(head,newd,keynum);
if(head!=NULL) {
printf_list(head);}
}
break;
case 6:
pingjufen(head);
break;
case 7:
printf_list(head);
break;
}
}
}

⑼ c语言学生管理系统

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
struct student{
int id;
char name[10];
int age;
int cell;
int tel;
}st[50];
int i=0;
void shuru() {
char a;
do{
printf("\n请输入身份证号:");
scanf("%d",&st[i].id);
fflush(stdin);
printf("\n请输入姓名:");
gets(st[i].name);
printf("\n") ;
printf("请输入年龄:");
scanf("%d",&st[i].age);
printf("\n请输入手机:");
scanf("%d",&st[i].cell);
printf("\n请输入电话:");
scanf("%d",&st[i].tel);
printf("\n是否继续输入另外一个学生信息?(y/n)");
fflush(stdin);
a=getchar();
i++;
}while(a=='y' && i<=50);

}

void xianshi()
{
int j;
printf("\t身份证号 \t姓名\t\t年龄\t\t手机\t\t电话\n");
for(j=0;j<i;j++)
printf(" \t%d\t\t%s \t\t%d\t\t%d\t\t%d\n",st[j].id,st[j].name,st[j].age,st[j].cell,st[j].tel);
getche();
}

void paixu() //按年龄从大到小排序函数
{
int j,k;
int temp;
for(j=0;j<i;j++)
{
for(k=0;k<i-1-j;k++)
{
if(st[k].age<st[k+1].age)
{
temp=st[k].age;
st[k].age=st[k+1].age;
st[k+1].age=temp;
}
}
}
xianshi(); //排序后输出
}

void chazhao()
{
int m;
char name[20],b;
do
{
printf("\n请输入想查找的学生姓名:");
fflush(stdin);
gets(name);
for(m=0;m<i;m++)
{
if(strcmp(name,st[m].name)==0)
{
printf("\n\t\t您查找的学生在第%d个位置找到了!!!\n",m+1);
break;
}
}
if(m>=20)
printf("\n\t\t没有找到这个学生!!!\n");
else
{
printf("\t身份证号 \t姓名\t\t年龄\t\t手机\t\t电话\t\t平均分\n");
printf(" \t%d\t\t%s \t\t%d\t\t%d\t\t%d\n",st[m].id,st[m].name,st[m].age,st[m].cell,st[m].tel);
}
printf("\n是否查找另一个学生的信息?(y/n)");
fflush(stdin);
b=getchar();

}while(b=='y');

}

void shanchu()
{
char name[20],c;
int a,b;
do
{
printf("\n请输入要删除的学生姓名:\n");
fflush(stdin);
gets(name);
for(a=0;a<i;a++)
{
if(strcmp(name,st[a].name)==0)
break;
}

for(b=a;b<i;b++)
st[b]=st[b+1];
if(a>i)
printf("\t\t没有找到这个学生!!!\n");

else
{
i--;
xianshi();
}

printf("\n是否继续删除另一个学生信息?(y/n) ");
fflush(stdin);
c=getchar();
}while(c=='y');

}

void charu()
{
shuru();
paixu();

}

void main() //主函数
{
int change;
do{
system("cls");
printf("============================学生信息管理系统===================================\n");
printf("\t\t\t一: 输入学生信息\n");
printf("\t\t\t二: 显示学生信息\n");
printf("\t\t\t三: 查找学生信息\n");
printf("\t\t\t四: 删除学生信息\n");
printf("\t\t\t五: 插入学生信息\n");
printf("\t\t\t六: 退出程序\n");
fflush(stdin);
printf("\t\t\t请输入功能选项:");
scanf("%d",&change);
switch(change)
{
case 1:
shuru(); break;
case 2:
xianshi(); break;
case 3:
chazhao(); break;
case 4:
shanchu(); break;
case 5:
charu(); break;
case 6:
break;
}
getch();
}while(change!=6);
}

⑽ c语言课程设计学籍管理系统

这个是我曾经做的,上面功课和你的不一样,把汉字改下就行了,还有那个人数,人数和排名最后一名数字一样,你运行一下就清楚了
#include<stdio.h>
#include<malloc.h>
#define M "%-6s%-6d%-6d%-6d%-6d%-6d%-7d%-6d\n"
#define H p->name,p->num,p->grade.Escore,p->grade.Mscore,p->grade.Cscore,p->grade.Pscore,p->grade.Allscore,p->grade.Allrank
typedef struct score{
int Escore;
int Mscore;
int Cscore;
int Pscore;
int Allscore;
int Allrank;
}Sco;
typedef struct student{
char name [20];
int num;
struct score grade;
struct student *next;
}*stu;
struct student *Create(struct student *head)
{
int i,n;
printf("请输入学生个数;");
scanf("%d",&n);
printf("请输入信息和成绩\n");
printf("姓名,学号,英语,高数,C语言,体育:");
printf("\n");
stu p,q;
p=q=(stu)malloc(sizeof(student));
head=p;
for(i=0;i<n;i++)
{
p->next=q;
p=q;
scanf("%s%d%d%d%d%d",q->name,&q->num,&q->grade.Escore,&q->grade.Mscore,&q->grade.Cscore,&q->grade.Pscore);
q->grade.Allscore=q->grade.Escore+q->grade.Mscore+q->grade.Cscore+q->grade.Pscore;
q=(stu)malloc(sizeof(student));
}
p->next=NULL;
return head;
}
struct student *Change(struct student *head)
{
int n,i,k;
stu p;
p=head;
printf("请输入要修改的学号:");
scanf("%d",&i);
printf("1.英语 2.高数 3.C语言 4.体育\n");
printf("请输入要修改的成绩:");
scanf("%d",&n);
while(p)
{
if(i==p->num)
switch(n)
{
case 1:
printf("请输入英语分数:");
scanf("%d",&k);
p->grade.Escore=k;
break;
case 2:
printf("请输入高数分数:");
scanf("%d",&k);
p->grade.Mscore=k;
break;
case 3:
printf("请输入C语言分数:");
scanf("%d",&k);
p->grade.Cscore=k;
break;
case 4:
printf("请输入体育分数:");
scanf("%d",&k);
p->grade.Pscore=k;
break;
}
if(i==p->num) break;
if(p->next)
p=p->next;
}
p->grade.Allscore=p->grade.Escore+p->grade.Mscore+p->grade.Cscore+p->grade.Pscore;
return head;
}
struct student *Insert(struct student *head)
{
stu p,q;
p=q=(stu)malloc(sizeof(student));
p=head;
printf("请输入姓名和学号:\n");
scanf("%s%d",q->name,&q->num);
printf("请输入英语,高数,C语言,体育成绩:\n");
scanf("%d%d%d%d",&q->grade.Escore,&q->grade.Mscore,&q->grade.Cscore,&q->grade.Pscore);
q->grade.Allscore=q->grade.Escore+q->grade.Mscore+q->grade.Cscore+q->grade.Pscore;
while(p->next)
{
p=p->next;
}
p->next=q;
p=p->next;
p->next=NULL;
return head;
}
struct student *Delet(struct student *head)
{
stu p,q,m;
int n;
printf("请输入要删除的学号:");
scanf("%d",&n);
p=head;
if(n==p->num)
{
q=p;
head=p->next;
free(p);
}
else
{
q=p->next;
while(q)
if(q->next==NULL&&n==q->num)
{
m=q;
free(q);
p->next=NULL;
q=NULL;
}
else if(q->next!=NULL&&n==q->num)
{
p->next=q->next;
free(q);
q=NULL;
}
else
{
if(q->next!=NULL)
{
p=q;
q=q->next;
}
}
}
return head;
}
void Look(struct student *head)
{
stu p;
int n,i,k;
p=head;
printf("1.按学号查找 2.按分数查找\n");
printf("请输入查找的类别:");
scanf("%d",&n);
if(n==1)
{
printf("请输入要查找的学号:");
scanf("%d",&i);
while(p)
{
if(i==p->num)
{
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
printf(M,H);
}
if(i==p->num) break;
if(p->next)
p=p->next;
}
}
if(n==2)
{
printf("1.英语 2.高数 3.C语言 4.体育 5.总分\n");
printf("请输入要查找的课程:");
scanf("%d",&i);
switch(i)
{
case 1:
printf("请输入要查找的英语最低分数:");
scanf("%d",&k);
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(p)
{
if(k<=p->grade.Escore)
printf(M,H);
p=p->next;
}
break;
case 2:
printf("请输入要查找的高数最低分数:");
scanf("%d",&k);
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(p)
{
if(k<=p->grade.Mscore)
printf(M,H);
p=p->next;
}
break;
case 3:
printf("请输入要查找C语言语最低分数:");
scanf("%d",&k);
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(p)
{
if(k<=p->grade.Cscore)
printf(M,H);
p=p->next;
}
break;
case 4:
printf("请输入要查找的体育最低分数:");
scanf("%d",&k);
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(p)
{
if(k<=p->grade.Pscore)
printf(M,H);
p=p->next;
}
break;
case 5:
printf("请输入要查找的总分最低分数:");
scanf("%d",&k);
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(p)
{
if(k<=p->grade.Allscore)
printf(M,H);
p=p->next;
}
break;
}
}

}
struct student *Rank(struct student *head,struct student *p,int j)
{
int i;
stu q;
i=p->grade.Allscore;
q=head;
while(q)
{
if(q->grade.Allscore>i)
j++;
if(!q->next)break;
q=q->next;
}
p->grade.Allrank=j;
while(p)
{
if(!p->next)break;
{
p=p->next;
Rank(head,p,1);
}
}
return head;

}
void Rankshow(struct student *head,int j)
{
int i;
stu p,q;
q=head;
p=head;
i=j;
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(q)
{
while(p)
if(i==p->grade.Allrank)
{
printf(M,H);
p=p->next;
}
else
p=p->next;
p=head;
i++;
if(!q->next)break;
q=q->next;
}
}
void show(struct student *head)
{
stu p;
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名");
printf("\n");
p=head;
while(p)
{
printf(M,H);
p=p->next;
}
}
void main()
{
int n;
struct student *head,*p;
stu L;
printf("综合素质测评系统\n");
printf("1.数据录入\n");
printf("2.数据修改\n");
printf("3.插入操作\n");
printf("4.删除操作\n");
printf("5.查找操作\n");
printf("6.排序操作\n");
printf("7.数据显示\n");
printf("0.退出系统\n");
printf("请输入操作:");
scanf("%d",&n);
while(n!=0)
{
switch(n)
{
case 0:
break;
case 1:
L=Create(head);
Rank(L,L,1);
printf("请输入操作:");
break;
case 2:
Change(L);
Rank(L,L,1);
printf("请输入操作:");
break;
case 3:
L=Insert(L);
Rank(L,L,1);
printf("请输入操作:");
break;
case 4:
L=Delet(L);
Rank(L,L,1);
printf("请输入操作:");
break;
case 5:
Look(L);
printf("请输入操作:");
break;
case 6:
Rank(L,L,1);
Rankshow(L,1);
printf("请输入操作:");
break;
case 7:
show(L);
printf("请输入操作:");
break;
}
scanf("%d",&n);
}
}