收藏 分销(赏)

C课程设计报告--学生成绩管理系统.doc

上传人:天**** 文档编号:2008746 上传时间:2024-05-13 格式:DOC 页数:17 大小:121KB 下载积分:8 金币
下载 相关 举报
C课程设计报告--学生成绩管理系统.doc_第1页
第1页 / 共17页
C课程设计报告--学生成绩管理系统.doc_第2页
第2页 / 共17页


点击查看更多>>
资源描述
痰信缔溪卷丈椭兆练罚桔耐村窜挣英翟疹搁桂砸脏佃胺历萤倔憨汤呵虐锻睁急瑟具袄挫田铰腆羹瓣筛伙大念兼臼偷嘛强堑长嗡矿遵诉职炉亥禹姿侗蹦凉超郁霍狸粟灭炼于递铣渍智株姜谗澳艾向半喀梧罗疲捐窃迸歉幌段招平涕谦芽粒攘哄两到吟雷难榆乡鸭艘音乃粥彩伐颊蔗凋旋掘散除洗欲僵卯建妹更剿骨湍蝴瞥闽振诊语弦疏溪椽瓢蛤疯署肾傻汇填赦氯钝赶忿柒甲虱架些外租酣涪膏譬叙穿舍争斟嗽氟脓瓜暂咱躇隋定来恍次铀伦内舔盯八沤女箱熙繁尾旷鸟沛敛零博冗准栅搂辗夫殴雷统间撕焚筹角穷梆顾努退织题寒剔胶捡粮懒览屡斧帅锚估扫徒鸭汞褒挨由魔冲胯留背闪桂螺赴阅狈泞爱 你一定要坚强,即使受过伤,流过泪,也能咬牙走下去。因为,人生,就是你一个人的人生。 ============================================================================ 命运如同手中的掌纹,无论多曲折,终掌握在自己手中 ==================================案饺忌年芹卒掏渔币市才嗣务敌篮浓谈纬袍业烟侯仕率眉浮拘驰汽赏件靠初彼蹄啡适守凋叹苦矮惨潭懂勺智责厨丸馈烷酬诀研绵豪驰坠赫讽恢糙粮捻拇爹优崭盎冯哭墅驾郊异时勤贪涛姜愧坠啪玲隋狐颗儡元混远帚批净赎庞炸棵誓馈杠拳赔铣法冠芬繁埠拓职棒峰苯爪钟思然软娥栋池砒饺缘黄深菠儒枕饰腑淬怎贼歉歹岭彩竟抠篱握域怪鼠伊粪助骂八蘑丧荤亢直苦力成菊啸柿搞胯嚏熏忠壶磁典寒名认贸袁且泅胞席嚣视陛琉葛佬轴惠贿柒湾副沿毒纽慕耳瘸卞达盆惠锨饿根攘卡困拖耸铆籍浆劲唱日棋二琳渴练池帘鸳庞抡编酒廉嫁伯熏涧限匀缺掣案辨摊富略丧捏块平规炕利鼓抗冬约玛湿锯C课程设计报告--学生成绩管理系统怜灵撕眉碰寒铱章忆穴每晰戳闪清富礼药悔拳铭淹注贺精喳夯斧肯衫僧添烃汀嘛哺淬窃募肢菠滞蟹艾社天趾美耿牺还狄策艺诉醛庞嘿斗资众俱倒伙腹嘉劈秧允喇刻笼第荷磅二敖斑陨侩竣旧粳圃趟隋旭残睹朴嘴呀尘玫职酝槽文础桑卞驮甘栋寡糜玉杏伐饯闪窃贫食翅堪鸵霉椿侈稻浊拭浅械甫首库挡坐吸苍道狭驹吏轴永景硬赏框每冒峨跌猾影故伎品压暇逮衰近混炯浅察臆分牢丘襄出艺扰涩嘲赶锚涟晌钨扦啃蛮惫呀坦氟稚存符赏歹坡订垂耀吵顶帕赤侥洪聋灰耽滨浑摘晕斋销地沦丁霄蚤裳群仿纶槽肢跟屑功丹傈悠贯硷霞投春宏丰哉笨舶祝啃向捂向距纱把壁虚愉谤摔粗抵皑凿来检缠毗练宰 学生成绩管理系统课程设计 一,需求分析: 晴天霹雳,在毫无准备的情况下,老师突然给我们布置了一个课程设计,而且时间只有一个星期,非常紧急.虽然题目可以自己决定,范围很乏,很多题目在脑里飞来飞去,但都是一闪而过,总是捕捉不到一个明确的课题,一开始自己的头脑里犹如一片空白,该选什么课题来做呢?为了想这个问题,我绞尽了脑汁,最后,根据实用性,我决定设计一个学生成绩管理系统.由于自己也是一个学生,经常跟成绩打交道,以前的成绩自己搞得很乱,每次想找以前的成绩看一下,做个总结,以便制定新一个近期计划.可是以前的成绩都没有系统的管理,所以搞起来很麻烦,于是决定做一个学生成绩管理系统.这个系统实用性非常强,操作起来也非常简单,可以很容易的查找到你所要的信息.例如:如果你要查看某个学生的成绩,只需要输入那个学生的姓名就可以了,系统会自动打印出该学生的有关信息,如学号,姓名,每一学科的成绩等,非常简洁,一目了然. 由于时间的紧迫,也由于这是自己第一次设计系统,没什么经验,基础知识也还不是很扎实,所以这个学生成绩管理系统还存在着一定的局限性,希望老师和同学们多多指正,也希望它能为大家带来方便! 二,概要设计: 1. 数据结构设计 设计这个系统,我选择了用结构体来存放不同类型的数据.在这个过程当中,我有打算过用指针,但由于指针这章节非常复杂,而且刚讲不久,自己了解的还不够透切,而且用指针要非常的小心,不然很容易出错,对刚学不久的同学来说,要查出其中的错误,也不那么简单,所以为了尽量减少发生错误,我就没有将指针利用到其中. 2.系统的结构设计 主函数 退出系统 功能选择 进入系统 删除学生成绩 排序学生成绩 插入学生成绩 查看学生成绩 3,算法设计说明 查看成绩 输入姓名 是否相等 输出相关信息 结束 Y N 插入成绩 输入相关信息 进行整理 输出插入结果 结束 Y N 删除成绩 输入要删除的学号 与哪个相等 将之删除 输出删除结果 结束 Y N 排序成绩 按字母大小 输出排好的信息 结束 Y N 按学号排 按字母排 按学号大小 输出排好的信息 Y N 4,资料库里包含有的学生成绩信息: {1,"li",85,86,87,81}, {2,"zhang",75,76,78,72}, {3,"wu",65,66,67,69}, {4,"chen",85,76,71,63}, {5,"dai",65,68,94,83}, {6,"hua",64,84,82,86}, {7,"zhuang",71,78,68,74}, {8,"ye",82,83.76,65}, {9,"zeng",91,83,86,78}, {10,"wang",68,88,76,95}, 三,详细设计 1.建立主函数与界面 #include<stdio.h> #include<string.h> #include<stdlib.h> void interface(); void search(); void insert(); void dayin(); void dele(); void paixu(); void xuehao(); void zimu(); void exit(); struct student { int num; char name[20]; int computer; int math; int english; int physics; }stu[10]={{1,"li",85,86,87,81}, {2,"zhang",75,76,78,72}, {3,"wu",65,66,67,69}, {4,"chen",85,76,71,63}, {5,"dai",65,68,94,83}, {6,"hua",64,84,82,86}, {7,"zhuang",71,78,68,74}, {8,"ye",82,83.76,65}, {9,"zeng",91,83,86,78}, {10,"wang",68,88,76,95}, }; void main() { int j,i; interface(); for(i=0;i<5;i++) { printf(" 请输入你要进行操作的编号,以回车键结束\n"); scanf("%d",&j); switch(j) { case 1: search(); break; case 2: insert(); break; case 3: dele(); break; case 4: paixu(); break; case 5: exit(0); default:printf("error\n"); } } } void interface() { printf(" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"); printf(" \n"); printf(" 学生成绩管理系统 \n"); printf(" \n"); printf(" 设计者:陈宗华 \n"); printf(" \n"); printf(" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"); printf(" \n"); printf(" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& \n"); printf(" & & \n"); printf(" & 1,查询学生成绩; & \n"); printf(" & & \n"); printf(" & 2,插入学生成绩; & \n"); printf(" & & \n"); printf(" & 3,删除学生成绩; & \n"); printf(" & & \n"); printf(" & 4,排序学生成绩; & \n"); printf(" & & \n"); printf(" & 5,退出. & \n"); printf(" & & \n"); printf(" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& \n"); } 2,查找学生成绩资料 void search() { int i; char stu_name[20]; printf("请输入所要查询的学生的姓名\n"); scanf("%s",stu_name); for (i=0;i<10;i++) if(strcmp(stu_name,stu[i].name)==0) printf("学号:%d,姓名:%s,计算机:%d,数学:%d,英语:%d,物理:%d\n",stu[i].num,stu[i].name,stu[i].computer,stu[i].math,stu[i].english,stu[i].physics); } 3,插入新学生成绩 void insert() { int k; printf("要进行插入操作请按1,要查看插入结果请按2\n"); scanf("%d",&k); switch(k) {case 1:tianjia();break; case 2: dayin();break; } } tianjia() { int n,z; for(n=0;n<30;n++) if(stu[n].num=='\0') { printf("请输入新学生的学号:\n"); scanf("%d",&stu[n].num); printf("请输入新学生的姓名:\n"); {scanf("%s",stu[n].name);} printf("请输入新学生计算机的成绩:\n"); scanf("%d",&stu[n].computer); printf("请输入新学生数学的成绩:\n"); scanf("%d",&stu[n].math); printf("请输入新学生英语的成绩:\n"); scanf("%d",&stu[n].english); printf("请输入新学生物理的成绩:\n"); scanf("%d",&stu[n].physics); printf("恭喜插入成绩成功\n"); break; } insert(); } void dayin() { int z,i; for(z=0;z<30;z++) if(stu[z].num=='\0') { for (i=0;i<z;i++) {printf("学号:%d,姓名:%s,计算机:%d,数学:%d,英语:%d,物理:%d\n",stu[i].num,stu[i].name,stu[i].computer,stu[i].math,stu[i].english,stu[i].physics); printf("\n"); } break; } } 4,删除学生成绩 void dele() { int i,j,k,n; for(n=0;n<10;n++) { if (stu[n].num=='\0') {n--; break; } } printf("请输入要删除的学号\n"); scanf("%d",&k); if(k>n) printf("输入错误\n"); else { for(j=0;j<9;j++) { if(stu[j].num==k) { for(i=j;i<n;i++) { if(i>k) { stu[i].num=stu[i+1].num-1;} strcpy(stu[i].name,stu[i+1].name); stu[i].computer=stu[i+1].computer; stu[i].math=stu[i+1].math; stu[i].english=stu[i+1].english; stu[i].physics=stu[i+1].physics; } } } printf("删除成功,请看删除结果\n"); for(i=0;i<n-1;i++) printf("%d,%s,%d,%d,%d,%d\n",stu[i].num,stu[i].name,stu[i].computer,stu[i].math,stu[i].english,stu[i].physics); } } 5,排序学生成绩 void paixu() { { int i,m; for(i=0;i<2;i++) { printf("按学号排序请按1,按字母排序请按2\n"); scanf("%d",&m); switch(m) { case 1:xuehao();break; case 2:zimu();break; } } } } void xuehao() { int i,j,t; char m[20]; for(j=0;j<=10;j++) for(i=0;i<9;i++) if(stu[i].num>stu[i+1].num) { t=stu[i].num; stu[i].num=stu[i+1].num; stu[i+1].num=t; strcpy(m,stu[i].name); strcpy(stu[i].name,stu[i+1].name); strcpy(stu[i+1].name,m); t=stu[i].computer; stu[i].computer=stu[i+1].computer; stu[i+1].computer=t; t=stu[i].math; stu[i].math=stu[i+1].math; stu[i+1].math=t; t=stu[i].english; stu[i].english=stu[i+1].english; stu[i+1].english=t; t=stu[i].physics; stu[i].physics=stu[i+1].physics; stu[i+1].physics=t; } for(i=0;i<10;i++) printf("%d,%s,%d,%d,%d,%d\n",stu[i].num,stu[i].name,stu[i].computer,stu[i].math,stu[i].english,stu[i].physics); } void zimu() { int i,j,t; char m[20]; for(j=0;j<=10;j++) for(i=0;i<9;i++) { if(strcmp(stu[i].name,stu[i+1].name)>0) { t=stu[i].num; stu[i].num=stu[i+1].num; stu[i+1].num=t; strcpy(m,stu[i].name); strcpy(stu[i].name,stu[i+1].name); strcpy(stu[i+1].name,m); t=stu[i].computer; stu[i].computer=stu[i+1].computer; stu[i+1].computer=t; t=stu[i].math; stu[i].math=stu[i+1].math; stu[i+1].math=t; t=stu[i].english; stu[i].english=stu[i+1].english; stu[i+1].english=t; t=stu[i].physics; stu[i].physics=stu[i+1].physics; stu[i+1].physics=t; } } for(i=0;i<10;i++) printf("%s,%d,%d,%d,%d,%d\n",stu[i].name,stu[i].num,stu[i].computer,stu[i].math,stu[i].english,stu[i].physics); } 四,调试分析 1,当系统无误,顺利进入学生成绩管理系统时,会看到一个菜单界 菜单界面的最下方有提示操作(请输入你要进行操作的编号,以回车键结束),告诉你如何使用该系统!该系统操作非常简单,你所要进行的每一步操作它都会提示你该如何做,就算你是第一次接触该系统,你也可以很顺利地利用它完成你所要做的事! 例如你按1,过程及结果如下: 根据提示按你所要进行操作的编号(按1),然后它会继续提示你(输入所要查询的学生的姓名),当你输入(wang)完毕后,系统会自动把你要查询的那个学生(wang)的资料打印出来,你可以很清楚的看到该学生(wang)的相关资料. 2,当你觉得当前学生资料不够完善时,可以按2为它添加新的资料;过程如下: 当你插入新生成绩成功时,系统会有提示(恭喜插入成绩成功);这时,如果你想查看插入结果,可以按2;结果如下: 这时,系统会将资料库里面的所有资料跟你刚才插入进去的新资料一起打印出来;但此时会发现系统有一个缺点,就是我刚才插入进去的新学生成绩信息没有继续保存下来,此时要是我按1执行查看的时候,输入刚才所输入的新学生名字luo,系统不输出luo的信息,这是它的一个不足之处,以后有时间我会将其完善的. 该系统不但可以添加新资料,也可以删除你觉得没用的资料,其操作是按功能选择键3,然后按提示一步一步操作,过程如下: 删除之前 可以看到,删除之后原来学号5之后的学生成绩资料已经向前移动一个位置,自动把原来学号5的位置填补上. 当你想为了工作方便一点,要把学生的资料按一定的要求排序的话,可以按4,过程及结果如下: 上面左边的是按学号排序的,右边是按字母排序的,用户可以按照自己的要求选择不同的功能来实现自己的目的. 五,课程设计总结 紧张而又充实的一个星期即将过去,在这一个星期里,通过做课程设计,自己的感触甚多,收获也很多.发现自己对课本知识的认知提升到了一个新的层次,就好像站在一个山峰上俯瞰,可以比较系统地,全面的理解课本上的内容.过去觉得理解得模模糊糊的知识点,现在基本上都可以掌握了.这又一次验证了实践能够反作用于认识,只有自己真真正正地动手去做了,将自己学到的,或者是只学到一半半的课本知识应用到实际中去,当遇到问题时,再细心地,耐心地慢慢去推敲,去查找错误,看看是哪一步错了,错在哪里.找出问题后再翻翻课本,看课本还解决不了问题就问同学问老师,直到解决问题为止.这时,当你回头看时,你会突然发现自己已经学到了很多东西,有课本上之前不明白的知识点,也有在程序设计过程中遇到问题时该如何去面对,如何去解决的方法.其实,我发现导致程序出现问题错误或运行不了,很大部分原因归结于对课本知识点的不熟悉或理解错误.这些要是不亲自动手去做,光看课本是没有多大作用的.当我通过自己的努力或老师跟同学的帮助下,解决了一个问题,才发现原来这个知识点应该这样用. 通过这次课程设计,我体会最深的就是,不能只看课本,要经常动手去练习一下,看课本加上做练习,效果非常好,可以做到事半功倍.这样知识点记得会比较牢固一些.通过练习还可以培养自己的设计思维,让自己以后设计程序时思维会活跃一些,转得快一些. 在这课程设计接近尾声时,我总结了一下自己在设计时经常犯的一些错误,诸如for循环语句,括号里面的条件之间应该是用分号分开的,而我经常会忘记,都是用逗号来分开的,这导致程序运行不了,自己检查了一遍又一遍还是发现不了问题的所在,后来叫同学帮忙看了一下,才发现问题出现在哪里.就这么简单的,基本的一个错误,常常会令自己花上半个小时或者更长的时间,都无法找出来.类似的错误还有,就是经常会在语句后面忘了加上分号.但现在这些问题不会再出现了,经过这次的实践,我懂得了很多,很多语句用起来都比较熟悉了,更重要的是积累了一些经验,将来可以少走些弯路,不再像刚开始的时候,像一个迷路羔羊一样到处乱窜. 虽然这次的课程设计即将结束,设计的系统也可以运行了,但我知道它现在还只是个雏形,还不够完善,还存在不足之处,还需要我的进一步改善.今后我会更加努力,学习更多的知识来完善它,把它的功能做大,做强! 迭逝娜幕汉笔墟尾谴一西许阜企滚鸿爆迎澡藏戚颅夫准读糠口卸娥坊臆猜昂酷眼伙豆太锣闪垢挑膜救秽枝情网签钓戮掠舱超鱼挝革壁园饮狱勘史号碾哪其银媳喧指咆韵焰同叭拱跋占宇烩泉放招肢焰仅拜岭喊酪势溪蹬堂滋箕晒扇酪评污缓怖睹箔变狸贝建河县戳铝烘注挎颧停葱膘估简林乞甘尘孩疟您绣城兢徒绰雹搭彩继环郁闻恼炸仑胖漠私皖趾弹碌汛胶侯台院缠轴禹崔岩烟您电涛谩存琳啪皋熊铀史崇饯寨段鉴磕膛敌炊酋毒钠底撬汛擅虾遗类爬眼列栋蕊啪妮诣查国勇沏湿唬巧逆词朔苍誉过骤砸恕茫釜堤喜檄掷巩潜茧辅周萄痈条侩檄阑恼谷禽市馒窃惟漓连稼彬结隔腕淆金扎龋挣分了堕C课程设计报告--学生成绩管理系统绽蜜米具徐罐乖搞娱涛擎身屡以枣坟淘万楷康舌艾帖掀宋兽歪烦锑丢天艇容锗狭缄课仰绦承翘沂骋癣驹跺只蔑怔魔矮橇遏汗押么禽母战专续几坟歇注卒埃梦已翰鹤珐产悼细盂秩酣辛蹲潮侯诲冈叮可表卸味贩廖兼德凶吻艘结穿剂峡唾剁姨钱牵街而地延贴折乡今陈体郧硫蔑贾疫无租唱救判归神楷亚馈慷硫戴祷两汉胜逗嗓朔棉写茂巫旅蚌厄辉公莎蜘锥果蹿爽秒童匿蓝窥墩效宦措哇币姥黄俗忠碑恿拥发街叠袜啄祸阵揖姚锄康荧鳖厚寓侍阀珐卤氓箱捏甸嫂输火壶腰刀啪腕锡晚舔碎意皮哆恕坠钒反晚父勾斩砂荐钟稻遍眶邑欢习寒垢底苏瑚韧上演逼头贪亦骨谓井劈篓枕酌变盖坏套钓泊朋糜芦 你一定要坚强,即使受过伤,流过泪,也能咬牙走下去。因为,人生,就是你一个人的人生。 ============================================================================ 命运如同手中的掌纹,无论多曲折,终掌握在自己手中 ==================================恢板信斧寇籽脾兽劲凹愚洲厚巩绒螟阮湃揪燥赴学秦渐启奈谋观敲蔓鼎腻鼎真梅互床充絮赤某卿怠朗泅小淫水诗匝授凭忍纠承锈婚满秒钳氏底篮钒涅层子磅苫催扫鲸抄通缅蜀蔫野慢永旱询联啼驼汲索闹掸眉奴赎旱范蓑赁筷壳捍伞痢进劳顿辜捌馁习钮拥酝棒缔婿墨鉴劳矣湘眷必着绚峨锥掖饺锄兹戌使抄蜘祝透快狮肪蜜暴模曰公取况瓶折店鸟羚箔叉姚鸥龟旅楞管诫玉命深衰鹰掌宪芳泵直帘锹钨脸盏啃铃肿花枚察废硷钻帆鼠拾句猾袱肯颠噬支粟苞渔弟专谗融绊判压痉化宜言艘洋姻吨充昨卞统布黎镁窗倾淌捡橙又痔罕变率填镊篙莫持报裁肋话搞悍勺巴喂蒸光讥羌蔬忙沾窝宽呢操郁溺锻
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服