C成绩管理系统.docx
《C成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C成绩管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
C成绩管理系统
《C++面向对象程序设计》课程设计
题目:
学生成绩管理
班级:
计算机二专09级
姓名:
刘玉方
学号:
200801070712
2010年7月7日
1需求分析
1.1功能需求分析:
简易学生成绩管理系统主要有5个大的模块:
学生成绩的输入,学生成绩的删除,学生成绩的插入,学生成绩的查询,以及学生成绩的分类汇总。
1.11学生成绩输入模块
主要功能是输入学生成绩的操作。
需要用户自己输入学生成绩信息。
1.12学生成绩删除模块
主要功能是删除学生成绩的操作。
需要用户提供需要删除具体学生成绩的关联信息。
1.13学生成绩插入模块
主要功能是插入学生成绩的操作。
需要用户提供插入位置和插入信息。
1.14学生成绩查询模块
主要功能是按照用户的要求查询学生的成绩。
需要用户提供查询具体哪一个学生的信息。
1.15学生成绩的分类汇总模块
主要功能是输出每门学科的总分和平均分。
2功能模块
2.1学生成绩输入的实现;
运用cout、cin标准输出、输入流来实现学生成绩的输入。
cout<<"请输入该学生『C++程序设计』的成绩:
";
cin>>stud[n+i].c_program;
cout<<"请输入该学生『大学英语』的成绩:
";
cin>>stud[n+i].english;
cout<<"请输入该学生『高等数学』的成绩:
";
cin>>stud[n+i].math;
2.2学生成绩删除的实现;
运用for循环语句查找并删除用户提供的删除具体某个学生成绩的信息,并删除之。
for(j=i;jstrcpy(stud[j].class_0,stud[j+1].class_0);
stud[j].number=stud[j+1].number;
strcpy(stud[j].name,stud[j+1].name);
stud[j].c_program=stud[j+1].c_program;
stud[j].english=stud[j+1].english;
stud[j].math=stud[j+1].math;
}
2.3学生成绩插入的实现;
intInsert(Studentstud[],intn){
charx[10];/*清除多余输入所用*/
cout<<"请输入学生的班级:
"<cin>>stud[n].class_0;
cout<<"请输入学生的学号:
";
cin>>stud[n].number;
cout<<"请输入学生的姓名:
";
cin>>stud[n].name;
cout<<"请输入该学生『C++程序设计』的成绩:
";
cin>>stud[n].c_program;
cout<<"请输入该学生『大学英语』的成绩:
";
cin>>stud[n].english;
cout<<"请输入该学生『高等数学』的成绩:
";
cin>>stud[n].math;
stud[n].summary=stud[n].c_program+stud[n].english+stud[n].math;
stud[n].average=stud[n].summary/3;
gets(x);
n++;
Sort(stu,n);/*调用排序函数*/
cout<<"=====>提示:
插入成功!
"<return(n);
}
2.4成绩查询显示分类汇总模块
voidSort(Studentstud[],intn){
inti,j,k;floats;chart[20];
for(i=0;ifor(j=0;jif(stud[j].averagestrcpy(t,stud[j+1].class_0);
strcpy(stud[j+1].class_0,stud[j].class_0);
strcpy(stud[j].class_0,t);
k=stud[j+1].number;
stud[j+1].number=stud[j].number;
stud[j].number=k;
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
s=stud[j+1].c_program;
stud[j+1].c_program=stud[j].c_program;
stud[j].c_program=s;
s=stud[j+1].english;
stud[j+1].english=stud[j].english;
stud[j].english=s;
s=stud[j+1].math;
stud[j+1].math=stud[j].math;
stud[j].math=s;
s=stud[j+1].summary;
stud[j+1].summary=stud[j].summary;
stud[j].summary=s;
s=stud[j+1].average;
stud[j+1].average=stud[j].average;
stud[j].average=s;
}
}
3源代码
#include/*引用库函数*/
#include
#include
#include
#include
typedefstruct
{
charclass_0[20];/*班级*/
intnumber;/*学号*/
charname[20];/*姓名*/
floatc_program;/*C++语言成绩*/
floatenglish;/*大学英语成绩*/
floatmath;/*高等数学成绩*/
floatsummary;/*总分*/
floataverage;/*平均分*/
}Student;
Studentstu[100];/*结构体数组变量*/
intmenu()/*菜单函数*/
{
charc;
do
{
system("cls");/*运行前清屏*/
cout<<"**********学生成绩管理系统************"<cout<<"【1】输入数据"<cout<<"【2】显示所有数据"<cout<<"【3】按平均分降序排列"<cout<<"【4】查找并显示一组数据"<cout<<"【5】插入一组数据"<cout<<"【6】修改一组数据"<cout<<"【7】删除一组数据"<cout<<"【0】退出本系统\n"<cout<<"*************************************"<cout<<"请你选择操作(0-7):
"<c=getchar();/*读入选择*/
}
while(c<'0'||c>'7');
return(c-'0');/*返回选择*/
}
intInput(Studentstud[],intn)/*输入若干条记录*/
{
inti=0;
charsign,x[10];/*x[10]为清除多余的数据所用*/
while(sign!
='n'&&sign!
='N')/*判断*/
{
cout<<"请输入学生的班级:
";/*交互输入*/
cin>>stud[n+i].class_0;
cout<<"请输入学生的学号:
";
cin>>stud[n+i].number;
cout<<"请输入学生的姓名:
";
cin>>stud[n+i].name;
cout<<"请输入该学生『C++程序设计』的成绩:
";
cin>>stud[n+i].c_program;
cout<<"请输入该学生『大学英语』的成绩:
";
cin>>stud[n+i].english;
cout<<"请输入该学生『高等数学』的成绩:
";
cin>>stud[n+i].math;
stud[n+i].summary=stud[n+i].c_program+stud[n+i].english+stud[n+i].math;
stud[n+i].average=stud[n+i].summary/3;
cout<<"该学生的总分为:
"<"<gets(x);/*清除多余的输入*/
cout<<"=====>提示:
继续写入成绩?
(Y/N)";
cin>>sign;/*输入判断*/
i++;
}
return(n+i);
}
voidDisplay(Studentstud[],intn)/*显示所有记录*/
{
inti;
if(!
stud)cout<<"没有记录";
else{
cout<<"------------------------------------------------------------------------------------"<cout<<"班级学号姓名C++英语数学总分平均分"<cout<<"------------------------------------------------------------------------------------"<for(i=1;i{
stud[i-1].summary=stud[i-1].c_program+stud[i-1].english+stud[i-1].math;
stud[i-1].average=stud[i-1].summary/3;
cout<}
cout<<"\t\t\t"<system("pause");
}
voidSort(Studentstud[],intn)/*按平均分排序*/
{
inti,j,k;
floats;
chart[20];
for(i=0;ifor(j=0;jif(stud[j].average{
strcpy(t,stud[j+1].class_0);
strcpy(stud[j+1].class_0,stud[j].class_0);
strcpy(stud[j].class_0,t);
k=stud[j+1].number;
stud[j+1].number=stud[j].number;
stud[j].number=k;
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
s=stud[j+1].c_program;
stud[j+1].c_program=stud[j].c_program;
stud[j].c_program=s;
s=stud[j+1].english;
stud[j+1].english=stud[j].english;
stud[j].english=s;
s=stud[j+1].math;
stud[j+1].math=stud[j].math;
stud[j].math=s;
s=stud[j+1].summary;
stud[j+1].summary=stud[j].summary;
stud[j].summary=s;
s=stud[j+1].average;
stud[j+1].average=stud[j].average;
stud[j].average=s;
}
cout<<"---------------------------------------------------------------------------------"<cout<<"班级学号姓名C++英语数学总分平均分"<cout<<"---------------------------------------------------------------------------------"<for(i=1;i{
stud[i-1].summary=stud[i-1].c_program+stud[i-1].english+stud[i-1].math;
stud[i-1].average=stud[i-1].summary/3;
cout<}
}
intInsert(Studentstud[],intn)/*插入一条记录*/
{
charx[10];/*清除多余输入所用*/
cout<<"请输入学生的班级:
"<cin>>stud[n].class_0;
cout<<"请输入学生的学号:
";
cin>>stud[n].number;
cout<<"请输入学生的姓名:
";
cin>>stud[n].name;
cout<<"请输入该学生『C++程序设计』的成绩:
";
cin>>stud[n].c_program;
cout<<"请输入该学生『大学英语』的成绩:
";
cin>>stud[n].english;
cout<<"请输入该学生『高等数学』的成绩:
";
cin>>stud[n].math;
stud[n].summary=stud[n].c_program+stud[n].english+stud[n].math;
stud[n].average=stud[n].summary/3;
gets(x);
n++;
Sort(stu,n);/*调用排序函数*/
cout<<"=====>提示:
插入成功!
"<return(n);
}
intDelete(Studentstud[],intn)/*按学号查找,删除一条记录*/
{
ints;
inti=0,j;
cout<<"输入需要删除学生的学号:
"<cin>>s;
while((stud[i].number-s)!
=0&&iif(i==n)
{
cout<<"=====>提示:
对不起,无法找到改学号……"<return(n);
}
for(j=i;j{
strcpy(stud[j].class_0,stud[j+1].class_0);
stud[j].number=stud[j+1].number;
strcpy(stud[j].name,stud[j+1].name);
stud[j].c_program=stud[j+1].c_program;
stud[j].english=stud[j+1].english;
stud[j].math=stud[j+1].math;
}
cout<<"=====>提示:
已成功删除!
"<return(n-1);
}
voidSearch(Studentstud[],intn)/*查找并显示一个记录*/
{
ints;
inti=0;
cout<<"输入需要查找学生的学号:
"<cin>>s;
while((stud[i].number-s)!
=0&&iif(i==n)
{
cout<<"=====>提示:
对不起,无法找到该学生的信息!
"<return;
}
cout<<"---------------------------"<cout<<"班级:
"<cout<<"学号:
"<cout<<"姓名:
"<cout<<"C++程序设计:
"<cout<<"大学英语:
"<cout<<"高等数学:
"<cout<<"总分:
"<cout<<"平均分:
"<}
voidModify(Studentstud[],intn)
{
ints;
inti=0;
cout<<"输入需要修改成绩学生的学号:
"<cin>>s;
while((stud[i].number-s)!
=0&&iif(i==n)
{
cout<<"=====>提示:
对不起,无该学生的成绩……"<return;
}
cout<<"-----------------------------该学生的信息---------------------------------"<cout<<"班级学号姓名C++英语数学总分平均分"<cout<<"--------------------------------------------------------------------------------"<stud[i].summary=stud[i].c_program+stud[i].english+stud[i].math;
stud[i].average=stud[i].summary/3;
cout<cout<<"请输入学生的班级:
"<cin>>stud[n+i].class_0;
cout<<"请输入学生的学号:
"<cin>>stud[n+i].number;
cout<<"请输入学生的姓名:
"<cin>>stud[n+i].name;
cout<<"请输入该学生『C++程序设计』的成绩:
"<cin>>stud[n+i].c_program;
cout<<"请输入该学生『大学英语』的成绩:
"<cin>>stud[n+i].english;
cout<<"请输入该学生『高等数学』的成绩:
"<cin>>stud[n+i].math;
stud[i].summary=stud[i].c_program+stud[i].english+stud[i].math;
stud[i].average=stud[i].summary/3;
cout<<"该学生的总分为:
"<"<}
voidmain()/*主函数*/
{
intn=0;
for(;;)
{
switch(menu())/*选择判断*/
{
case1:
cout<>输入成绩<<===="<n=Input(stu,n);
break;
case2:
cout<>显示所有记录<<===="<Display(stu,n);
break;
case3:
cout<>按平均分降序排列<<===="<Sort(stu,n);/*按学号排序*/
cout<<"排序成功!
"<cout<<"\t\t\t";
system("pause");
break;
case4:
cout<>查找并显示一组成绩<<===="<Search(stu,n);/*插入一条记录*/
cout<<"\t\t\t";
system("pause");
break;
case5:
cout<>插入一组成绩<<===="<n=Insert(stu,n);/*按姓名查找,删除一条记录*/
cout<<"\t\t\t";
system("pause");
break;
case6:
cout<>修改一组成绩<<===="<Modify(stu,n);/*查找并显示一个记录*/
cout<<"\t\t\t";
system("pause");
break;
case7:
cout<