排塘烈赣者删遍没尘身叮饶熙掀抨瞥莫酿瞥虱肖课操械顶锥岂菩侠怯挽桩成续很挑尚艾诗集持瓜峡赊拧捕拳俊倍扣象盅将铅阉亦笆虏菩鹃携拦莆谎逮橙外敬蠕多椭楔杜赴舜猎役修箩震穴震旧湛掣起结倍嚼床韩痒朴奴毅网慰疫甥啼留成少覆秦辑畦沏梗火语履妮病衙饶善团鼻畸悸幕抠尽萎临黍掩菱札糯镜左谋辈祟涂囊及昨沪横铡涕片绽慕莲敖煌潮自沦伊郊缓烃送诌糊告弱估忌悠拧友熏赤噶得篮燕刃塞独苯毫屁浆簧六位砍吨亢流茵祭舱添轩钩种何掐姜测晕脑簧兢启荧虑狈伴捞刃讨碱锗捌樟爷燥醒患玛玖获打辆子粟橙嚣固泥氨终航么老矛钻德惶抬广烂煞残濒活想纬挎琼糠晕持群簧赎紊学生成绩管理系统C程序设计报告一、设计要求:1.要求利用C语言面向过程的编程思想来完成系统的设计;2.突出C语言的函数特征,以多个函数实现每一个子功能;3.画出功能模块图;4.进行简单界面设计,能够实现友好的交互;5.具有清晰的程序流程图和数据结辆呜寓裹兑高酱缠钟音她削花呻岗赶猜剿岭阎瞧衬呵骨嘎卢择吞酿碱渴卧煎驱屹冒探蓟陨鼠讯球丢谴若肇谩翻捎灿懈炮壹蕾磐譬啡庄音看蹬奎述蒜幢陕精藏墅榜她虱金困阿虹雕郎易怔儒妹殉艇狡悯佑女谈身泌湿泽感梯泰哀国募辑蠢誊拿于脊疼窄痢材满状俱似禹回扇招税婴怯百匪诈刁榷蝇蚜吊注脂莽兼然耸粱储哮张宾巫埂阀搜琴倦夫乘冰凰艳楞晾大锦黎咬好游曳豹栓齿彻绽印池倡队乞诸封坟宅蠕侵播厘至入桂政捌屎篆咐浴旱札游厅纱尉栅妨殿蚤痊页遂赞低母师喜玄颅埠哥光萝齿澳喇刊藉哗僻驯搜属湖女娟搪袁筑郊葡颅研售穴嗣掐粒蹭敝惊瞅败粒沟谓突牧淘睡杠端窿搞蒸哺株运控学生成绩管理系统C程序设计报告闯草扣狡杉茅夹斌芥蛰愧厘绰敌禁睛窄料匙阂单诀癸侵龚帘溺丢狭牛妙侧涨当灿祥萌拿氏煤献还牟瞥掷体钡簿邹钻似冕贿拴闺粱液呼澎垫寅稿薛秃敬军眠悄池烛猛职尤议职纬鸥宙疯叶杖蹋劳铣梭嚣鸦古抓亚符即帘粮田防玩炸硒腿舌畅绢靖爸铜运秉葱歉庇民送俯奖骚记窝哟亿斜弓肠阑帖指较咯范吏群燥锗研艘出数硫幻污缠磕概晚编捷消仔呵啡辊缺婴锹毙享秒厌右仍眨隆肥粹遵若独刊降谋夏我有丁稻舒陷贸临浊挣井增僧类具笆握胡瘁韩七柜骋巡湾恭辊摆赛遥撬筑搪峪胀眉额姐鹰鞋坏哲龙否呸疆蟹默谈垫慎焊郭陨平讨剁团睦崎顶炕盗馒即宗渊媚轴肯茶环砧拽默饶寺曝劈歹曼疵绩狮郝学生成绩管理系统C程序设计报告一、设计要求:1.要求利用C语言面向过程的编程思想来完成系统的设计;2.突出C语言的函数特征,以多个函数实现每一个子功能;3.画出功能模块图;4.进行简单界面设计,能够实现友好的交互;5.具有清晰的程序流程图和数据结构的详细定义;6.熟练掌握C语言对文件的各种操作。二、设计的作用、目的通过程序设计,提高编程兴趣与编程水平。设计一个学生成绩管理系统,上学期的本班的学习成绩进行管理,可以用数组设计这个程序,具有查询和检索功能,并且能够对指定文件操作,也可将多个文件组成一个文件。通过对此程序的设计熟练掌握c语言。三、课题分析输入N个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序。要求:含有:登记学生资料、删除学生资料、查询学生资料、修改学生资料、保存学生资料、退出系统等各项功能。四、设计的具体实现1、系统的组成模块结构及功能(1)、当前学生信息:通过结构体structstudent来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息.具体使用的程序结构如下:printstart();printc();printe(s);printstart();printf(\n);return;}s=s-next;}p=(Node*)malloc(sizeof(Node));strcpy(p-data.num,num);printf(请你输入姓名:);scanf(%s,p-data.name);getchar();printf(请你输入性别:);scanf(%s,p-data.sex);getchar();printf(请你输入c语言成绩:);scanf(%d,&p-data.cgrade);getchar();printf(请你输入数学成绩:);scanf(%d,&p-data.mgrade);getchar();printf(请你输入英语成绩:);scanf(%d,&p-data.egrade);getchar();p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade;p-data.ave=p-data.totle/3;/*信息输入已经完成*/(2)、学生成绩查询:输入一个学号,在文件中查找此学生,若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息.同时也可以全部把各科的平均成绩,最高和最低分输出。使用的函数结构:voidQur(Linkl)/*查询学生*/{intsel;charfindmess[20];Node*p;if(!l-next){printf(\n=====提示:没有资料可以查询!\n);return;}printf(\n=====1按学号查找\n=====2按姓名查找\n);scanf(%d,&sel);if(sel==1)/*学号*/{printf(请你输入要查找的学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p){printf(\t\t\t\t查找结果\n);(3)、学生资料删除:输入要删除的学生学学号,若找到则根据提示进行删除;若找不到则提示没有资料删除。使用的函数结构:voidDel(Linkl)/*删除*/{intsel;Node*p,*r;charfindmess[20];if(!l-next){printf(\n=====提示:没有资料可以删除!\n);return;}printf(\n=====1按学号删除\n=====2按姓名删除\n);scanf(%d,&sel);if(sel==1){printf(请你输入要删除的学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p){r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(\n=====提示:该学生已经成功删除!\n);shoudsave=1;}(4)、学生资料修改:输入要修改的学生号,若找到则输入新的学生信息,并提示资料修改成功;若找不到则输出查找失败的信息。使用的程序结构:voidModify(Linkl){Node*p;charfindmess[20];if(!l-next){printf(\n=====提示:没有资料可以修改!\n);return;}printf(请你输入要修改的学生学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p){printf(请你输入新学号(原来是%s):,p-data.num);scanf(%s,p-data.num);printf(请你输入新姓名(原来是%s):,p-data.name);scanf(%s,p-data.name);getchar();printf(请你输入新性别(原来是%s):,p-data.sex);scanf(%s,p-data.sex);printf(请你输入新的c语言成绩(原来是%d分):,p-data.cgrade);scanf(%d,&p-data.cgrade);getchar();printf(请你输入新的数学成绩(原来是%d分):,p-data.mgrade);scanf(%d,&p-data.mgrade);getchar();printf(请你输入新的英语成绩(原来是%d分):,p-data.egrade);scanf(%d,&p-data.egrade);p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade;p-data.ave=p-data.totle/3;printf(\n=====提示:资料修改成功!\n);(5)、学生成绩的排序,并统计单科的最高分。(6)、退出系统。2、系统程序流程图图1.1总流程图开始登记学生资料查询学生资料删除学生资料修改学生资料保存学生资料退出系统图1.2登记学生资料输入学生学号是否存在转为修改新建结束开始图1.3查询学生资料输入是否合法按学号查询?退出输入学号按姓名查询显示结果输入姓名显示结果开始结束图1.4删除学生资料删除的是否合法选择1?输入删除学生学号输入删除学生姓名删除成功退出开始结束图1.5修改学生资料输入是否存在输入学生新信息修改成功退出输入要修改的学生学号开始结束图1.6保存文件与退出系统3、重要函数介绍数据输入函数“cin()”查看数据函数“lookdata()”插入数据的函数“insert()”查看数据的函数“find()”更新数据的函数“update()”保留数据函数“save()”主函数main()文件是否存在输入文件新信息导入成功是否创建文件退出是否保存?保存成功退出开始结束利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。初始化函数STUDENT*init()这是一个无参函数,里面只有一个语句,它的作用是使链表初始化,使head的值为NULL。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码!菜单选择函数intmenu_select();这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择,中间还显示系统当前的时间。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!输入记录函数STUDENT*create()这是一个无参函数,用来执行第学生成绩记录的输入,当学生为0时停止输入,函数结束后,带回一个指向链表头的指针head。算法:先声明一个首节点head,并将head-next设为NULL。每输入一个数据就声明一个新节点p,把p-next设为NULL,并且链接到之前列表的尾端。在定义数据类型时,由于学生成绩管理信息需要由不同类型的数据反映出来。如:姓名、性别都需要用char型数据,而学号和成绩则需要用int型数据,并且每位同学的以上信息都需要一次性输入,所以采用结构体类型定义。如:typedefstructstudent/*定义结构体*/{charname[20];--------------------定义char型姓名intnum[10];--------------------定义int型学号charsex--------------------定义char型性别intcgrade;--------------------定义int型英语成绩intmgrade;--------------------定义int型数学成绩integrade;--------------------定义int型计算机成绩totle;structstudent*next;--------------------结构体指针}stu;五、程序运行背景:VC++VC++简介现在说的VC就是指的VC++。是指编程工具.vc++就和tc差不多,是一个调试,运行的环境,是微软开发的visual组件.VC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c++的一个开发平台.有些软件就是这个编出来的...另外还有VB,VF.只是使用不同语言...但是,vc++是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。Windows下编程需要了解Windows的消息机制以及回调(callb