课程设计:学生成绩管理系统.doc
《课程设计:学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《课程设计:学生成绩管理系统.doc(25页珍藏版)》请在咨信网上搜索。
1、课程设计:学生成绩管理系统一:课程设计目的通过本次课程设计,进一步熟悉掌握以下知识:数据类型号、分支控制、循环控制、函数的定义及调用、结构体及数组、指针、文件操作、编译预处理等。达到系统理解、综合运用课程知识的学习目标;学会用C语言程序解决实际问题的方法;掌握程序的局部测试、调试方法,建立程序系统调试、测试的基本概念和思想,学会较大程序的系统测试、调试方法。二:总体设计内容(一)、 仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。 2、查询
2、模块:可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。 3、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。 5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此
3、程序。(二)、系统主模块结构图:三:详细设计(一)、 界面设计此系统界面采用图形和数字化菜单设计。主界面设计如下: 学生成绩管理系统 请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统(二)、 数据结构设计: 程序设计中用到的结构体类型: 学生信息结构体类型:typedef struct student char nameMAX; int numMAX; char sexMAX; int chinese; int mathe
4、matic; int english; int computer; struct student *next;(三)、模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)(四)、调试与测试问题一、学生初始信息模块:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。 解决办法及步骤:1、一个个输出所有的学生的学号,检查文件中是否有此学生,发现有。 2、既然有此学生,那么检查循环判断是否有此学生的语句发现没有错 3、输出用于循环检查语句中的学生信息,发现
5、乱码 4、仔细分析乱码的原因,最后发现是变量的类型错误,错将学生类型的结构体指针变量定义为了其他类型的指针变量。 问题二、查询模块:可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。当正确输入查找信息时,系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。解决办法及步骤:1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入查找信息看能否得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。 2、检查当我们在输入查找信息时,看是否我们输入的信息有误,若是这样的话,我们
6、应当仔细输入查找信息。(五)、源程序清单和执行结果#include #include #include #define LEN sizeof(struct scorenode)#define DEBUG#include struct scorenodeint number;/*学号*/char name10;/*姓名*/float yuwen;/*语文成绩*/float yingyu;/*英语成绩*/float shuxue;/*数学成绩 */struct scorenode *next;typedef struct scorenode score;int n,k;/*n,k为全局变量,本程序
7、中的函数均可以使用它*/*=*/score *creat2311(void)/*函数creat2311,功能:创建链表,此函数带回一个指向链表头的指针*/score*head;score *p1,*p2,*p3,*max;int i,j;float fen; char t10;n=0; p1=p2=p3=(score *)malloc(LEN);head=p3; /*开辟一个新单元*/ printf(请输入学生资料,输0退出!n);repeat1: printf(请输入学生学号(学号应大于0):);/*输入学号,学号应大于0*/ scanf(%d,&p1-number); while(p1-n
8、umbernumber); /*输入学号为字符或小于0时,程序报错,提示重新输入学号*/if(p1-number=0)goto end;/*当输入的学号为0时,转到末尾,结束创建链表*/else p3=head;if(n0)for(i=0;inumber!=p3-number) p3=p3-next; else printf(学号重复,请重输!n); goto repeat1; /*当输入的学号已经存在,程序报错,返回前面重新输入*/ printf(请输入学生姓名:); scanf(%s,&p1-name);/*输入学生姓名*/ printf(请输入语文成绩(0100):);/*输入语文成绩,
9、成绩应在0-100*/ scanf(%f,&p1-yuwen); while(p1-yuwenyuwen100)getchar();printf(输入错误,请重新输入语文成绩);/*输入错误,重新输入语文成绩直到正确为止*/ scanf(%f,&p1-yuwen); printf(请输入英语成绩(0100):);/*输入英语成绩,成绩应在0-100*/ scanf(%f,&p1-yingyu); while(p1-yingyuyingyu100)getchar();printf(输入错误,请重新输入英语成绩);/*输入错误,重新输入英语成绩直到正确为止*/ scanf(%f,&p1-yingy
10、u); printf(请输入数学成绩(0100):);/*输入数学成绩,成绩应在0-100*/ scanf(%f,&p1-shuxue); while(p1-shuxueshuxue100)getchar();printf(输入错误,请重新输入数学成绩); scanf(%f,&p1-shuxue);/*输入错误,重新输入数学成绩直到正确为止*/ head=NULL;while(p1-number!=0) n=n+1;if(n=1)head=p1;else p2-next=p1; p2=p1; p1=(score *)malloc(LEN); printf(请输入学生资料,输0退出!n);rep
11、eat2:printf(请输入学生学号(学号应大于0):); scanf(%d,&p1-number);/*输入学号,学号应大于0*/while(p1-numbernumber); /*输入学号为字符或小于0时,程序报错,提示重新输入学号*/if(p1-number=0)goto end;/*当输入的学号为0时,转到末尾,结束创建链表*/elsep3=head;if(n0)for(i=0;inumber!=p3-number) p3=p3-next; else printf(学号重复,请重输!n); goto repeat2; /*当输入的学号已经存在,程序报错,返回前面重新输入*/ prin
12、tf(请输入学生姓名:); scanf(%s,&p1-name);/*输入学生姓名*/ printf(请输入语文成绩(0100):); scanf(%f,&p1-yuwen);/*输入语文成绩,成绩应在0-100*/ while(p1-yuwenyuwen100)getchar();printf(输入错误,请重新输入语文成绩); scanf(%f,&p1-yuwen);/*输入错误,重新输入语文成绩直到正确为止*/ printf(请输入英语成绩(0100):); scanf(%f,&p1-yingyu);/*输入英语成绩,成绩应在0-100*/ while(p1-yingyuyingyu100
13、)getchar();printf(输入错误,请重新输入英语成绩); scanf(%f,&p1-yingyu);/*输入错误,重新输入英语成绩直到正确为止*/ printf(请输入数学成绩(0100):); scanf(%f,&p1-shuxue);/*输入数学成绩,成绩应在0-100*/ while(p1-shuxueshuxue100)getchar();printf(输入错误,请重新输入数学成绩); scanf(%f,&p1-shuxue);/*输入错误,重新输入数学成绩直到正确为止*/ end: p1=head; p3=p1;for(i=1;in;i+) for(j=i+1;jnext
14、; if(max-numberp1-number) k=max-number; max-number=p1-number; p1-number=k; /*交换前后结点中的学号值,使得学号大者移到后面的结点中*/ strcpy(t,max-name); strcpy(max-name,p1-name); strcpy(p1-name,t); /*交换前后结点中的姓名,使之与学号相匹配*/ fen=max-yuwen; max-yuwen=p1-yuwen; p1-yuwen=fen; /*交换前后结点中的语文成绩,使之与学号相匹配*/ fen=max-yingyu; max-yingyu=p1-
15、yingyu; p1-yingyu=fen; /*交换前后结点中的英语成绩,使之与学号相匹配*/ fen=max-shuxue; max-shuxue=p1-shuxue; p1-shuxue=fen; /*交换前后结点中的数学成绩,使之与学号相匹配*/ max=head;p1=head;/*重新使max,p指向链表头*/ p2-next=NULL;/*链表结尾*/ printf(输入的学生数为:%d个!n,n); return(head);/*=*/*=*/score *load2311(score *head)/*函数load2311,功能:从文件读入学生记录*/ score *p1,*p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 学生 成绩管理系统
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。