版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程课课程实验验报告 系统名名称 _ 学生生信息管管理系统统_学 院 _ 计计算机学学院信息息_ _ 学生生信息管管理系统统设计文文档可行性研究究 1.1技术术可行性性已经有人开开发过,并并且我们们也都使使用过相相类似系系统,对对其一般般性的软软件和操操作环境境、编译译环境都都比较熟熟悉,所所以说在在技术上上来说是是可行的的。 1.2经济济可行性性当前系统只只对服务务器有关关的要求求,在服服务费用用方面,支支出在你你那个承承担的范范围,以以后的维维护及其其他设备备的总共共费用在在可以承承担的范范围。用用当前系系统可以以节约出出能够支支付当前前系统的的直接支支出,以以后维护护费用更更是比以以
2、前的机机制节约约很多钱钱。1.3操作作可行性性系统的操作作方式在在这个用用户组织织内能行行得通。需求分析2.1输入入让学生在纸纸面上填填写相关关内容,然然后等待待辅导员员或管理理员的审审批确认认后,再再输入数数据库中中保存。2.2输出出学生选择用用户选项项进入系系统后,系系统可经经有算法法程序输输出学生生基本信信息表,学学习成绩绩表等。2.2.11打印输输出可打印基本本信息、学学习成绩绩等各种种表格以以及在对对相应信信息进行行统计操操作后的的表格。2.2.22文件输输出可将所有打打印表格格输出到到EXCCEL文文件中,以以便用户户使用其其它的EEXCEEL软件件改变表表格的大大小及字字体。2.
3、3故障障处理2.3.11内部故故障处理理在开发阶段段可以随随即修改改数据库库里的相相应内容容。 2.3.22外部故故障处理理对编辑的程程序进行行重装载载时,第第一次装装载认为为错,修修改。第第二次运运行,在在需求调调用时出出错,有有错误提提示,重重试。2.4性能能要求分分析2.4.11系统易易操作性性所开发的系系统应做做到操作作简单,尽尽量使系系统操作作不受用用户对电电脑知识识水平的的限制。2.4.22系统具具有可维维护性由于系统涉涉及的信信息比较较广,数数据库中中的数据据需定期期修改,系系统可利利用的空空间及性性能也随随之下降降,为了了使系统统更好地地运转,学学院可以以对系统统数据及及一些简
4、简单的功功能进行行独立的的维护及及调整。2.4.33系统具具有开放放性该系统能够够在开放放的硬件件体系结结构中运运行,并并且能与与其他系系统顺利利连接,不不会因外外部系统统的不同同面要做做在量的的修改工工作。3.概要设设计3.1基本本设计概概念和处处理流程程管理员通过过密码认认证,进进入信息息管理页页面对学学生相关关信息的的录入、更更新、修修改、添添加等操操作,也也可以通通过查询询界面对对学生信信息进行行完全的的查询,而而学生和和相关人人员只能能通过公公共的查查询界面面对学生生信息进进行查询询,如要要对学生生信息进进行完全全查询就就需要得得到管理理员的同同意。管理界面管理界面数据中 心处理处理
5、打印查询管理员操作信息输出查询用户界面3.2接口口设计 本本系统采采用快速速原型开开发工具具Vissuall Baasicc 6.0进行行开发,所所提供的的不同层层次的接接口,都都具有高高度的集集成性,本本系统没没有采用用低级语语言设计计和完成成自定义义接口,因因此接口口设计部部分已经经由不同同方式的的组件来来完成了了,以下下只做简简单说明明。3.2.11用户接接口 说明将向用用户提供供的命令令和它们们的语法法结构,以以及软件件的回答答信息。命令语法信息正确信息错误提交IF EELSEE进入系统返回到当前前界面重设点击事件清空输入的的数据无取消点击事件返回到当前前界面无3.2.22外部接接口说
6、明本系统统同外界界的所有有接口的的安排包包括软件件与硬件件之间的的接口、本本系统与与各支持持软件直直接的关关系。硬件接口软件接口键盘鼠标打印机主模块管理模块查询模块3.2.33内部接接口说明本系统统之内的的各个系系统元素素之间的的接口的的安排。数数据库接接口设计计采用AADO连连接方式式。模块名称主模块管理员验证证模块用户查询界界面管理界面主模块管理员验证证模块用户查询界界面管理界面4.详细设设计4.1控制制流程图图4.1.11主模块块软件结结构4.1.22管理员员登陆软软件结构构4.1.33用户查查询软件件结构用户查询模块输入查询条件用户查询模块输入查询条件IF正确输出结果ELSE打印出结果
7、返回重新输入条件4.2源程程序流程程图5、项目测测试 功能能截图: 5.11 登登 陆 界 面面 5.22 学生生用户功功能界面面 5.3 学生生查询功功能 5.44 管管理员管管理界面面 55.5 管理员员输入功功能 5.6 管理理员删除除功能 5.77 管管理员查查询功能能 5.88 管理理员修改改功能 55.9 管理员员插入功功能 5.110 统统计功能能 5.111 分分类功能能 5.112 显示示功能 5.113 管理理员保存存功能文件保存名名为:SSTUDDENTT 路径径为:CC:6、项目管管理6、1 人人员管理理 团队负负责人:陶修赟赟 小组成成员:万万富,洪洪鑫,汪汪贤惠,项
8、项鑫6、2产品品管理 本产品品工作于于inn-TCC工作环环境,用用于对学学生成绩绩的管理理。学生生用户,可可进行查查询课程程成绩;管理员员可对学学生及其其成绩进进行录入入、修改改、查询询、排列列等功能能。本系系统可进进行维护护,修改改。6、3进程程管理可行性分析析:5月月23日日5月月24日日 标标志:提提交可行行性分析析报告项目开发计计划:55月255日55月266日 标志志:提交交项目开开发计划划需求分析:5月227日5月227日 标志志:完成成需求分分析报告告软件设计:5月330日6月11日 标志:完成软软件分析析与设计计文档编程实现:6月22日66月100日 标标志:代代码编写写全部
9、完完成软件测试:6月113日6月114日 标志:完成软软件测试试,可投投入使用用可行性分析:5月25日5月26日 标志:提交可行性分析报告项目开发计划:5月27日5月30日 标志:提交项目开发计划需求分析:5月31日5月31日 标志:完成需求分析报告软件设计:6月1日6月3日 标志:完成软件分析与设计文档软件实现:6月6日6月14日 可行性分析:5月25日5月26日 标志:提交可行性分析报告项目开发计划:5月27日5月30日 标志:提交项目开发计划需求分析:5月31日5月31日 标志:完成需求分析报告软件设计:6月1日6月3日 标志:完成软件分析与设计文档软件实现:6月6日6月14日 标志:代
10、码编写全部完成测试与实施:6月15日6月16日 标志:完成软件测试,可投入使用可行性分析:5月25日5月26日 标志:提交可行性分析报告项目开发计划:5月27日5月30日 标志:提交项目开发计划需求分析:5月31日5月31日 标志:完成需求分析报告软件设计:6月1日6月3日 标志:完成软件分析与设计文档软件实现:6月6日6月14日 标志:代码编写全部完成测试与实施:6月15日6月16日 标志:完成软件测试,可投入使用 7、编 码#inclludee #inclludee #inclludee sstriing.h#inclludee cconiio.hh#defiine HEAADERR1 -
11、STTUDEENT- n#defiine HEAADERR2 | nuumbeer | naame |CCompp|Maath|Engg | ssum | avve |miici | n#defiine HEAADERR3 |-|-|-|-|-|-|-|-| #defiine FORRMATT | %-10ss |%-155s|%4d|%4dd|%44d| %4dd | %.2ff |%4d |nn#defiine DATTA p-datta.nnum,p-datta.nnamee,p-daata.egrradee,p-daata.mgrradee,p-daata.cgrradee,p-daa
12、ta.tottal,p-datta.aave,p-datta.mminggci#defiine ENDD - nint ssaveeflaag=00; /*是是否需要要存盘的的标志变变量*/typeddef strructt sttudeent /*标记为为stuudennt*/ ccharr nuum110; /*学学号*/ ccharr naame15; /*姓姓名*/ iint cgrradee; /*CC语言成成绩*/ iint mgrradee; /*数数学成绩绩*/ iint egrradee; /*英英语成绩绩*/ iint tottal; /*总总分*/ ffloaat aav
13、e; /*平平均分*/ iint minngcii; /*名名次*/;typeddef strructt noode /*定义义每条记记录或结结点的数数据结构构,标记记为noode*/ sstruuct stuudennt ddataa; sstruuct nodde *nexxt;Nodee,*LLinkk;void mennuchhoicce() ssysttem(clls); /*清屏.与cllrsccr()功能相相同*/ ttexttcollor(10); /*在文本本模式中中选择新新的字符符颜色*/ ggotooxy(7,55); ccpriintff( Thhe SStuddent
14、ts Graade Mannageemennt SSysttem n); ggotooxy(7,88); pprinntf(nnPleeasee Ennterr yoour chooicee; 0 eenteer sstuddentts sysstemmntttt); pprinntf( ); pprinntf(1 entter teaacheers syysteemnn);void mennu() /*菜单单函数*/ ssysttem(clls); /*清屏.与cllrsccr()功能相相同*/ ttexttcollor(10); /*在文本本模式中中选择新新的字符符颜色*/ ggotoox
15、y(7,55); /*在文本本窗口中中设置光光标,下下同*/ ccpriintff( Thhe SStuddentts Graade Mannageemennt SSysttem n); ggotooxy(7,88); ccpriintff( *MMenuu*n); ggotooxy(7,99); ccpriintff( * 1 inpput rrecoord 2 ddeleete reccordd *n); ggotooxy(7,110); ccpriintff( * 3 seaarchh rrecoord 4 mmodiify reccordd *n); ggotooxy(7,111);
16、ccpriintff( * 5 inssertt rrecoord 6 ccounnt reccordd *n); ggotooxy(7,112); ccpriintff( * 7 sorrt rreorrd 8 ssavee reccordd *n); ggotooxy(7,113); ccpriintff( * 9 dissplaay rrecoord 0 qquitt sysstemm *n); ggotooxy(7,114); ccpriintff( *n); /*cprrinttf()送格式式化输出出至文本本窗口屏屏幕中*/void mennusttudeent() ssysttem
17、(clls); /*清屏.与cllrsccr()功能相相同*/ ttexttcollor(10); /*在文本本模式中中选择新新的字符符颜色*/ ggotooxy(7,55); /*在文本本窗口中中设置光光标,下下同*/ ccpriintff( Thhe SStuddentts Graade Mannageemennt SSysttem n); ggotooxy(7,88); ccpriintff( *MMenuu*n); ggotooxy(7,99); ccpriintff( *33 seearcch reccordd 0 quiit syysteem*n); ggotooxy(7,110)
18、; ccpriintff( *n); /*cprrinttf()送格式式化输出出至文本本窗口屏屏幕中*/void priinthheadder() /*格式式化输出出表头*/ pprinntf(HEAADERR1); pprinntf(HEAADERR2); pprinntf(HEAADERR3);void priintddataa(Noode *ppp) /*格式式化输出出表中数数据*/ NNodee* pp; pp=ppp; pprinntf(FORRMATT,DAATA); void Wroong() /*输输出按键键错误信信息*/ pprinntf(nnnnnnn*Errrorr:in
19、nputt haas wwronng! preess anyy keey tto cconttinuue*n); ggetccharr();void Noffindd() /*输出未未查找此此学生的的信息*/ pprinntf(nn=Nott fiind thiis sstuddentt!nn);void Dissp(LLinkk l) /*显示示单链表表l中存存储的学学生记录录,内容容为sttudeent结结构中定定义的数数据项*/ NNodee *pp; pp=l-neext; /*l存储储的是单单链表中中头结点点的指针针,该头头结点没没有存储储学生信信息,指指针域指指向的后后继结点点才有
20、学学生信息息*/ iif(!p) priintff(n=Noot sstuddentt reecorrd!n); gettchaar(); retturnn; pprinntf(nnn); pprinntheeadeer(); /*输出出表格头头部*/ wwhille(pp) /*逐条条输出链链表中存存储的学学生信息息*/ priintddataa(p); p=pp-nnextt; /*移移动至下下一个结结点*/ priintff(HEEADEER3); ggetccharr();Node* Loocatte(LLinkk l,chaar ffinddmesss,chhar nammeorrn
21、umm) /*用于定定位链表表中符合合要求的的节点,并并返回指指向该节节点的指指针,ffinddmesss保存要要查找的的具体内内容; nammeorrnumm保保存按什什么查找找;在单单链表ll中查找找;*/ NNodee *rr; iif(sstrccmp(nammeorrnumm,nnum)=0) /*按按学号查查询*/ r=ll-nnextt; whiile(r) iff(sttrcmmp(rr-ddataa.nuum,ffinddmesss)=0) /*若找到到finndmeess值值的学号号*/ reeturrn rr; r=r-nexxt; eelsee iff(sttrcmmp
22、(nnameeornnum,naame)=0) /*按姓名名查询*/ r=ll-nnextt; whiile(r) iff(sttrcmmp(rr-ddataa.naame,finndmeess)=00) /*若找找到fiindmmesss值的学学生姓名名*/ reeturrn rr; r=r-nexxt; rretuurn 0;void strringginpput(chaar *t,iint lenns,ccharr *nnotiice) /*输输入字符符串,并并进行长长度验证证(长度度leens)priintff(n EExceeed thee reequiiredd leengtth!
23、 n); /*进进行长度度校验,超超过leens值值重新输输入*/ whhilee(sttrleen(nn)llenss); sttrcppy(tt,n); /*将输输入的字字符串拷拷贝到字字符串tt中*/int nnumbberiinpuut(ccharr *nnotiice) /*输入入分数,00分分数1100 | t1100 | tneext; ssysttem(clls); DDispp(l); /*先打打印出已已有的学学生信息息*/ wwhille(rr-nnextt!=NNULLL) rr=r-neext; /*将指针针移至于于链表最最末尾,准准备添加加记录*/ wwhille(1
24、1) /*一次次可输入入多条记记录,直直至输入入学号为为0的记记录结点点添加操操作*/ whiile(1) /*输输入学号号,保证证该学号号没有被被使用,若若输入学学号为00,则退退出添加加记录操操作*/ sttrinnginnputt(nuum,110,Inpput nummberr(prresss 00reeturrn mmenuu):); /*格格式化输输入学号号并检验验*/ fllag=0; iff(sttrcmmp(nnum,0)=0) /*输输入为00,则退退出添加加操作,返返回主界界面*/ retturnn; s=l-nexxt; whhilee(s) /*查询该该学号是是否已经
25、经存在,若若存在则则要求重重新输入入一个未未被占用用的学号号*/ iif(sstrccmp(s-datta.nnum,numm)=0) flaag=11; breeak; ss=s-neext; iff(fllag=1) /*提示用用户是否否重新输输入*/ ggetccharr(); pprinntf(=Thhe nnumbber %s is nott exxisttingg,trry aagaiin?(y/nn):,nuum); sscannf(%c,&cch); iif(cch=y|cch=Y) conntinnue; eelsee retturnn; ellse breeak; p=(N
26、odde *)maallooc(ssizeeof(Nodde); if(!p) prrinttf(n Alllocaate memmoryy faailuure ); /*如没有有申请到到,打印印提示信信息*/ reeturrn ; strrcpyy(p-daata.numm,nuum); /*将字符符串nuum拷贝贝到p-daata.numm中*/ strringginpput(p-datta.nnamee,155,NNamee:); p-datta.ccgraade=nummberrinpput(C lannguaage Scoore0-1100:); /*输入入并检验验分数,分分数必须须
27、在01000之间*/ p-datta.mmgraade=nummberrinpput(Maath Scoore0-1100:); p-datta.eegraade=nummberrinpput(Enngliish Scoore0-1100:); p-datta.ttotaal=pp-ddataa.eggradde + p-daata.cgrradee + p-datta.mmgraade; /*计算总总分*/ p-datta.aave=(flloatt)(pp-ddataa.tootall/3); /*计计算平均均分*/ p-datta.mminggci=0; p-nexxt=NNULLL;
28、/*表明明这是链链表的尾尾部结点点*/ r-nexxt=pp; /*将将新建的的结点加加入链表表尾部中中*/ r=pp; savvefllag=1; /*在maain()有对对该全局局变量的的判断,若若为1,则进行行存盘操操作*/ rretuurn ;void Qurr(Liink l) /*按按学号或或姓名,查查询学生生记录*/ iint sellectt; /*1:按学号号查,22:按姓姓名查,其其他:返返回主界界面(菜菜单)*/ ccharr seearcchinnputt200; /*保保存用户户输入的的查询内内容*/ NNodee *pp; iif(!l-nexxt) /*若若链表为
29、为空*/ sysstemm(ccls); priintff(n=Noo sttudeent reccordd!nn); gettchaar(); retturnn; ssysttem(clls); pprinntf(nn =11 Seearcch bby nnumbber =2 Seaarchh byy naamen); pprinntf( plleasse cchoiice1,22:); sscannf(%d,&sseleect); iif(sseleect=1) /*按按学号查查询*/ strringginpput(seaarchhinpput,10,Innputt thhe eexiss
30、tinng sstuddentt nuumbeer:); p=LLocaate(l,ssearrchiinpuut,numm);/*在在l中查查找学号号为seearcchinnputt值的节节点,并并返回节节点的指指针*/ if(p) /*若若p!=NULLL*/ prrinttheaaderr(); prrinttdatta(pp); prrinttf(EEND); prrinttf(preess anyy keey tto rretuurn); geetchhar(); elsse Noofinnd(); gettchaar(); eelsee iff(seelecct=2) /*按按姓名
31、查查询*/ strringginpput(seaarchhinpput,15,innputt thhe eexisstinng sstuddentt naame:); p=LLocaate(l,ssearrchiinpuut,namme); if(p) prrinttheaaderr(); prrinttdatta(pp); prrinttf(EEND); prrinttf(preess anyy keey tto rretuurn); geetchhar(); elsse Noofinnd(); gettchaar(); eelsee Wroong(); gettchaar();void D
32、ell(Liink l) /*删除除学生记记录:先先找到保保存该学学生记录录的节点点,然后后删除该该节点*/ iint sell; NNodee *pp,*rr; ccharr fiindmmesss200; iif(!l-nexxt) sysstemm(ccls); priintff(n=Noo sttudeent reccordd!nn); gettchaar(); retturnn; ssysttem(clls); DDispp(l); pprinntf(nn =11 Deelette bby nnumbber =2 DDeleete by nammenn); pprinntf( ple
33、easee chhoicce11,2:); sscannf(%d,&ssel); iif(ssel=1) strringginpput(finndmeess,10,innputt thhe eexisstinng sstuddentt nuumbeer:); p=LLocaate(l,ffinddmesss,numm); if(p) /*p!=NULLL*/ r=l; whhilee(r-neext!=p) rr=r-neext; r-neext=p-nexxt;/*将pp所指节节点从链链表中去去除*/ frree(p); /*释放内内存空间间*/ prrinttf(n=DDeleete su
34、cccesss!n); geetchhar(); saavefflagg=1; elsse Noofinnd(); gettchaar(); eelsee iff(seel=2) strringginpput(finndmeess,15,innputt thhe eexisstinng sstuddentt naame); p=LLocaate(l,ffinddmesss,namme); /*先先按姓名名查询到到该记录录所在的的节点*/ if(p) r=l; whhilee(r-neext!=p) rr=r-neext; r-neext=p-nexxt; frree(p); prrinttf(
35、n=DDeleete succcesss!n); geetchhar(); saavefflagg=1; elsse Noofinnd(); gettchaar(); eelsee Wroong(); gettchaar();void Moddifyy(Liink l) /*修改改学生记记录。先先按输入入的学号号查询到到该记录录,然后后提示用用户修改改学号之之外的值值,学号号不能修修改*/ NNodee *pp; ccharr fiindmmesss200; iif(!l-nexxt) sysstemm(ccls); priintff(n=Noo sttudeent reccordd!nn);
36、 gettchaar(); retturnn; ssysttem(clls); pprinntf(Moodiffy sstuddentt reecorrderr:); DDispp(l); sstriingiinpuut(ffinddmesss,110,nIInpuut tthe exiistiing stuudennt nnumbber:); /*输入并并检验该该学号*/ pp=Loocatte(ll,fiindmmesss,nnum); /*查查询到该该节点*/ iif(pp) /*若pp!=NNULLL,表明明已经找找到该节节点*/ priintff(NNumbber:%s,n,p-da
37、ata.numm); priintff(NNamee:%ss,p-datta.nnamee); strringginpput(p-datta.nnamee,155,iinpuut nnew namme:); priintff(CC laanguuagee sccoree:%dd,p-datta.ccgraade); p-datta.ccgraade=nummberrinpput(C lannguaage Scoore0-1100:); priintff(MMathh sccoree:%dd,p-datta.mmgraade); p-datta.mmgraade=nummberrinpput(M
38、aath Scoore0-1100:); priintff(EEngllishh sccoree:%dd,p-datta.eegraade); p-datta.eegraade=nummberrinpput(Enngliish Scoore0-1100:); p-datta.ttotaal = p-daata.egrradee + p-datta.ccgraade + pp-ddataa.mggradde; p-datta.aave=(flloatt)(pp-ddataa.tootall/3); p-datta.mminggci=0; priintff(n=Moodiffy ssucccess
39、s!nn); Dissp(ll); savvefllag=1; eelsee Noffindd(); gettchaar();void Inssertt(Liink l) /*插入记记录,按按学号查查询到要要插入的的节点的的位置,然后在在该学号号之后插插入一个个新节点点*/ LLinkk p,v,nnewiinfoo; /*p指指向插入入位置,nnewiinfoo指新插插入记录录*/ ccharr chh,nuum110,s110; /*s保存存插入点点位置之之前的学学号,nnum保存存输入的的新记录录的学号号*/ iint flaag=00; vv=l-neext; ssysttem(cll
40、s); DDispp(l); wwhille(11) strringginpput(s,110,nPPleaase inpput Inssertt loocattionn aafteer tthe Nummberr:); flaag=00; v=ll-nnextt; whiile(v) /*查查询该学学号是否否存在,fflagg=1表表示该学学号存在在*/ iff(sttrcmmp(vv-ddataa.nuum,ss)=0) fflagg=1;breeak; v=v-nexxt; if(flaag=1) brreakk; /*若学学号存在在,则进进行插入入之前的的新记录录的输入入操作*/ el
41、sse geetchhar(); prrinttf(n=TThe nummberr %ss iss noot eexisstinng,ttry agaain?(y/n):,ss); sccanff(%c,&chh); iff(chh=y|chh=Y) cconttinuue; ellse rretuurn; sstriingiinpuut(nnum,10,Innputt neew sstuddentt Nuumbeer:); /*以新记记录的输输入操作作与Addd()相同*/ vv=l-neext; wwhille(vv) if(strrcmpp(v-daata.numm,nuum)=0) p
42、rrinttf(=Sorrry,thee neew nnumbber:%ss iis eexisstinng !n,nuum); prrinttheaaderr(); prrinttdatta(vv); prrinttf(n); geetchhar(); reeturrn; v=vv-nnextt; nnewiinfoo=(NNodee *)malllocc(siizeoof(NNodee); iif(!newwinffo) priintff(n AAlloocatte mmemoory faiilurre ); /*如如没有申申请到,打打印提示示信息*/ retturnn ; /*返返回主界
43、界面*/ sstrccpy(newwinffo-datta.nnum,numm); sstriingiinpuut(nnewiinfoo-ddataa.naame,15,Naame:); nnewiinfoo-ddataa.cggradde=nnumbberiinpuut(C llangguagge SScorre00-1000:); nnewiinfoo-ddataa.mggradde=nnumbberiinpuut(Matth SScorre00-1000:); nnewiinfoo-ddataa.eggradde=nnumbberiinpuut(Engglissh SScorre00-1
44、000:); nnewiinfoo-ddataa.tootall=neewinnfo-daata.egrradee+neewinnfo-daata.cgrradee+neewinnfo-daata.mgrradee; nnewiinfoo-ddataa.avve=(flooat)(neewinnfo-daata.tottal/3); nnewiinfoo-ddataa.miingcci=00; nnewiinfoo-nnextt=NUULL; ssaveeflaag=11; pp=l-neext; /*将指指针赋值值给p,因为ll中的头头节点的的下一个个节点才才实际保保存着学学生的记记录*/
45、wwhille(11) if(strrcmpp(p-daata.numm,s)=00) /*在链链表中插插入一个个节点*/ neewinnfo-neext=p-nexxt; p-neext=newwinffo; brreakk; p=pp-nnextt; Diisp(l); prrinttf(nn); geetchhar();void Tonngjii(Liink l) /*统计总总分,单单科第一一和各科科不及格格人数*/ NNodee *ppm,*pe,*pcc,*ppt; /*用用于指向向分数最最高的节节点*/ NNodee *rr=l-neext; iint couuntcc=0,cou
46、untmm=0,couuntee=0; /*保存三三门成绩绩中不及及格的人人数*/ iif(!r) sysstemm(ccls); priintff(n=Noo sttudeent reccordd!nn); gettchaar(); retturnn ; ssysttem(clls); DDispp(l); ppm=ppe=ppc=ppt=rr; wwhille(rr) if(r-datta.ccgraadedatta.mmgraadedatta.eegraadedatta.ccgraade=pcc-ddataa.cggradde) pc=r; if(r-datta.mmgraade=pmm
47、-ddataa.mggradde) pm=r; if(r-datta.eegraade=pee-ddataa.eggradde) pe=r; if(r-datta.ttotaal=pt-daata.tottal) pt=r; r=rr-nnextt; pprinntf(nn-thee ToongJJi rresuult-nn); pprinntf(C Lannguaage60: %d (renn)nn,ccounntc); pprinntf(Maath 60: %d (renn)nn,ccounntm); pprinntf(Enngliish ddataa.naame,pt-daata.tot
48、tal); pprinntf(Thhe hhighhestt sttudeent by Engglissh sscorre naame:%s tottoall sccoree:%ddn,pee-ddataa.naame,pe-daata.egrradee); pprinntf(Thhe hhighhestt sttudeent by Matth sscorre naame:%s tottoall sccoree:%ddn,pmm-ddataa.naame,pm-daata.mgrradee); pprinntf(Thhe hhighhestt sttudeent by C sscorre na
49、ame:%s tottoall sccoree:%ddn,pcc-ddataa.naame,pc-daata.cgrradee); pprinntf(nnnppresss aany keyy too reeturrn); ggetccharr();void Sorrt(LLinkk l) /*利用用插入法法排序实实现单链链表的按按总分字字段的降降序排序序,从高高到低*/ LLinkk lll; NNodee *pp,*rrr,*s; iint i=00; iif(ll-nnextt=NNULLL) sysstemm(ccls); priintff(n=Noo sttudeent reccord
50、d!nn); gettchaar(); retturnn ; lll=(Nodde*)malllocc(siizeoof(NNodee); iif(!ll) priintff(n AAlloocatte mmemoory faiilurre ); /*如如没有申申请到,打打印提示示信息*/ retturnn ; lll-nexxt=NNULLL; ssysttem(clls); DDispp(l); pp=l-neext; wwhille(pp) s=(Nodde*)malllocc(siizeoof(NNodee); /*s用于于保存从从原链表表中取出出的节点点信息*/ if(!s) prr
51、inttf(n Alllocaate memmoryy faailuure ); reeturrn ; s-datta=pp-ddataa; s-nexxt=NNULLL; rr=ll; /*rrr链表表存储插插入单个个节点后后保持排排序的链链表,lll是这这个链表表的头指指针,每每次从头头开始查查找插入入位置*/ whiile(rr-neext != NULLL & rrr-nexxt-datta.ttotaal = pp-ddataa.tootall) rrr=rrr-nnextt; /*指针针移至总总分比pp所指的的节点的的总分小小的节点点位置*/ if(rr-neext=NUULL)/
52、*若若新链表表ll中中的所有有节点的的总分值值都比pp-ddataa.tootall大时,就就将p所所指节点点加入链链表尾部部*/ rrr-nnextt=s; elsse /*否则则将该节节点插入入至第一一个总分分字段比比它小的的节点的的前面*/ s-neext=rr-neext; rrr-nnextt=s; p=pp-nnextt; /*原链链表中的的指针下下移一个个节点*/ ll-nnextt=lll-nnextt; /*lll中存储储是的已已排序的的链表的的头指针针*/ pp=l-neext; /*已排排好序的的头指针针赋给pp,准备备填写名名次*/ wwhille(pp) /*当当p不
53、为为空时,进进行下列列操作*/ i+; /*结点点序号*/ p-datta.mminggci=i; /*将名名次赋值值*/ p=pp-nnextt; /*指针后后移*/ Disp(l);printtf(n =Sorrt ccompplette!n);savefflagg=1;void Savve(LLinkk l) /*数据据存盘,若用户户没有专专门进行行此操作作且对数数据有修修改,在在退出系系统时, 会提示示用户存存盘*/ FFILEE *ffp; NNodee *pp; iint couunt=0; ffp=ffopeen(c:sttudeent,wwb); /*以只只写方式式打开二二进制
54、文文件*/ iif(ffp=NULLL) /*打打开文件件失败*/ priintff(n=oppen fille eerroor!n); gettchaar(); retturnn ; pp=l-neext; wwhille(pp) if(fwrritee(p,sizzeoff(Noode),1,fp)=11)/*每次写写一条记记录或一一个节点点信息至至文件*/ p=p-nexxt; coountt+; elsse brreakk; iif(ccounnt00) gettchaar(); priintff(nnnnnnn=Savve ffilee coomplletee,tootall saa
55、vedds reccordd nuumbeer iis:%dnn,ccounnt); gettchaar(); savvefllag=0; eelsee sysstemm(ccls); priintff(TThe currrennt llinkk iss emmptyy,noo sttudeent reccordd iss saavedd!nn); gettchaar(); ffcloose(fp); /*关闭闭此文件件*/int mmainn(vooid) LLinkk l; /*定定义链表表*/ FFILEE *ffp; /*文文件指针针*/ iint sellectt; /*保存存选择结
56、结果变量量*/ ccharr chh; /*保保存(yy,Y,n,NN)*/ iint couunt=0; /*保保存文件件中的记记录条数数*/ NNodee *pp,*rr; /*定义记记录指针针变量*/ ll=(NNodee*)mmallloc(sizzeoff(Noode); iif(!l) priintff(n AAlloocatte mmemoory faiilurre ); retturnn ; ll-nnextt=NUULL; rr=l; ffp=ffopeen(C:sttudeent,aab+); /*以以追加方方式打开开一个二二进制文文件,可可读可写写,若此此文件不不存在,会会创建此此文件*/ iif(ffp=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 多功能智能家居系统(2024版)采购合同2篇
- 2024年度人才培养与交流合同:砂石行业人才
- 2024年废旧物品清理服务协议3篇
- 二零二四年度房地产项目转让合同转让程序和转让价格确定3篇
- 二手设备买卖合同(2024版)5篇
- 2024年网络安全防护外包合同2篇
- 人工挖孔桩工程2024年合作协议2篇
- 2024年版医患纠纷调解协议3篇
- 2024年购房俱乐部团购协议3篇
- 2024年度跨国采购合同:规定跨国采购的具体流程和贸易条款3篇
- 内分泌性高血压规范化诊断和治疗
- 公共租赁住房保障轮候制度
- 一年级下册美术课件-第7课 美丽的鸟|冀美版 (共15张PPT)
- 中医医疗技术相关性感染预防与控制制度
- 深圳华侨城欢乐海岸介绍
- 中风的中医治疗ppt课件
- 设施规划课程设计-液压转向器厂总平面布置设计
- 新建学生宿舍工程施工设计方案
- 鸟巢融资案例讲解
- 护理人力资源管理(课堂PPT)
- 工程地质及水文地质:6 地下水的运动
评论
0/150
提交评论