学生学籍管理系统.docx
《学生学籍管理系统.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统.docx(12页珍藏版)》请在冰豆网上搜索。
![学生学籍管理系统.docx](https://file1.bdocx.com/fileroot1/2022-12/12/ebe34990-59d5-4ee1-8131-9ef05d27d879/ebe34990-59d5-4ee1-8131-9ef05d27d8791.gif)
学生学籍管理系统
C++课程设计报告
题目:
学生学籍管理系统——类定义、文件读写、学生信息管理
学生姓名:
李绥海
学号:
200917010201
专业班级:
计科09102班
同组姓名:
刘洋许雅凌
指导教师:
易明
设计时间:
2009年下学期第1~2周
指导老师意见:
评定成绩:
签名:
日期:
目录
1.引言……………………………………………………………3
2.系统简介…………………………………………………………………………3
3.系统设计…………………………………………………………………………4
4.各模块流程…………………………………………………………5
5代码……………………………………………………………………8
6系统运行截图……………………………………………………………13
7体会和参考文献………………………………………………………………15
1引言
1.1课程设计目的
学生信息管理是一个学校不可缺少的部分,它的内容对于学校的管理者和学生以及学生家长来说都至关重要,所以一个良好的学生信息管理系统应该能够为用户提供充足信息和快捷的查询手段。
对学生信息要求完成如下功能:
(1)录入:
将学生的信息录入;
(2)查询:
查询满足条件的学生;
(3)修改:
对成绩信息的数据项进行修改;
(4)删除:
将满足条件的学生信息删除;
(5)输出:
将全部的学生成绩信息输出。
(6)排序:
将学生的信息按所需要求进行排序。
3.1系统的结构设计
学生学籍管理系统记录中只包括学号、姓名、语文成绩、数学成绩、英语成和成绩存放下一个结点地址的next域等数据项。
为学生成绩设计一个类,内中包含存储学生成绩信息的单链表以及对单链表进行各种操作的成员函数。
各模块流程图
图3.2系统流程图
(1)学生信息录入模块
添加的信息包括学号(不允许重复)、姓名(不允许重复)、语文成绩、数学成绩和英语成绩。
流程图如下图4.1所示。
图4.1插入模块流程图
按姓名和学号查找学生成绩的流程图分别如下图4.3所示。
图4.3按姓名查找学生成绩信息流程图
图4.5删除学生信息模块流程图
删除操作定义为将单链表的第i个结点删去。
因为在单链表中结点ai存储地址在其前驱结点ai-1的指针域,所以必须首先找到ai-1的存储地址p,然后令p的next域指向ai的后
排序流程图
程序代码
ntx=0;
charcc;
//定义大学对象
cout.setf(ios:
:
left);//左靠齐
intID;//密码
intTime=0;//输入次数
charpassword[10];//密码
cout<cout<cout<<"学生学籍管理系统用户登录"<cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<cout<cout<<"学号:
";cin>>ID;
cout<puts("密码:
");
while((cc=getch())!
=-1&&cc!
='\r')
{
password[x++]=cc;
putchar('*');
}
password[x]='\0';
cout<cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<charmm[10];
intid;//临时用户和密码
ifstreamfin("A.txt");
if(!
fin)
{
cout<<"不能打开管理员数据文件!
"<abort();
}
fin>>id>>mm;
fin.close();
if(ID==id)//管理员登录
{
while(id!
=ID||strcmp(mm,password)!
=0)
{
strcpy(password,"");
system("cls");
Time++;
if(Time>2)
{
cout<"<exit(0);
}
cout<<"密码错误,请重新输入密码!
"<cout<cout<<"学生学籍管理系统用户登录"<cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<cout<cout<<"学号:
"<>ID;
cout<puts("密码:
");
while((cc=getch())!
=-1&&cc!
='\r')
{
password[x++]=cc;
putchar('*');
}
password[x]='\0';
cout<cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<system("PAUSE");
if(id==ID||strcmp(mm,password)==0)
break;
cout<<"本系统所以学生排名如下:
"<for(intx=0;x{
t=x;
for(inty=x+1;y
{
if((s[t]->getsum())<(s[y]->getsum()))
t=y;
if(t!
=x)
{
b=*s[x];
*s[x]=*s[t];
*s[t]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!
";
for(intk=0;k
{
cout<<"序号"<"<<""<name<<""<<"家庭住址"<adress<<""<<"系别专业"<dept
<<""<<"班级"<grade<<""<<
"语文:
"<<""<chinese<<"数学:
"<<""<math
<<"外语:
"<<""<english<<"总分:
"<<""<<(*s[k]).getsum()
<<"平均分:
"<<""<<(*s[k]).getaver()<}
break;
}
系统运行截图
系统登录页面
系统功能页面
排序页面
体会
本次程序设计中,虽然有不足之处,但通过两星期的C++语言程序设计,我从中受益匪浅,并且对C++语言程序设计这一门课程有了更深一步的认识。
我们可以把上学期所学的理论知识和实践联系起来,在所要开发的项目中渐渐成长。
虽然对这些C++语言知识运用得还不是很熟练,但是相信会在滴水穿石地成长起来。
发现问题,提出问题,解决问题,使我从不足之处出发,寻找新的学习方向。
参考资料
C语言与C++教科书