首页 c++课程设计-学生成绩管理系统设计报告

c++课程设计-学生成绩管理系统设计报告

举报
开通vip

c++课程设计-学生成绩管理系统设计报告c++课程设计-学生成绩管理系统设计报告 徐 州 师 范 大 学 科 文 学 院 本 科 生 课 程 设 计 课 程 名 称: 计算机程序设计C++ 题 目: 学生信息管理系统 专 业 班 级: 电子信息工程 学 生 姓 名: 学 生 学 号: 日 期: 2010-12-20 指 导 教 师: 科文学院教务部印制 一、课程设计目的、任务和内容要求: (1)使学生掌握C++编程的基本工作原理; (2)培养学生基本掌握C++应用编程的基本思路和方法; (3)使学生掌握C++应用调试的基本技能; (4...

c++课程设计-学生成绩管理系统设计报告
c++课程设计-学生成绩管理系统设计报告 徐 州 师 范 大 学 科 文 学 院 本 科 生 课 程 设 计 课 程 名 称: 计算机程序设计C++ 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目: 学生信息管理系统 专 业 班 级: 电子信息工程 学 生 姓 名: 学 生 学 号: 日 期: 2010-12-20 指 导 教 师: 科文学院教务部印制 一、课程设计目的、任务和内容要求: (1)使学生掌握C++编程的基本工作原理; (2)培养学生基本掌握C++应用编程的基本思路和方法; (3)使学生掌握C++应用调试的基本技能; (4)培养学生分析、解决问题的能力; (5)提高学生的科技论文写作能力 任务如下: 1(进行需求分析和概要设计,给出流程图。 2(写出详细设计,熟悉其中采用的关键技术。 3(给出具体的编码实现并调试。 4(写课程设计报告提交源程序。 内容要求: 设计并完成软件系统。要求: 1(应具有简洁友好的用户界面。 2(要求软件系统的功能完整。 3(要求程序具备正确性,可读性和运行的高效性。 ii 二、进度安排: 第,~2天: 查找资料,进行需求分析和概要设计; 第2~5天: 各模块的详细设计; 第5~10天: 软件实现与调试; 第10~14天:写课程设计报告并提交源程序。 三、主要参考文献: 1. 刘觉夫 王更生等编著《C++程序设计》,北京邮电大学出版社 2. 曾辉 王更生 李广丽等编著《C++程序设计实训教程》,北京邮电大学出版社 3. 谭浩强编著《C++面向对象程序设计》,北京清华大学出版社 4. 百度文库(寻找C++课程设计的模版及简易源代码) 指导教师签字: 年 月 日 iii 徐州师范大学物理与电子工程学院课程设计报告 摘要 ................................................................................................................................................... 5 Abstract ............................................................................................................................................. 6 1 概述 ............................................................................................................................................... 7 1.1功能需求分析: ................................................................................................................. 7 1.11学生成绩的读入和写出模块 ................................................................................... 7 1.12学生成绩输入删除模块 ........................................................................................... 7 1.13学生成绩的查询模块 ............................................................................................... 7 1.14学生成绩的分类汇总模块 ....................................................................................... 7 1.2 环境需求分析 .................................................................................................................... 7 1.3 方法需求分析 .................................................................................................................... 7 2设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 简述 ................................................................................................................................ 8 2.1 系统功能模块图 ................................................................................................................ 8 2.2 设计思想: ........................................................................................................................ 8 3详细设计 ........................................................................................................................................ 9 3.1 设计原理 ............................................................................................................................ 9 3.2程序详细代码描述 ............................................................................................................. 9 3.3系统界面 ........................................................................................................................... 21 4 设计结果及分析 ......................................................................................................................... 22 4.1调试过程 ........................................................................................................................... 22 4.2操作说明 ........................................................................................................................... 23 总 结 ................................................................................................................................... 24 参考文献 ......................................................................................................................................... 25 4 徐州师范大学物理与电子工程学院课程设计报告 摘要 随着科学技术的发展,计算机领域不断取得新的研究成果。计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。尤其是在学校里,要处理大量的学生数据。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点。 学生成绩管理系统能方便用户迅速、准确处理学生的成绩,得到想要的数据并能将学生的信息以文档保存。本文介绍了简易学生成绩管理系统在Microsoft Visual C++ 6.0环境下的实现过程:系统的分析,功能模块的设计,系统的调试和测试。此系统的主要管理的信息有:学生的班级,学号,姓名和三(可以更改)门课的成绩。本系统的主要功能有学生成绩的添加、删除、插入、显示,能对学生成绩按分数或学号进行排序,可以根据用户的要求按班级,姓名,学号查询学生的成绩信息,计算每位学生的总分,分类汇总统计每门课的的总分均分能保存信息到文件以及从文件中读取信息等功能。 关键词:学生成绩管理系统;功能模块( 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 );指针;结构;链表;文件保存及读取 5 徐州师范大学物理与电子工程学院课程设计报告 Abstract With the development of science and technology, computer field has made new research achievements. Computer in replacing and extension of mental work plays more and more important role, not only in the industrial sector and in daily life, also more and more inseparable from the computer. Especially in the school, to deal with large Numbers of students data. Along with the science and technology unceasing enhancement, the computer science is mature day after day, its formidable function hadprofoundly known for the people, it entered the human society eachdomain and plays a more and more important role. As a part of computer application, use the computer to students' performance information management, with crafts incomparable advantages. Students' performance management system can convenient user fast, accurate processing students' scores, the desired data and students' information according to the document preservation. This paper introduces the simple student performance management system in Microsoft Visual c + + 6.0 environment of realization process: system analysis, function module design, system commissioning and testing. The system's main management information are: student class, student id, name and three (can change) course grades. The system's main function of the student's grade add, delete, insert, display, can according to the grades of student achievement or student id sorting, can according to the user's requirements according to class, name, student id inquires the student performance information, calculate each student's total score, collect classified per course total score alike can store information from the document to the file and read information, and other functions. Keywords:Students' performance management system; Function module (function);Pointers;Structure;List;File save and load 6 徐州师范大学物理与电子工程学院课程设计报告 1 概述 此系统的主要管理的信息有:学生的班级,学号,姓名和三(可以更改)门课的成绩。本系统的主要功能有学生成绩的添加、删除、插入、显示,能对学生成绩按分数或学号进行排序,可以根据用户的要求按班级,姓名,学号查询学生的成绩信息,计算每位学生的总分,分类汇总统计每门课的的总分均分能保存信息到文件以及从文件中读取信息等功能。 1.1功能需求分析: 简易学生成绩管理系统主要有4个大的模块:学生成绩从文件读入和写入,学生成绩的输入和删除,学生成绩信息的查询,以及学生成绩的分类汇总。 1.11学生成绩的读入和写出模块 主要功能是读出要管理的成绩文档,保存修改后的成绩文档。实际生活中学生成绩的文件主要以word或excel保存,为了方便操作我在调式本系统中成绩文件采用了txt的文档格式保存,当然以word文档形式保存也是可以的。 1.12学生成绩输入删除模块 主要功能是输入、追加、删除学生成绩的操作。添加操作是根据用户的要求实现的。例如用户可以输入要删除学生的学号删除学生的信息。 1.13学生成绩的查询模块 主要功能是按照用户的要求查询学生的成绩。其中用户可以选择查询单个学生的成绩还是某个班级的成绩,成绩查询中包括个人学生的总分,。 1.14学生成绩的分类汇总模块 统计主要功能是某个班级的每门学科的总分。 1.2 环境需求分析 操作系统: Windows XP 开发软件: Visual C++ 6.0 1.3 方法需求分析 由于数组存放数据的时候要先确定数组的规模,不能动态的分配内存空间,而单链表是非连续存放的,可以对内存空间进行动态分配,此系统是用单链表完成的。 然后定义链表的结点类型为结构就可以实现对学生学号、姓名、成绩、班级等 7 徐州师范大学物理与电子工程学院课程设计报告 学保存。 2设计方案简述 2.1 系统功能模块图 学 生 成 绩 管 理 系 统 链输删显按保读计学按分 表入除示姓存取算生学类 的学学学名学学总成号合 初生生生找生生绩查分 计 始成成成学成成排成 绩 绩 绩 序 化 绩 绩 生 绩 2.2 设计思想: 学生成绩管理系统是用面向对象的方法设计,由于数组的存放是连续的,而单链表是非连续存放的,是动态分配内存空间,因此此系统采用单链表来完成。各个功能模块的实现主要转变到对单链表的遍历,添加和删除结点。 8 徐州师范大学物理与电子工程学院课程设计报告 3详细设计 3.1 设计原理 学生成绩管理系统以菜单选择,通过调用各个函数,对单链表的遍历,实现不同的功能,不同函数处理后返回的只是一个头结点,但是通过头结点可以找到所有链表中的信息,只要有函数,找到头指针就能进行相应的操作,所以模块化的程序方便以后添加或者删除某些功能,程序中通过system(“cls”)清屏函数实现界面的转换,主函数中的循环保证程序不会退出,一个循环和一个清屏函数实现了主菜单和各子画面的切换(子函数)。这样的话各个子函数都可以调用一开始输入的数据,这样就实现了各个不同函数调用时都能使用整个系统连续起来了。作为一个学生成绩管理系统,增加了文件的读入和写出功能,增加了程序的实用性。 3.2程序详细代码描述 #include #include #include #include using namespace std; #define max 100; class student { public: student *next; public: string name;//姓名 long num;//学号 int x,y,z; int AA;//总分 void play(){cout<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 **增加的学生** \n"<>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<<"学号已存在,请重新输入"<next) { if(t->num==num1) { cout<<"学号已存在,请重新输入"<next; } t->next=q; } else { stu=q; } cout<<"输入完毕"<>num1; //查找要删除的结点 student *p1,*p2; p1=stu; while(p1) { if(p1->num==num1) break; else { p2=p1; p1=p1->next; } } //删除结点 if(p1!=NULL)//若找到结点,则删除 { 11 徐州师范大学物理与电子工程学院课程设计报告 p1->play(); cout<<"确定删除吗?[Y/N]"<>c; if(toupper(c)!='Y') return; if(p1==stu) //若要删除的结点是第一个结点 { stu=p1->next; delete p1; } else //若要删除的结点是后续结点 { p2->next=p1->next; delete p1; } cout<<"找到学号为"<>num1; //查找要修改的结点 student *p1,*p2; p1=stu; while(p1) { if(p1->num==num1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<<"学号是"<name<<"c++"<x<<"微机原理"<y<<"数字信号处理 "<z<>p1->name>>p1->x>>p1->y>>p1->z; p1->AA=p1->x+p1->y+p1->z; cout<<"修改成功"<>c; switch (c) { case '1': { long num1; cout<<"要查询的学号"<>num1; //查找要查询的结点 student *p1,*p2; p1=stu; while(p1) { if(p1->num==num1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<<"学号是"<name<<" c++:"<x<<" 微机原理:"<y<<" 数字信号处 理:"<z<>name1; //查找要查询的结点 student *p1,*p2; p1=stu; 13 徐州师范大学物理与电子工程学院课程设计报告 while(p1) { if(p1->name==name1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<num<<" c++:"<x<<" 微机原理:"<y<<" 数字信号处 理:"<z<next) { n++; p1=p1->next; } cout<<"共有"<num>p1->next->num) // 如果头结点大于第二个的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1; //头结点交换 stu=p2; } p1=stu; while(p1->next->next) //中间的交换 14 徐州师范大学物理与电子工程学院课程设计报告 { p2=p1; p1=p1->next; if(p1->num>p1->next->num) { p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; //交换 } } } p1=stu; do { p1->play(); p1=p1->next; }while(p1); } void cla::psx() student *p1,*p2; int n; p1=stu; n=1; while(p1->next) { n++; p1=p1->next; } cout<<"共有"<x>p1->next->x) // 如果头结点大于第二个的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1; //头结点交换 stu=p2; } p1=stu; while(p1->next->next) //中间的交换 { p2=p1; p1=p1->next; if(p1->x>p1->next->x) { p2->next=p1->next; 15 徐州师范大学物理与电子工程学院课程设计报告 p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; //交换 } } } p1=stu; do { p1->play(); p1=p1->next; }while(p1); } void cla::pyw() { student *p1,*p2; int n; p1=stu; n=1; while(p1->next) { n++; p1=p1->next; } cout<<"共有"<y>p1->next->y) // 如果头结点大于第二个的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1; //头结点交换 stu=p2; } p1=stu; while(p1->next->next) //中间的交换 { p2=p1; p1=p1->next; if(p1->y>p1->next->y) { p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; //交换 } } } 16 徐州师范大学物理与电子工程学院课程设计报告 p1=stu; do { p1->play(); p1=p1->next; }while(p1); } void cla::pyy() { student *p1,*p2; int n; p1=stu; n=1; while(p1->next) { n++; p1=p1->next; } cout<<"共有"<z>p1->next->z) // 如果头结点大于第二个的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1; //头结点交换 stu=p2; } p1=stu; while(p1->next->next) //中间的交换 { p2=p1; p1=p1->next; if(p1->z>p1->next->z) { p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; //交换 } } } p1=stu; do { p1->play(); p1=p1->next; }while(p1); } 17 徐州师范大学物理与电子工程学院课程设计报告 void cla::pAA()//按总分排序 { student *p1,*p2; int n; p1=stu; n=1; while(p1->next) { n++; p1=p1->next; } cout<<"共有"<AA>p1->next->AA) // 如果头结点大于第二个的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1; //头结点交换 stu=p2; } p1=stu; while(p1->next->next) //中间的交换 { p2=p1; p1=p1->next; if(p1->AA>p1->next->AA) { p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; //交换 } } } p1=stu; do { p1->play(); p1=p1->next; }while(p1); } void cla::staxis()//排序 { system("cls"); char c; cout<<"请选择以何种方式排序:"<>c; 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<<"\n保存学生信息(将覆盖原文件),是否继续?[Y/N]:"; cin>>c; if(toupper(c)!='Y') return; ofstream tfile("date.txt",ios_base::binary); student *p=stu; while(p)// 写入文件 { tfile<name<<"\t"<num<<"\t"<x<<"\t"<y<<"\t"<z; tfile<next; } tfile.close(); cout<<"保存完毕..."<next; delete p; p=stu; } 19 徐州师范大学物理与电子工程学院课程设计报告 ifstream tfile("date.txt",ios_base::binary); string name1; long num1; int x1,y1,z1; tfile>>name1>>num1>>x1>>y1>>z1; while(tfile.good()) { //创建学生接点 student *s; s=stu; s=new student(name1,num1,x1,y1,z1); s->next=0; s->AA=x1+y1+z1; if(stu) //若已经存在结点 { student *p2; p2=stu; while(p2->next) //查找尾结点 { p2=p2->next; } p2->next=s; //连接 } else //若不存在结点(表空) { stu=s; //连接 } tfile>>name1>>num1>>x1>>y1>>z1; } tfile.close(); cout<<"\n学生信息已经装入...\n"; } void main() { char c; cla a; do { cout<<"\n 学 生 成 绩 管 理 系 统 \n"; cout<<"**************************************\n"; cout<<" 作者:08电信 吴龙 \n"; cout<<" 1„„增加学生 \n"; cout<<" 2„„删除学生 \n"; 20 徐州师范大学物理与电子工程学院课程设计报告 cout<<" 3„„修改学生 \n"; cout<<" 4„„查询学生信息 \n"; cout<<" 5„„排序 \n"; cout<<" 6„„保存信息 \n"; cout<<" 7„„读取信息 \n"; cout<<" 8„„退出 \n"; cout<<"**************************************\n"; cout<<"请选择(1-8):"; cin>>c; 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'); } 3.3系统界面 系统主菜单列出了该程序的所有功能,学生个人的总分在输入创建链表是就计 算好并储存好了,同时显示学生信息是就一起显示出来了,使用时该适当的使 用第一个初始化链表的功能,否则可能出现意想不到的错误。 初始界面图01: 21 徐州师范大学物理与电子工程学院课程设计报告 4 设计结果及分析 4.1调试过程 增加学生 修改信息 查询方式 排序方式 22 徐州师范大学物理与电子工程学院课程设计报告 保存信息 4.2操作说明 一个成绩管理系统如果不能进行文档的读出和写入的操作,功能再多,程序关闭后,所做的操作都将没有,这就失去了实际的意义。此系统当用户退出系统时,用户可以选择是否保存已做的修改。当用户任意选择一个操作时,系统将会提示。此外在输入成绩时,输入错误的数字系统可以提示错误,但是如果输入标点和字母时,系统将会出错,因此输入成绩时不可以输入字母和标点。此外,注意适当的使用链表初始化,防止出现意外错误,例如,一开始不初始化就显示学生信息,由于链表还未创建,会出现内存不能为read的错误。提示是否返回主菜单,如果不返回则自动提示退出系统,选择是的话返回主菜单。 23 徐州师范大学物理与电子工程学院课程设计报告 总 结 一开始知道课题后,以为很简单,但我想如果用数组实现的话,在内存中是以连续地址存放的,不方便操作,所以我选择了使用链表,它可以实现无序的在内存中存放,只要有一个头结点,就可以对整个链表进行相关的操作,在调式时遇到了很多问题,最多的是指针问题引起的内存不能为read,因此指针这一块知识还得好好的加强,当我将学生成绩管理系统的程序调试完毕后,心里感到轻松了许多,但还是对自己的程序不最满意,因为有时还是会出现内存不能read。我现在体会到程序的调试是相当的重要的。在使用指针时要特别注意用过后的指针不使用就要删除,已防出错。链表的尾部要指向NULL,这点需特别注意的。 成绩管理系统如果只是将结果在屏幕显示后就不存在了,就没有意义了,于是我添加了文件的读出和写入的功能,写入时如果没有目标文件,则系统会自动在目标文件夹里生成一个文件用来储存用户数据,该文件类型可以按用户要求生成,如txt文本文档或doc文档等。编写这次代码,在如何进行成绩排序上费了些力气,虽然老师讲过冒泡排序和选择排序,可是运用到单链表上就着实感到困难了,参考了老师PPT上的插入排序方法实现了,我调试程序的时候用无效数据测试时,没有用特殊的符号去测试,我用一些符号测试了我的程序,结果如我所料,程序出现了错误,我没有找到解决的方法。如果我能解决上述缺点,我想这个程序应该算是合格了。 不管怎么说,这次课程设计还是锻炼了我编写程序的能力,对以前学过的知识有了进一不的了解,特别是链表这一知识点。 此次课程设计最大的收获是:学会了自己学习。 C++我会好好学的,真的很有用~ 24 徐州师范大学物理与电子工程学院课程设计报告 参考文献 1. 刘觉夫 王更生等编著《C++程序设计》,北京邮电大学出版社 2. 曾辉 王更生 李广丽等编著《C++程序设计实训教程》,北京邮电大学出版社 3. 谭浩强编著《C++面向对象程序设计》,北京清华大学出版社 4. 百度文库(寻找C++课程设计的模版及简易源代码) 25 徐州师范大学物理与电子工程学院课程设计报告 答辩记录表 学生姓名: 吴龙 学号: 088326117 班级: 08电信 答辩地点: 答辩内容记录: 26 徐州师范大学物理与电子工程学院课程设计报告 成绩评定表 学生姓名: 吴龙 学号: 088326117 班级: 08电信 合计 各项实际合计类别 评分 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 备注 分值 分值 得分 得分 按时参加课程设计,无旷课、迟到、10 早退、违反实验室纪律等情况。 设计方案 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 合理,设计目标明平时 10 确,符合专业培养要求,时间安排 完成30 得当,技术路线可靠。 情况 按设计任务书的要求完成了全部 10 任务,能完整演示其设计内容,符 合要求。 报告文字通顺,内容翔实,论述充 10 分、完整,立论正确,结构严谨合 理,报告整体格式规范。 设计方案合理、可行,论证严谨,报告10 逻辑性强;符号统一;图表完备、 完成30 符合规范要求。 情况 能对整个设计过程进行全面的总 结,得出有价值的结论或结果;参10 考文献数量在3篇以上,格式符合 要求,在正文中正确引用。 在规定时间内能就所设计的内容答辩 20 进行阐述,言简意明,重点突出, 组 论点正确,条理清晰。 答辩长: 40 情况 在规定时间内能准确、完整、流利 地回答教师所提出的问题。 20 总评成绩: 分 指导教师: (签字) 日 期: 年 月 日 27 徐州师范大学物理与电子工程学院课程设计报告 课程设计总结 成绩分析表 班级 08电信 60分以分数分布 90分以上 89-80 79-70 69-60 下 学生数 百分比 最高分 最低分 平均分 28
本文档为【c++课程设计-学生成绩管理系统设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_321635
暂无简介~
格式:doc
大小:114KB
软件:Word
页数:34
分类:企业经营
上传时间:2017-09-16
浏览量:95