学生成绩信息管理系统.docx

上传人:b****7 文档编号:23849315 上传时间:2023-05-21 格式:DOCX 页数:28 大小:208.36KB
下载 相关 举报
学生成绩信息管理系统.docx_第1页
第1页 / 共28页
学生成绩信息管理系统.docx_第2页
第2页 / 共28页
学生成绩信息管理系统.docx_第3页
第3页 / 共28页
学生成绩信息管理系统.docx_第4页
第4页 / 共28页
学生成绩信息管理系统.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

学生成绩信息管理系统.docx

《学生成绩信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩信息管理系统.docx(28页珍藏版)》请在冰豆网上搜索。

学生成绩信息管理系统.docx

学生成绩信息管理系统

《C++程序设计》

课程设计报告

(2012—2013学年第二学期)

题目:

学生成绩信息管理系统

专业:

信息管理与信息系统

班级:

姓名

学号:

指导教师:

一、题目:

学生成绩管理系统

二、程序设计要求:

(1)要求用Visual C++语言来实现一个简单的学生成绩管理系统,该系统完成之后,基本上要能够无错运行,能达到学生成绩管理系统的基本要求。

(2)各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.CPP文件中,要求使用头文件。

(3)准备系统模拟的数据,不得少于10条。

(4)成绩管理程序至少应具备以下功能:

1)输入:

学生的基本信息,包括学号.姓名.性别.籍贯.VisualC++成绩.英语成绩.物理成绩等;

2)计算:

每个学生的总成绩.平均成绩.所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出;

3)查询:

可以按学号.姓名. Visual C++成绩查询

4)排序:

可以按学号.姓名. Visual C++成绩.英语成绩.物理成绩.总成绩.平均成绩等进行排序并输出;

5)删除:

删除某条记录;

6)按学分绩点计算办法计算每个学生学分绩点,并从高到低输出;

7)按奖学金评定办法,从特等开始输出获得奖学金学生名单及其成绩与绩点;

8)按三好学生评定办法,输出三好学生名单;

9)帮助和关于;

10)退出:

退出整个系统的运行。

三、程序的运行

(1)进入系统

(2)系统选择界面

(3)管理系统的运行

1、增加学生成绩

2、显示学生成绩

3、排序统计成绩

4、查找学生成绩

5、删除学生成绩

6、修改学生成绩

7、获奖学金学生

8、查看三好学生

9、帮助与关于

1、安全退出系统

四、心得与体会

在此次的课程设计的活动中,我大大加强了自己的动手能力,更进一步的学习了C++的编程的方面的学习,熟练了自己的编程技巧,这次课程设计,提高了我独立分析解决问题的能力和培养了我的创新精神。

五、程序的编写

#include

#include

#include

#include

#include//用getch();

usingnamespacestd;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

classStudent

{

public:

charname[20];

charId[20];

charsex[10];

charorigin[30];

intCnum;//C课程得分

intEnum;//英语课程得分

intPnum;//物理课程得分

intsum;//个人总分

floataverage;//个人平均分

floatPoints;//个人学分积点

Student*Next;

voidInput()

{

system("cls");

cout<<"请输入学生的姓名:

";

cin>>name;

cout<<"请输入学生的学号:

";

cin>>Id;

cout<<"请输入学生的性别:

";

cin>>sex;

cout<<"请输入学生的籍贯:

";

cin>>origin;

cout<<"请输入C++课程的成绩:

";

cin>>Cnum;

cout<<"请输入英语课程的成绩:

";

cin>>Enum;

cout<<"请输入物理课程的成绩:

";

cin>>Pnum;

sum=Cnum+Enum+Pnum;

average=sum/3;

Points=(Cnum+Enum+Pnum)/10-15;

}

voidReadFile(istream&in)

{

in>>name>>Id>>sex>>origin>>Cnum>>Enum>>Pnum>>sum>>average>>Points;

}

voidShow()

{

cout<<"姓名:

"<

cout<<"学号:

"<

cout<<"性别:

"<

cout<<"籍贯:

"<

cout<<"C++:

"<

cout<<"英语:

"<

cout<<"物理:

"<

cout<<"总成绩:

"<

cout<<"平均成绩:

"<

cout<<"学分积点:

"<

cout<<"\n\n";

}

};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

classStudentmassage

{

public:

Studentmassage();

~Studentmassage();

voidShowMenu();

voidFind();

voidPoint();

voidSave();

voidModifyItem();

voidRemoveItem();

voidSwap(Student*,Student*);

voidSort();

intListCount();

voidDisplay()

{

inta=0,b=0,c=0,x=0,A,B,C,SS=0,CC=0,EE=0,PP=0;

charxa[20],xb[20],xc[20],xd[20];

system("cls");

Student*p;

for(p=Head->Next;p!

=End;p=p->Next)

{

p->Show();

a+=p->Cnum;

b+=p->Enum;

c+=p->Pnum;

x++;

if(SSsum)

{

SS=p->sum;

strcpy(xa,p->name);

}

if(CCCnum)

{

CC=p->Cnum;

strcpy(xb,p->name);

}

if(EEEnum)

{

EE=p->Enum;

strcpy(xc,p->name);

}

if(PPPnum)

{

PP=p->Pnum;

strcpy(xd,p->name);

}

}

A=a/x;

B=b/x;

C=c/x;

cout<

cout<<"所有学生的C++平均成绩为:

"<

cout<<"所有学生的英语平均成绩为:

"<

cout<<"所有学生的物理平均成绩为:

"<

cout<<"总分最高的学生为:

"<

"<

cout<<"C++分数最高的学生为:

"<

"<

cout<<"英语分数最高的学生为:

"<

"<

cout<<"物理分数最高的学生为:

"<

"<

cout<<"\n按任意键继续..";

getch();

}

voidScholarship()

{

intM=10;

charMM[20];

Student*p;

system("cls");

cout<<"获得奖学金的学生如下:

"<<"\n\n\n";

for(p=Head->Next;p!

=End;p=p->Next)

{

if(M<=p->Points)

{

strcpy(MM,p->name);

cout<

"<<"\n\t"<<"C++成绩:

"<Cnum<<"\t\t"<<"英语成绩:

"<Enum<<"\t\t";

cout<<"物理成绩:

"<Pnum<<"\t\t\t"<<"总成绩:

"<sum<<"\t\t"<<"平均成绩:

";

cout<average<<"\t\t"<<"学分积点:

"<Points<<"\n\n";

}

}

cout<<"按任意键继续.."<

getch();

}

voidmerit()

{

charSH[20];

Student*p;

system("cls");

cout<<"三好学生的名单如下:

"<<"\n\n\n";

for(p=Head->Next;p!

=End;p=p->Next)

{

if(p->Cnum>=80&&p->Enum>=80&&p->Pnum>=80)

{

strcpy(SH,p->name);

cout<<"\t\t"<

}

}

cout<<"按任意键继续..";

getch();

}

voidAddItem()

{

End->Input();

End->Next=newStudent;

End=End->Next;

cout<<"\n添加成功!

"<

cout<<"\n按任意键继续..";

getch();

}

voidHelp()

{

system("cls");

cout<<"帮助:

\n\n\t该系统是C++学生成绩管理系统,输入一些学生信息及考试成绩,";

cout<<"可以相应的显示出学生的信息,各科成绩,总成绩,平均成绩,学分积点等。

";

cout<<"通过输入、排序、删除等功能,可以任意的对学生的信息加以变动。

";

cout<<"在主页面输入对应的数字,可以对不同的选项进行操作。

";

cout<<"\n\n\n\n";

cout<<"关于:

\n\n\t系统名称:

学生成绩管理系统\n\n\t制作人:

袁永国1240407128";

cout<<"\n\n\n";

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;

}

Student*FindSex(char*sex)

{

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

=End;p=p->Next)

if(!

strcmp(p->Next->sex,sex))returnp;

returnNULL;

}

Student*FindOrigin(char*origin)

{

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

=End;p=p->Next)

if(!

strcmp(p->Next->origin,origin))returnp;

returnNULL;

}

};

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

Studentmassage:

:

Studentmassage()

{

Head=newStudent;

Head->Next=newStudent;

End=Head->Next;

in.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<<"$1.增加学生成绩$"<

cout<<"$2.显示学生成绩$"<

cout<<"$3.排序统计成绩$"<

cout<<"$4.查找学生成绩$"<

cout<<"$5.删除学生成绩$"<

cout<<"$6.修改学生信息$"<

cout<<"$7.获奖学金学生$"<

cout<<"$8.查看三好学生$"<

cout<<"$9.帮助与关于$"<

cout<<"$0.安全退出系统$"<

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

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

";

}

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

voidStudentmassage:

:

Find()

{

system("cls");

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<<"请输入要查找的学生的姓名:

";cin>>name;

if(p=FindItem(name))

{

p->Next->Show();

cout<<"\n按任意键继续..";

getch();

}

else

{

cout<<"没有找到该姓名的学生!

"<<'\n'<

cout<<"\n按任意键继续..";

getch();

}

}break;

case2:

{

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

";cin>>Id;

if(p=FindID(Id))

{

p->Next->Show();

cout<<"\n按任意键继续..";

getch();

}

else

{

cout<<"没有找到该学好的学生!

"<<'\n'<

cout<<"\n按任意键继续..";

getch();

}

}break;

}

}

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

voidStudentmassage:

:

ModifyItem()//修改信息

{

system("cls");

charname[20];

Student*p=NULL;

cout<<"请输入要修改的人的姓名:

";cin>>name;

if(p=FindItem(name))

{

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

"<

p->Next->Input();

cout<<"\n修改成功!

"<

cout<<"\n按任意键继续..";

getch();

}

else

{

cout<<"\n没有找到!

"<

cout<<"\n按任意键继续..";

getch();

}

}

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

voidStudentmassage:

:

RemoveItem()//删除信息

{

system("cls");

charname[20];

Student*p=NULL,*temp=NULL;

cout<<"请输入要删除的学生的姓名:

"<>name;

if(p=FindItem(name))

{

temp=p->Next;

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

deletetemp;

cout<<"\n删除成功!

"<

cout<<"\n按任意键继续..";

getch();

}

else

{

cout<<"\n没有找到!

"<

cout<<"\n按任意键继续..";

getch();

}

}

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

voidStudentmassage:

:

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

{

Student*temp=newStudent;

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

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

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

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

temp->Cnum=p1->Cnum;

temp->Enum=p1->Enum;

temp->Pnum=p1->Pnum;

temp->sum=p1->sum;

temp->average=p1->average;

temp->Points=p1->Points;

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

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

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

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

p1->Cnum=p2->Cnum;

p1->Enum=p2->Enum;

p1->Pnum=p2->Pnum;

p1->sum=p2->sum;

p1->average=p2->average;

p1->Points=p2->Points;

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

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

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

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

p2->Cnum=temp->Cnum;

p2->Enum=temp->Enum;

p2->Pnum=temp->Pnum;

p2->sum=temp->sum;

p2->average=temp->average;

p2->Points=temp->Points;

}

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

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;

intT;

system("cls");

cout<<"请选择:

\n\n\n\t\t\t1.按总成绩排序\n\t\t\t2.按VC++成绩排序\n\t\t\t3.按英语成绩排序\n";

cout<<"\t\t\t4.按物理成绩排序\n\t\t\t5.按平均成绩排序\n\t\t\t6.按学分积点排序"<<"\n\n";

cin>>T;

switch(T)

{

case1:

{

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(k,p)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1