您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 数据结构课程设计报告(学生作业完成情况管理系统)
目录1.需求分析..................................................22.概要设计……………………………………………………………………………………………22.1学生作业完成情况管理系统………………………………………………………22.1.1程序设计说明……………………………………………………………………22.1.2数据结构类型……………………………………………………………………42.2图的建立及存储…………………………………………………………………………42.2.1程序设计说明……………………………………………………………………42.2.2数据结构类型……………………………………………………………………43.详细设计...................................................53.1算法流程图…………………………………………………………………………………53.1.1学生作业完成情况管理系统………………………………………………53.1.2图的建立及存储…………………………………………………………………64.调试分析(运行截图)......................................194.1学生作业完成情况管理系统..............................194.2图的建立及存储…………………………………………………………………………305.课程总结..................................................326.参考文献……………………………………………………………………………………………33沈阳理工大学课程设计专用纸沈阳理工大学21.需求分析(一)学生作业完成情况管理系统假设某门课程一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记。学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。该程序应该具有下列功能:(1)输入信息;(2)输出信息;(3)给定条件,修改、删除相应信息;(4)按条件统计。(二)图的建立及存储建立图的存储结构(图的类型可以是有向图、无向图),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。应用环境设定给定某类图的顶点和边的相关信息,要求输出该图的邻接矩阵。用户界面命令行界面,用户选择所要建立的图的类型,输入相关顶点和边的信息,然后输出该图的邻接矩阵。输入方式首先输入所要建立的图形类型的代码,然后输入顶点vexnum和边的数量arcnum,再输入顶点信息,边的2个端点v1和v2,如果建立的是网则还要输入权值w。输出方式输出的是一个邻接矩阵,采用for循环嵌套,输出该图的邻接矩阵。数据存储方式全部在内存存放,不使用硬盘上的文件或其他数据源,程序执行过程中和结束后不保存数据。程序功能:1.输入图的类型;2.输入相应的图的顶点和边的相关信息;3.得到图的邻接矩阵。2.概要设计2.1学生作业完成情况管理系统2.1.1程序设计说明程序整体分为登录部分、获得数据部分、数据处理及处理信息反馈部分、数据导出保存部分,如下结构图1、2所示:沈阳理工大学课程设计专用纸沈阳理工大学3图1图2该程序具有下列功能:(1)输入信息;(2)输出信息;(3)给定条件,修改、删除相应信息;(4)按条件统计。登录部分登陆注册退出学生作业完成情况管理程序清屏,清除这前所有运行结果,方便之后的运行显示本程序的执行主菜单通过选择,显示各类统计数据输入某学生的学号,修改该学生的个人信息输入班号,显示该班所有学生的十次作业完成情况输入学号,显示某位学生的十次作业完成情况从文件中导入上次操作已保存和修改的数据手动输入学生姓名、学号、班级、各次作业成绩输入某学生的学号,删除该学生的个人信息沈阳理工大学课程设计专用纸沈阳理工大学42.1.2数据结构类型typedefstructstudent//学生信息链表{charname[10];intschoolnumber;intclassnumber;floatscore[10];structstudent*next;}stu,*stupt;stuptst=NULL;//学生信息的头指针stuptqt=NULL;//学生信息的尾指针FILE*fp;//文件指针2.2图的建立及存储2.2.1程序设计说明本程序通过输入有向图与无向图的顶点、边、权值等信息,存储至用数组建立的邻接矩阵,并输出该邻接矩阵图。2.2.2数据结构类型基本操作:typedefenum{DG,UDG}GraphKind;//有向图,无向图typedefstructArcCell{VrTypeadj;//顶点关系类型。对无权图,用1或0表示相邻否;对带权图,则为权值类型。InfoType*info;//该弧相关信息的指针}ArcCell,AdjMatrix[20][20];typedefstruct{VertexTypevertex[20];//顶点向量AdjMatrixarcs;//邻接矩阵intvexnum,arcnum;//图的当前顶点数和弧(边)数GraphKindkind;//图的种类标志}MGraph;CreateGraph(MGraph&G)初始条件:图G未创建。操作结果:创建一个图G。CreateUDG(MGraph&G);初始条件:无向图G未创建。沈阳理工大学课程设计专用纸沈阳理工大学5操作结果:创建一个无向图并求出其邻接矩阵。CreateDG(MGraph&G);初始条件:有向图G未创建。操作结果:创建一个有向图并求出其邻接矩阵。DDisplay(MGraphG)。初始条件:图G已创建。操作结果:输出图G的邻接矩阵。3.详细设计3.1算法及流程图3.1.1学生作业完成情况管理系统程序算法:手动输入学生信息:voidinpu(stuptp){intn;intm=0;intflag;while(m10)//成绩初始化为0{p-score[m]=0;m++;}printf(请输入:姓名:);scanf(%s,p-name);clear();printf(请输入:学号:);scanf(%d,&p-schoolnumber);clear();printf(请输入:班级(如:101):);scanf(%d,&p-classnumber);clear();do{printf(请输入:第几次作业(1~10):);scanf(%d,&n);clear();printf(请输入:该次作业成绩:);沈阳理工大学课程设计专用纸沈阳理工大学6scanf(%f,&p-score[n-1]);clear();//清空缓冲区printf(是否继续输入该生成绩,退出请按q,其他键继续:);flag=getchar();clear();//清空缓冲区堆积}while(flag!='q');}从文件中导入学生信息:voidreadfile(stupt&st,FILE*fp){charflag,flag_1;charfilename[90];printf(如导入前有过手动输入,请先导出至文件后再进行导入,否则输入部分的数据将丢失!\n);printf(任意键继续,退出请按q:);flag_1=getchar();//等待接收一个字符clear();if(flag_1=='q'){return;}lab_2:printf(请选择:a.程序默认路径导入(之前导出时需要是默认导出)b.自定义导入路径(请确保导入路径合法):);flag=getchar();clear();if(flag=='b'){printf(请输入导入路径(请确保导入路径合法!)(如c:.\\student_homework_infor.txt):);scanf(%s,filename);clear();if(access(filename,0)==1)//确定文件或文件夹的访问权限即检查文件的存取方式,如果存取方式有效,则返回0,否则返回1{printf(路径不合法或文件不存在,请重新选择!\n);gotolab_2;}fp=fopen(filename,rb);if(fp==NULL){printf(打开%s文件失败,请返回主菜单重试!\n,filename);return;沈阳理工大学课程设计专用纸沈阳理工大学7}elsefilep_read_to_st(st,fp);//导入文件fclose(fp);}elseif(flag=='a'){fp=fopen(student_homework_infor.txt,r);if(access(student_homework_infor.txt,0)==1){printf(文件不存在!\n);}if(fp==NULL){printf(打开程序所在目录下的student_homework_infor.txt文件失败,请返回上层菜单重试!\n);return;}elsefilep_read_to_st(st,fp);fclose(fp);}else{printf(非法输入!程序将返回上层菜单...\n);}}查询某学生作业完成情况:voidsearch_1(stupt&st,intsnum){stuptp,q;if(st==NULL){printf(未建立学生信息表,请返回上层菜单输入或导入所有学生的信息\n);return;}else{p=st;q=p-next;}if(p-schoolnumber==snum){printf_score(p);//查找成功输出并返回上级函数沈阳理工大学课程设计专用纸沈阳理工大学8return;}while(q!=NULL){if(q-schoolnumber==snum){printf_score(q);//查找成功输出并返回上级函数return;}q=q-next;//下一个}printf(查询失败,该学号学生信息不存在\n);}查询某班级所有学生成绩:voidsearch_2(stuptst,intclnum){stuptp,q;intf=0;if(st==NULL){printf(未建立学生信息表,请返回主菜单输入所有学生的信息\n);return;}else{p=st;q=p-next;}printf(班级姓名学号成绩1成绩2成绩3成绩4成绩5成绩6成绩7成绩8成绩9成绩10\n);printf(──────────────────────────────────────\n);if(p-classnumber==clnum){printf_infor(p);f++;}//查找成功输出while(q!=NULL){if(q-classnumber==clnum){printf_infor(q);f++;}//查找成功输出沈阳理工大学课程设计专用纸沈阳理工大学9q=q-next;//下一个}if(f==0){printf(没有该班级学生信息\n);}}修改学生信息:voidchange(stupt&p){chara;printf_help_2();while((a=getchar())!='0'){clear();printf(班级姓名学号成绩1成绩2成绩3成绩4成绩5成绩6成绩7成绩8成绩9成绩10\n);printf(──────────────────────────────────────\n);printf_infor(p);switch(a){case'1':{printf(您选择了:1.修改姓名\n);change_name(p);break;}case'2':{printf(您选择了:2.修改班级\n);change_class(p);break;}case'3':{printf(您选择了:3.修改成绩\n);change_score(p);break;}default:{printf(非法输入,请重新选择!\n);break;沈阳理工大学
本文标题:数据结构课程设计报告(学生作业完成情况管理系统)
链接地址:https://www.777doc.com/doc-7313028 .html