梧州网站seo,wordpress做支付宝,qpython3手机版,网站制作和美工《面向对象程序设计》课程实验报告 学生成绩管理系统 班级 计算机应用091班 姓名唐俊驰 学号 2009052023 日期 2010-12-26 一、 需求分析 1#xff0e; 程序的功能#xff1a;学生数据的录入、添加、修改与删除#xff1b;成绩统计并排名 程序的功能学生数据的录入、添加、修改与删除成绩统计并排名学生数据的读取与存储等基本功能。 2 输入输出的要求输入学生的成绩及处理要求输出自己想得到的结果 3 测试数据。 zhang 123 58 69 74 wang 456 78 96 58 yang 789 89 68 59 二、 详细设计 1 程序框架设计 设置了添加、修改、删除、查找、排序和对数据的读取、保存等功能。 2 程序详细设计 添加创建一个新的分类用输入的变量初始化这个类并用指针链接上一个对象。 修改先通过链表找到要修改的对象在输入要修改的值利用类内函数对值进行修改。 删除根据输入的条件找到要删除的对象将此对象的next指针赋值给上一个对象的next值。 查找按照学号或者姓名按链表查找对象找到后输出该对象的基本信息。 排序利用比较法按照要求的标准进行排序。 数据的读取和保存文件的打开和关闭并按照存储的格式读取。 三、 调试分析 1 调试中遇到的问题及对问题的解决方法 四、 使用说明及测试结果 1 系统配置Windows XP SP3VC 6.0 2 系统运行效果图 五、 源程序带注释 1程序代码 /*stu.cpp*/ #includeiostream #include .\ClassHead.h using namespace std; void main() { char c; cla a; do { cout\n score systerm:\n; cout 1……add \n; cout 2……delete \n; cout 3……change \n; cout 4……look for\n; cout 5……paixu\n; cout 6……save \n; cout 7……read \n; cout 8……back \n; coutchoose(1-8):; cinc; switch(c) { case 1: a.sadd(); break; case 2: a.sremove(); break; case 3: a.samend(); break; case 4: a.ssearch(); break; case 5: a.staxis(); break; case 6: a.ssave(); break; case 7: a.sload(); break; } }while(c!8); } /*类的定义及其成员函数的实现*/ #ifndef _CLASSHEAD_H #define _CLASSHEAD_H #includeiomanip #includefstream #includestring #define max 80; using namespace std; class student { public: student *next; public: string name; long num; int x,y,z; int AA; void play() { cout name students numbers num ,math: x ,language: y ,english: z ,in total: AA endl; }; student(string sname,long snum,int sx,int sy,int sz) { name sname; num snum; x sx; y sy; z sz; } }; class cla { public: cla() { stu 0; sload(); } ~cla() { student *p; p stu; while(p) { p p-next; delete stu; stu p; } stu 0; } void sadd(); void sremove(); void samend(); void ssearch(); void staxis(); void ssave(); void sload(); void pxh(); void psx(); void pyw(); void pyy(); void pAA(); private: student *stu; }; void cla::sadd() { student *q; string name1; long num1; int x1,y1,z1; system(cls); cout \n **add student** \n endl; cout please input: endl; cout name\tnumber\tmath\tlanguage\tenglish: endl; cin name1 num1 x1 y1 z1; q new student(name1,num1,x1,y1,z1); q-next 0; q-AA x1 y1 z1; if(stu) { student *t; t stu; if(t-num num1) { cout number has already been recordedplease input again endl; return; } while(t-next) { if(t-num num1) { cout number has already been recordedplease input again endl; return; } t t-next; } t-next q; } else { stu q; } cout down endl; } void cla::sremove() { system(cls); int num1; cout \n** delete **\n; cout please input the number you want to delete:; cin num1; student *p1,*p2; p1 stu; while(p1) { if(p1-num num1) break; else { p2 p1; p1 p1-next; } } if(p1 ! NULL) { p1-play(); cout [Y/N] endl; char c; cin c; if(toupper(c)!Y) return; if(p1stu) { stu p1-next; delete p1; } else { p2-next p1-next; delete p1; } cout find the number is: num1 delete\n; } else cout theres no information about that!\n; } void cla::samend() { system(cls); long num1; cout \n** change the student number**\n; cout input the changing number; cin num1; student *p1,*p2; p1 stu; while(p1) { if(p1-num num1) break; else { p2 p1; p1 p1-next; } } if(p1!NULL) { cout the number is num1 information endl; cout name p1-namemathp1-xlanguagep1-yenglishp1-zendl; coutplease the changing informationname math language englishendl; cinp1-namep1-xp1-yp1-z; p1-AAp1-xp1-yp1-z; coutchange suceedendl; } else coutno found!\n; } void cla::ssearch() { system(cls); cout\n** look for **\nendl; coutplease input the wayendl; cout1.numberendl; cout2.nameendl; cout3.returnendl; char c; cinc; switch (c) { case 1: { long num1; coutthe numberendl; cinnum1; student *p1,*p2; p1stu; while(p1) { if(p1-numnum1) break; else { p2p1; p1p1-next; } } if(p1!NULL) { coutmuber isnum1 informationendl; coutname:p1-name math:p1-x language:p1-y english:p1-zendl; coutdown; } else coutno foud!\n; break; } case 2: { string name1; coutthe nameendl; cinname1; student *p1,*p2; p1stu; while(p1) { if(p1-namename1) break; else { p2p1; p1p1-next; } } if(p1!NULL) { coutname1informationendl; coutnumber:p1-num math:p1-x language:p1-y english:p1-zendl; coutdown...; } else coutno foud!\n; break; } case 3: return; } } void cla::pxh() { student *p1,*p2; int n; p1stu; n1; while(p1-next) { n; p1p1-next; } couthavenmessage...endl; int i; p1stu; for(i1;in;i) { p1stu; if (p1-nump1-next-num) { p2p1-next; p1-nextp1-next-next; p2-nextp1; stup2; } p1stu; while(p1-next-next) { p2p1; p1p1-next; if(p1-nump1-next-num) { p2-nextp1-next; p1-nextp1-next-next; p2-next-nextp1; p1p2-next; } } } p1stu; do { p1-play(); p1p1-next; }while(p1); } void cla::psx() { student *p1,*p2; int n; p1stu; n1; while(p1-next) { n; p1p1-next; } couthavenmessage...endl; int i; p1stu; for(i1;in;i) { p1stu; if (p1-xp1-next-x) { p2p1-next; p1-nextp1-next-next; p2-nextp1; stup2; } p1stu; while(p1-next-next) { p2p1; p1p1-next; if(p1-xp1-next-x) { p2-nextp1-next; p1-nextp1-next-next; p2-next-nextp1; p1p2-next; } } } p1stu; do { p1-play(); p1p1-next; }while(p1); } void cla::pyw() { student *p1,*p2; int n; p1stu; n1; while(p1-next) { n; p1p1-next; } couthavenmessage...endl; int i; p1stu; for(i1;in;i) { p1stu; if (p1-yp1-next-y) { p2p1-next; p1-nextp1-next-next; p2-nextp1; stup2; } p1stu; while(p1-next-next) { p2p1; p1p1-next; if(p1-yp1-next-y) { p2-nextp1-next; p1-nextp1-next-next; p2-next-nextp1; p1p2-next; } } } p1stu; do { p1-play(); p1p1-next; }while(p1); } void cla::pyy() { student *p1,*p2; int n; p1stu; n1; while(p1-next) { n; p1p1-next; } couthavenmessage...endl; int i; p1stu; for(i1;in;i) { p1stu; if (p1-zp1-next-z) { p2p1-next; p1-nextp1-next-next; p2-nextp1; stup2; } p1stu; while(p1-next-next) { p2p1; p1p1-next; if(p1-zp1-next-z) { p2-nextp1-next; p1-nextp1-next-next; p2-next-nextp1; p1p2-next; } } } p1stu; do { p1-play(); p1p1-next; }while(p1); } void cla::pAA() { student *p1,*p2; int n; p1stu; n1; while(p1-next) { n; p1p1-next; } couthavenmessage...endl; int i; p1stu; for(i1;in;i) { p1stu; if (p1-AAp1-next-AA) { p2p1-next; p1-nextp1-next-next; p2-nextp1; //头结点交换 stup2; } p1stu; while(p1-next-next) { //中间的交换 p2p1; p1p1-next; if(p1-AAp1-next-AA) { p2-nextp1-next; p1-nextp1-next-next; p2-next-nextp1; p1p2-next; //交换 } } } p1stu; do { p1-play(); p1p1-next; }while(p1); } void cla::staxis() { //排序 system(cls); char c; cout请选择以何种方式排序endl; cout1……numberendl; cout2……mathendl; cout3……languageendl; cout4……englishendl; cout5……totalendl; cout6……returnendl; coutchoose(1-6)endl; cinc; switch (c) { case 1:pxh(); break; case 2:psx(); break; case 3:pyw(); break; case 4:pyy(); break; case 5:pAA(); break; case 6:return; } } void cla::ssave() { system(cls); char c; cout\nsafe,[Y/N]:; cinc; if(toupper(c)!Y) return; ofstream tfile(date.txt,ios_base::binary); student *pstu; while(p) { tfilep-name\tp-num\tp-x\tp-y\tp-z; tfileendl; pp-next; } tfile.close(); coutdown...endl; } void cla::sload() { student *p; pstu; while(p) { stup-next; delete p; pstu; } ifstream tfile(date.txt,ios_base::binary); string name1; long num1; int x1,y1,z1; tfilename1num1x1y1z1; while(tfile.good()) { student *s; sstu; snew student(name1,num1,x1,y1,z1); s-next0; s-AAx1y1z1; if(stu) { student *p2; p2stu; while(p2-next) { p2p2-next; } p2-nexts; } else { stus; } tfilename1num1x1y1z1; } tfile.close(); cout\ninformation has down...\n; } #endif转载于:https://www.cnblogs.com/vmyspace/archive/2012/08/22/2651512.html