欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    成绩管理系统.doc

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

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

    成绩管理系统.doc

    1、数 据 结 构 课 程 设 计设计题目: 学生成绩管理系统 学生姓名: 徐康 李阳 金鹏 专业班级: 11计算机科学与技术(2)班 指导教师: 姚丽莎 完成时间: 2012年12月 信息工程学院 计算机科学院与技术系安徽新华学院课程设计成绩评定表(本科)课题名称 学生成绩管理系统院 系信息工程学院年级专业11计科2班学 号姓 名成 绩1142151215李阳1142151229徐康1142151211金鹏课题设计目的与设计意义1、课题设计目的:课题设计目的:其目的是掌握数据链表的存储结构、掌握其的相应的存储,添加,更新等操作,并用输出结果。进一步掌握设计,实现较大系统的完整过程,包括系统分析、

    2、编码设计、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。2、课题设计意义:课题设计意义:为实现计算机科学技术的发展与应用,学好数据结构非常必要。然后要掌握数据结构的知识非常难,所以对数据结构的课程设计必不可少。指导教师:年 月 日目录第一章 系统概述及需求分析- 1 -1.1课程设计应完成的工作- 1 -1.2总体设计工作(包含几大功能模块)- 1 -1.3课程设计任务及要求- 1 -1.4课程设计思想及开发环境- 2 -第二章 概要设计- 3 -2.1 总体方案- 3 -2.2 功能模块设计- 3 - 2.3 主要数据结构- 4 -第三章 详细设计

    3、- 5 -3.2查询模块- 5 -3.3排序模块- 6 -3.4删除模块- 6 -3.5 插入模块- 7 -3.6 修改模块- 7 -第四章 实验结果分析- 8 -第五章 总结与体会- 13 -参考文献- 14 -附录- 15 -第一章 系统概述及需求分析 1.1课程设计应完成的工作 (1)编写算法 (2)算法测试,并有具体的测试结果和结果分析 (3) 撰写课程报告,内容包括: 封面 目录 课程设计报告正文 使用说明 参考文献 1.2总体设计工作(包含几大功能模块) (1)输入学生信息并保存到文件 (2)读取文件并输出学生信息 (3)按学号及学期查询 (4)按姓名及学期查询 (5)新增学生信息

    4、 (6)插入学生信息 (7)按学号及学期删除信息 (8)按数据结构升序(冒泡)排序 (9)按总分降序(选择)排序 (10)统计各科成绩的总分和平均分 (11)退出1.3课程设计任务及要求题目:学生成绩管理系统 基本要求 (1)现有N位同学的数据要求从数据文件中读入,不用交互方式录入;(2)拟删除同学的姓名及新添加同学的数据采用交互方式输入;(3)删除及插入操作完毕,需将成绩表中的所有记录按姓名升序方式显示出来;(4)将更新后的成绩表保存到另一个数据文件中;(5)可以增加功能:如修改某位同学的成绩。1.4课程设计思想及开发环境设计思想:本课题的实质是完成对学生成绩信息的建立、查找、排序等功能,可

    5、以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。可将此系统分为如下模块,输入初始的学生信息、查询模块、排序模块、退出系统。编写语言: C语言开发工具: Visual C+ Visual Studio 6.0VC+是微软公司开发的一个IDE(集成开发环境)。学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识, VC基于C,C+语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 Windows平台无所不能。 最大

    6、缺点是开发效率不高。第二章 概要设计2.1 总体方案信息修改信息输入并保存信息查询信息排序退出系统系统菜单选择功能号进入下步工作信息插入信息删除 图2.1 总体结构图 运行该程序后,首先进入系统菜单,一一输入学生信息并保存。选择某功能号运行所选程序功能,比如选2是信息删除、插入。按提示和要求完成各功能程序,完成后按0键返回菜单栏。所有的完成后,退出系统。2.2 功能模块设计表2-1 功能说明表学生信息录入头插法建立单链表并赋值(学生的信息)返回学生信息链表的头指针选择查询方式姓名查找找到相关信息立即返回结点指针并结束,未找到相关信息则返回主菜单。选择排序方式姓名排序排序并显示所有信息成绩排序删

    7、除方式姓名查找删除结点删除后显示所有信息修改学生信息选择要修改的信息修改结束后显示所有信息2.3 主要数据结构学生数据是用链表存放的,因为学生的人数是不定的,若用一个数组存放数据时,有固定长度限制,若太大则可能导致内存浪费,太小就不够用。而链表可动态分配内存,根据需要而开辟内存单元,这是本程序的链表数据结构,相关学生需要储存的信息也如下:typedef struct studelong xuehao;char nameM;int shuxue;int wuli;int yingyu;struct stude *next;linklist;/xuehaonameshuxuewuliyingyu*

    8、next(学号) (姓名) (数学成绩) (物理成绩) (英语成绩) (指向下一该结构的指针)xuehaonameshuxuewuliyingyu*next第三章 详细设计本程序分为输入模块、查询模块、排序模块、删除模块、插入模块。3.1输入模块 用头插法建立单链表,每个结点包含一个学生的信息,并含有指向下一个学生信息结点的首地址,直到输入的学生信息的学号为0时,不过输入必须完整,我们可以以输入“00 00 00 00 00”表示结束录入学生信息。图3.1 头插法建立单链表3.2查询模块在查询模块中,我们以姓名查找,通过字符串的比较来实现姓名的查找,从首地址依次对比学生信息中的姓名,若找到相等

    9、则返回给学生结点的指针,这样在输出该学生的全部信息。否输入学生姓名姓名与表中某信息一致吗?选择功能号3是输出该生信息选择 查询返回菜单图3.2 查询解释图3.3排序模块 在排序模块中,包含姓名排序,各科成绩排序均按照冒泡排序法,按姓名排序,相连两结点的姓名大小(字符串比较),若前者较大则将结点中的学生信息进行交换,直到最后一个学生结点,接着又重头指针开始依次上述操作,进行n-1次(n为学生总人数);各科成绩排序同上。Xukang liyang jinpeng chendanyi dongguolong liyang xukang jinpeng chengdanyi dongguolongLi

    10、yang jinpeng xukang chengdanyi dongguolongLiyang jinpeng chengdanyi dongguolong xukang图3.3冒泡排序解释图已经完成第一个数据的排序,接下来依次进行第二个至N-1个数据,最后完成整个排序。 3.4删除模块在删除模块中,通过查找要删除学生的指针*p,并记录要删除学生的上一个学生的指针*q,将q-next=p-next即将要删除学生的上一学生结点中指向下一学生的指针直接指向要删除学生所指向下一学生结点。返回首地址。输入功能号2返回头指针*head输入删除的学生姓名选择 删除查找并记录该生信息指针*p用代码q-ne

    11、xt=p-next 完成删除功能图3.4 删除模块解释图3.5 插入模块在插入模块中,新建一个学生信息的结点并赋值。将新建的结点连接到首地址后,将之前首地址后连接的下一学生结点连在新建结点后面(新建结点中指向下一结点的指针指向首地址后连接的下一学生结点)*head *head.图3.5 插入模块解释图3.6 修改模块在修改模块中,通过查找模块,找到要修改学生结点的指针,通过赋值来修改学生的某一项信息。通过switch函数依次选择要修改学生的某一项信息。选择功能号3选择需改的学生 姓名选择修改项姓名英语成绩数学成绩物理成 绩学号结束赋值给原数据的指针 结束图3.6修改模块解释图第四章 实验结果分

    12、析系统菜单图录入学生信息后显示所有信息删除学生及信息添加学生及信息查找修改学生信息按姓名排序按数学成绩排序结束第五章 总结与体会由于c语言学的不扎实,编程时遇到了很多困难,查阅了很多的资料才完成,开始调试的时候经常出现很多的错误,经常容易烦躁,但是经过一段的时间的锻炼使得我更有信息和勇气去面对困难,并一步一步的解决困难。当整个程序开始运行的时候,是非常有成就感的。整个程序还有很多不足的地方,如成绩、姓名、班级若输入不合理没有更仔细的提示等等。在程序设计方面,逐渐感觉到模块化设计的重要性,应该分析出功能块,然后对其细节中的共性和特性作分析。这次的设计,让我大大地感觉到,对于程序设计中,对语言再熟

    13、悉也比不过在设计中算法和结构分析的真知灼见。当然,成功的程序设计是要建立在熟悉语言的基础之上的。平时语言的基本功要扎实。而每一次程序设计的经营能大大地增加对语言的熟悉和感知。程序设计的技能来自多方面,每一次的亲自实践、思考揣摩、刨根问底就会让自己更加清楚所欠缺的是什么。所以,现在觉得在设计实践中作为参考的书册阅读和研究远远比过单纯的阅读,因为它是在最紧迫的时间上填补自己最紧迫的不足。 参考文献1 谭浩强.C程序设计(第三版)M,北京:清华大学出版社,2008.2 唐策善,李龙澍,黄刘生.数据结构用c语言描述M,高等教育出版社,1995.3 谭浩强,张基温.C语言程序设计教程(第3版)M,北京:

    14、高等教育出版,2006.4 吕凤煮.C语言基础教程基础理论与案例M,北京:清华大学出版社,2005.5 黄明,梁旭,万洪莉.C语言课程设计M,北京:电子工业出版社,2006.附录 详细程序设计:#include#include#includestring.h#define M 10typedef struct studelong xuehao;char nameM;int shuxue;int wuli;int yingyu;struct stude *next;linklist;/linklist *CREATLIST()long xueha;/学号char namM;/姓名int shux

    15、u;/数学成绩int wul;/物理成绩int yingy;/英语成绩linklist *head,*s;head=NULL;scanf(%ld %s %d %d %d,&xueha,nam,&shuxu,&wul,&yingy);/分别输入学生的学号,姓名,数学成绩,物理成绩,英语成绩while(xueha!=0) s=(linklist*)malloc(sizeof(linklist);s-xuehao=xueha;strcpy(s-name,nam);s-shuxue=shuxu;s-wuli=wul;s-yingyu=yingy;s-next=head;head=s;scanf(%ld

    16、 %s %d %d %d,&xueha,nam,&shuxu,&wul,&yingy);return head;/头插法建立单链表 void print(linklist *h)linklist *p=h;printf(学号t姓名t数学t物理t英语);printf(n);while(p!=NULL)printf(%ldt%st%dt%dt%d,p-xuehao,p-name,p-shuxue,p-wuli,p-yingyu);printf(n);p=p-next;/输出格式linklist *DEL(linklist *head,char key)linklist *p,*q; p=head-

    17、next; q=head;while(p!=NULL)if(strcmp(p-name,key)!=0)/判断姓名是否相同q=p;p=p-next;elsebreak;q-next=p-next;return head;/按姓名查找该学生的位置并删除linklist *CZ(linklist *head,char key)linklist *p;p=head-next;while(p!=NULL)if(strcmp(p-name,key)!=0)p=p-next;elsebreak;return p;/按姓名查找并返回linklist *tianjia(linklist *head)linkl

    18、ist *s,*p; long xueha;/学号char namM;/姓名int shuxu;/数学成绩int wul;/物理成绩int yingy;/英语成绩p=head-next;s=(linklist*)malloc(sizeof(linklist);printf(请输入添加学生的学号t姓名t数学t物理t英语n);scanf(%ld %s %d %d %d,&xueha,nam,&shuxu,&wul,&yingy);s-xuehao=xueha;strcpy(s-name,nam);s-shuxue=shuxu;s-wuli=wul;s-yingyu=yingy; head-next

    19、=s; s-next=p; return head;void deltj(linklist *head) linklist *h,*d,*T;int i; char aM;h=head;printf(welcomen); printf(t 【1】删除信息 n); printf(t 【2】添加信息 n); printf(t 【3】返回上一选项 n); C:printf(从-2中选择功能项:n); scanf(%d,&i); switch(i) case 1:printf(请输入要删除学生的姓名n);getchar();scanf(%s,a);d=DEL(h,a);print(h);goto C;

    20、 case 2:T=tianjia(h);print(h);goto C; case 0:printf(返回上一选项n);break; void XG(linklist *head)linklist *h,*p;char aM;int i; long xueha;/学号char namM;/姓名int shuxu;/数学成绩int wul;/物理成绩int yingy;/英语成绩h=head-next;printf(要查找的学生姓名:n);scanf(%s,a);p=CZ(h,a);printf(%ldt%st%dt%dt%dn,p-xuehao,p-name,p-shuxue,p-wuli,

    21、p-yingyu);A:printf(welcomen); printf(t 【1】修改学号 n); printf(t 【2】修改姓名 n); printf(t 【3】修改数学成绩 n ); printf(t 【4】修改物理成绩 n); printf(t 【5】修改英语 n); printf(t 【0】结束修改 n); printf(从-5中选择功能项:n); scanf(%d,&i); switch(i)case 1:printf(输入新学号:n);scanf(%l,&xueha);p-xuehao=xueha;goto A;case 2:printf(输入新姓名:n);scanf(%s,n

    22、am);strcpy(nam,p-name);goto A;case 3: printf(输入新的数学成绩;n);scanf(%d,&shuxu);p-shuxue=shuxu;goto A;case 4:printf(输入新的物理成绩:n); scanf(%d,&wul); p-wuli=wul;goto A;case 5:printf(输入新的英语成绩;n);scanf(%d,&yingy);p-yingyu=yingy;goto A;case 0:print(h);break;/linklist *PAIXUN(linklist *head)linklist *p,*s,*q;int i

    23、;s=(linklist*)malloc(sizeof(linklist);p=head;for(i=0;inext!=NULL) q=p-next;if(strcmp(p-name,q-name)0)strcpy(s-name,q-name);s-xuehao=q-xuehao;s-shuxue=q-shuxue;s-wuli=q-wuli;s-yingyu=q-yingyu;strcpy(q-name,p-name);q-xuehao=p-xuehao;q-shuxue=p-shuxue;q-wuli=p-wuli;q-yingyu=p-yingyu;strcpy(p-name,s-nam

    24、e);p-xuehao=s-xuehao;p-shuxue=s-shuxue;p-wuli=s-wuli; p-yingyu=s-yingyu;p=p-next;elsep=p-next;p=head-next;print(head);return head;/按姓名排序/linklist *PAIXUS(linklist *head)linklist *p,*s;int i,a,b,c;s=(linklist*)malloc(sizeof(linklist);p=head;for(i=0;inext!=NULL) a=p-shuxue;b=p-next-shuxue;c=a-b;if(c0)

    25、strcpy(s-name,p-next-name);s-xuehao=p-next-xuehao;s-shuxue=p-next-shuxue;s-wuli=p-next-wuli;s-yingyu=p-next-yingyu;strcpy(p-next-name,p-name);p-next-xuehao=p-xuehao;p-next-shuxue=p-shuxue;p-next-wuli=p-wuli;p-next-yingyu=p-yingyu;strcpy(p-name,s-name);p-xuehao=s-xuehao;p-shuxue=s-shuxue;p-wuli=s-wul

    26、i; p-yingyu=s-yingyu;p=p-next;elsep=p-next;p=head-next;print(head);return head;/linklist *PAIXUW(linklist *head)linklist *p,*s;int i,a,b,c;s=(linklist*)malloc(sizeof(linklist);p=head;for(i=0;inext!=NULL) a=p-wuli;b=p-next-wuli;c=a-b;if(c0)strcpy(s-name,p-next-name);s-xuehao=p-next-xuehao;s-shuxue=p-

    27、next-shuxue;s-wuli=p-next-wuli;s-yingyu=p-next-yingyu;strcpy(p-next-name,p-name);p-next-xuehao=p-xuehao;p-next-shuxue=p-shuxue;p-next-wuli=p-wuli;p-next-yingyu=p-yingyu;strcpy(p-name,s-name);p-xuehao=s-xuehao;p-shuxue=s-shuxue;p-wuli=s-wuli; p-yingyu=s-yingyu;p=p-next;elsep=p-next;p=head-next;print(

    28、head);return head;/linklist *PAIXUY(linklist *head)linklist *p,*s;int i,a,b,c;s=(linklist*)malloc(sizeof(linklist);p=head;for(i=0;inext!=NULL) a=p-yingyu;b=p-next-yingyu;c=a-b;if(c0)strcpy(s-name,p-next-name);s-xuehao=p-next-xuehao;s-shuxue=p-next-shuxue;s-wuli=p-next-wuli;s-yingyu=p-next-yingyu;str

    29、cpy(p-next-name,p-name);p-next-xuehao=p-xuehao;p-next-shuxue=p-shuxue;p-next-wuli=p-wuli;p-next-yingyu=p-yingyu;strcpy(p-name,s-name);p-xuehao=s-xuehao;p-shuxue=s-shuxue;p-wuli=s-wuli; p-yingyu=s-yingyu;p=p-next;elsep=p-next;p=head-next;print(head);return head;/void NPX(linklist *head)linklist *h,*p

    30、;int i;h=head;D:printf(welcomen); printf(t 【1】姓名排序 n); printf(t 【2】数学成绩排序 n); printf(t 【3】物理成绩排序 n ); printf(t 【4】英语成绩排序 n ); printf(t 【0】结束排序返回 n);printf(结束录入学生信息输入:00 00 00 00 00n); printf(从0-4中选择功能项:n); scanf(%d,&i); switch(i) case 1:p=PAIXUN(h); goto D; case 2:p=PAIXUS(h); goto D; case 3:p=PAIXU

    31、W(h); goto D; case 4:p=PAIXUY(h); goto D; case 0:printf(排序结束n); break; default:printf(输入错误!重新输入有效值!n);goto D; void main()linklist *h;int i;printf(欢迎进入学生信息管理系统: n);B:printf(welcomen); printf(t 【1】学生信息输入 n); printf(t 【2】学生信息删除,添加 n); printf(t 【3】学生信息修改 n ); printf(t 【4】排序 n ); printf(t 【0】退出信息系统 n);pr

    32、intf(结束录入学生信息输入:00 00 00 00 00n); printf(从-4中选择功能项:n);scanf(%d,&i); switch(i)case 1:printf(请输入添加学生的学号t姓名t数学t物理t英语n);h=CREATLIST();/调用CREATLIST 函数建立单链表print(h);goto B;case 2:deltj(h) ;goto B;case 3:XG(h);goto B;case 4:NPX(h);goto B;case 0:printf(谢谢使用,再见!n);break;default:printf(输入错误!n);指导教师评语指导教师评语: 指导教师签名: 年 月 日成绩评定项 目权重成绩1、设计过程中出勤、学习态度等方面0.12、设计技术水平0.43、编程风格0.24、设计报告书写及图纸规范程度0.3总 成 绩 - 25 -


    注意事项

    本文(成绩管理系统.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922