C++学生管理系统模板.docx
- 文档编号:12541870
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:22
- 大小:87.75KB
C++学生管理系统模板.docx
《C++学生管理系统模板.docx》由会员分享,可在线阅读,更多相关《C++学生管理系统模板.docx(22页珍藏版)》请在冰豆网上搜索。
C++学生管理系统模板
传媒工程系
成绩
C++程序设计语言结业报告
课程名称:
C++程序设计语言
班级:
B1101
学号:
姓名:
程龙
指导教师:
赵凤怡
报告完成时间:
__年_12_月_17_日
-10-28制定
C++程序设计语言结业报告
课程名称
C++程序设计语言
班级
B1101
实验日期
11月
姓名
程龙
学号
实验成绩
名称
C++程序设计语言
实验目的及要求
掌握VisualC++集成环境下调试标准C++程序的方法
实验环境
VisualC++集成环境、WindowsXP操作系统
实验内容
1.用C++语言开发”简单的学生成绩管理系统”。
算法描述及实验步骤
(用适当的形式表示算法设计思想与算法实现步骤)
学生成绩管理系统
调试过程及实验结果
(详细记录在调试过程中出现的问题及解决方法。
记录实验执行的结果)
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
#include
#include
#include
usingnamespacestd;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
classStudent
{
public:
charname[20];
charId[20];
intCnum;//C课程得分
intMnum;//数学课程得分
intEnum;//英语课程得分
intsum;//总分
Student*Next;
voidInput()
{
cout<<"\t\t请输入学生的姓名:
";cin>>name;
cout<<"\t\t请输入学生的学号:
";cin>>Id;
cout<<"\t\t请输入C课程的成绩:
";cin>>Cnum;
cout<<"\t\t请输入数学课程的成绩:
";cin>>Mnum;
cout<<"\t\t请输入英语课程的成绩:
";cin>>Enum;
sum=Cnum+Mnum+Enum;
}
voidReadFile(istream&in)
{
in>>name>>Id>>Cnum>>Mnum>>Enum>>sum;
}
voidShow()
{
cout<<"姓名:
"< "< "< <<"数学: "< "< "< } }; //﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ classStudentmassage { public: 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(); cout<<"输入任意字符! 继续……"; getch(); } voidAddItem() { End->Input(); End->Next=newStudent; End=End->Next; cout<<"添加成功! "< cout<<"输入任意字符! 继续……"; getch(); } private: Student*Head,*End; ifstreamin; ofstreamout; Student*FindItem(char*name) { for(Student*p=Head;p->Next! =End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空 if(! strcmp(p->Next->name,name))returnp; returnNULL; } Student*FindID(char*Id) { for(Student*p=Head;p->Next! =End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空 if(! strcmp(p->Next->Id,Id))returnp; returnNULL; } }; //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ Studentmassage: : Studentmassage() { Head=newStudent; Head->Next=newStudent; End=Head->Next; in.open("sort.txt"); if(! in) cout<<"这是一个新系统,无学生信息。 请先输入。 "< else { while(! in.eof()) { End->ReadFile(in); if(End->name[0]=='\0')break; End->Next=newStudent; End=End->Next; } in.close(); cout<<"\t\t读取学生信息成功! "< } } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ Studentmassage: : ~Studentmassage() { Save(); for(Student*temp;Head->Next! =End;) { temp=Head->Next; Head->Next=Head->Next->Next; deletetemp; } deleteHead,End; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ voidStudentmassage: : ShowMenu() { cout<<"〓〓〓〓〓〓〓〓〓〓☆学生成绩管理系统☆〓〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓★★★★★★★★★★★★★★★★★〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆1.增加学生成绩☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆2.显示学生成绩☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆3.排序统计成绩☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆4.查找学生成绩☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆5.删除学生成绩☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆6.修改学生信息☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆0.安全退出系统☆★〓〓〓〓〓〓〓〓〓"< cout<<"\n\t\t\n\t\t请选择: "; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ voidStudentmassage: : Find() { charname[20],Id[10]; intx; Student*p=NULL; cout<<"\n\t\t*********************************\n"; cout<<"\t\t※1.按学生的姓名查找\n\t\t※2.按学生学号查找"; cout<<"\n\t\t*********************************\n请选择: "; cin>>x; switch(x) { case1: {cout<<"\t\t请输入要查找的学生的姓名: ";cin>>name; if(p=FindItem(name)) { p->Next->Show(); cout<<"输入任意字符! 继续……"; getch(); } else { cout<<"\t\t没有找到该姓名的学生! "<<'\n'< cout<<"输入任意字符! 继续……"; getch(); } }break; case2: { cout<<"\t\t请输入要查找的学生的学号: ";cin>>Id; if(p=FindID(Id)) { p->Next->Show(); cout<<"输入任意字符! 继续……"; getch(); } else { cout<<"\t\t没有找到该学好的学生! "<<'\n'< cout<<"输入任意字符! 继续……"; getch(); } }break; } } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ voidStudentmassage: : ModifyItem()//修改信息 { charname[20]; Student*p=NULL; cout<<"\t\t请输入要修改的人的姓名: ";cin>>name; if(p=FindItem(name)) { cout<<"\t\t已找到学生的信息,请输入新的信息! "< p->Next->Input(); cout<<"修改成功! "< cout<<"输入任意字符! 继续……"; getch(); } else { cout<<"\t\t没有找到! "< cout<<"输入任意字符! 继续……"; getch(); } } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ voidStudentmassage: : RemoveItem()//删除信息 { charname[20]; Student*p=NULL,*temp=NULL; cout<<"\t\t请输入要删除的学生的姓名: "< if(p=FindItem(name)) { temp=p->Next; p->Next=p->Next->Next; deletetemp; cout<<"\t\t删除成功! "< cout<<"输入任意字符! 继续……"; getch(); } else { cout<<"\t\t没有找到! "< cout<<"输入任意字符! 继续……"; getch(); } } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ voidStudentmassage: : Swap(Student*p1,Student*p2)//交换两个combox变量的数据域 { Student*temp=newStudent; strcpy(temp->name,p1->name); strcpy(temp->Id,p1->Id); temp->Cnum=p1->Cnum; temp->Mnum=p1->Mnum; temp->Enum=p1->Enum; temp->sum=p1->sum; strcpy(p1->name,p2->name); strcpy(p1->Id,p2->Id); p1->Cnum=p2->Cnum; p1->Mnum=p2->Mnum; p1->Enum=p2->Enum; p1->sum=p2->sum; strcpy(p2->name,temp->name); strcpy(p2->Id,temp->Id); p2->Cnum=temp->Cnum; p2->Mnum=temp->Mnum; p2->Enum=temp->Enum; p2->sum=temp->sum; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ intStudentmassage: : ListCount()//统计当前链表的记录总数,返回一个整数 { if(! Head) return0; intn=0; for(Student*p=Head->Next;p! =End;p=p->Next) { n++; } returnn; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ voidStudentmassage: : Sort()//对当前链表进行排序 { cout<<"Sorting..."< Student*p=NULL,*p1=NULL,*k=NULL; intn=Studentmassage: : ListCount(); if(n<2) return; for(p=Head->Next;p! =End;p=p->Next) for(k=p->Next;k! =End;k=k->Next) { if(p->sum>k->sum) { Studentmassage: : Swap(p,k); } } cout<<"排序完成! "< getch(); return; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ voidStudentmassage: : Save() { out.open("sort.txt"); for(Student*p=Head->Next;p! =End;p=p->Next) out< < out.close(); } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ intmain() { intx,i=0; boolquit=false; cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"< for(i=0;i<3;i++) cout<<"\t\t◎\t\t\t\t\t\t◎"< cout<<"\t\t◎★★★★【欢迎进入学生成绩管理系统】★★★★◎"< for(i=0;i<3;i++) cout<<"\t\t◎\t\t\t\t\t\t◎"< cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"< StudentmassageGrade; cout<<"按任意键开始……"; getch(); while(! quit) { system("cls"); Grade.ShowMenu(); cin>>x; switch(x) { case0: quit=true;break; case1: Grade.AddItem();break; case2: Grade.Display();break; case3: Grade.Sort();break; case4: Grade.Find();break; case5: Grade.RemoveItem();break; case6: Grade.ModifyItem();break; } } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 管理 系统 模板
![提示](https://static.bdocx.com/images/bang_tan.gif)