学生成绩管理终极版.docx
《学生成绩管理终极版.docx》由会员分享,可在线阅读,更多相关《学生成绩管理终极版.docx(18页珍藏版)》请在冰点文库上搜索。
学生成绩管理终极版
学生成绩管理
一.设计目的:
①了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
②初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
3提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
④训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
⑤《数据结构》课程设计作为独立的教学环节,是计算机相关专业集中实践性环节系列之一,是学习完《数据结构》课程后进行的一次全面的综合练习。
其目的在于加深对数据结构基础理论和基本知识的理解,提高解决实际问题的实践能力。
调动学生的积极性和能动性,培养学生的自学能力。
二、课程设计要求
1、学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
2、课程设计按照教学要求需要一周时间完成,每天下午上机来调试程序,安排上机时间学生不得缺席。
三.设计内容
学生成绩管理(链表实现)
要求:
实现如下功能:
增加、查找、删除、输出、退出
四.设计方法
采用单链表存储实现学生成绩的插入,查询,修改,删除,输出功能
对学生成绩信息要求完成如下功能:
(1)插入:
将学生的成绩信息插入;
(2)查询:
查询满足条件的学生;
(3)修改:
对成绩信息的数据项进行修改;
(4)删除:
将满足条件的学生信息删除;
(5)输出:
将全部的学生成绩信息输出
五,运行截图
1运行菜单图
2选择1时输入学生成绩信息
3选择2时查询学生成绩
4选择3时删除学生成绩信息
5选择4时修改学生成绩信息
6选择5时输出学生成绩信息
7选择6时退出程序
学生成绩信息管理代码
#include
#include
#include
#include
#include
structClass
{intChinese;
intMath;
intEnglish;
};
classStudent{
public:
Student();
voidOfile(ofstream&of);
voidInfile(ifstream&f);
voidOut();
voidSet(char*name,intno,Classscore);
char*GetName();
intGetNo();
Student*Next;
protected:
charName[20];
intNo;
ClassScore;
};
Student:
:
Student():
Next(0){}
char*Student:
:
GetName(){returnName;}
intStudent:
:
GetNo(){returnNo;}
voidStudent:
:
Set(char*name,intno,Classscore)
{strcpy(Name,name);
No=no;
Score=score;
}
voidStudent:
:
Infile(ifstream&f)
{f>>Name>>No>>Score.Chinese>>Score.Math>>Score.English;
}
voidStudent:
:
Ofile(ofstream&of)
{of<<""<}
voidStudent:
:
Out()
{cout<}
classFunction
{public:
Function();
~Function();
voidMenu();
voidAdd();
voidSearch();
voidDelete();
voidModify();
voidShow();
private:
Student*Student_First;
voidRead();
voidSave();
};
Function:
:
Function()
{Student_First=newStudent;
Read();
}
Function:
:
~Function()
{deleteStudent_First;
}
voidFunction:
:
Add()
{charname[20];
intno;
Classscore;
charchoose;
Student*f1,*p,*f2;
system("cls");
f1=Student_First;
f2=Student_First->Next;
while(f1->Next)
f1=f1->Next;
do
{p=newStudent;
cout<<"请输入您要添加的学生成绩信息:
"<cout<<"请输入学生姓名:
";
cin>>name;
while(f2)
{if(strcmp(f2->GetName(),name)==0)
{cout<<"该学生已存在,请确定姓名!
\n\n";
cout<<"请输入姓名:
";
cin>>name;
break;
}
f2=f2->Next;
}
cout<<"请输入学号:
";
cin>>no;
cout<<"请输入语文成绩:
";
cin>>score.Chinese;
cout<<"请输入数学成绩:
";
cin>>score.Math;
cout<<"请输入英语成绩:
";
cin>>score.English;
p->Set(name,no,score);
f1->Next=p;
p->Next=NULL;
f1=f1->Next;
cout<<"是否继续输入信息?
(Y\\N)"<cin>>choose;
}while(choose=='y'||choose=='Y');
Save();
cout<<"1.返回主菜单"<cin>>choose;
while(choose!
='1')
{cout<<"1.返回主菜单"<cin>>choose;
}
Menu();
}
voidFunction:
:
Delete()
{charname[20];
intno;
charchoose;
Student*temp,*p;
system("cls");
p=temp=Student_First->Next;
cout<<"请输入姓名:
";
cin>>name;
cout<<"输入学号:
";
cin>>no;
while(temp)
{if(strcmp(temp->GetName(),name)==0&&temp->GetNo()==no)
{cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n";
temp->Out();
cout<<"\n是否删除(Y/N)";
cin>>choose;
if(choose=='y'||choose=='Y')
{p->Next=temp->Next;
deletetemp;
cout<<"删除成功:
\n";
}
break;
}
p=temp;
temp=temp->Next;
}
Save();
cout<<"1.返回主菜单\n2.继续删除"<cin>>choose;
while(choose!
='1'&&choose!
='2')
{cout<<"1.返回主菜单\n2.继续删除"<cin>>choose;
}
if(choose=='1')
Menu();
elseif(choose=='2')
Delete();
}
voidFunction:
:
Modify()
{charchoose,name[20];
Student*temp,*p;
intno;
Classscore;
system("cls");
temp=p=Student_First;
cout<<"请输入您要修改的学生姓名:
";
cin>>name;
while(temp)
{if(strcmp(temp->GetName(),name)==0)
{cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n";
temp->Out();
cout<<"请输入姓名:
";
cin>>name;
cout<<"请输入学号:
";
cin>>no;
cout<<"请输入语文成绩:
";
cin>>score.Chinese;
cout<<"请输入数学成绩:
";
cin>>score.Math;
cout<<"请输入英语成绩:
";
cin>>score.English;
temp->Set(name,no,score);
break;
}
temp=temp->Next;
}
Save();
cout<<"修改成功!
"<cout<<"1.返回主菜单\n2.继续修改"<cin>>choose;
while(choose!
='1'&&choose!
='2')
{cout<<"1.返回主菜单\n2.继续修改"<cin>>choose;
}
if(choose=='1')
Menu();
elseif(choose=='2')
Modify();
}
voidFunction:
:
Read()
{Student*p,*p2;
p=Student_First;
ifstreamis("Student.txt",ios:
:
in);
if(!
is)
{ofstreamos("Student.txt",ios:
:
out);
os.close();
return;
}
while(!
is.eof())
{p2=newStudent;
p2->Infile(is);
p->Next=p2;
p2->Next=NULL;
p=p->Next;
}
}
voidFunction:
:
Save()
{ofstreamof("Student.txt",ios:
:
out);
Student*p=Student_First->Next;
while(p)
{p->Ofile(of);
p=p->Next;
}
of.close();
}
voidFunction:
:
Search()
{intflag(0);
charchoose;
chart1[20];
intt2;
system("cls");
Student*temp=Student_First->Next;
do
{cout<<"输入查询方式:
\n1.按姓名查询\n2.按学号查询\n";
cin>>choose;
if(choose=='1')
{cout<<"请输入您要查询的姓名:
";
cin>>t1;
while(temp)
{if(strcmp(t1,temp->GetName())==0)
{flag=1;
break;
}
temp=temp->Next;
}
if(flag==0)
cout<<"\n无该学生的信息\n"<else
{cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n";
temp->Out();
}
break;
}
elseif(choose=='2')
{cout<<"请输入您要查询的学号";
cin>>t2;
while(temp)
{if(t2==temp->GetNo())
{flag=1;
break;
}
temp=temp->Next;
}
if(flag==0)
cout<<"\n无该学生的信息\n"<else
{cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n";
temp->Out();
}
break;
}
}while(choose!
='1'||choose!
='2');
cout<<"\n1.返回主菜单\n2.继续查询"<cin>>choose;
while(choose!
='1'&&choose!
='2')
{cout<<"1.返回主菜单\n2.继续查询"<cin>>choose;
}
if(choose=='1')
Menu();
elseif(choose=='2')
Search();
}
voidFunction:
:
Show()
{charchoose;
Student*temp;
system("cls");
temp=Student_First->Next;
if(!
temp)
{cout<<"文件无数据\n\n"<cout<<"1.返回主菜单"<cin>>choose;
while(choose!
='1')
{cout<<"1.返回主菜单"<cin>>choose;
}
Menu();
}
else
{cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n";
while(temp!
=NULL)
{temp->Out();
temp=temp->Next;
}
}
cout<<"1.返回主菜单"<cin>>choose;
while(choose!
='1')
{cout<<"1.返回主菜单"<cin>>choose;
}
Menu();
}
voidFunction:
:
Menu()
{
charchoose;
system("cls");
cout<<"课程设计----覃介最"<cout<<"********************学生成绩管理**********************"<cout<<"\n";
cout<<"1.录入学生成绩信息:
\n"<cout<<"2.查询学生成绩信息:
\n"<cout<<"3.删除学生成绩信息:
\n"<cout<<"4.修改学生成绩信息:
\n"<cout<<"5.输出学生成绩信息:
\n"<cout<<"6.退出系统"<cout<<"*********************************************************"<cout<<"\n";
cin>>choose;
switch(choose)
{case'1':
Add();break;
case'2':
Search();break;
case'3':
Delete();break;
case'4':
Modify();break;
case'5':
Show();break;
case'6':
exit
(1);break;
default:
{cout<<"请按规定输入选择项!
"<Menu();
}
}
}
voidmain()
{Functionfunction;
function.Menu();
}