欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构大作业(12页).doc

    • 资源ID:36769213       资源大小:316KB        全文页数:12页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构大作业(12页).doc

    -数据结构大作业-第 12 页课程设计说明书设计题目: 学生管理系统专 业: xxxxxx班级: xxxxxxxxxxxxxxxxxx设 计 人: xxxxxxxxxxxxxxx山 东 科 技 大 学2015年 1 月 3 日山 东 科 技 大 学课 程 设 计 任 务 书专业: xxx 班级:xxxxx 学号:xxxxxxx一、 课程设计题目:学生管理系统二、 设计原始资料:1、数据结构(C语言版) 人民邮电出版社2、C+面向对象程序设计 电子工业出版社3、程序设计基础-基于C语言 科学出版社三、 设计应解决下列各主要问题:1、 首先输入所有学生的信息。2、输出一个学生学号后,能查找到此学生的信息并输出结果(采用查找方法实现)3、要求是用结构体,链或数组等实现上述要求4、先按总成绩高的优先输出,总成绩相同学号小的优先输出四、 设计说明书应附有下列图纸: 1、功能模块图 2、存储学生信息流程图 3、查询个人信息流程图 4、主函数流程图 五、命题发出日期:2015年11月3日设计完成日期:2016年1月3日设计指导教师(签章): 系主任(签章): 课程设计成绩评定表分类成绩平时考勤(20%)平时实验(30%)综合实验(30%)课程设计说明书质量(20%)总分指导教师(签章):年月日 学生管理系统 学生信息管理者用此程序所要完成的主要工作为:输入学生的个人信息、查找学生信息、通过此系统可以方便的进行上述工作。每位同学所包含的信息有:姓名、学号、语文成绩、数学成绩和英语成绩。1.1 主函数模块 本模块的主要功能是调用各个模块,实现程序的主要功能。 1.2 排序功能 本模块的主要功能是根据用户的选择进行数组的创建,并对输入数据或者随机产生的数据进行排序1.3 输入子模块 本模块的主要功能是通过键盘录入学生信息,并对用户输入数据进行处理,创建数组。1.4 系统需求分析开发环境:Windows XP以上版本操作系统实用软件:编写实验报告:Microsoft Office Word二、概要设计2.1 功能模块图 开始 退出系统查询学生信息输出有补考的同学添加学生信息 功能模块图(1)存储学生信息功能,定义结构体student,用scanf和cin函数进行输入。流程图如图 存储学生信息流程图: 程序开始 初始化存入结构体数组中 i<nYN 结束 存储学生信息流程图 相应代码设计:typedef struct A   char a20;/学生姓名 int num;/学生学号   int chscore,mascore,enscore;/学生的语文数学英语成绩 Student; /存储学生个人信息的结构体typedef struct    Student *elem;    int length; SqList;(2) 查找有补考的同学,并按成绩降序排列输出。流程图如图查找有补考同学信息功能流程图: 开始用sort函数排序,再进行判断输出信息L.elemi.chscore<60|L.elemi.mascore<60|L.elemi.enscore<60 Y 结束没有补考的同学 N 查找有补考同学信息功能流程图 (3) 将学生按照学号的升幂排序,为后续查询学生用二分查找提供条件。流程图如图sort函数排序流程图: 开始调用sort函数 i<n? N Ya.num < b.num? N 结束 Y 交换 sort函数排序流程图(4) 查找学生个人信息,根据用户输入的学号进行查找。查找方法为二分查找。(5) 主函数流程图如图主函数流程图: 开始 结束二分查找 i < p?输出有补考的同学Scanf和cin函数 i<n?CreatList(L,m);构造一个学生系统N YNYNY 主函数流程图2.2 各模块函数 bool cmp (const Student &a,const Student &b);/按照总成绩进行排序bool cmpp (const Student &a,const Student &b);/按照学号进行排序void CreatList(SqList &L,int n);/建立数组void Sesrch_Bin(SqList &L,int n);/进行二分查找三、详细设计3.1 输入学生信息程序运行后,创建一个student结构体,多组情况,每组输入两个整数分别表示学生的总数和查询数量。 调用sort()函数,首先将学生按成绩排序,运用for循环和if(L.elemi.chscore<60|L.elemi.mascore<60|L.elemi.enscore<60)语句输出,如果总成绩相同,学号小的在前面。3.3 排序调用sort()函数对Student按照学号升序进行排序,此函数中采用了冒泡排序的方法,此方法只有在前一个学生的学号大于后一个学生的学号时,才会需要一个辅助空间用作暂存记录,空间复杂度低,并且稳定。 3.4 查询学生信息运用for循环函数,输入要查询学生的学号,对已经排序的student进行二分查找,low<=high时遍历,如果nu=smid.no 时找到输出学生的信息语句:printf("%s %d %d %d %dn",L.elemi.a,L.elemi.num,L.elemi.chscore,L.elemi.mascore,L.elemi.enscore);如果没有输出 printf("NOT FOUNDn"); 主函数中while()等待输入,用户只要在运行的页面中输入ctrl+z,即可退出系统。四、 运行结果及分析本程序需用二分法,其余方法超时,在输入输出时注意用标准语言输入,注意格式。在运行框内输入 Zhangyi 201501 90 90 90Zhanger 201502 80 80 80Zhangsan 201404 70 70 70Zhangsi 201504 60 60 60Zhangwu 201505 50 50 50wcr 1124 100 100 100loushangdashen 1234 60 60 602015012015032015051201506输出结果为下图:五.总结 通过这次课程设计,我学会了很多,首先,我对自身的知识掌握度加大了,以前只是单纯的课本掌握,现在通过编写,修改,测试程序,对课程设计中的一些知识更加了解了。其次,对于一些比较死板的知识,通过运用,对它提高了很大的兴趣,而且,自己设计的程序能够运行出来,自己非常有自豪感,满足感。 总的说来,努力还是很有成效的,锻炼了整体的能力,并且通过一次次的调试来读懂程序,程序更加完善。数据结构在编程语言中是一门相当有技术含量的语言,学会并能够掌握它,对以后的生活帮助很大。附:主要算法的源代码#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<iostream>using namespace std;typedef int Status;#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXSIZE 2001typedef struct    char a20;    int num;    int chscore,mascore,enscore; Student;typedef struct    Student *elem;    int length; SqList;bool cmp (const Student &a,const Student &b)    int sum1 = a.chscore + a.mascore + a.enscore;    int sum2 = b.chscore + b.mascore + b.enscore;    if(sum1 = sum2)        return a.num < b.num;    else        return sum1 > sum2;bool cmpp (const Student &a,const Student &b)        return a.num < b.num;void CreatList(SqList &L,int n)    L.elem=new StudentMAXSIZE;    for(int i=0; i<n; i+)        scanf("%s",L.elemi.a);        cin>>L.elemi.num>>L.elemi.chscore>>L.elemi.mascore>>L.elemi.enscore;    L.length=n;void Sesrch_Bin(SqList &L,int n)    int low=0,high=L.length-1,mid;    while(low<=high)        mid=(low+high)/2;        if(num=L.elemmid.num) return mid;        else if(num<L.elemmid.num) high=mid-1;        else low=mid+1;    return 0;int main()    int m,n,a;    SqList L;    scanf("%d%d",&m,&n);    CreatList(L,m);    sort(L.elem,L.elem+n,cmp);    for(int i=0; i<m; i+)        if(L.elemi.chscore<60|L.elemi.mascore<60|L.elemi.enscore<60)            printf("%s %d %d %d %dn",L.elemi.a,L.elemi.num,L.elemi.chscore,L.elemi.mascore,L.elemi.enscore);    sort(L.elem,L.elem+n,cmpp);    for(int i=0; i<n; i+)        int b;        cin>>a;        b=Sesrch_Bin(L,a);        if(b=0)            printf("NOT FOUNDn");        else            printf("%s %d %d %d %dn",L.elemb-1.a,L.elemb-1.num,L.elemb-1.chscore,L.elemb-1.mascore,L.elemb-1.enscore);

    注意事项

    本文(数据结构大作业(12页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开