c++程序 学生管理系统.docx
《c++程序 学生管理系统.docx》由会员分享,可在线阅读,更多相关《c++程序 学生管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
![c++程序 学生管理系统.docx](https://file1.bdocx.com/fileroot1/2022-12/7/2e3afb2e-6213-40a5-a6e2-122e0c3cf5dd/2e3afb2e-6213-40a5-a6e2-122e0c3cf5dd1.gif)
c++程序学生管理系统
昆明理工大学理学院
信息与计算科学专业操作性实验报告
年级:
2010级姓名:
学号:
指导教师:
实验课程名称:
开课实验室:
理学院机房
实验成绩:
学风(5)
观察能力(15)
操作能力(30)
调试能力(50)
其它
总分
实验内容:
1.实验/作业题目:
写一个学生管理系统并实现能输入数据,修改数据,查找数据,删除数据。
对1~100分内各个分数段给出ABCD的评价
2.实验/作业课时:
2个课时
3.实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能):
先写程序,再写流程图。
#include
#include
#include
#include
#include
#include
structstudent//定义一个学生结构体
{
charname[10];
intnum;
charbanji[40];
intGD,SF,CP,SUM;
};
ints=0;
classstudent1//定义一个学生类
{
private:
studentstu[50];
charname,banji;
intnum;
intGD,SF,CP,SUM;
public:
voidsr(char*,int,char*,int,int,int);
voidprint(int);
intjc(intxxh)
{
intm=0;
while(m<=s+1)
if(xxh==stu[m++].num)
break;
if(m>s+1)
return0;
else
return1;
}
voidcz(int);
voidsc(int);
voidsum(int);
};
voidstudent1:
:
sr(char*xm,intxh,char*dz,intgd,intsf,intcp)//输入模块
{
strcpy(stu[s].name,xm);
stu[s].num=xh;
strcpy(stu[s].banji,dz);
stu[s].GD=gd;
stu[s].SF=sf;
stu[s].CP=cp;
}
voidstudent1:
:
print(ints)//输出模块
{
cout<
cout<cout<cout<cout<cout<cout<cout<}
voidstudent1:
:
cz(ints)//查找模块
{
intxxh,p;
while(s==0)
{
cout<<"没有记录,请先输入记录!
"<break;
}
if(s!
=0)
{cout<<"请输入您要查找的学号:
";
cin>>xxh;
while(xxh<1000||xxh>9999)//判断输入的学号是否正确
{
cout<<"您输入的学号不正确,请输入一个四位数的学号"<cin>>xxh;
}
while(s!
=0)//查找是否有符合条件的记录
{
p=1;
if(xxh==stu[s].num)
{
cout<<"姓名\n学号\n班级\n高代\n数分\nc++"<cout<cout<cout<cout<cout<cout<getch();
break;
}
else
p=0;
s--;
}
if(p==0)
cout<<"很抱歉,没有找到您要查找的学号!
"<getch();
}
voidstudent1:
:
sc(intn)//删除模块
{
intxxh,p;
charda;
while(s==0)
{
cout<<"没有记录,请先输入记录!
"<break;
}
if(s!
=0)
{
cout<<"请输入您要删除的学号:
";
cin>>xxh;
while(xxh<1000||xxh>9999)
{
cout<<"您输入的学号不正确,请您输入一个四位数的学号"<cin>>xxh;
}
for(inti=1;i<=n;i++)
{
if(stu[i].num!
=xxh)
p=0;
if(stu[i].num==xxh)
{
cout<<"姓名\n学号\n班级\n高代\n数分\nc++"<cout<cout<cout<cout<cout<cout<cout<<"您确实要删除该学生的记录吗?
(y/n)";
cin>>da;
if(da=='y'||da=='Y')
{
for(intj=i;j<=n-1;j++)//删除记录
{
strcpy(stu[j].name,stu[j+1].name);
stu[j].num=stu[j+1].num;
strcpy(stu[j].banji,stu[j+1].banji);
stu[j].GD=stu[j+1].GD;
stu[j].SF=stu[j+1].SF;
stu[j].CP=stu[j+1].CP;
}
cout<<"该记录已删除!
"<s=s-1;
p=1;
break;
}
else
{
cout<<"该记录未删除!
"<p=1;
}
}
}
if(p==0)
cout<<"很抱歉,没有找到您要找的学号!
"<}
getch();
}
voidstudent1:
:
sum(ints)//排序模块
{
intchang;
intb[40];
while(s==0)
{
cout<<"没有记录,请先输入记录!
"<break;
}
if(s!
=0)
{
cout<<"姓名\n学号\n班级\n高代\n";
cout<<"数分\tc++\t总分"<for(intk=1;k<=s;k++)
{
b[k]=stu[k].GD+stu[k].SF+stu[k].CP;
stu[k].SUM=stu[k].GD+stu[k].SF+stu[k].CP;
}
for(inti=1;i<=s;i++)//利用冒泡法对B[]进行排序
for(intj=1;j<=s-i;j++)
if(b[j]
{
chang=b[j];
b[j]=b[j+1];
b[j+1]=chang;
}
for(inth=1;h<=s;h++)//输出与B[]中相同总分所对应的内容
for(inte=1;e<=s;e++)
if(b[h]==stu[e].SUM)
{
cout<cout<cout<cout<cout<cout<cout<}
}
getch();
}
voidmain()
{
student1st;
charda,a;
char*xm,*dz;
intgd,sf,cp,xh;
time_tt;
time(&t);
while
(1)
{
system("cls");
cout<cout<<"************************************学生成绩管理系统**************************"<cout<<"显示系统时间和日期:
"<cout<<"0.输入/添加学生资料"<cout<<"1.显示学生资料"<cout<<"2.按学号查找"<cout<<"3.删除记录"<cout<<"4.按总分进行排序"<cout<<"5.退出"<cout<<"************************************************************************************"<cout<<"请选择操作(0-5)"<cin>>a;
t:
if(a=='5')break;
switch(a)
{
case'0':
{
cout<<"请依次输入学生的\n姓名,学号,班级,高代,数分,c++:
"<xm=newchar[];dz=newchar[];
cin>>xm>>xh>>dz>>gd>>sf>>cp;
while(st.jc(xh))//调用JC模块判断学号是否重复
{
cout<<"学号重复,请重新输入!
"<cin>>xh;
}
s=s+1;
st.sr(xm,xh,dz,gd,sf,cp);
cout<<"是否继续输入?
(y/n)";
cin>>da;
while(da=='y'||da=='Y')//判断是否要继续输入
{
cout<<"请依次输入学生的姓名,学号,班级,高代,数分,c++:
"<xm=newchar[];dz=newchar[];
cin>>xm>>xh>>dz>>gd>>sf>>cp;
while(st.jc(xh))
{
cout<<"学号重复,请重新输入!
"<cin>>xh;
}
s=s+1;
st.sr(xm,xh,dz,gd,sf,cp);
cout<<"是否继续输入?
(y/n)";
cin>>da;
}
getch();
};break;
case'1':
{
if(s==0)//判断是否有记录输入
{
cout<<"没有记录,请先输入记录!
"<getch();
break;
}
if(s!
=0)
{
cout<<"序号"<<"\t";
cout<<"姓名"<<"\n";
cout<<"学号"<<"\n";
cout<<"班级"<<"\n";
cout<<"高代"<<"\n";
cout<<"数分"<<"\n";
cout<<"c++"<for(inti=1;i<=s;i++)
st.print(i);
getch();
}
};break;
case'2':
st.cz(s);break;
case'3':
st.sc(s);break;
case'4':
st.sum(s);break;
default:
{
while(a=='0'||a>'5')//判断选项是否正确
{
cout<<"错误选项,请重新选择!
"<cin>>a;
}
gotot;
};break;
}
}
cout<<"谢谢您的使用!
"<}
4.算法描述、流流程图或程序图:
5.实验数据和实验结果(用屏幕图形表示,可另加附页):
6.心得体会:
这程序借鉴了一些程序,经过多次修改成的。
但还是不完善,还有一些问题,由于时间急迫,我弄得很吃力。
大一结束了,我对写程序还是很吃力,不过我会在暑假及以后使劲勤加练习,大四和老师再遇时,争取有很大很大的改观,我觉悟了,我已下决心了。
我会做到的,再见老师。
评分标准学风--报告格式规范,文字清晰观察能力--正确描述和理解需要操作的问题
操作能力--正确输入程序,熟悉编程环境调试能力--熟练使用调试功能解决程序错误