




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程程课程实实验报告告系统名称称 _ 学生信信息管理理系统_学 院_ 计算机机学院信信息_ _学生信息息管理系系统设计计文档可行性研研究 1.1技技术可行行性已经有人人开发过过,并且且我们也也都使用用过相类类似系统统,对其其一般性性的软件件和操作作环境、编译环环境都比比较熟悉悉,所以以说在技技术上来来说是可可行的。1.2经经济可行行性当前系统统只对服服务器有有关的要要求,在在服务费费用方面面,支出出在你那那个承担担的范围围,以后后的维护护及其他他设备的的总共费费用在可可以承担担的范围围。用当当前系统统可以节节约出能能够支付付当前系系统的直直接支出出,以后后维护费费用更是是比以前前的机制制节
2、约很很多钱。1.3操操作可行行性系统的操操作方式式在这个个用户组组织内能能行得通通。需求分析析2.1输输入让学生在在纸面上上填写相相关内容容,然后后等待辅辅导员或或管理员员的审批批确认后后,再输输入数据据库中保保存。2.2输输出学生选择择用户选选项进入入系统后后,系统统可经有有算法程程序输出出学生基基本信息息表,学学习成绩绩表等。2.2.1打印印输出可打印基基本信息息、学习习成绩等等各种表表格以及及在对相相应信息息进行统统计操作作后的表表格。2.2.2文件件输出可将所有有打印表表格输出出到EXXCELL文件中中,以便便用户使使用其它它的EXXCELL软件改改变表格格的大小小及字体体。2.3故故
3、障处理理2.3.1内部部故障处处理在开发阶阶段可以以随即修修改数据据库里的的相应内内容。 2.3.2外部部故障处处理对编辑的的程序进进行重装装载时,第一次次装载认认为错,修改。第二次次运行,在需求求调用时时出错,有错误误提示,重试。2.4性性能要求求分析2.4.1系统统易操作作性所开发的的系统应应做到操操作简单单,尽量量使系统统操作不不受用户户对电脑脑知识水水平的限限制。2.4.2系统统具有可可维护性性由于系统统涉及的的信息比比较广,数据库库中的数数据需定定期修改改,系统统可利用用的空间间及性能能也随之之下降,为了使使系统更更好地运运转,学学院可以以对系统统数据及及一些简简单的功功能进行行独立
4、的的维护及及调整。2.4.3系统统具有开开放性该系统能能够在开开放的硬硬件体系系结构中中运行,并且能能与其他他系统顺顺利连接接,不会会因外部部系统的的不同面面要做在在量的修修改工作作。3.概要要设计3.1基基本设计计概念和和处理流流程管理员通通过密码码认证,进入信信息管理理页面对对学生相相关信息息的录入入、更新新、修改改、添加加等操作作,也可可以通过过查询界界面对学学生信息息进行完完全的查查询,而而学生和和相关人人员只能能通过公公共的查查询界面面对学生生信息进进行查询询,如要要对学生生信息进进行完全全查询就就需要得得到管理理员的同同意。管理界面数据中 心处理处理打印查询管理员操作信息输出查询用
5、户界面3.2接接口设计计 本系统统采用快快速原型型开发工工具Viisuaal BBasiic 66.0进进行开发发,所提提供的不不同层次次的接口口,都具具有高度度的集成成性,本本系统没没有采用用低级语语言设计计和完成成自定义义接口,因此接接口设计计部分已已经由不不同方式式的组件件来完成成了,以以下只做做简单说说明。3.2.1用户户接口 说明将向向用户提提供的命命令和它它们的语语法结构构,以及及软件的的回答信信息。命令语法信息正确确信息错误误提交IF ELSSE进入系统统返回到当当前界面面重设点击事件件清空输入入的数据据无取消点击事件件返回到当当前界面面无3.2.2外部部接口说明本系系统同外外界
6、的所所有接口口的安排排包括软软件与硬硬件之间间的接口口、本系系统与各各支持软软件直接接的关系系。硬件接口口软件接口口键盘鼠标打印机主模块管理模块块查询模块块3.2.3内部部接口说明本系系统之内内的各个个系统元元素之间间的接口口的安排排。数据据库接口口设计采采用ADDO连接接方式。模块名称称主模块管理员验验证模块块用户查询询界面管理界面面主模块管理员验验证模块块用户查询询界面管理界面面4.详细细设计4.1控控制流程程图4.1.1主模模块软件件结构4.1.2管理理员登陆陆软件结结构4.1.3用户户查询软软件结构构用户查询模块输入查询条件IF正确输出结果ELSE打印出结果返回重新输入条件4.2源源程
7、序流流程图5、项目目测试功能截图图: 5.1 登 陆陆 界 面 5.2 学学生用户户功能界界面 55.3 学学生查询询功能 5.4 管理员员管理界界面 5.55 管理理员输入入功能 55.6 管管理员删删除功能能 5.7 管理员员查询功功能 5.8 管管理员修修改功能能 5.99 管理理员插入入功能 5.10 统计功功能 5.11 分类功功能 5.12 显显示功能能 5.13 管管理员保保存功能能文件保存存名为:STUUDENNT 路路径为:C:6、项目目管理6、1 人员管管理 团队队负责人人:陶修修赟 小组组成员:万富,洪鑫,汪贤惠惠,项鑫鑫6、2产产品管理理 本产产品工作作于iin-TTC
8、工作作环境,用于对对学生成成绩的管管理。学学生用户户,可进进行查询询课程成成绩;管管理员可可对学生生及其成成绩进行行录入、修改、查询、排列等等功能。本系统统可进行行维护,修改。6、3进进程管理理可行性分分析:55月233日55月244日 标志:提交可可行性分分析报告告项目开发发计划:5月225日5月226日 标标志:提提交项目目开发计计划需求分析析:5月月27日日5月月27日日 标志志:完成成需求分分析报告告软件设计计:5月月30日日6月月1日 标志志:完成成软件分分析与设设计文档档编程实现现:6月月2日6月110日 标标志:代代码编写写全部完完成软件测试试:6月月13日日6月月14日日 标标
9、志:完完成软件件测试,可投入入使用可行性分析:5月25日5月26日 标志:提交可行性分析报告项目开发计划:5月27日5月30日 标志:提交项目开发计划需求分析:5月31日5月31日 标志:完成需求分析报告软件设计:6月1日6月3日 标志:完成软件分析与设计文档软件实现:6月6日6月14日 标志:代码编写全部完成测试与实施:6月15日6月16日 标志:完成软件测试,可投入使用可行性分析:5月25日5月26日 标志:提交可行性分析报告项目开发计划:5月27日5月30日 标志:提交项目开发计划需求分析:5月31日5月31日 标志:完成需求分析报告软件设计:6月1日6月3日 标志:完成软件分析与设计文
10、档软件实现:6月6日6月14日 标志:代码编写全部完成测试与实施:6月15日6月16日 标志:完成软件测试,可投入使用6、4项项目计划划甘特图图7、编 码#inccludde #inccludde #inccludde strringg.h#inccludde connio.h#deffinee HEEADEER1 -SSTUDDENTT- n#deffinee HEEADEER2 | nnumbber | nnamee |Commp|MMathh|Enng | summ | aave |mmicii | n#deffinee HEEADEER3 |-|-|-|-|-|-|-|-| #deff
11、inee FOORMAAT | %-100s |%-115s|%4dd|%44d|%4d| %44d | %.22f |%4dd |n#deffinee DAATA p-daata.numm,p-daata.namme,pp-ddataa.eggradde,pp-ddataa.mggradde,pp-ddataa.cggradde,pp-ddataa.tootall,p-daata.avee,p-daata.minngcii#deffinee ENND - nint savvefllag=0; /*是否需需要存盘盘的标志志变量*/typeedeff sttrucct sstuddentt /*
12、标记记为sttudeent*/ chaar nnum10; /*学号*/ chaar nnamee155; /*姓名*/ intt cggradde; /*C语言言成绩*/ intt mggradde; /*数学成成绩*/ intt eggradde; /*英语成成绩*/ intt tootall; /*总分*/ flooat avee; /*平均分分*/ intt miingcci; /*名次*/;typeedeff sttrucct nnodee /*定定义每条条记录或或结点的的数据结结构,标标记为nnodee*/ strructt sttudeent datta; strructt no
13、ode *neext;Nodde,*Linnk;voidd meenucchoiice() sysstemm(ccls); /*清屏屏.与cclrsscr()功能能相同*/ texxtcoolorr(100); /*在文文本模式式中选择择新的字字符颜色色*/ gottoxyy(7,5); cprrinttf( TThe Stuudennts Grradee Maanaggemeent Sysstemm nn); gottoxyy(7,8); priintff(nPlleasse EEnteer yyourr chhoicce; 0 entter stuudennts syysteemnnttt
14、t); priintff( ); priintff(11 ennterr teeachherss ssysttemn);voidd meenu() /*菜菜单函数数*/ sysstemm(ccls); /*清屏屏.与cclrsscr()功能能相同*/ texxtcoolorr(100); /*在文文本模式式中选择择新的字字符颜色色*/ gottoxyy(7,5); /*在文文本窗口口中设置置光标,下同*/ cprrinttf( TThe Stuudennts Grradee Maanaggemeent Sysstemm nn); gottoxyy(7,8); cprrinttf( *Mennu
15、*n); gottoxyy(7,9); cprrinttf( * 11 innputt reccordd 2 delletee reecorrd *n); gottoxyy(7,10); cprrinttf( * 33 seearcch reccordd 4 moddifyy reecorrd *n); gottoxyy(7,11); cprrinttf( * 55 innserrt reccordd 6 couunt reecorrd *n); gottoxyy(7,12); cprrinttf( * 77 soort reoord 8 savve reecorrd *n); gottoxy
16、y(7,13); cprrinttf( * 99 diispllay reccordd 0 quiit syysteem *n); gottoxyy(7,14); cprrinttf( *n); /*cpprinntf()送格格式化输输出至文文本窗口口屏幕中中*/voidd meenusstuddentt() sysstemm(ccls); /*清屏屏.与cclrsscr()功能能相同*/ texxtcoolorr(100); /*在文文本模式式中选择择新的字字符颜色色*/ gottoxyy(7,5); /*在文文本窗口口中设置置光标,下同*/ cprrinttf( TThe Stuudenn
17、ts Grradee Maanaggemeent Sysstemm nn); gottoxyy(7,8); cprrinttf( *Mennu*n); gottoxyy(7,9); cprrinttf( *3 ssearrch reecorrd 00 quuit ssysttem*n); gottoxyy(7,10); cprrinttf( *n); /*cpprinntf()送格格式化输输出至文文本窗口口屏幕中中*/voidd prrinttheaaderr() /*格格式化输输出表头头*/ priintff(HEEADEER1); priintff(HEEADEER2); priintff
18、(HEEADEER3);voidd prrinttdatta(NNodee *ppp) /*格格式化输输出表中中数据*/ Nodde* p; p=ppp; priintff(FOORMAAT,DDATAA);voidd Wrrongg() /*输出按按键错误误信息*/ priintff(nnnnnnn*EErroor:iinpuut hhas wroong! prresss anny kkey to conntinnue*n); gettchaar();voidd Noofinnd() /*输出出未查找找此学生生的信息息*/ priintff(n=Noot ffindd thhis stuud
19、ennt!n);voidd Diisp(Linnk ll) /*显显示单链链表l中中存储的的学生记记录,内内容为sstuddentt结构中中定义的的数据项项*/ Nodde *p; p=ll-nnextt; /*l存存储的是是单链表表中头结结点的指指针,该该头结点点没有存存储学生生信息,指针域域指向的的后继结结点才有有学生信信息*/ if(!p) prrinttf(n=NNot stuudennt rrecoord!n); geetchhar(); reeturrn; priintff(nnn); priinthheadder(); /*输输出表格格头部*/ whiile(p) /*逐逐条输出
20、出链表中中存储的的学生信信息*/ prrinttdatta(pp); p=p-nexxt; /*移动至至下一个个结点*/ prrinttf(HHEADDER33); gettchaar();Nodee* LLocaate(Linnk ll,chhar finndmeess,ccharr naameoornuum) /*用于于定位链链表中符符合要求求的节点点,并返返回指向向该节点点的指针针,fiindmmesss保保存要查查找的具具体内容容; nnameeornnum保存存按什么么查找;在单链链表l中中查找;*/ Nodde *r; if(strrcmpp(naameoornuum,numm)=
21、0) /*按学号号查询*/ r=l-nexxt; whhilee(r) iif(sstrccmp(r-datta.nnum,finndmeess)=00) /*若找找到fiindmmesss值的学学号*/ rretuurn r; rr=r-neext; elsse iif(sstrccmp(nammeorrnumm,nnamee)=0) /*按姓姓名查询询*/ r=l-nexxt; whhilee(r) iif(sstrccmp(r-datta.nnamee,fiindmmesss)=0) /*若若找到ffinddmesss值的的学生姓姓名*/ rretuurn r; rr=r-neext;
22、retturnn 0;voidd sttrinnginnputt(chhar *t,intt leens,chaar *notticee) /*输入字字符串,并进行行长度验验证(长长度llenss)prrinttf(n Excceedd thhe rrequuireed llenggth! nn); /*进行长长度校验验,超过过lenns值重重新输入入*/ wwhille(sstrllen(n)lenns); sstrccpy(t,nn); /*将将输入的的字符串串拷贝到到字符串串t中*/int nummberrinpput(chaar *notticee) /*输输入分数数,0分数数1000
23、 | t1000 | tnnextt; sysstemm(ccls); Dissp(ll); /*先先打印出出已有的的学生信信息*/ whiile(r-nexxt!=NULLL) r=rr-nnextt; /*将指指针移至至于链表表最末尾尾,准备备添加记记录*/ whiile(1) /*一一次可输输入多条条记录,直至输输入学号号为0的的记录结结点添加加操作*/ whhilee(1) /*输入学学号,保保证该学学号没有有被使用用,若输输入学号号为0,则退出出添加记记录操作作*/ sstriingiinpuut(nnum,10,Innputt nuumbeer(ppresss 0rretuurn
24、mennu):); /*格式化化输入学学号并检检验*/ fflagg=0; iif(sstrccmp(numm,00)=0) /*输入为为0,则则退出添添加操作作,返回回主界面面*/ reeturrn; ss=l-neext; wwhille(ss) /*查询询该学号号是否已已经存在在,若存存在则要要求重新新输入一一个未被被占用的的学号*/ if(strrcmpp(s-daata.numm,nuum)=0) fllag=1; brreakk; s=ss-nnextt; iif(fflagg=11) /*提示示用户是是否重新新输入*/ gettchaar(); priintff(=TThe nu
25、mmberr %ss iss noot eexisstinng,ttry agaain?(y/n):,nnum); scaanf(%cc,&ch); if(ch=yy|ch=YY) coontiinuee; elsse reeturrn; eelsee brreakk; p=(Noode *)mmallloc(sizzeoff(Noode); iff(!pp) pprinntf(nn Allloccatee meemorry ffailluree ); /*如没没有申请请到,打打印提示示信息*/ rretuurn ; sttrcppy(pp-ddataa.nuum,nnum); /*将字字符串
26、nnum拷拷贝到pp-ddataa.nuum中*/ sttrinnginnputt(p-daata.namme,115,Namme:); p-daata.cgrradee=nuumbeerinnputt(CC laanguuagee Sccoree0-1000:); /*输输入并检检验分数数,分数数必须在在01100之之间*/ p-daata.mgrradee=nuumbeerinnputt(MMathh Sccoree0-1000:); p-daata.egrradee=nuumbeerinnputt(EEngllishh Sccoree0-1000:); p-daata.tottal=p-
27、datta.eegraade + pp-ddataa.cggradde + p-daata.mgrradee; /*计算算总分*/ p-daata.avee=(ffloaat)(p-datta.ttotaal/33); /*计算平平均分*/ p-daata.minngcii=0; p-neext=NULLL; /*表表明这是是链表的的尾部结结点*/ r-neext=p; /*将新建建的结点点加入链链表尾部部中*/ r=p; saavefflagg=1; /*在mmainn()有有对该全全局变量量的判断断,若为为1,则则进行存存盘操作作*/ retturnn ;voidd Quur(LLinkk
28、 l) /*按学号号或姓名名,查询询学生记记录*/ intt seelecct; /*11:按学学号查,2:按按姓名查查,其他他:返回回主界面面(菜单单)*/ chaar ssearrchiinpuut220; /*保存用用户输入入的查询询内容*/ Nodde *p; if(!l-neext) /*若链表表为空*/ syysteem(clss); prrinttf(n=NNo sstuddentt reecorrd!n); geetchhar(); reeturrn; sysstemm(ccls); priintff(n =1 SSearrch by nummberr =22 Seearcch
29、 bby nnameen); priintff( ppleaase chooicee1,2:); scaanf(%dd,&sellectt); if(sellectt=11) /*按学号号查询*/ sttrinnginnputt(seearcchinnputt,100,IInpuut tthe exiistiing stuudennt nnumbber:); p=Loccatee(l,seaarchhinpput,nuum);/*在l中中查找学学号为ssearrchiinpuut值的的节点,并返回回节点的的指针*/ iff(p) /*若p!=NUULL*/ pprinntheeadeer();
30、 pprinntdaata(p); pprinntf(ENDD); pprinntf(prresss anny kkey to retturnn); ggetccharr(); ellse NNofiind(); geetchhar(); elsse iif(sseleect=2) /*按姓名名查询*/ sttrinnginnputt(seearcchinnputt,155,iinpuut tthe exiistiing stuudennt nnamee:); p=Loccatee(l,seaarchhinpput,naame); iff(p) pprinntheeadeer(); pprin
31、ntdaata(p); pprinntf(ENDD); pprinntf(prresss anny kkey to retturnn); ggetccharr(); ellse NNofiind(); geetchhar(); elsse Wrrongg(); geetchhar();voidd Deel(LLinkk l) /*删删除学生生记录:先找到到保存该该学生记记录的节节点,然然后删除除该节点点*/ intt seel; Nodde *p,*r; chaar ffinddmesss220; if(!l-neext) syysteem(clss); prrinttf(n=NNo sstu
32、ddentt reecorrd!n); geetchhar(); reeturrn; sysstemm(ccls); Dissp(ll); priintff(n =1 DDeleete by nummberr =2 Delletee byy naamen); priintff( plleasse cchoiice1,22:); scaanf(%dd,&sell); if(sell=11) sttrinnginnputt(fiindmmesss,100,iinpuut tthe exiistiing stuudennt nnumbber:); p=Loccatee(l,finndmeess,nu
33、um); iff(p) /*p!=NUULL*/ rr=l; wwhille(rr-nnextt!=pp) r=rr-nnextt; rr-nnextt=p-neext;/*将将p所指指节点从从链表中中去除*/ ffreee(p); /*释放放内存空空间*/ pprinntf(nn=Delletee suucceess!n); ggetccharr(); ssaveeflaag=11; ellse NNofiind(); geetchhar(); elsse iif(ssel=2) sttrinnginnputt(fiindmmesss,155,iinpuut tthe exiistiing
34、stuudennt nnamee); p=Loccatee(l,finndmeess,naame); /*先按姓姓名查询询到该记记录所在在的节点点*/ iff(p) rr=l; wwhille(rr-nnextt!=pp) r=rr-nnextt; rr-nnextt=p-neext; ffreee(p); pprinntf(nn=Delletee suucceess!n); ggetccharr(); ssaveeflaag=11; ellse NNofiind(); geetchhar(); elsse Wrrongg(); geetchhar();voidd Moodiffy(LLink
35、k l) /*修修改学生生记录。先按输输入的学学号查询询到该记记录,然然后提示示用户修修改学号号之外的的值,学学号不能能修改*/ Nodde *p; chaar ffinddmesss220; if(!l-neext) syysteem(clss); prrinttf(n=NNo sstuddentt reecorrd!n); geetchhar(); reeturrn; sysstemm(ccls); priintff(MModiify stuudennt rrecoordeer:); Dissp(ll); strringginpput(finndmeess,10,nnInpput thee
36、 exxisttingg sttudeent nummberr:); /*输入入并检验验该学号号*/ p=LLocaate(l,ffinddmesss,numm); /*查询到到该节点点*/ if(p) /*若若p!=NULLL,表表明已经经找到该该节点*/ prrinttf(Nummberr:%ss,nn,pp-ddataa.nuum); prrinttf(Namme:%s,p-daata.namme); sttrinnginnputt(p-daata.namme,115,inpput neww naame:); prrinttf(C llangguagge sscorre:%d,p-daa
37、ta.cgrradee); p-daata.cgrradee=nuumbeerinnputt(CC laanguuagee Sccoree0-1000:); prrinttf(Matth sscorre:%d,p-daata.mgrradee); p-daata.mgrradee=nuumbeerinnputt(MMathh Sccoree0-1000:); prrinttf(Engglissh sscorre:%d,p-daata.egrradee); p-daata.egrradee=nuumbeerinnputt(EEngllishh Sccoree0-1000:); p-daata.t
38、ottal = pp-ddataa.eggradde + p-daata.cgrradee + p-datta.mmgraade; p-daata.avee=(ffloaat)(p-datta.ttotaal/33); p-daata.minngcii=0; prrinttf(n=MModiify succcesss!n); Diisp(l); saavefflagg=1; elsse Noofinnd(); geetchhar();voidd Innserrt(LLinkk l) /*插入入记录,按学号号查询到到要插入入的节点点的位置置,然后后在该学学号之后后插入一一个新节节点*/ Linn
39、k pp,v,newwinffo; /*pp指向插插入位置置,neewinnfo指指新插入入记录*/ chaar cch,nnum10,s10; /*ss保保存插入入点位置置之前的的学号,numm保保存输入入的新记记录的学学号*/ intt fllag=0; v=ll-nnextt; sysstemm(ccls); Dissp(ll); whiile(1) sttrinnginnputt(s,10,nnPleeasee innputt Innserrt llocaatioon aftter thee Nuumbeer:); fllag=0; v=l-nexxt; whhilee(v) /*查询
40、该该学号是是否存在在,fllag=1表示示该学号号存在*/ iif(sstrccmp(v-datta.nnum,s)=0) flaag=11;brreakk; vv=v-neext; iff(fllag=1) bbreaak; /*若若学号存存在,则则进行插插入之前前的新记记录的输输入操作作*/ ellse ggetccharr(); pprinntf(nn=Thee nuumbeer %s iis nnot exiistiing,tryy aggainn?(yy/n):,s); sscannf(%c,&cch); iif(cch=y|cch=Y) conntinnue; eelsee ret
41、turnn; strringginpput(numm,100,IInpuut nnew stuudennt NNumbber:); /*以新新记录的的输入操操作与AAdd()相同同*/ v=ll-nnextt; whiile(v) iff(sttrcmmp(vv-ddataa.nuum,nnum)=00) pprinntf(=Soorryy,thhe nnew nummberr:%s is exiistiing !nn,nnum); pprinntheeadeer(); pprinntdaata(v); pprinntf(nn); ggetccharr(); rretuurn; v=v-nex
42、xt; newwinffo=(Nodde *)maallooc(ssizeeof(Nodde); if(!neewinnfo) prrinttf(n Alllocaate memmoryy faailuure ); /*如没有有申请到到,打印印提示信信息*/ reeturrn ; /*返回主主界面*/ strrcpyy(neewinnfo-daata.numm,nuum); strringginpput(newwinffo-datta.nnamee,155,NNamee:); newwinffo-datta.ccgraade=nummberrinpput(C lannguaage Scoore
43、0-1100:); newwinffo-datta.mmgraade=nummberrinpput(Maath Scoore0-1100:); newwinffo-datta.eegraade=nummberrinpput(Enngliish Scoore0-1100:); newwinffo-datta.ttotaal=nnewiinfoo-ddataa.eggradde+nnewiinfoo-ddataa.cggradde+nnewiinfoo-ddataa.mggradde; newwinffo-datta.aave=(flloatt)(nnewiinfoo-ddataa.tootall
44、/3); newwinffo-datta.mminggci=0; newwinffo-nexxt=NNULLL; savvefllag=1; p=ll-nnextt; /*将将指针赋赋值给pp,因为为l中的的头节点点的下一一个节点点才实际际保存着着学生的的记录*/ whiile(1) iff(sttrcmmp(pp-ddataa.nuum,ss)=0) /*在在链表中中插入一一个节点点*/ nnewiinfoo-nnextt=p-neext; pp-nnextt=neewinnfo; bbreaak; p=p-nexxt; DDispp(l); pprinntf(nnn); ggetcchar
45、r();voidd Toongjji(LLinkk l) /*统计计总分,单科第第一和各各科不及及格人数数*/ Nodde *pm,*pee,*ppc,*pt; /*用于指指向分数数最高的的节点*/ Nodde *r=ll-nnextt; intt coounttc=00,coounttm=00,coountte=00; /*保存存三门成成绩中不不及格的的人数*/ if(!r) syysteem(clss); prrinttf(n=NNo sstuddentt reecorrd!n); geetchhar(); reeturrn ; sysstemm(ccls); Dissp(ll); pm=
46、pe=pc=pt=r; whiile(r) iff(r-daata.cgrradeedaata.mgrradeedaata.egrradeedaata.cgrradee=ppc-datta.ccgraade) pcc=r; iff(r-daata.mgrradee=ppm-datta.mmgraade) pmm=r; iff(r-daata.egrradee=ppe-datta.eegraade) pee=r; iff(r-daata.tottal=ptt-ddataa.tootall) ptt=r; r=r-nexxt; priintff(n-thhe TTonggJi ressultt-n
47、); priintff(CC Laanguuagee600: %d (reen)n,couuntcc); priintff(MMathh 600: %d (reen)n,couuntmm); priintff(EEngllishh datta.nnamee,ptt-ddataa.tootall); priintff(TThe higghesst sstuddentt byy Enngliish scoore nnamee:%ss tootoaal sscorre:%dnn,ppe-datta.nnamee,pee-ddataa.eggradde); priintff(TThe higghess
48、t sstuddentt byy Maath scoore nnamee:%ss tootoaal sscorre:%dnn,ppm-datta.nnamee,pmm-ddataa.mggradde); priintff(TThe higghesst sstuddentt byy C scoore nnamee:%ss tootoaal sscorre:%dnn,ppc-datta.nnamee,pcc-ddataa.cggradde); priintff(nnnpreess anyy keey tto rretuurn); gettchaar();voidd Soort(Linnk ll)
49、/*利利用插入入法排序序实现单单链表的的按总分分字段的的降序排排序,从从高到低低*/ Linnk lll; Nodde *p,*rr,*s; intt i=0; if(l-nexxt=NULLL) syysteem(clss); prrinttf(n=NNo sstuddentt reecorrd!n); geetchhar(); reeturrn ; ll=(Noode*)maallooc(ssizeeof(Nodde); if(!lll) prrinttf(n Alllocaate memmoryy faailuure ); /*如没有有申请到到,打印印提示信信息*/ reeturrn ;
50、 ll-neext=NULLL; sysstemm(ccls); Dissp(ll); p=ll-nnextt; whiile(p) s=(Noode*)maallooc(ssizeeof(Nodde); /*s用用于保存存从原链链表中取取出的节节点信息息*/ iff(!ss) pprinntf(nn Allloccatee meemorry ffailluree ); rretuurn ; s-daata=p-datta; s-neext=NULLL; rrr=lll; /*rr链链表存储储插入单单个节点点后保持持排序的的链表,ll是是这个链链表的头头指针,每次从从头开始始查找插插入位置置*
51、/ whhilee(rrr-nnextt != NUULL & rr-neext-daata.tottal = p-datta.ttotaal) rrr=rrr-nexxt; /*指指针移至至总分比比p所指指的节点点的总分分小的节节点位置置*/ iff(rrr-nnextt=NNULLL)/*若新链链表lll中的所所有节点点的总分分值都比比p-datta.ttotaal大时时,就将将p所指指节点加加入链表表尾部*/ rrr-nexxt=ss; ellse /*否否则将该该节点插插入至第第一个总总分字段段比它小小的节点点的前面面*/ ss-nnextt=rrr-nnextt; rrr-nexxt
52、=ss; p=p-nexxt; /*原原链表中中的指针针下移一一个节点点*/ l-nexxt=lll-nexxt; /*lll中存存储是的的已排序序的链表表的头指指针*/ p=ll-nnextt; /*已已排好序序的头指指针赋给给p,准准备填写写名次*/ whiile(p) /*当p不不为空时时,进行行下列操操作*/ i+; /*结结点序号号*/ p-daata.minngcii=i; /*将将名次赋赋值*/ p=p-nexxt; /*指针针后移*/ Dispp(l);prinntf(nn =Soort commpleete!n);saveeflaag=11;voidd Saave(Linnk
53、 ll) /*数数据存盘盘,若用用户没有有专门进进行此操操作且对对数据有有修改,在退出出系统时时, 会会提示用用户存盘盘*/ FILLE *fp; Nodde *p; intt coountt=0; fp=foppen(c:sstuddentt,wb); /*以以只写方方式打开开二进制制文件*/ if(fp=NUULL) /*打开文文件失败败*/ prrinttf(n=oopenn fiile errror!n); geetchhar(); reeturrn ; p=ll-nnextt; whiile(p) iff(fwwritte(pp,siizeoof(NNodee),11,fpp)=1)
54、/*每次次写一条条记录或或一个节节点信息息至文件件*/ pp=p-neext; ccounnt+; ellse bbreaak; if(couunt0) geetchhar(); prrinttf(nnnnnn=Saave fille ccompplette,ttotaal ssaveedss reecorrd nnumbber is:%dn,couunt); geetchhar(); saavefflagg=0; elsse syysteem(clss); prrinttf(Thee cuurreent linnk iis eemptty,nno sstuddentt reecorrd ii
55、s ssaveed!n); geetchhar(); fcllosee(fpp); /*关关闭此文文件*/int maiin(vvoidd) Linnk ll; /*定义链链表*/ FILLE *fp; /*文件指指针*/ intt seelecct; /*保保存选择择结果变变量*/ chaar cch; /*保存(y,YY,n,N)*/ intt coountt=0; /*保存文文件中的的记录条条数*/ Nodde *p,*r; /*定义义记录指指针变量量*/ l=(Nodde*)malllocc(siizeoof(NNodee); if(!l) prrinttf(n Alllocaate memmoryy faailuure ); reeturrn ; l-nexxt=NNULLL; r=ll; fp=foppen(C:sstuddentt,ab+); /*以追加加方式打打开一个个二进制制文件,可读可可写,若若此文件件不存在在,会创创建此文文件*/ if(fp=NUULL) prrinttf(n=CCan not
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租水洗设备合同标准文本
- 《机械制图》职教高考近年考试真题题库(含答案)
- 个人售二首房合同标准文本
- 个体劳务合同样本格式
- 宫腔镜诊治1144例宫颈管良性疾病分析
- 创新咨询服务合同样本
- 仓库打包出售合同标准文本
- 出租仓房合同标准文本
- 中介管理装修合同样本
- 制作商业合同标准文本
- 遥感科学与技术及其在国土资源中的应用
- 公证还款协议书
- GB/T 1972.1-2023碟形弹簧第1部分:计算
- 山西铁道职业技术学院2023年单独招生考生报考登记表
- 中国联通研究院:2022年高端手机市场洞察报告
- 联合国可持续发展目标
- 中小学网络安全教育主题班会《共建网络安全-共享网络文明》
- 第一章中医护理学发展史
- 封头理论重量计算公式
- 七巧板中的分数问题
- 循环系统总论教案
评论
0/150
提交评论