最新c++课程设计报告学生成绩管理系统资料.docx
- 文档编号:28949532
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:29
- 大小:317.52KB
最新c++课程设计报告学生成绩管理系统资料.docx
《最新c++课程设计报告学生成绩管理系统资料.docx》由会员分享,可在线阅读,更多相关《最新c++课程设计报告学生成绩管理系统资料.docx(29页珍藏版)》请在冰豆网上搜索。
最新c++课程设计报告学生成绩管理系统资料
C++实习报告
一、课程设计目的
1.C++课程设计,使我们能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,
2.要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。
3.通过课程设计掌握《C++语言程序设计》的编程思想,为后续课程打下基础。
4.培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。
二、课程设计的内容
1、课程设计的题目及简介
文本界面为
管理员
1.输入信息
2.保存信息
3.查询信息
4.修改并保存
5.显示全部
6.删除信息
7.退出系统
学生
1信息查询
(1)输入姓名
(2)输入学号
2退出系统
2、设计说明
总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体
结构设计合理。
也可根据自己对题目的理解增加新的功能模块。
系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行
(1)首先,看题目要求,每一条记录包括一个学生的姓名、性别、专业、出生日期、家庭住址、英语成绩。
同时,应具备以下功能:
1、输入功能:
一次可以完成自定义学生人数的学生成绩记录的输入。
2.保存功能:
对指定学生的成绩进行保存
3.查询功能:
选择某种方式并输入该成绩查询符合条件的学生成绩
4、修改并保存功能:
对指定学生的成绩进行修改保存。
5.显示功能:
将以上功能操作后的学生成绩显示出来。
6、删除功能:
对指定学生的成绩进行删除。
7.退出主菜单。
3程序流程图
各功能模块的实现流程图:
1增加学生成绩
调用函数Node*Create()判断gg是否等于一如果是可创建链表输入相应的学生成绩如果不是则需要运用Insert(p)函数插入结点增加学生成绩的,并通过chundang(p)函数进行存档,具体流程如下图所示
流程图
2删除学生成绩
调用函数Node*Delete(Node*head,intnum)
删除学生的成绩则必须对链表结点进行删除意味着将某个要删除结点前后的连续打断,去掉该结点,使前后指针变量重新连接,完成链表结点的删除任务
流程图
3.导入学生成绩
打开存档文件ifstreamFilein("out.txt");输出说存档的学生成绩
4、学生成绩的搜索
调用函数Node*sousuo(Node*head,charna[20]),按学生的姓名进行搜索
流程图:
5成绩的统计
调用函数Node*tongji(Node*head)运用一个for循环,将输入的相应的学生成绩用strcmp()函数与对应的数组进行比较,然后再进行统计
。
6、按英语成绩进行排序:
调用函数Node*paixu(Node*head)完成排序功能
它的主要思想的:
首先设置英语成绩的最大值100,最小值0(也可以使150或者其他)然后让输入的学生成绩英语成绩一次比较进行比较,(如果有相等的就输出排名1,然后排名加1),否则最大值减1,然后再次进行比较(如果等于99且上次没有等于100的,就输出排名1,然后排名加1,如果上次有等于100的排名为2),如果没有与99相等的.,则继续循环……
流程图:
总功能模块图:
各功能显示效果模块图:
学生和管理员输入
管理员进入界面后
增加学生成绩和导入学生成绩
保存学生成绩
学生进入界面后,按学生姓名查询并输出成绩
4、程序清单
#include
#include
#include
usingnamespacestd;
#definepassword123456;
//people.h
classstupeople//人员类基类
{
public:
intgetage();//年龄
char*getname();//姓名
char*getsex();//性别
voiddisplay();//输出信息
voidpeosearch();//查询信息
voidpeosave();//保存信息
private:
charname[20];
charsex[4];
intage;
};
//student.h
classstustudent:
publicstupeople
{
public:
intgetnumber();//学号
doublegetcscore();//语文
doublegetmscore();//高数
doublegetescore();//外语
doublegetpscore();//C++
doublegetdscore();//数据库
doublegetsscore();//体育
doublegetave();//平均成绩
doublegetsum();//总成绩
voidstuenterinfo();//输入信息
voiddisplay();//输出信息
voidstusearch();//查找信息
voidstusave();//保存信息
voidstuload();//加载信息
private:
intnumber;
doublecscore;
doublemscore;
doubleescore;
doubledscore;
doublepscore;
doublesscore;
doublesumscore;
doubleavescore;
};
//admin.h
classstuadmin:
publicstustudent//派生类管理员类
{
public:
voidchange();//更改信息
voiddel();//删除信息
private:
intnewage;
intnewnumber;
charnewsex;
charnewname;
charchangename[20];
doublenewcscore;
doublenewmscore;
doublenewescore;
doublenewdscore;
doublenewpscore;
doublenewsscore;
doublenewsumscore;
doublenewavescore;
};
inti,j,p[6];
charA,B,x;
stuadminsa;
structstudentinfo
{
intnumber;
charname[20];
charsex[4];
intage;
doublecscore;
doublemscore;
doubleescore;
doublepscore;
doubledscore;
doublesscore;
doublesumscore;
doubleavescore;
intflag;
}s;
//人员类的相关函数的定义
intstupeople:
:
getage()
{
returnage;
}
char*stupeople:
:
getname()
{
returnname;
}
char*stupeople:
:
getsex()
{
returnsex;
}
//学生类的相关函数的定义
intstustudent:
:
getnumber()
{
returnnumber;
}
doublestustudent:
:
getcscore()
{
returncscore;
}
doublestustudent:
:
getmscore()
{
returnmscore;
}
doublestustudent:
:
getescore()
{
returnescore;
}
doublestustudent:
:
getpscore()
{
returnpscore;
}
doublestustudent:
:
getdscore()
{
returndscore;
}
doublestustudent:
:
getsscore()
{
returnsscore;
}
doublestustudent:
:
getsum()
{
sumscore=cscore+mscore+escore+pscore+dscore+sscore;
returnsumscore;
}
doublestustudent:
:
getave()//平均成绩
{
avescore=sumscore/6;
returnavescore;
}
voidstustudent:
:
stuenterinfo()//输入信息
{
cout<<"请输入学号:
";
cin>>s.number;
cout< cout<<"请输入姓名: "; cin>>s.name; cout< cout<<"请输入性别: "; cin>>s.sex; cout< cout<<"请输入年龄: "; cin>>s.age; cout< cout<<"请输入各科成绩: "< cout<<"语文: "; cin>>s.cscore; cout< cout<<"高数: "; cin>>s.mscore; cout< cout<<"外语: "; cin>>s.escore; cout< cout<<"C++: "; cin>>s.pscore; cout< cout<<"数据库: "; cin>>s.dscore; cout< cout<<"体育: "; cin>>s.sscore; cout< cout<<"信息输入成功! "< s.flag=0; s.sumscore=s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore; s.avescore=s.sumscore/6; } voidstustudent: : stusave()//保存信息 { ofstreamout("information.txt",ios: : app|ios: : binary); if(out) { out.write((char*)&s,sizeofs); cout<<"信息保存成功! "< } elsecout<<"文本为空! "< out.close(); } voidstustudent: : display()//显示信息 { ifstreamifile; ifile.open("information.txt",ios: : binary); if(ifile) { while(ifile.read((char*)&s,sizeofs)! =0) { if(s.flag==0) { cout<<"学号: "< "< "< "< "<< s.cscore<<"高数: "< "< "< "< <<"体育: "< "< "< } } } else cout<<"文本为空! "< ifile.close(); } voidstustudent: : stusearch()//查询信息 { charstuname[20]; inte=0; cout<<"请输入您要查找的姓名: "; cin>>stuname; ifstreamifile; ifile.open("information.txt",ios: : binary); if(ifile) { while(ifile.read((char*)&s,sizeofs)! =0) { if((strcmp(stuname,s.name)==0)&&s.flag==0) {cout<<"学号: "< "< "< "< <<"语文: "< "< "< "< "数据库: "< "< "< "< e=1; break; } } } elsecout<<"文本未建立! "< ifile.close(); if(e==0) cout<<"没有相关信息! "< } //管理员类的相关函数的定义 voidstuadmin: : change() { charchangename[20]; inte; cout<<"请输入您要修改的姓名: "; cin>>changename; fstreamifile("information.txt",ios: : in|ios: : out); while(ifile.read((char*)&s,sizeofs)! =0) { if((strcmp(changename,s.name)==0)&&s.flag==0) { cout<<"学号: "< "< "< "< "语文: "< "< "< "< <<"数据库: "< "< "< "< e=1; break; } } if(e==0) cout<<"没有相关信息! "< if(e==1) { intchoose; cout<<"\t请选择修改方式: "< cout<<"1.修改学号: "< cout<<"2.修改姓名: "< cout<<"3.修改性别: "< cout<<"4.修改年龄: "< cout<<"5.修改语文成绩: "< cout<<"6.修改高数成绩: "< cout<<"7.修改外语成绩: "< cout<<"8.修改C++成绩: "< cout<<"9.修改数据库成绩: "< cout<<"10.修改体育成绩: "< cout< cout<<"请选择: "< cin>>choose; switch(choose) { case1: cout<<"请输入学生学号: "< cin>>s.number; break; case2: cout<<"请输入学生姓名: "< cin>>s.name; break; case3: cout<<"请输入学生性别 "< cin>>s.sex; break; case4: cout<<"请输入学生年龄: "< cin>>s.age; break; case5: cout<<"请输入学生语文成绩: "< cin>>s.cscore; break; case6: cout<<"请输入学生高数成绩: "< cin>>s.mscore; break; case7: cout<<"请输入学生外语成绩: "< cin>>s.escore; break; case8: cout<<"请输入学生C++成绩: "< cin>>s.pscore; break; case9: cout<<"请输入数据库成绩: "< cin>>s.dscore; break; case10: cout<<"请输入学生体育成绩: "< cin>>s.sscore; break; /*default: cout<<"\t输入错误,返回主菜单! "< adminwelcome();*/ } cout<<"信息输入成功! "< s.flag=0; s.sumscore=s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore; s.avescore=s.sumscore/6; ifile.seekp(-(sizeofs),ios: : cur); ifile.write((char*)&s,sizeofs); cout<<"信息已修改并保存! "< } ifile.close(); } voidstuadmin: : del()//删除信息 { chardelname[20]; inte=0; cout<<"请输入您要删除的学生姓名: "< cin>>delname; fstreamifile; ifile.open("information.txt",ios: : in|ios: : out); while(ifile.read((char*)&s,sizeofs)! =0) { if((strcmp(delname,s.name)==0)&&s.flag==0) {cout<<"学号: "< "< "< "< "语文: "< "< "< "< " < "< "< "< e=1; break; } } if(e==0) cout<<"没有相关信息! "< if(e==1) { s.flag=1; ifile.seekp(-(sizeofs),ios: : cur); ifile.write((char*)&s,sizeofs); cout<<"信息删除成功! "< } ifile.close(); } //欢迎界面 voidstudentwelcome()//学生欢迎界面 { cout<<"********************************************************************************"< cout<<"****************************欢迎使用学生信息管理系统****************************"< cout<<"********************************************************************************"< cout<<"\t\t1.查询信息\t\t2.退出系统"< cout<<"********************************************************************************"< do { cout<<"请输入您要进行的操作编号(1或2): "; cin>>i; cout< if(i<1||i>2) cout<<"对不起,请输入1或2这两个选择数字! "< }while(i<1||i>2); switch(i) { case1: sa.stusearch(); studentwelcome(); break; case2: exit(0); break; } } voidadminwelcome()//管理员欢迎界面 { cout<<"********************************************************************************"< cout<<"****************************欢迎使用学生信息管理系统****************************"< cout<<"********************************************************************************"< cout<<"\t1.输入信息\t2.保存信息\t3.查询信息\t4.修改并保存"< cout<<"\t5.显示全部\t6.删除信息\t7.退出系统"< cout<<"****************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 c+ 课程设计 报告 学生 成绩管理系统 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)