C++学生管理系统模板Word格式文档下载.docx
- 文档编号:1358818
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:22
- 大小:87.75KB
C++学生管理系统模板Word格式文档下载.docx
《C++学生管理系统模板Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++学生管理系统模板Word格式文档下载.docx(22页珍藏版)》请在冰点文库上搜索。
学生成绩管理系统
调试过程及实验结果
(详细记录在调试过程中出现的问题及解决方法。
记录实验执行的结果)
1.进入系统:
2.功能选择:
3学生成绩录入:
4.显示学生成绩:
5.排序:
6.按姓名查找(按学号查找):
7.删除学生成绩:
8.修改学生成绩:
总结
(对实验结果进行分析,问题回答,实验心得体会及改进意见)
编程要求很详细,内容也比较多,有一定难度。
首先,学生成绩记录是一个复杂的数据结构,至少应包括学号,姓名,性别和成绩。
因此,必须建立一个类student,用来记录学号,姓名,性别和成绩。
另外还得建立一个类stuscore,用来记录多个学生的成绩记录。
我的大致思路如下:
1.建立类学生类student,它至少包括学号number,姓名name,性别sex,成绩chengji。
2.函数init(string&
Name,string&
Number,charSex,doubleChengji)用于输入学生记录。
3.建立学生成绩记录类stuscore,该类是学生成绩记录的集合。
其成员函数则是问题中要求的添加、显示、查找、删除、保存、导出等各种操作。
4.编写各个功能的函数实体,简单来说就是各个功能的编写。
本系统的重点就是要会建立两个类。
一个是学生类student,用来存放一个学生的成绩记录,相当于一个结构体的功能吧。
另一个类是学生成绩记录系统类stuscore,该类用来存放多个学生的成绩记录。
难点就是stuscore类里的各个功能的实现。
总的来说,添加,显示,查找,这三个功能比较容易,可是,删除,保存,加载这三个功能就需要花点心思了,可能是平时用的比较少吧,生疏了。
可见只有经过平时多加练习,才能有助于自己巩固知识点。
最后想说的是,调试程序真的很关键。
调试程序需要较大的耐心。
可能调试程序的时间比自己编写整个程序的时间还要长,下的工夫还要深,但这是一个程序员必须了解,也必须接受的事实。
有好几次,几个错误让我很是头疼啊,很想删了,重新来过,可是最后发现,还是得有耐心去调试程序。
经过这个实验的练习,我也学到了很多东西,特别是加深了对类和对象理解和应用方面.。
附录
(源程序清单等)
#include<
iostream>
fstream>
string.h>
#include<
conio.h>
//用getch()();
usingnamespacestd;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
classStudent
{
public:
charname[20];
charId[20];
intCnum;
//C课程得分
intMnum;
//数学课程得分
intEnum;
//英语课程得分
intsum;
//总分
Student*Next;
voidInput()
{
cout<
<
"
\t\t请输入学生的姓名:
"
;
cin>
>
name;
\t\t请输入学生的学号:
Id;
\t\t请输入C课程的成绩:
Cnum;
\t\t请输入数学课程的成绩:
Mnum;
\t\t请输入英语课程的成绩:
Enum;
sum=Cnum+Mnum+Enum;
}
voidReadFile(istream&
in)
in>
name>
Id>
Cnum>
Mnum>
Enum>
sum;
voidShow()
name<
endl<
Id<
C++:
Cnum<
endl
<
数学:
Mnum<
外语:
Enum<
总成绩:
sum<
endl;
};
//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
classStudentmassage
Studentmassage();
~Studentmassage();
voidShowMenu();
voidFind();
voidSave();
voidModifyItem();
voidRemoveItem();
voidSwap(Student*,Student*);
voidSort();
//voidUnpass();
intListCount();
//voidAverage();
voidDisplay()
for(Student*p=Head->
Next;
p!
=End;
p=p->
Next)
p->
Show();
输入任意字符!
继续……"
getch();
voidAddItem()
End->
Input();
Next=newStudent;
End=End->
添加成功!
private:
Student*Head,*End;
ifstreamin;
ofstreamout;
Student*FindItem(char*name)
for(Student*p=Head;
p->
Next!
Next)//匹配成功则返回上一个指针,不成功就返回空
if(!
strcmp(p->
Next->
name,name))returnp;
returnNULL;
Student*FindID(char*Id)
Id,Id))returnp;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage:
:
Studentmassage()
Head=newStudent;
Head->
End=Head->
in.open("
sort.txt"
);
in)
这是一个新系统,无学生信息。
请先输入。
else
while(!
in.eof())
ReadFile(in);
if(End->
name[0]=='
\0'
)break;
in.close();
\t\t读取学生信息成功!
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
~Studentmassage()
Save();
for(Student*temp;
Head->
)
temp=Head->
Next=Head->
deletetemp;
deleteHead,End;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
voidStudentmassage:
ShowMenu()
〓〓〓〓〓〓〓〓〓〓☆学生成绩管理系统☆〓〓〓〓〓〓〓〓〓〓"
〓〓〓〓〓〓〓★★★★★★★★★★★★★★★★★〓〓〓〓〓〓〓"
〓〓〓〓〓〓〓〓〓★☆1.增加学生成绩☆★〓〓〓〓〓〓〓〓〓"
〓〓〓〓〓〓〓〓〓★☆2.显示学生成绩☆★〓〓〓〓〓〓〓〓〓"
〓〓〓〓〓〓〓〓〓★☆3.排序统计成绩☆★〓〓〓〓〓〓〓〓〓"
〓〓〓〓〓〓〓〓〓★☆4.查找学生成绩☆★〓〓〓〓〓〓〓〓〓"
〓〓〓〓〓〓〓〓〓★☆5.删除学生成绩☆★〓〓〓〓〓〓〓〓〓"
〓〓〓〓〓〓〓〓〓★☆6.修改学生信息☆★〓〓〓〓〓〓〓〓〓"
〓〓〓〓〓〓〓〓〓★☆0.安全退出系统☆★〓〓〓〓〓〓〓〓〓"
\n\t\t\n\t\t请选择:
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Find()
charname[20],Id[10];
intx;
Student*p=NULL;
\n\t\t*********************************\n"
\t\t※1.按学生的姓名查找\n\t\t※2.按学生学号查找"
\n\t\t*********************************\n请选择:
x;
switch(x)
case1:
{cout<
\t\t请输入要查找的学生的姓名:
cin>
if(p=FindItem(name))
\t\t没有找到该姓名的学生!
'
\n'
}break;
case2:
\t\t请输入要查找的学生的学号:
if(p=FindID(Id))
\t\t没有找到该学好的学生!
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
ModifyItem()//修改信息
\t\t请输入要修改的人的姓名:
\t\t已找到学生的信息,请输入新的信息!
修改成功!
\t\t没有找到!
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
RemoveItem()//删除信息
Student*p=NULL,*temp=NULL;
\t\t请输入要删除的学生的姓名:
temp=p->
Next=p->
\t\t删除成功!
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Swap(Student*p1,Student*p2)//交换两个combox变量的数据域
Student*temp=newStudent;
strcpy(temp->
name,p1->
name);
Id,p1->
Id);
temp->
Cnum=p1->
Mnum=p1->
Enum=p1->
sum=p1->
strcpy(p1->
name,p2->
Id,p2->
p1->
Cnum=p2->
Mnum=p2->
Enum=p2->
sum=p2->
strcpy(p2->
name,temp->
Id,temp->
p2->
Cnum=temp->
Mnum=temp->
Enum=temp->
sum=temp->
intStudentmassage:
ListCount()//统计当前链表的记录总数,返回一个整数
Head)
return0;
intn=0;
n++;
returnn;
Sort()//对当前链表进行排序
{
cout<
Sorting..."
Student*p=NULL,*p1=NULL,*k=NULL;
intn=Studentmassage:
ListCount();
if(n<
2)
return;
for(p=Head->
for(k=p->
k!
k=k->
if(p->
sum>
k->
sum)
Studentmassage:
Swap(p,k);
排序完成!
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Save()
out.open("
for(Student*p=Head->
out<
\t"
out.close();
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
intmain()
intx,i=0;
boolquit=false;
\t\t§
§
for(i=0;
i<
3;
i++)
\t\t◎\t\t\t\t\t\t◎"
\t\t◎★★★★【欢迎进入学生成绩管理系统】★★★★◎"
\n"
StudentmassageGrade;
按任意键开始……"
quit)
system("
cls"
Grade.ShowMenu();
case0:
quit=true;
break;
Grade.AddItem();
Grade.Display();
case3:
Grade.Sort();
case4:
Grade.Find();
case5:
Grade.RemoveItem();
case6:
Grade.ModifyItem();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 管理 系统 模板