C学生管理系统.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 管理 系统
- 资源描述:
-
传媒工程系 成 绩 C++程序设计语言结业报告 课程名称: C++程序设计语言 班级: B1101 学号: 姓名: 程 龙 指导教师: 赵 凤 怡 报告完毕时间:_2023_年_12_月_17_日 2023-10-28制定 C++程序设计语言结业报告 课程名称 C++程序设计语言 班 级 B1101 实验日期 2023年11月 姓 名 程龙 学 号 实验成绩 名 称 C++程序设计语言 实验目的及规定 掌握 Visual C++集成环境下调试标准C++程序的方法 实验环境 Visual C++集成环境、Windows XP 操作系统 实验内容 1. 用C++语言开发“简朴的学生成绩管理系统”。 算法描述及实验环节 (用适当的形式表达算法设计思想与算法实现环节) 学生成绩管理系统学生成绩管理系统 浏览学生信息 添加学生信息 删除学生信息 查找学生信息 修改学生信息 成绩的解决 按照某门成绩排序 求出每个学生各门课程的总成绩、平均成绩最高分和最低分 求出某一门课程所有学生的总成绩、平均成绩、最高分和最低分 调试过程及实验结果 (具体记录在调试过程中出现的问题及解决方法。记录实验执行的结果) 1.进入系统: 2. 功能选择: 3学生成绩录入: 4.显示学生成绩: 5.排序: 6.按姓名查找(按学号查找): 7.删除学生成绩: 8.修改学生成绩: 总 结 (对实验结果进行分析,问题回答,实验心得体会及改善意见) 编程规定很具体,内容也比较多,有一定难度。一方面,学生成绩记录是一个复杂的数据结构,至少应涉及学号,姓名,性别和成绩。所以,必须建立一个类student,用来记录学号,姓名,性别和成绩。此外还得建立一个类stuscore,用来记录多个学生的成绩记录。 我的大体思绪如下: 1. 建立类学生类student,它至少涉及学号number,姓名name,性别sex,成绩chengji。 2. 函数init(string &Name,string &Number,char Sex,double Chengji)用于输入学生记录。 3. 建立学生成绩记录类stuscore,该类是学生成绩记录的集合。其成员函数则是问题中规定的添加、显示、查找、删除、保存、导出等各种操作。 4. 编写各个功能的函数实体,简朴来说就是各个功能的编写。 本系统的重点就是要会建立两个类。一个是学生类student,用来存放一个学生的成绩记录,相称于一个结构体的功能吧。另一个类是学生成绩记录系统类stuscore,该类用来存放多个学生的成绩记录。难点就是stuscore类里的各个功能的实现。总的来说,添加,显示,查找,这三个功能比较容易,但是,删除,保存,加载这三个功能就需要花点心思了,也许是平时用的比较少吧,生疏了。可见只有通过平时多加练习,才干有助于自己巩固知识点。 最后想说的是,调试程序真的很关键。调试程序需要较大的耐心。也许调试程序的时间比自己编写整个程序的时间还要长,下的工夫还要深,但这是一个程序员必须了解,也必须接受的事实。有好几次,几个错误让我很是头疼啊,很想删了,重新来过,可是最后发现,还是得有耐心去调试程序。 通过这个实验的练习,我也学到了很多东西,特别是加深了对类和对象理解和应用方面.。 附录 (源程序清单等) # include <iostream> # include <fstream> # include <string.h> #include <conio.h>//用getch()(); using namespace std; //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ class Student { public: char name[20]; char Id[20]; int Cnum; //C课程得分 int Mnum; //数学课程得分 int Enum; //英语课程得分 int sum; //总分 Student * Next; void Input() { 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; } void ReadFile(istream & in) { in>>name>>Id>>Cnum>>Mnum>>Enum>>sum; } void Show() { cout<<"姓名:"<<name<<endl<<"学号:"<<Id<<endl<<"C++:"<<Cnum<<endl <<"数学:"<<Mnum<<endl<<"外语:"<<Enum<<endl<<"总成绩:"<<sum<<endl<<endl<<endl; } }; //﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ class Studentmassage { public: Studentmassage(); ~Studentmassage(); void ShowMenu(); void Find(); void Save(); void ModifyItem(); void RemoveItem(); void Swap(Student *,Student *); void Sort(); //void Unpass(); int ListCount(); //void Average(); void Display() { for(Student * p=Head->Next;p!=End;p=p->Next) p->Show(); cout<<"输入任意字符!继续……"; getch(); } void AddItem() { End->Input(); End->Next=new Student; End=End->Next; cout<<"添加成功!"<<endl; cout<<"输入任意字符!继续……"; getch(); } private: Student * Head,* End; ifstream in; ofstream out; Student *FindItem(char * name) { for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p->Next->name,name))return p; return NULL; } Student *FindID(char * Id) { for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p->Next->Id,Id))return p; return NULL; } }; //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ Studentmassage::Studentmassage() { Head=new Student; Head->Next=new Student; End=Head->Next; in.open("sort.txt"); if(!in) cout<<"这是一个新系统,无学生信息。请先输入。"<<endl; else { while(!in.eof()) { End->ReadFile(in); if(End->name[0]=='\0')break; End->Next=new Student; End=End->Next; } in.close(); cout<<"\t\t读取学生信息成功!"<<endl; } } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ Studentmassage::~Studentmassage() { Save(); for(Student * temp;Head->Next!=End;) { temp=Head->Next; Head->Next=Head->Next->Next; delete temp; } delete Head,End; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ void Studentmassage::ShowMenu() { cout<<"〓〓〓〓〓〓〓〓〓〓 ☆ 学 生 成 绩 管 理 系 统 ☆ 〓〓〓〓〓〓〓〓〓〓"<<endl; cout<<"〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓"<<endl; cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.增长学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl; cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 2.显示学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl; cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 3.排序记录成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl; cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 4.查找学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl; cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 5.删除学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl; cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 6.修改学生信息 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl; cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系统 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl; cout<<"\n\t\t\n\t\t请选择:"; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ void Studentmassage::Find() { char name[20] ,Id[10]; int x; 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) { case 1:{cout<<"\t\t请输入要查找的学生的姓名:";cin>>name; if(p=FindItem(name)) { p->Next->Show(); cout<<"输入任意字符!继续……"; getch(); } else { cout<<"\t\t没有找到该姓名的学生!"<<'\n'<<endl; cout<<"输入任意字符!继续……"; getch(); } }break; case 2: { cout<<"\t\t请输入要查找的学生的学号:";cin>>Id; if(p=FindID(Id)) { p->Next->Show(); cout<<"输入任意字符!继续……"; getch(); } else { cout<<"\t\t没有找到该学好的学生!"<<'\n'<<endl; cout<<"输入任意字符!继续……"; getch(); } }break; } } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ void Studentmassage::ModifyItem() //修改信息 { char name[20]; Student * p=NULL; cout<<"\t\t请输入要修改的人的姓名:";cin>>name; if(p=FindItem(name)) { cout<<"\t\t已找到学生的信息,请输入新的信息!"<<endl; p->Next->Input(); cout<<"修改成功!"<<endl; cout<<"输入任意字符!继续……"; getch(); } else { cout<<"\t\t没有找到!"<<endl; cout<<"输入任意字符!继续……"; getch(); } } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ void Studentmassage::RemoveItem() // 删除信息 { char name[20]; Student * p=NULL,*temp=NULL; cout<<"\t\t请输入要删除的学生的姓名:"<<endl;cin>>name; if(p=FindItem(name)) { temp=p->Next; p->Next=p->Next->Next; delete temp; cout<<"\t\t删除成功!"<<endl; cout<<"输入任意字符!继续……"; getch(); } else { cout<<"\t\t没有找到!"<<endl; cout<<"输入任意字符!继续……"; getch(); } } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ void Studentmassage::Swap(Student *p1, Student *p2)//互换两个combox变量的数据域 { Student *temp=new Student; 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; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ int Studentmassage::ListCount()//记录当前链表的记录总数,返回一个整数 { if(! Head) return 0; int n=0; for(Student * p=Head->Next;p!=End;p=p->Next) { n++; } return n; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ void Studentmassage::Sort()//对当前链表进行排序 { cout <<"Sorting..."<<endl; Student *p=NULL,*p1=NULL,*k=NULL; int n=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 <<"排序完毕!"<<endl; getch(); return; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ void Studentmassage::Save() { out.open("sort.txt"); for(Student *p=Head->Next;p!=End;p=p->Next) out<<p->name<<"\t"<<p->Id<<"\t"<<p->Cnum<<"\t" <<p->Mnum<<"\t"<<p->Enum<<"\t"<<p->sum<<'\n'; out.close(); } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ int main() { int x,i=0; bool quit=false; cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl; for(i=0;i<3;i++) cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl; cout<<"\t\t◎★★★★【 欢迎进入学生成绩管理系统 】★★★★◎"<<endl; for(i=0;i<3;i++) cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl; cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"<<endl;; Studentmassage Grade; cout<<"按任意键开始……"; getch(); while(!quit) { system("cls"); Grade.ShowMenu(); cin>>x; switch(x) { case 0:quit=true;break; case 1:Grade.AddItem();break; case 2:Grade.Display();break; case 3:Grade.Sort();break; case 4:Grade.Find();break; case 5:Grade.RemoveItem();break; case 6:Grade.ModifyItem();break; } } return 0; }展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




C学生管理系统.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/3908025.html