您的位置 首页 百科问答

学生成绩管理系统c语言

问题补充说明:一、菜单功能: 1.添加信息 2.删除信息 3.修改信息 4.查询信息 5.显示所有 6.退出系统二、学生信息 1.学号(唯一) 2.姓名 3.性别(只能是 w 或 m) 4.电话 5.语文成绩 6.数学成绩 7.英语成绩 8.平均成绩(上面三个成绩的平均值)

学生成绩管理系统c语言

用C语言程序编写一个学生成绩管理系统,界面用菜单360问答进行设计。菜单功能可用函数实现。

#include

#include

#include

#include//工语洲局脱用getch();

usingnamespacestd;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌新呀是区告室必拿学圆﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

classStudent

{

直点办地选public:

charname[20];

charId[20];

intCnum;//C++课程得分

intMnum;//汇编课程得分

intEnum;//嵌入式操作系统课程得分

intsum;//总分

Student*Next;

voidInput()

{

cout<<"\t\t请输入学生的姓名:";cin>>name;

cout<<"\t\t请输入学生的学号:";c简染in>>Id;

cout<<"\t\t请输入C++课程的成绩:";cin>>Cnum;

cout<<"\t\t请输入汇编课程的成绩:";cin>>Mnum;

cout<<"\t\t请输入嵌入式操作系统课程的成绩:";cin>>Enum;

sum=Cnu题支m+Mnum+Enum;

}

voidReadFile(istream&in)

{

in>>name>>Id>>Cnum>>Mnum>>Enum>>s院重um;

}

voidShow()

{

cout<<"姓名:"<

<<"汇编:"<张演早似厂三水如样买风操作系统:"<

}

};

/翻和著县充鱼延五宜艺至/﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

classS率行tudentmassage

{

public:

Stu双见缺存克混础红望件划dentmassage();

~Student值育拉显粮终获massage();

voidShowMenu江器事真滑矛须你几斤();

voidFind();

voidSave();

vo少李送初大期下菜干哪括idModifyItem();

vo深挥idRemoveItem();

voidSwap(Student*,Stu落dent*);

voidSort();

//vo前细欢华是对idUnpass();

intListCount();

//voidAverage();

voidDisplay()

{

for(Student*p=Head->Next;p!=End;p=p->Next)

p->Show();

cout<<"输入任意字符!继续……";

getch();

}

voidAddItem()

{

End->Input();

End->Next=newStudent;

End=End->Next;

cout<<"添加成功!"<

cout<<"输入任意字符!继续……";

getch();

}

private:

Student*Head,*End;

ifstreamin;

ofstreamout;

Student*FindItem(char*name)

{

for(Student*p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空

if(!strcmp(p->Next->name,name))returnp;

returnNULL;

}

Student*FindID(char*Id)

{

for(Student*p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空

if(!strcmp(p->Next->Id,Id))returnp;

returnNULL;

}

};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

Studentmassage::Studentmassage()

{

Head=newStudent;

Head->Next=newStudent;

End=Head->Next;

***.open("sort.txt");

if(!in)

cout<<"这是一个新系统,无学生信息。请先输入。"<

else

{

while(!in.eof())

{

End->ReadFile(in);

if(End->name[0]=='\0')break;

End->Next=newStudent;

End=End->Next;

}

in.close();

cout<<"\t\t读取学生信息成功!"<

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

Studentmassage::~Studentmassage()

{

Save();

for(Student*temp;Head->Next!=End;)

{

temp=Head->Next;

Head->Next=Head->Next->Next;

deletetemp;

}

deleteHead,End;

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage::ShowMenu()

{

cout<<"********************************************************************************"<

cout<<"〓〓〓〓〓〓〓〓〓〓☆学生成绩管理系统☆〓〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓★★★★★★★★★★★★★★★★★〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆1.增加学生成绩☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆2.显示学生成绩☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆3.排序统计成绩☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆4.查找学生成绩☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆5.删除学生成绩☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆6.修改学生信息☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆0.安全退出系统☆★〓〓〓〓〓〓〓〓〓"<

cout<<"\n\t\t\n\t\t请选择:";

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage::Find()

{

charname[20],Id[10];

intx;

Student*p=NULL;

cout<<"\n\t\t*********************************\n";

cout<<"\t\t※1.按学生的姓名查找\n\t\t※2.按学生学号查找";

cout<<"\n\t\t*********************************\n请选择:";

cin>>x;

switch(x)

{

case1:{cout<<"\t\t请输入要查找的学生的姓名:";cin>>name;

if(p=FindItem(name))

{

p->Next->Show();

cout<<"输入任意字符!继续……";

getch();

}

else

{

cout<<"\t\t没有找到该姓名的学生!"<<'\n'<

cout<<"输入任意字符!继续……";

getch();

}

}break;

case2:

{

cout<<"\t\t请输入要查找的学生的学号:";cin>>Id;

if(p=FindID(Id))

{

p->Next->Show();

cout<<"输入任意字符!继续……";

getch();

}

else

{

cout<<"\t\t没有找到该学好的学生!"<<'\n'<

cout<<"输入任意字符!继续……";

getch();

}

}break;

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage::ModifyItem()//修改信息

{

charname[20];

Student*p=NULL;

cout<<"\t\t请输入要修改的人的姓名:";cin>>name;

if(p=FindItem(name))

{

cout<<"\t\t已找到学生的信息,请输入新的信息!"<

p->Next->Input();

cout<<"修改成功!"<

cout<<"输入任意字符!继续……";

getch();

}

else

{

cout<<"\t\t没有找到!"<

cout<<"输入任意字符!继续……";

getch();

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage::RemoveItem()//删除信息

{

charname[20];

Student*p=NULL,*temp=NULL;

cout<<"\t\t请输入要删除的学生的姓名:"<>name;

if(p=FindItem(name))

{

temp=p->Next;

p->Next=p->Next->Next;

deletetemp;

cout<<"\t\t删除成功!"<

cout<<"输入任意字符!继续……";

getch();

}

else

{

cout<<"\t\t没有找到!"<

cout<<"输入任意字符!继续……";

getch();

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage::Swap(Student*p1,Student*p2)//交换两个combox变量的数据域

{

Student*temp=newStudent;

strcpy(temp->name,p1->name);

strcpy(temp->Id,p1->Id);

temp->Cnum=p1->Cnum;

temp->Mnum=p1->Mnum;

temp->Enum=p1->Enum;

temp->sum=p1->sum;

strcpy(p1->name,p2->name);

strcpy(p1->Id,p2->Id);

p1->Cnum=p2->Cnum;

p1->Mnum=p2->Mnum;

p1->Enum=p2->Enum;

p1->sum=p2->sum;

strcpy(p2->name,temp->name);

strcpy(p2->Id,temp->Id);

p2->Cnum=temp->Cnum;

p2->Mnum=temp->Mnum;

p2->Enum=temp->Enum;

p2->sum=temp->sum;

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

intStudentmassage::ListCount()//统计当前链表的记录总数,返回一个整数

{

if(!Head)

return0;

intn=0;

for(Student*p=Head->Next;p!=End;p=p->Next)

{

n++;

}

returnn;

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage::Sort()//对当前链表进行排序

{

cout<<"Sorting..."<

Student*p=NULL,*p1=NULL,*k=NULL;

intn=Studentmassage::ListCount();

if(n<2)

return;

for(p=Head->Next;p!=End;p=p->Next)

for(k=p->Next;k!=End;k=k->Next)

{

if(p->sum>k->sum)

{

Studentmassage::Swap(p,k);

}

}

cout<<"排序完成!"<

getch();

return;

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage::Save()

{

***.open("sort.txt");

for(Student*p=Head->Next;p!=End;p=p->Next)

out<name<<"\t"<Id<<"\t"<Cnum<<"\t"

<Mnum<<"\t"<Enum<<"\t"<sum<<'\n';

out.close();

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

intmain()

{

intx,i=0;

boolquit=false;

cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"<

for(i=0;i<3;i++)

cout<<"\t\t◎\t\t\t\t\t\t◎"<

cout<<"\t\t◎★★★★【欢迎进入学生成绩管理系统】★★★★◎"<

for(i=0;i<3;i++)

cout<<"\t\t◎\t\t\t\t\t\t◎"<

cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"<

StudentmassageGrade;

cout<<"按任意键开始……";

getch();

while(!quit)

{

system("cls");

Grade.ShowMenu();

cin>>x;

switch(x)

{

case0:quit=true;break;

case1:Grade.AddItem();break;

case2:Grade.Display();break;

case3:Grade.Sort();break;

case4:Grade.Find();break;

case5:Grade.RemoveItem();break;

case6:Grade.ModifyItem();break;

}

}

return0;

}

上一篇 图片放大后模糊怎么变清晰
下一篇 电脑下方慢培女先级不艺属板日就的任务栏不显示怎么办
扫一扫,手机访问

扫一扫,手机浏览