用c语言设计学生学籍管理程序

用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语言设计学生学籍管理程序

用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

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月26日 16:13:40
下一篇 2024年3月26日 16:23:55

相关推荐

  • c语言改写模式,c语言实现修改功能

    c语言程序修改? 1、这个程序有4个错误,我都加粗了,第一个是m没有赋初值,第二个是while表达式中的ch=getchar()需要括号括起来,第三个是m=m*10+ch-0中的0也需要用单引号括起来,第四个是第2个while中为m!=0。 2、define容易造成误会,因为不符合一般的编程习惯,false 0, true 1;scanf放在你的那个地方是达…

    2024年5月23日
    3900
  • c语言控制代码的换码序列,c语言交换代码

    求C语言编程大神解答一下下面这个编程代码? k==5,用5去除125余0,所以r=125%5中r为0。由于!0为1,所以执行while循环体:先打印出5(k的值),再n=n/k==125/5=25;由于251则再打印出*号。这一循环结果输出是5*。 下面是我的代码,三个函数分别对应三个问题。 在实现基本要求的前提下,拓展了可以从键盘输入的功能,以下为各题代码…

    2024年5月23日
    5600
  • c语言扫描io脚状态,c语言端口扫描

    求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。 上升沿触发是当信号有上升沿时的开关动作,当电位由低变高而触发输出变化的就叫上升沿触发。也就是当测到的信号电位是从低到高也就是上升时就触发,叫做上升沿触发。 单片机怎么计算1s内下降沿的个数的C语言程序或者计算两个下降沿的时间(检测脉冲频率)计算1s内下降沿的个数方法是,一个定时器设置定时1…

    2024年5月23日
    4400
  • c语言mallloc使用的简单介绍

    C语言中使用malloc必须加#includemallo.h? 1、在C语言中使用malloc函数进行动态内存分配。malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void malloc(unsigned int num_bytes);功能:分配长度为num_bytes字节的内存块。 2、你可以看一下C语言那本…

    2024年5月23日
    4400
  • c语言三位小数,C语言三位小数

    怎样用C++语言输出精确到小数点后三位的数? 1、用C++语言输出精确到小数点后三位的数,可以参考下面给出的代码:coutsetiosflags(ios:fixed)setprecision(3)。其中 setiosflags中set是设置的意思。ios是iostream的缩写,即输入输出流。flags是标志的意思。 2、要精确到小数点后若干位,则数据类型为…

    2024年5月23日
    7300
  • c语言21点游戏,二十一点游戏代码c语言

    如何使用C语言编写简单小游戏? 1、数学知识:长方形的面积S=a*b 长方形周长L=2*(a+b)其中a b分别为长方形的宽和高。算法分析:长方形面积及周长均依赖于宽和高,所以先要输入宽高值,然后根据公式计算,输出结果即可。 2、/*也不知道你是什么级别的,我是一个新手,刚接触编程语言,以下是我自己变得一个小程序,在所有c语言的编译器(vc++0、turbo…

    2024年5月23日
    6400
  • c语言当中的null,C语言当中的符号

    C/C++中,NULL和null的区别是什么? nul 和 null要看编译器,不同的编译器有所区别。 所以C或者C++中都使用一个特殊定义NULL表示无效值,其本质就是未定义具体数据类型的0值。 null是是什么都没有的意思。在java中表示空对象。 本意是“空的;元素只有零的”意思。计算机中通常表示空值,无结果,或是空集合。\x0d\x0a在ASCII码…

    2024年5月23日
    4500
  • 包含c语言对txt文件命名的词条

    如何在C语言编程里面修改源文件名字 如果你是在WINDOWS的话,简单了,随便用个编辑器,比如记事本,然后写c源程序,保存到你想要保存的位置。如果你在DOS下,可以用edit,写好以后,按alt键,选择文件菜单,然后保存。 用open打开文件,注意操作模式使用“修改”或者“添加” 用write或者fprintf向文件中写入你的内容。 用close关闭文件。 …

    2024年5月23日
    4900
  • 学c语言编程,学c语言编程用什么软件

    编程开发必须要学C语言吗? 1、要学习。编程开发的学习内容主要包括c语言、python和c+语言。C语言作为一种简单灵活的高级编程语言,它是一个面向过程的语言,一般是作为计算机专业的基础入门语言课程。 2、C语言。对于刚接触编程的人来说,先学习C语言是非常重要的。C语言可以说是是计算机编程语言的鼻祖,其他的编程语言几乎全是由C语言变化衍生出来的。 3、不需要…

    2024年5月23日
    3500
  • c语言用string定义字符串,c语言中用string类型来处理字符串类型

    C++怎样定义定义字符串 1、第一是字符数组来表示字符串。用下面的语句声明:char a[10];C语言中字符数组与字符串的唯一区别是字符串末尾有一个结束符\0,而字符数组不需要。 2、在C中定义字符串有下列几种形式:字符串常量,char数组,char指针 字符串常量 即:位于一对双括号中的任何字符。双引号里的字符加上编译器自动提供的结束标志\0字符,作为 …

    2024年5月23日
    4300

发表回复

登录后才能评论



关注微信