ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:16.99KB ,
资源ID:7317710      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7317710.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(使用c语言实现指针和链表实现学成绩管理系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

使用c语言实现指针和链表实现学成绩管理系统.docx

1、使用c语言实现指针和链表实现学成绩管理系统* 文件名称:指针和链表实现2.cpp* 文件标识:* 摘 要:指针和链表实现学生成绩管理系统* 要求有:初始化链表,创建链表,删除指定学号的记录,打印学生成绩信息, 计算学生成绩的总分平均分,插入一条学生记录,退出。*/*头文件*/#include #include #include /*常量*/#define MENU_NUM 10#define N 3/*结构体*/typedef struct s1 char no10 ; /学号由10个字符组成 char name15 ; /学生姓名 float scoreN ; /各门课成绩 float su

2、m ; /总分 float average ; /平均分 struct s1 *next ; /指向后继结点的指针STUDENT; /定义结构体类型/*全局变量*/struct s1 * head=NULL; /链表头结点/*函数声明*/void InputData( STUDENT * ptr ); /录入信息void PrintMenu( ); /显示菜单int MenuSelect( ); /选择菜单项void Init( ); /初始化void create( ); /创建链表void print( ) ; /打印链表数据void Delete( ); /删除指定学号的记录数据void

3、 append(); /追加一个数据到链表尾部void computer(); /计算链表中所有人的总分和平均分/*主函数*/void main() int key; while(1) key=MenuSelect(); switch(key) case 1: Init(); /初试化链表。也就是若链表不为空则释放链表中所有数据,将head置为空(NULL) break; case 2: create(); /创建链表,输入数据 break; case 3: Delete(); /删除一个指定学号的记录数据 break; case 4: print(); /打印链表中所有数据 break; c

4、ase 5: computer(); /计算链表中所有人的总分和平均分 break; case 6: append(); /追加一个数据到链表的尾部 break; case 7: Init(); /释放链表 exit(0); /*函数名:PrintMenu*描 述:显示操作菜单*入口参数:无*出口参数:无*/void PrintMenu( ) int i; char * menu= -, | 基于指针和链表的学生成绩管理系统 |, | 1. 初始化链表 |, | 2. 创建链表 |, | 3. 删除指定学号的记录 |, | 4. 打印学生成绩信息 |, | 5. 计算学生的总分和平均分 |,

5、| 6. 插入一条学生记录 |, | 7. 退出 |, -, ; printf(nn); for (i=0;inext; /ptr指向下一个结构数据 free(p); /释放p所指向的结构数据的内存 p=ptr; /将p指向ptr所指向的数据 head=NULL; /将head指向NULL/*函数名:create*描 述:创建单链表*入口参数:无*出口参数:无*/void create( ) STUDENT *pt, *pth=NULL; /定义两个指针变量:pt指向即将申请新的数据内存,pth指向当前数据 while(1) pt=(STUDENT *)malloc(sizeof(STUDEN

6、T); /让pt指向新申请的内存空间 InputData(pt); /输入数据,存放到pt所指向的结构数据。注意让pt的next指向NULL if (strcmp(pt-no,)=0) free(pt); /释放pt所指向的内存空间 break; /退出循环 else if (head=NULL) pth=pt; head=pt; /将头指针head和pth指向pt else pth-next=pt; /将pth的next指向pt; pth=pt; /将pth指向pt; /*函数名:print*描 述:打印单链表中所有数据*入口参数:无*出口参数:无*/void print( ) int i=

7、0; STUDENT *p; /第一个指针p p=head; /将p指向head printf(n); printf(*STUDENT*n); printf(|rec| 学号 | 姓名 | 成绩1| 成绩2| 成绩3|总成绩| 平均成绩|n); printf(|-|-|-|-|-|-|-|-|n); /打印表头 while (p!=NULL) printf(|%3d|%10s|%-12s|%6.1f|%6.1f|%6.1f|%6.2f|%9.1f|n, +i,p-no,p-name,p-score0,p-score1,p-score2, p-sum,p-average); /打印p所指向的结构

8、中的所有数据。注意打印数据间的分隔线 p=p-next; /将p指向p的下一个结构数据 printf(*END*n); /打印表尾/*函数名:Delete*描 述:删除指定学号的记录*入口参数:无*出口参数:无*/void Delete( ) STUDENT *p,*pth; /定义两个指针p,pth char no11; /定义一个整数no(用来存储输入的学号) printf(输入要删除学生的学号:); scanf(%s,no); /用输入语句输入一个学号存储到no中 p=head;pth=head; /将p和pth都指向头指针 if (strcmp(p-no,no)=0) /也就是若头指针

9、指向的数据需要删除 head=head-next; /将head指针指向head的下一个数据; free(p); /释放p所指向的数据 else p=p-next; /将p指向p的下一个数据 while ( p!=NULL) if (strcmp(p-no,no)=0) /找到了要删除的数据 pth-next=p-next; /将pth的next指向p的next free(p); /释放p break; /退出循环 else pth=pth-next; /将pth指向pth的next 或 将pth指向p p=p-next; /将p指向p的next /*函数名:append*描 述:增加学生记录

10、*入口参数:无*出口参数:无*/void append() STUDENT *p,*pth; /定义两个指针变量p,pth pth=head; /将pth指向head while ( pth-next!=NULL) pth=pth-next; /ptr指向ptr的next p=(STUDENT *)malloc(sizeof(STUDENT); /将p指向新申请的内存空间 InputData(p); p-next=NULL; /数据数据存储到p所指向的内存空间,注意将p的next置为NULL pth-next=p; /将ptr的next指向p/*函数名:InputData*描 述:输入学生信息

11、*入口参数:指针*出口参数:无*/void InputData( STUDENT *ptr ) int i; printf(输入学号:); scanf(%s,ptr-no); if (strcmp(ptr-no,)=0 ) return; printf(输入姓名:); scanf(%s,ptr-name); for(i=0;iscorei); ptr-sum=0; ptr-average=0; ptr-next=NULL; /不要忘记这一步/*函数名:computer*描 述:计算学生总成绩和平均成绩*入口参数:无*出口参数:无*/void computer() STUDENT *p; p=head; for(;p;p=p-next) p-sum=p-score0+p-score1+p-score2; p-average=(p-score0+p-score1+p-score2)/3;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1