学生成绩信息管理系统(C语言).doc

上传人:bao****ty 文档编号:144927566 上传时间:2020-09-14 格式:DOC 页数:24 大小:588KB
返回 下载 相关 举报
学生成绩信息管理系统(C语言).doc_第1页
第1页 / 共24页
学生成绩信息管理系统(C语言).doc_第2页
第2页 / 共24页
学生成绩信息管理系统(C语言).doc_第3页
第3页 / 共24页
学生成绩信息管理系统(C语言).doc_第4页
第4页 / 共24页
学生成绩信息管理系统(C语言).doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《学生成绩信息管理系统(C语言).doc》由会员分享,可在线阅读,更多相关《学生成绩信息管理系统(C语言).doc(24页珍藏版)》请在金锄头文库上搜索。

1、1.题目学生成绩管理系统的设计与实现2.功能(1)每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩。(2)输入功能:可以一次完成无数条记录的输入。(3)显示功能:完成全部学生记录的显示。(4)查找功能:完成按姓名查找学生记录,并显示。(5)排序功能:按学生平均成绩进行排序。(6)插入功能:按平均成绩高低插入一条学生记录。(7)保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:score。(8)读取功能:将保存在文件中的学生记录读取出来。(9)有一个清晰美观界面来调用各个功能3.要求(1)整个系统均用C语言实现;(2)利用指针、链表来实现学生成绩的数据结构设计;(3)系统具有输入

2、、显示、查询、删除、排序、插入,保存、读取基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将学生成绩信息保存在文件中。(6)可以将学生信息从文件中读取出来。4.源程序#include #include #include #define LEN sizeof(struct scorenode)#define DEBUG#include struct scorenodeint number;/*学号*/char name10;/*姓名*/float yuwen;/*语文成绩*/float yingyu;/*英语成绩*/float shuxue;/*数学成绩 */struct sc

3、orenode *next;typedef struct scorenode score;int n,k;/*n,k为全局变量,本程序中的函数均可以使用它*/*=*/score *creat2311(void)/*函数creat2311,功能:创建链表,此函数带回一个指向链表头的指针*/ score*head; score *p1,*p2,*p3,*max; int i,j; float fen; char t10; n=0; p1=p2=p3=(score *)malloc(LEN);head=p3; /*开辟一个新单元*/ printf(请输入学生资料,输0退出!n);repeat1: p

4、rintf(请输入学生学号(学号应大于0):);/*输入学号,学号应大于0*/ scanf(%d,&p1-number); while(p1-numbernumber); /*输入学号为字符或小于0时,程序报错,提示重新输入学号*/ if(p1-number=0) goto end;/*当输入的学号为0时,转到末尾,结束创建链表*/ else p3=head; if(n0) for(i=0;inumber!=p3-number) p3=p3-next; else printf(学号重复,请重输!n); goto repeat1; /*当输入的学号已经存在,程序报错,返回前面重新输入*/ pri

5、ntf(请输入学生姓名:); scanf(%s,&p1-name);/*输入学生姓名*/ printf(请输入语文成绩(0100):);/*输入语文成绩,成绩应在0-100*/ scanf(%f,&p1-yuwen); while(p1-yuwenyuwen100) getchar(); printf(输入错误,请重新输入语文成绩);/*输入错误,重新输入语文成绩直到正确为止*/ scanf(%f,&p1-yuwen); printf(请输入英语成绩(0100):);/*输入英语成绩,成绩应在0-100*/ scanf(%f,&p1-yingyu); while(p1-yingyuyingyu

6、100) getchar(); printf(输入错误,请重新输入英语成绩);/*输入错误,重新输入英语成绩直到正确为止*/ scanf(%f,&p1-yingyu); printf(请输入数学成绩(0100):);/*输入数学成绩,成绩应在0-100*/ scanf(%f,&p1-shuxue); while(p1-shuxueshuxue100) getchar(); printf(输入错误,请重新输入数学成绩); scanf(%f,&p1-shuxue);/*输入错误,重新输入数学成绩直到正确为止*/ head=NULL; while(p1-number!=0) n=n+1; if(n=

7、1) head=p1; else p2-next=p1; p2=p1; p1=(score *)malloc(LEN); printf(请输入学生资料,输0退出!n);repeat2:printf(请输入学生学号(学号应大于0):); scanf(%d,&p1-number);/*输入学号,学号应大于0*/ while(p1-numbernumber); /*输入学号为字符或小于0时,程序报错,提示重新输入学号*/ if(p1-number=0) goto end;/*当输入的学号为0时,转到末尾,结束创建链表*/ else p3=head; if(n0) for(i=0;inumber!=p

8、3-number) p3=p3-next; else printf(学号重复,请重输!n); goto repeat2; /*当输入的学号已经存在,程序报错,返回前面重新输入*/ printf(请输入学生姓名:); scanf(%s,&p1-name);/*输入学生姓名*/ printf(请输入语文成绩(0100):); scanf(%f,&p1-yuwen);/*输入语文成绩,成绩应在0-100*/ while(p1-yuwenyuwen100) getchar(); printf(输入错误,请重新输入语文成绩); scanf(%f,&p1-yuwen);/*输入错误,重新输入语文成绩直到正

9、确为止*/ printf(请输入英语成绩(0100):); scanf(%f,&p1-yingyu);/*输入英语成绩,成绩应在0-100*/ while(p1-yingyuyingyu100) getchar(); printf(输入错误,请重新输入英语成绩); scanf(%f,&p1-yingyu);/*输入错误,重新输入英语成绩直到正确为止*/ printf(请输入数学成绩(0100):); scanf(%f,&p1-shuxue);/*输入数学成绩,成绩应在0-100*/ while(p1-shuxueshuxue100) getchar(); printf(输入错误,请重新输入数学

10、成绩); scanf(%f,&p1-shuxue);/*输入错误,重新输入数学成绩直到正确为止*/ end: p1=head; p3=p1; for(i=1;in;i+) for(j=i+1;jnext; if(max-numberp1-number) k=max-number; max-number=p1-number; p1-number=k; /*交换前后结点中的学号值,使得学号大者移到后面的结点中*/ strcpy(t,max-name); strcpy(max-name,p1-name); strcpy(p1-name,t); /*交换前后结点中的姓名,使之与学号相匹配*/ fen=

11、max-yuwen; max-yuwen=p1-yuwen; p1-yuwen=fen; /*交换前后结点中的语文成绩,使之与学号相匹配*/ fen=max-yingyu; max-yingyu=p1-yingyu; p1-yingyu=fen; /*交换前后结点中的英语成绩,使之与学号相匹配*/ fen=max-shuxue; max-shuxue=p1-shuxue; p1-shuxue=fen; /*交换前后结点中的数学成绩,使之与学号相匹配*/ max=head;p1=head;/*重新使max,p指向链表头*/ p2-next=NULL;/*链表结尾*/ printf(输入的学生数为:%d个!n,n); return(head);/*=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号