用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;inum;i++)
{
if (strcmp(students[i].ID,id)==0)
{
return i;
}
}
return -1;
}
/*通过姓名返回数组下标*/
int Student_SearchByName(char name[])
{
int i;
for (i=0;inum;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;inum-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;inum;i++)
{
for (j=1;jnum-i;j++)
{
if (students[j-1].Averagestudents[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;inum;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;inum;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;inum;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语言学生学籍管理系统
#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”;
cinsubjectname;
for (j=1;j=10;j++)
{
if (strcmp(subject[j],”KONG”)==0)
{
strcpy(subject[j],subjectname);
break;
}
}
coutendl”输入该科目学时:\t\t”;
cinshi[j];
coutendl”输入该科目学分:\t\t”;
cinfen [j];
coutendl”输入任意字符退出”endl;
getch();
}
/*删除科目*/
void subdel ()//删除科目
{
int i,j,k;
char temsub[20];
cout”输入科目:”endl;
cintemsub;
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”;
cinname[i];
coutendl”输入学生性别(男1/女2):”;
cinsex[i];
coutendl”输入学生学号:\t\t”;
cinId[i];
coutendl”输入学生联系方式:\t”;
cintel[i];
for (j=1;j=10;j++)
{
if (strcmp(subject[j],”KONG”)==0) break;
cout”输入”subject[j]”成绩:\t\t”;
cinscore[j][i];
coutendl;
}
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;
coutsubject[j]”\t\t”score[j][i]”\t\t”;
dengji(score[j][i]);
coutendl;
}
cout”输入任意字符退出”endl;
getch();
}
/*删除学生*/
void studel ()//删除学生
{
int i,j,k;
char temname[20];
cout”输入学生姓名:”endl;
cintemname;
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;
cintemname;
coutendl;
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;
coutsubject[j]”\t\t”score[j][i]”\t\t”;
dengji(score[j][i]);
coutendl;
}
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”jiendl;
cout”输入任意字符退出”endl;
getch();
}
/*成绩统计*/
void tongji ()//成绩统计
{
char temsub[20],na[51][20],tempna[20];
int sc[51],tempsc;
int j,k,m;
cout”输入科目名称:”endl;
cintemsub;
coutendl;
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;m51-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;
cout51-k”\t\t”na[k]”\t\t”sc[k]”\t\t”;
dengji(sc[k]);
coutendl;
}
cout”输入任意字符退出”endl;
getch();
}
/*修改成绩*/
void xiugai()//修改成绩
{
int i,j;
char temname[20],temsub[20];
cout”要修改的学生姓名:\t”;
cintemname;
coutendl;
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”;
cintemsub;
coutendl;
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”;
cinscore[j][i];
coutendl;
break;
}
}
break;
}
}
cout”输入任意字符退出”endl;
getch();
}
/*主界面*/
void ShowMenu()//主界面
{
coutendlendl;
cout” 学 生 成 绩 管 理 系 统 “endlendl;
cout”***************************** 9.初始化程序 **************************”endlendl;
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++)
{
filescore[j][i];
}
}
file.close();
}
void readtxt1()
{
int j;
ifstream file(“data1.txt”);
for (j=1;j=10;j++)
{
filesubject[j];
fileshi[j];
filefen[j];
}
file.close();
}
void readtxt2()
{
int i;
ifstream file(“data2.txt”);
for (i=1;i=50;i++)
{
filename[i];
fileId[i];
filesex[i];
filetel[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;i2;i++)
cout”\t\t|\t\t\t\t\t\t |”endl;
cout”\t\t|★★★★【 欢迎进入学生成绩管理系统 】★★★★ |”endl;
for(i=0;i2;i++)
cout”\t\t|\t\t\t\t\t\t |”endl;
cout”\t\t ————————————————-\n”endl; //欢迎界面结束
coutendl”\t\t按任意键开始”;
getch();
while(!quit)
{
system(“cls”);
ShowMenu();//显示主界面
cinx;
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语言编写一个学生学籍管理系统
#includeiostream
#includestring
#includefstream
#includeiomanip
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输入编号: “;
cinnumber;
cout”\t\t输入姓名: “;
cinname;
do
{
cout”\t\t输入性别: “;
cinsex;
if(strcmp(sex,”男”)==0 || strcmp(sex,”女”)==0)
{
cout”\t\t输入籍贯: “;
cinplace;
cout”\t\t输入民族: “;
cinnation;
cout”\t\t输入生日: “;
cinbirth;
cout”\t\t输入政治面貌: “;
cinparty;
cout”\t\t输入身份证号: “;
cinid;
cout”\t\t输入数学分数: “;
cinscore[0];
cout”\t\t输入英语分数: “;
cinscore[1];
cout”\t\t输入计算机分数: “;
cinscore[2];
e=0;
}
else
{
cout”\t\t\t无此类型性别!重新输入!”endl;
e=1;
}
}while(e);
return ;
}
void input(ifstream is)
{
isnumbernamesexplacenationbirthpartyid
score[0]score[1]score[2];
is.get();
}
void output()
{
cout”学生基本信息如下:”endl;
cout”编号:”number
” 姓名:”name
” 性别:”sex
” 籍贯:”place
” 民族:”nation
” 生日:”birth
” 政治面貌:”partyendl
“身份证号:”id
” 数学:”score[0]
” 英语:”score[1]
” 计算机:”score[2]
” 总分:”getg()endlendl;
}
void output(ofstream os)
{
ossetw(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返回 : “;
cinn;
}
}
//子查找函数
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:按姓名查找: “;
cinn;
}while(n1||n2);
if(n==1)
{
cout”\t\t\t输入编号: “;
cinnum;
}
if(n==2)
{
cout”\t\t\t输入姓名: “;
cinname;
}
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输入编号: “;
cinnum;
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:按姓名修改: “;
cinn;
}while(n1||n2);
if(n==1)
{
cout”\t\t\t输入编号: “;
cinnum;
}
if(n==2)
{
cout”\t\t\t输入姓名: “;
cinname;
}
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();
isnum;
is.seekg(t);
if(num0)
{
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;i3;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]/nendl”\t\t\b\b\b\b英语总分:”g[1]
” 平均分:”g[1]/n” 及格率:”j[1]/nendl
“\t\t\b\b\b\b计算机总分: “g[2]” 平均分: “g[2]/n
” 及格率:”j[2]/nendl;
}
//主选菜单函数
char school::mainmenu()
{
char n[6];
cout”\n\n ☆☆☆☆欢迎进入高校学籍管理系统☆☆☆☆”endlendl
” * * * * * * * * * * * * * * * * * * * * * * * * * * * *”endl
” * * * * * * * * * * * * * * * * * * * * * * * * * * * *”endl
” * * 1: 录入学生信息 * *”endl
” * * 2: 显示学生信息 * *”endl
” * * 3: 查找学生信息 * *”endl
” * * 4: 删除学生信息 * *”endl
” * * 5: 修改学生信息 * *”endl
” * * 6: 统计学生成绩 * *”endl
” * * 7: 保存学生信息 * *”endl
” * * 0: 退出系统 * *”endl
” * * * * * * * * * * * * * * * * * * * * * * * * * * * *”endl
” * * * * * * * * * * * * * * * * * * * * * * * * * * * *”endl
” 请选择:”;
cinn;
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:不保存 : “;
cink;
if(k==1)
pp.save();
}
pp.clear();
k=0;
break;
}
}
}
用c语言编写控制台下简单的学籍管理程序
太长,剩下的联系我,发给你!
/*11.3.2
源程序*/
/***********xuesheng.c***********/
/******头文件(.h)***********/
#include
“stdio.h”
/*I/O函数*/
#include
“stdlib.h”
/*其它说明*/
#include
“string.h”
/*字符串函数*/
#include
“conio.h”
/*屏幕操作函数*/
#include
“mem.h”
/*内存操作函数*/
#include
“ctype.h”
/*字符操作函数*/
#include
“alloc.h”
/*动态地址分配函数*/
#define
N
3
/*定义常数*/
typedef
struct
z1
/*定义数据结构*/
{
char
no[11];
char
name[15];
int
score[N];
float
sum;
float
average;
int
order;
struct
z1
*next;
}STUDENT;
/*以下是函数原型*/
STUDENT
*init();
/*初始化函数*/
STUDENT
*create();
/*创建链表*/
STUDENT
*delete(STUDENT
*h);
/*删除记录*/
void
print(STUDENT
*h);
/*
显示所有记录*/
void
search(STUDENT
*h);
/*查找*/
void
save(STUDENT
*h);
/*保存*/
STUDENT
*load();
/*读入记录*/
void
computer(STUDENT
*h);
/*计算总分和均分*/
STUDENT
*insert(STUDENT
*h);
/*插入记录*/
void
append();
/*追加记录*/
void
copy();
/*复制文件*/
STUDENT
*sort(STUDENT
*h);
/*排序*/
STUDENT
*index(STUDENT
*h);
/*索引*/
void
total(STUDENT
*h);
/*分类合计*/
int
menu_select();
/*菜单函数*/
/******主函数开始*******/
main()
{
int
i;
STUDENT
*head;
/*链表定义头指针*/
head=init();
/*初始化链表*/
clrscr();
/*清屏*/
for(;;)
/*无限循环*/
{
switch(menu_select())
/*调用主菜单函数,返回值整数作开关语句的条件*/
{
/*值不同,执行的函数不同,break
不能省略*/
case
0:head=init();break;
/*执行初始化*/
case
1:head=create();break;
/*创建链表*/
case
2:head=delete(head);break;
/*删除记录*/
case
3:print(head);break;
/*显示全部记录*/
case
4:search(head);break;
/*查找记录*/
case
5:save(head);break;
/*保存文件*/
case
6:head=load();
break;
/*读文件*/
case
7:computer(head);break;
/*计算总分和均分*/
case
8:head=insert(head);
break;
/*插入记录*/
case
9:copy();break;
/*复制文件*/
case
10:head=sort(head);break;
/*排序*/
case
11:append();break;
/*追加记录*/
case
12:head=index(head);break;
/*索引*/
case
13:total(head);break;
/*分类合计*/
case
14:exit(0);
/*如菜单返回值为14程序结束*/
}
}
}
/*菜单函数,返回值为整数*/
menu_select()
{
c