版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生成绩管理系统一、 ?实验目得1、 ?通过此次课程设计中学生成绩管理系统得题目 , 掌握链表等数据结构得基 本操作方面得知识 , 并能灵活得解决一些基本得问题,加深对其性质及各项操作2、得理解;将所学数据结构方面得知识与一门具体得语言一一C语言来进行实 现, 感受数据结构得强大作用,加深理解 .试验要求管理系统中有五个要求 : 输入 查找 修改( 1) 输入要求 : 能够通过键盘输入与文件输入两种( 2) 查找要求:能够根据学生号查找单个学生得信息( 3) 修改要求 : 能够根据学生号修改单个学生所有信息( 4) 插入要求:能够实现头插与尾插( 5) 删除要求:能够根据学生号删除单个学生信息
2、( 6) 存储要求 : 通过链表存储所有信息插入 删除存储,也可以遍历所有学生信息算法得思想与算法实现步骤1、 ?基本思想分别就是主函数模块、?通过链表数据类型进行基本操作 , 主要有三个模块: 主要操作函数及基本操作函数 .其中,主函数负责其她子函数得调用实现以及基本界面得操作主要函数包括:VO i d Stuln pu t (St u d ent */ 学生成绩管理系统得输入函数 , 由主函数调V oid StuSelevoid S tuAlterc t (Stu de nt *) ; /学生成绩管理系统得查找函数,由主函数调用Student * ) ; / 学生成绩管理系统得修改函数 ,
3、 由主函数调用V 0 i d St u Insert (Stu d ent */ 学生成绩管理系统得插入函数, 由主函数调voi d St uDe lect (S t u dent *) ; /学生成绩管理系统得删除函数,由主函数调v o id S tuS av e(Stud e nt * );/ 学生成绩管理系统得存储函数, 由主函数调用基本操作函数:输出函数void S t uOu tput (Studen t *p )in t St ul m port (St u dent *h e ad,St udent p);/ 输入函数vo i d Stu I npu t Hand( S t u
4、d ent *head);/ 学生成绩管理系统得手动输入函数由输入函数调用void S tuinput *head );学生成绩管理系统得文件输入函数 , 由输入函数调用void S tu SelectEr g ( S tud en t * he a d); /学生成绩管理系统得遍历函数由查找函数调用void StuSe le ctNumFind (S t udent *h e ad) ;/学生成绩管理系统得按学号查找函数,由查找函数调用vo id Stu S el e ct S ubFind(Stude nt *h ead);/ 学生成绩管理系统得按科目查找函数 , 由查找函数调用2、?实现
5、步骤首先,分析题目要求划分实现模块 , 定义基本数据类型,诸如结构体、链表等;其次,针对上述得基本操作实现具体需要进行得操作,具体实现每个环节需要进行得基本操作,即具体编写每个小函数实现功能最后,编写主函数对每个实现进行按需调用 , 实现操作。3、流程图四.代码:# includevstdi o、 h #i n cl ud e#i nc 1u d eruct S tude n tchar name 10;char subje c t10 ; in t nu m;i nt g r ade;S tu d ent * next;;void S t uMain () ;/学生成绩管理系统得主函数,由m
6、ain函数调用V o i d StuI n p u t (St ud e nt *) ;/学生成绩管理系统得输入函数,由主函数调用void St u Select ( S tuden t *) ;/学生成绩管理系统得查找函数,由主函数调用S tu I nse r t (StudentStuDe 1 ec t (Student * );Stu Sa ve (Stu dent *);S tuOutpu t (Stud e nt * p);v o i d VO i d voi d voidvoid StuAlter ( Stud e nt *) ;/学生成绩管理系统得修改函数,由主函数调用*) ;/
7、学生成绩管理系统得插入函数,由主函数调用学生成绩管理系统得删除函数,由主函数调用/学生成绩管理系统得存储函数,由主函数调用 /输出函数i n t Stul mp or t( St ude n t V oi d StuOutp u t (S t u d ent * * head,Student *p);/输入函数p)/打印函数,将链表得该节点信息输出printf (学生姓名:”);pr intf (”s, pnam e);prin t f (” 学生号:”);printf ( % d, p - n um);print f (”科目:(s?pri nt? p r intf (”学生成绩: ? pr
8、intf( % %di nt Stu I mpo r t (S t);,p-subj ect););n% ,p grade);ude nt *he a d,S tudentp)S t ude ntOpini on= (Student *)m all oc (sizeof(S t u dent ) ; /用来判断输入节点中学生号就是否有重复?Op inion= h ead ne xt ; printf( ”学生姓名: n” );? s canf( %s” ,p name ); p r in t f (”学生号:n);?3c anf( % d,& p n um); ? printf(科目:、n);
9、?sc anf ( s% ,p s ubject) ;if(O pi ni on! =NULL)?f( O pi nio n -n um= =p-num& !strc mp( O p i n ion su bj e ct,p -s t )? pr intf(”该学生这门科目已有成绩,请重新输入n);re turn 1;O p ini o n=Op ini on n ex t;?i?b j e cprintf( 学生成绩: n ) ; ?sca nf( % %d,&p grade); ?ret urn 0;oidma i n()Stu Main() ;voiStuMai n()char d ec
10、 i de= y;数就是否继续进行?int num=1;到哪个子函数/定义w hi le变量,函/定义swi t ch变量,函数跳转Stud e nt *h ea d;岔 ea d= (Studen t *)mal lo c(si z eof (S t u d en t); ?hea d next =NULL;while(deci de != n )/定义链表得头指针 /给头指针开辟空间 /初始化头指针?pri ntf(* * * * * * * *n );pr intf( *n );pr int f( * n ” );* * * *p ri nt f (”* * * * * *n);输入 2
11、查找3 修改4 插入* * * * * *删除* * *存储 7退出* * * * * *sca nf( d ”,n um);s wi t ch(n u m)case 1:?StuIn p ut(head); break;c ase 2:S t u Se lect (head); b re ak;ca s e 3:StuA1 ter(h ead );brea k;c ase 4:Stu In ser t( he ad);?break;c ase 5:?S tu D e 1 ect( he ad); br eak;c a s e 6:StuSave ( head );break ;d efaul
12、 t:?decid e = nbrea k ;?;void StuInpu t Hand( Stu dent head );数调用/学生成绩管理系统得手动输入函数,由输入函VO i d Stu Inp ut * h ead);/学生成绩管理系统得文件输入函数,由输入函数调用vo id Stul n pu t (S t ude nt *h e a d) 函数调用/学生成绩管理系统得输入函数,由主ch ar dec ide = y是否继续进行定义w hile变量,函数就?int num;个子函数II定义sw itch变量,函数跳转到哪?while(decide != ?pri ntf* * * *
13、 * *n)* * * * *n ”);printfn”);*1 手动输入2 文件输入退出print f* * * * * * * * * * * * * *scanfn”);%d,num);tch(num)1:Han d( head);case?StuIn p u t?break;ca se ?S t u I nput);?de f au It:?dec ide=n?br?eak;II学生成绩管理系统得手动输入函数,由输入函voi d Stu InputH and( S tudent * head) 数调用if(he a d- n ext= N ULL)Stu d e n t 衣 poi n
14、 t= (Stude n t 衣)m allo c ( s i zeof ( Stu d e n t); 链表中最后一个节点,只在该函数中存在?point next=NUL L ;i n t decide = 1;?while(d ecide!=0)Stu den t * p=(Stude nt *)m a ll oc (si z e o f (Stu dent);? p-next=NULL ;StuImport( head,p);? if(headnext=NULL )?head next=p;?point=p;?el se?poi nt- next=p;? p oi nt=p;? ? pr
15、intf (就是否继续: 1/0n);?s canf( %d, de cid e);else);pr in tf( 管理系统中已存在信息,若想输入学生信息,请转插入子系统” voiStuInpu t head)/学生成绩管理系统得文件输入函数,由输入函数调用if(head- n ext!=NUL L)?pri nt f(学生管理系统中已有信息,请跳转到插入选项n);ret ur n ;?s?canfF ILE * f p ;printf( 请输入文件名c ha r 10;” s,);if ( fp=fo pen(,包括物理地址)r ”)=NU L L)n );o pen file n);pri
16、ntf ( can note t u r n;*p oi nt= ( Stu de n t *0 p i n i o n= (S tudent/?S tudent?S tudent用来判断输入节点中学生号就是否有重复*)m allo c(s i zeo f(St u den t ); *)m alloc( s iz e o f (Stu dent );?whi?e(! fe of(fp ) )Op in ion= h ead-n ext;Stud ent * p= (Stu d e nt * )ma l l o c (s i zeo f(Stud en t); p-next = NULL;fr
17、ead (p, siz eo f (Student) ,1, fp);f( Opi ni on! =NULL)?P- ?if(Opi n ion nu m= =p n um& &! str cm p (O pi nio n -s ub ject)print f(”该文件中有重复学生信息,请验明再传输n);?head-n e xt=NULL ;return ;u bjec?Opin i on= O pinion nex t ; ?if(head-n ext= N ULL )hea d-n ext = p;?point=p;?else?point?poi nt= p;?next=p;?;O pi
18、ni on=he a d n ext; whil?e( Op i ni o n- next! = N UL L) Opinion=Opinion-n if(Opinion -next-Opi nion-nexext;next=N U L L ) t=NU L L;?;f c l o se( fp);printf(传输成功n”);d StuSelectErg(Student 函数调用vohead );/学生成绩管理系统得遍历函数,由查找void St u查找函数,voi d函数,由查找函数调用void StuSe1e ct(Student 用S e 1 ec tNu m Fi nd(S tude
19、 nt由查找函数调用S tuSel e ctS ubF ind (Stu d enthead)hea d);/学生成绩管理系统得按学号*head); /学生成绩管理系统得按科目查找/学生成绩管理系统得查找函数,由主函数调char decide= y;否继续进行/ /定义w hil e变量,函数就是int num; 到哪个子函数 ?while(decide!=n)pri* * * *ntp rintfn);p rint f (* * * * *n*);/定义swi tch变量,函数跳转* * *n);遍历 2学号查找3 科目查找4退出 * * * * * * * * * *scanf(%d,nu
20、 m); switch(n um)?c ase 1:? Stu Selec t Er g( head); ?b rea k ;?cas e 2:?S tuSelec tN umF i nd (hea d); ?break;ca s e 3:StuS e lectSu b F i nd (head); ?break;?default:?decid e= n;?b reak;/学生成绩管理系统得遍历函数,由查找V oid S tuSe l ectErg (Stu den t * h ead) 函数调用Stu d e n t* p=(Stud ent * )malloc(size o f (S tu
21、 den t);p=hea d-next;?int i=1;?whi le(p! =? pr i nt f (”NU L L)第小位学生信息:n, i);?Stu Outpu t( p); p=p- n ext;?i ;V oid有查找函数调用?S tuS electNu mFi nd( Stude nt * head)/学生成绩管理系统得查找子系统,? int n um;? pri ntf (”输入想要查找学生得学生号:n);scanf(d, num) ;Stud ent *p =(St ud ent *)m all oc (sizeof (Stu d e nt); p=h ea d n e
22、xt;int i=1;?whi le( p!= NULL )?i? f(num= =pnu m)?ifV oid函数,S t uO u tp ut ( p); i+;p=p next;(i = =1 )r in tf(”没有该学生信息”);St uSe lectS ubFin d(St ud ent * he ad)/学生成绩管理系统得按科目查找由查找函数调用ch a r Su bl 0 ;printf( ”输入想要查找科目 :n);Scanf( ” %S”, Sub);Stu den t * p=( Stu dent *) malloc( Si zeof (St uden t); ?p=h
23、ead next;?in t i= 1 ;while(p != NULL)?if( !s trcm p( Sub, p Su bjeC t) Stu Output( p); ;p=p ne xt;? if( i=1)printf( ”没有该学生信息” );idStuAlter (Stud ent *head)/学生成绩管理系统得修改函数,由主函数调用ch a ri n t num ;prin tf (输入想要查找学生得学生号: n);SC an f( %d,& num);S ub10;? p rin tf(”输入想要查找科目: n);Sca nf( % S,S ub);Stud e nt *
24、p=(St u d e nt *)malloc (si zeof (Stud ent); p =head next;?i nt i= 1;? while(p!=NU L L)?i? f( num= p - num& & !Strcm p(Sub,pSubject)?p r 1 ntf(输入修改成绩: n”);scanf(”d ,& p-grade);? printf (修改成功 n”);i+;?ifp=p next; (i= =1)print( 没有该学生信息 );void?S tul n sert(Student*head)/学生成绩管理系统得插入函数,由主函数调用p oi nt= ( St
25、ude nt *) malloc (s iz e of (St u d e n t); p oin t =h ea d next;while ( p o i n t-n e xt!=NULL)? p oint= po i ntnc har dec ide = y,;? i n t num;w hile( dec ide!=Stu den t *ext;/定义wh/定义,n)*n );p rint f (”* * * * * *pr intf (* *n);* * * * *?/找到尾结点1 le变量,函数就是否继续进行 swi t ch变量,函数跳转到哪个子函数* *头插* *尾插3 退出*
26、* * * * * * * * *p r1 ntf( * * * * * * *n”;s canf ( d, &num );* p= (S tu de nt * ) m alloc (s i z e o f(Stude nt ); swi t ch(n um)S tuden tcase 1:Stulmport(head,p );p- n e xt= h ead nex t;hea d next=p;pr intf( 插入成功 n” ;break;c ase 2:Stu lmport( he ad,p );point- next=p;p nex t=N U LL ;pr i n tf (”插入成功 n);break;def ault :? d e ci de= n; b f ea k;?V o 1 d St uDe l数调用e ct (St uden t * hea d)/学生成绩管理系统得删除函数,由主函n um;(输入想要删除学生得学生号:n);scan f(% d , n um)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年餐饮业服务员雇佣合同6篇
- 燃料采购优化方法
- 建筑屋面工程施工合同及安全协议
- 企业产权转让协议
- 《篮球技术理论》课件
- 2024年设备定期维修保养协议3篇
- 荒漠治理供水井施工协议
- 玻璃器皿模具安全操作
- 公司物资质押协议(2篇)
- 公司分家流程协议书(2篇)
- 【9历期末】安徽省淮北市2023-2024学年九年级上学期期末历史试题
- 2024年度物流园区运营承包合同范本3篇
- 第五单元第四节 全球发展与合作 教学实录-2024-2025学年粤人版地理七年级上册
- 贵州省部分学校2024-2025学年高三年级上册10月联考 化学试卷
- 期末综合试卷(试题)2024-2025学年人教版数学五年级上册(含答案)
- 2024-2025学年上学期武汉小学语文六年级期末模拟试卷
- 2023-2024学年贵州省贵阳外国语实验中学八年级(上)期末数学试卷(含答案)
- 广东省广州市越秀区2022-2023学年八年级上学期期末历史试题(含答案)
- 《争做文明班级》课件
- 辽宁省大连市沙河口区2022-2023学年八年级上学期物理期末试卷(含答案)
- 2024年二级建造师继续教育考核题及答案
评论
0/150
提交评论