ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:835.66KB ,
资源ID:4514721      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4514721.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(数据结构专业课程设计学生成绩标准管理系统.docx)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据结构专业课程设计学生成绩标准管理系统.docx

1、课 程 设 计 报 告课程名称 数据结构 课题名称 学生成绩管理系统 专 业 通信工程 班 级 1301 学 号 0302 姓 名 momom 指导老师 张鏖烽 彭帧 黄哲 7月 2日湖南工程学院课 程 设 计 任 务 书课程名称 数据结构 课 题 学生成绩管理系统 专业班级 通信工程1301 学生姓名 momom 学 号 0302 指导老师 张鏖烽 彭帧 黄哲 审 批 张鏖烽 任务书下达日期 6月 29日任 务 完成日期 7月 5日 目 录一、课程设计分析41.课程设计目标:42.课程设计题目43.需求分析5二、概要设计5三、具体设计6四、调试分析11(1)调试过程中碰到问题11(2)经验和

2、体会11五、用户使用说明12六、测试结果13七、附录18八、课程设计评分表37一、课程设计分析1.课程设计目标:课程设计是对学生一个全方面综合训练,是和课堂听讲、自学和练习相辅相成必不可少一个教学步骤。通常,实习题中问题比平时习题复杂得多,也更靠近实际。实习着眼于原理和应用结合点,使读者学会怎样把书上学到知识用于处理实际问题,培养软件工作所需要动手能力;其次,能使书上知识变“活”,起到深化了解和灵活掌握教学内容目标。平时练习较偏重于怎样编写功效单一“小”算法,而实习题是软件设计综合训练,包含问题分析、总体结构设计、用户界面设计、程序设计基础技能和技巧,多人合作,以至一整套软件工作规范训练和科学

3、作风培养。2.课程设计题目【课题】学生成绩管理系统【问题描述】依据自己这个学期课程表,设计一个成绩管理系统管理自己班成绩;每个学生统计包含学号、姓名、每门课程成绩、总分和加权平均分。【基础要求】一个完整成绩管理系统应含有以下功效:(1)输入:成绩录入;(2)输出:输出成绩表;(3)插入:在成绩表中合适位置插入某个学生成绩;(4)删除:在成绩表中删除某个学生成绩;(5)查找:依据某个关键字查找某个学生成绩;(6)排序:依据某一个或某多个关键字进行排序;(7)筛选:依据某个关键字筛选出符合一些条件数据;【测试数据】用本班成绩总表作为测试数据。3.需求分析此次课程设计题目是学生成绩管理系统,要求能够

4、存入学生,学生信息包含学生学号、姓名、每科成绩和平均成绩和加权平均成绩等。该系统关键有以下七个功效,即对学生信息进行:输入、输出、插入、删除、查找、排序、筛选等功效。对学生进行操作能够有很多思绪,而我选择是单链表村学生信息那一条思绪,即设置一个单链表,其中节点数据域保留学生基础信息。因为我们学号比较长,用整型数据无法保留,所以我定义char型字符串来保留学号和姓名。用一个数组来保留学生每一科成绩,另外在定义一个总分和平均分变量。定义学生以下:typedef struct Studentchar mun12; /学号char name20; /姓名float score8; /成绩float a

5、ll_score; /总分float ave_score; /加权平均分struct Student *next;LinkList;二、概要设计本程序采取链表方法将每一个学生设置成为一个链表中数据节点,节点中有字符型mun12(学号)、name20(姓名)、浮点型数据score8(放置每一科成绩数组)、all_score(总分)和ave_score(加权平均分)。主函数中在实施成绩管理系统之前会先创建一个链表,并调用void InitList (LinkList *&L)函数来初始化链表;以后进入菜单选择项选择功效进行操作,主程序步骤图以下:三、具体设计1、添加学生: 2、输出学生:创建节点s

6、 LinkList *p=L-next;输入学生信息,计算总分和加权分 for(m=1;mnext=s;r=s;(尾插法插入链表)输出学生信息,p=p-nextcount=count+1;学生总数加13、插入学生4、删除学生输入要插入位置 数字选择删除方法scanf(%d,&w); 按编号删除和学号删除调用插入函数 1编号 调用Delete_StudentInsert_Student(h,w); 2学号 调用Locate_Student找到 学生位置,在用Delete_Student步骤图以下:Insert_Student 函数 Delete_Student函数步骤图: Locate_Stud

7、ent函数步骤图和以下:Locate_Student1步骤图类似,不再反复了 5查找学生:调用Seek_Student函数,分为按学号查找和按姓名查找1按编号 调用Locate_Student函数返回i在调用Out_one_Student输出第i个学生2 按姓名调用Locate_Student1函数返回i在调用Out_one_Student输出第i个学生6排序函数 调用Queue_Student函数:其中有按学号,总分,各科成绩排序我这里采取是冒泡排序法进行排序,分别定义了两个节点指针q指向头指针p指向q下一个节点,在进入双重循环进行比较排序 步骤图以下:排序方法全部类似,知识比较数据不一样,

8、所以就没有一一画出来了7 筛选创建另一个链表r用于存筛选出来学生,并调用output_Student函数输出筛选程序步骤图以下:筛选程序又分为1 按总分选 2 全部及格人 3 按各科成绩1 而总分筛选关键是输入一个数值,判定数据是否大于输入数据,大于全部输出2 去不多个人经过比较每一科成绩是否全部大于60分,大于就选出插入新链表并输出3 各科成绩话是只比较其中一科来创建链表并输出其比较步骤图全部如上图所表示,这里便不再一一画出来了。四、调试分析(1)调试过程中碰到问题是怎样处理和对设计和实现回顾讨论和分析在调试过程中碰到第一个问题是输出学生问题,因为输出问题,其中总是发觉输出乱码,找了很久,以

9、后最终发觉是输入时出了问题,因为姓名我定义了字符串型,而字符串长度我定义了20,在创建节点时候我却把name20给了学生节点,造成输出时地址错误而输出乱码。第二个问题是查找,我开始一直想不到怎么把查找到学生输出,以后想了很久,找到了方法,我先经过查找关键字去找到该学生是在链表那个位置,在经过返回位置值来输出想要输出那个学生,所以就定义了Locate_Student和Out_one_Student来完成查找功效。第三个问题是筛选功效实现,我原来想经过比较,将符合关键字学生筛选出来在输出,结果发觉输出函数是已经定义成一次性全部输出形式。造成我一直想不到好方法来进行这个功效代码编写。以后经过老师指导

10、,我知道了一个新方法来编写,就是经过创建一个新学生链表来存已经筛选出来学生。然后在经过输出函数来将新链表进行输出,这么就能够达成筛选目标。改善方法:现在想了一下,其实能够将输出函数进行改善,改成一个一个学生输出形式,在经过一个判定语句进行选择性输出,用这个输出方法能够降低代码量,而达成一样效果。第四个问题是主函数问题,因为我想让主函数看起来简练一点,就把主函数分成两部分,一部分用于选择操作,另一部分用于进行选择好操作,可是这么一来却出现了问题,就是输出数据以后无法暂停在输出界面,而是闪了一下就退出来进入主界面了,这个问题我开始认为是输出函数问题,结果我去改了输出函数,结果还是无法停留。以后知道

11、原因了,主函数退出switch循环以后会立即回到主菜单界面,到时无法停在输出界面。我在主函数最终加一个system(“pause”)以后才打到能够观察到地方。改善方法:能够将主函数定义成一个,不用分开,去掉for(;)这个循环会好点。(2)经验和体会此次课程设计题目我一开始看到时候认为很轻易就能做出来,所以只是大约想了一下思绪,就直接开始了,其实这个试验能够用次序表做会思绪更清楚部分,我没有选择次序表来做,因为我在单链表这一部分有点模糊,所以想挑战一下用单链表来做。这个程序每一个代码全部是我经过一步一步分析写出来,在编写过程中碰到了很多阻碍,很多自己无法预知错误,在不停找错过程中,我感觉到自己

12、在c语言这首先不足,对算法精髓还不是很了解, 对于单链表操作也不是很熟练,尤其是在节点指针多起来时候会有点乱,甚至搞不清指针到底指向哪里了。然而,在编程过程中,一次次测试失败,再一次次修更正确却让我慢慢熟悉了数据结构部分使用方法,逐步知道要编写一个系统,需要多种功效协调才能算一个系统,而每一个功效有需要很多函数之间相互联络来调用和支撑。同时要想将课程设计完成好,就需要主动提问,碰到不懂地方能够找老师或同学相互交流经验,这么才会愈加有效率完成课设。经过这一段时间课设,我学到不仅仅是数据结构想关知识,也知道了团体协作关键性,知道学习需要真正扎实去学习,这么才能真正学到知识,并灵活利用这些所学知识。

13、五、用户使用说明1、添加学生功效:进入系统后先选择1回车即可进入输入界面,然后根据提醒输入学生学号、姓名和数据结构、数字信号处理、数字电子技术基础分数在按回车,假如还想再继续添加就按1继续,不然能够按任何键退出。2、输出学生:用户在输入完学生数据后既能够按2输出所输入全部学生3、插入学生:用户需在主界面按3即能够进入插入界面,此时能够按数字键在选择要插入位置,如输入1即能够将要插入学生插入到第一个位置,能够在主界面输入2进行查看是否插入到指定位置。4、删除学生:用户能够在主界面输入4进入删除,在经过选择编号来删除要删除学生。5、查找:查找查找功效有按学号和姓名查找,如按一进入学号查找,能够输入

14、要查找学号,回车即能够输出要查找学生。6、排序:排序能够经过学号,总分,和各科成绩,输入1能够按学号从小到大排序,输入2能够按总分从小到大进行排序,输入3能够进入科目选择,再按1进行数据结构排序,2进行数字型号处理排序,3进行数电排序。7、筛选:能够按1进入总分筛选,进入以后输入筛选多少分以上人,输入分数,如:200,即可输出全部大于200分学生;在筛选界面输入2能够输出全部及格学生;按3能够进入各科成绩筛选,再按1选出全部数据结构及格学生、再按2选出全部数字信号处理及格学生、再按3选出全部数字电子技术基础及格学生。8、退出:退出程序只需要在主界面按0再回车即能够退出程序。六、测试结果1、添加

15、学生:2、输出学生:3、 插入学生: 4、删除学生: 5、查找学生:6、排序7、筛选0、退出程序:七、附录#include #include #include #include int count =0; /统计学生人数typedef struct Studentchar mun12; /学号char name20; /姓名float score8; /成绩float all_score; /总分float ave_score; /加权平均分struct Student *next;LinkList;void InitList (LinkList *&L) /初始化链表L=(LinkList

16、*)malloc(sizeof(LinkList);L-next=NULL;void Creat_Student (LinkList *&L) /输入学生并添加到链表里面LinkList *r=L,*s;int i=0,j=1;float all=0,ave,a8;while(j=1)while(r-next!=NULL)r=r-next;s=(LinkList *)malloc(sizeof(LinkList);s-next=NULL;printf(输入学生学号、姓名、每科成绩n);printf(学号:);scanf(%s,&s-mun);printf(姓名:);scanf(%s,&s-na

17、me);/*数据结构3.0、数字信号处理4.0、数字电子技术基础2.5 这里只输入三门成绩作为示范*/for(i=0;iscorei=ai;if(i=1)printf(输入数字信号处理分数n);scanf(%f,&ai);s-scorei=ai;if(i=2)printf(输入数字电子技术基础分数n);scanf(%f,&ai);s-scorei=ai;all=a0+a1+a2;s-all_score=all;ave=(a0*3.0+a1*4.0+a2*2.5)/9.5;s-ave_score=ave;r-next=s;r=s;count=count+1;printf(是否继续?(按1继续,其

18、它退出。));scanf(%d,&j);void output_Student (LinkList *&L,int n) /输出全部学生LinkList *p=L-next;if(p=NULL)printf(没有学生成绩!请添加学生。n);return;printf(tt 学生成绩表 n);printf(编号 学号 姓名 数据结构 数字信号 数字电路 总分 加权平均分n);int m;for(m=1;mmun,p-name,p-score0,p-score1,p-score2,p-all_score,p-ave_score);p=p-next;void Delete_Student(LinkL

19、ist *&L,int i) /删除第i个学生int j=0;LinkList *p=L,*q;if (i=0)printf(没有找到该学生);return;while(jnext;if(p=NULL)printf(没有找到该学生);return ;elseq=p-next;if(q=NULL)return ;p-next=q-next;free(q);count=count-1;printf(删除成功!n);return;int Locate_Student(LinkList *L,char* mun) /按学号定位,返回第i个学生int i=1;LinkList *p=L-next;whi

20、le(p!=NULL&strcmp(p-mun,mun)!=0)i+;p=p-next;if(p=NULL)return (0);else return (i);int Locate_Student1(LinkList *L,char* name) /按姓名定位,返回第i个学生int i=1;LinkList *p=L-next;while(p!=NULL&strcmp(p-name,name)!=0)i+;p=p-next;if(p=NULL)return (0);else return (i);void Queue_Subject(LinkList *&L) /不一样科目排序int i;L

21、inkList *q,*p,*t1,*t2;printf(请输入科目标代号:1 数据结构 2 数字信号处理 3 数电n请输入:);scanf(%d,&i);if(i=1|inext!=NULL;q=q-next)for(p=q-next;p-next!=NULL;p=p-next)if(q-next-scorei-1p-next-scorei-1)if(q-next=p)t1=p-next;p-next=p-next-next;t1-next=q-next;q-next=t1;p=t1;elset1=p-next;t2=q-next;p-next=p-next-next;q-next=q-ne

22、xt-next;t1-next=q-next;q-next=t1;t2-next=p-next;p-next=t2;elseprintf(没有找到该科目!n);return;void Queue_Student(LinkList *&L) /排序函数int i,j=1;printf(1、根据学号 2、总分3、按各科分排序n请输入:);scanf(%d,&i);LinkList *q,*p,*t1,*t2;switch(i) case 1: /学号排序for(q=L;q-next!=NULL;q=q-next)for(p=q-next;p-next!=NULL;p=p-next)if(strcm

23、p(q-next-mun,p-next-mun)=1)if(q-next=p)t1=p-next;p-next=p-next-next;t1-next=q-next;q-next=t1;p=t1;elset1=p-next;t2=q-next;p-next=p-next-next;q-next=q-next-next;t1-next=q-next;q-next=t1;t2-next=p-next;p-next=t2;break;case 2: /总分排序for(q=L;q-next!=NULL;q=q-next)for(p=q-next;p-next!=NULL;p=p-next)if(q-n

24、ext-all_scorep-next-all_score)if(q-next=p)t1=p-next;p-next=p-next-next;t1-next=q-next;q-next=t1;p=t1;elset1=p-next;t2=q-next;p-next=p-next-next;q-next=q-next-next;t1-next=q-next;q-next=t1;t2-next=p-next;p-next=t2;break;case 3:Queue_Subject(L); /科目排序break;void Out_one_Student(LinkList *L,int i) /输出第i

25、个学生int j=0;LinkList *p=L;while(jnext;printf(%-9s%-9s%-10.1f%-10.1f%-10.1f%-8.1f %-10.1fn,p-mun,p-name,p-score0,p-score1,p-score2,p-all_score,p-ave_score);int Seek_Student(LinkList *L) /查找学生 1 按学号查找 2 按姓名查找int m;printf(1 按学号查找 2 按姓名查找 3 退出n请输入:);scanf(%d,&m);switch(m)case 1:char a12;printf(输入学号:);sca

26、nf(%s,&a);return (Locate_Student(L,a); /返回学号查找到值break;case 2:char b20;printf(输入姓名:);scanf(%s,&b);return(Locate_Student1(L,b);break;case 3:break;void Filter_Student(LinkList *&L) /筛选LinkList *s,*p=L-next,*r,*q;int y,count2=0;printf(1 按总分选 2 全部及格人 3 按各科成绩 4 退出n请输入:);scanf(%d,&y);switch(y)case 1:s=(Lin

27、kList *)malloc(sizeof(LinkList);q=s;int i;float all;printf(您要总分多少分以上人,请输入:);scanf(%f,&all);for (i=0;inext)if (p=NULL)printf(没有);return;if(p-all_scoreall)r=(LinkList *)malloc(sizeof(LinkList);strcpy(r-mun,p-mun);strcpy(r-name,p-name); r-score1=p-score1;r-score2=p-score2;r-score0=p-score0;r-all_score=

28、p-all_score;r-ave_score=p-ave_score;q-next=r;q=q-next;q-next=NULL;count2+;output_Student(s,count2);free(s);break;case 2:s=(LinkList *)malloc(sizeof(LinkList);q=s;int j;for (j=0;jnext)if (p=NULL)printf(没有);return;if(p-score059&p-score159&p-score259)r=(LinkList *)malloc(sizeof(LinkList);strcpy(r-mun,p

29、-mun);strcpy(r-name,p-name); r-score1=p-score1;r-score2=p-score2;r-score0=p-score0;r-all_score=p-all_score;r-ave_score=p-ave_score;q-next=r;q=q-next;q-next=NULL;count2+;output_Student(s,count2);free(s);break;case 3:s=(LinkList *)malloc(sizeof(LinkList);q=s;int k,x;printf(选择 1 数据结构及格 2 数字信号处理及格 3 数电及

30、格n);printf(请输入:);scanf(%d,&x);for (k=0;knext)if (p=NULL)printf(没有);return;if(p-scorex-159)r=(LinkList *)malloc(sizeof(LinkList);strcpy(r-mun,p-mun);strcpy(r-name,p-name); r-score1=p-score1;r-score2=p-score2;r-score0=p-score0;r-all_score=p-all_score;r-ave_score=p-ave_score;q-next=r;q=q-next;q-next=NU

31、LL;count2+;output_Student(s,count2);free(s);break;case 4:break;bool Insert_Student(LinkList *&L,int i) /插入学生int j=0;LinkList *p=L,*s;if (i=0)printf(对不起,没有该位置!n);return false;while(jnext;if(p=NULL)printf(对不起,没有该位置!n);return false;elses=(LinkList *)malloc(sizeof(LinkList);s-next=NULL;float all,ave,sco

32、re;printf(输入学生学号、姓名、每科成绩n);printf(学号:);scanf(%s,&s-mun);printf(姓名:);scanf(%s,&s-name);for(i=0;iscorei=score;if(i=1)printf(输入数字信号处理分数n);scanf(%f,&score);s-scorei=score;if(i=2)printf(输入数字电子技术基础分数n);scanf(%f,&score);s-scorei=score;all=s-score1+s-score2+s-score0;s-all_score=all;ave=(s-score0*3.0+s-score

33、1*4.0+s-score2*2.5)/9.5;s-ave_score=ave;s-next=p-next;p-next=s;count+;printf(插入成功n);return true;int menu_select() /*菜单选择程序*/ int c; do system(cls); printf(nt 欢迎使用学生成绩管理系统 n);printf(t 1. 添加学生 n); printf(t 2. 输出学生 n); printf(t 3. 插入学生 n); printf(t 4. 删除学生 n); printf(t 5. 查找学生 n); printf(t 6. 排序 n);pri

34、ntf(t 7. 筛选 n); printf(t 0. 退出程序 n); printf(t *n); printf(t 请您选择(0-7):); scanf(%d,&c); while(c7); return(c); void main() LinkList *h; InitList(h); /初始化for(;) switch(menu_select() case 1: /添加学生Creat_Student(h); /添加学生break; case 2: output_Student(h,count); /输出全部学生break;case 3: /插入int w;printf(输入插入位置,位置为大于或等于

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服