学生成绩管理系统C语言.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《学生成绩管理系统C语言.pdf》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、福建工程学院计算机与信息科学系福建工程学院计算机与信息科学系实验报告实验报告 2012 2013学年第 1学期任课老师:章静课程名称课程名称结构化程序综合设计结构化程序综合设计实验题目实验题目班级班级计计 算算 机机座号座号 31003011143100301114 姓名姓名 张扬文张扬文10011001实实 验验 时时间间实验开始日期:2012/2/24报告提交日期:2012/3/10学生成绩管理系统学生成绩管理系统实验目的、要求实验目的、要求1该实验的课内学时是 4 个课时。2程序完成后应该完成如下基本功能:1)用自定义结构体 typedef struct 设计该软件的数据结构;2)用数组
2、或指针链表将所有学生的数据按照学号顺序链接起来;3)程序能够按照学号顺序输入学生的三门成绩,并计算平均成绩和总成绩。4)程序能够显示已经输入的指定学号的学生成绩以及平均成绩和总成绩。5)程序能够按要求显示指定分数段的学生成绩以及平均成绩和总成绩。6)能够统计班级总人数、班级平均成绩。7)能够增加和删除指定学生的成绩。8)按照指定的要求以及顺序(升序或降序)显示学生成绩以及平均成绩和总成绩。实验步骤与内容实验步骤与内容按如下顺序写:1 1、主要设计思想;主要设计思想;学生成绩管理系统包含多种功能,可以输入学生成绩,删除,插入,排序,查找等等。输入的信息又包含学生姓名,学号,各科成绩。所以首先要定
3、义一个结构体:typedef struct nodechar id20;char name15;int scoreMAXCOURSE;int sum;double average;struct node*next;Student;根据结构体中的内容飙血程序。2 2、主要数据结构及其解释主要数据结构及其解释在此次程序设计中用了链表来实现对数据的处理,并设计了菜单界面如图,根据switch语句来对用户的选择:13 3、模块关系图;模块关系图;主函数菜单输入学生信息计算平均分和总分打印成绩查找学生成绩插入学生成绩显示分数段的学生排 按列 总分平均分降序4 4、所有函数的简要说明;所有函数的简要说明;
4、1)插入函数 Insert_Before();主要是要重新加入学生的信息,通过头插法。22)计算平均分和总分 Count_Score();将输入的数据计算出学生的平均分和总分。3)删除学生信息 Del_Student();删除某个学生的成绩。4)按姓名查找 Searchname_Student();通过输入学生的姓名找到学生的成绩。5)计算班级总人数 people=Count_People();将总的输入学生人数打印出来。6)显示某分数段学生信息Section_Score();首先选择你要某科目的成绩并输入成绩的范围,按条件输出学生成绩。7 7)按总分,平均分降序排列Descend_Engli
5、sh();将输入的全部学生成绩按总分排序。5 5、所有源代码;所有源代码;/*学生成绩管理系统 C 语言*/#include#include#include#defineMAXID 10#defineMAXNAME 20#defineMAXCOURSE 3/*学生数据结构*/typedef struct nodechar id20;char name15;int scoreMAXCOURSE;int sum;double average;struct node*next;Student;/*头指针*/Student*head=NULL;/*课程名称*/char ClassNameMAXCOUR
6、SE20=数学,英语,计算机;/*菜单*/int Menu()system(cls);fflush(stdin);printf(计算机 1001张扬文3100301114n);printf(n);printf(*学生成绩管理系统*n);printf(n);printf(1-初始化n);3printf(2-输入学生信息n);printf(3-计算所有学生的总分和平均分n);printf(4-打印全部学生信息n);printf(5-查找学号或姓名删除学生信息n);printf(6-按姓名查找学生信息n);printf(7-按学号查找学生信息n);printf(8-查找某一科成绩段学生信息n);pr
7、intf(9-插入学生信息到链表中n);printf(10-按总分或平均分降序排列学生成绩n);printf(0-退出n);return 0;/*初始化*/Student*Init()int i;Student*head;head=(Student*)malloc(sizeof(Student);head-next=NULL;return head;/*检查学号*/char Check_ID(char*s)int i;if(strlen(s)=0|strlen(s)MAXID)return 0;for(i=0;i 0&si MAXNAME)return 0;for(i=0;i=a&si=A&s
8、i=0&snext;while(p!=NULL)if(strcmp(s,p-id)=0)return 1;p=p-next;return 0;/*输入学生信息*/void Input_Score(Student*p)/*学号*/printf(n 请输入学号:);dogets(p-id);if(!Check_ID(p-id)printf(输入不正确!请重新输入学号:);else if(Is_SameID(p-id)printf(存在已学号!请重新输入学号:);while(!(Check_ID(p-id)&!Is_SameID(p-id);/*姓名*/printf(请输入姓名:);5dogets(
9、p-name);if(!Check_Name(p-name)printf(输入不正确!请重新输入姓名:);while(!Check_Name(p-name);/输入成绩int i;for(i=0;iscorei);if(!Check_Score(p-scorei)printf(输入成绩不正确!n 请重新输入%s 成绩:,ClassNamei);while(!Check_Score(p-scorei);p-average=-1;p-sum=-1;/*头插法插入节点*/void Insert_Before()Student*s=(Student*)malloc(sizeof(Student);In
10、put_Score(s);s-next=head-next;head-next=s;/*输出学生成绩信息*/void Output_Score(Student*p)int i;printf(n 姓名:%s,学号:%s n,p-name,p-id);for(i=0;iscorei);printf(总分:%d平均分:%.2fn,p-sum,p-average);/*删除节点 q*/void Del_Node(Student*q)Student*p=head;while(p-next!=q)p=p-next;p-next=q-next;free(q);/*插入学生成绩*/void Insert_Li
11、st()int x;printf(输入你要插入的学生数:);scanf(%d,&x);while(x!=0)getchar();Student*p=(Student*)malloc(sizeof(Student);printf(n 请输入学号:);dogets(p-id);if(!Check_ID(p-id)printf(输入不正确!请重新输入学号:);else if(Is_SameID(p-id)printf(存在已学号!请重新输入学号:);while(!(Check_ID(p-id)&!Is_SameID(p-id);/*姓名*/7printf(请输入姓名:);dogets(p-name)
12、;if(!Check_Name(p-name)printf(输入不正确!请重新输入姓名:);while(!Check_Name(p-name);/输入成绩int i;for(i=0;iscorei);doif(!Check_Score(p-scorei)printf(输入成绩不正确!请重新输入%s 成绩:,ClassNamei);while(!Check_Score(p-scorei);p-average=-1;p-sum=-1;p-next=head-next;head-next=p;x-;/*按学号查找*/Student*Search_ID(char*id)Student*p=head-n
13、ext;while(p!=NULL)if(strcmp(p-id,id)=0)break;p=p-next;return p;/*按姓名查找节点*/8Student*Search_Name(char*name)Student*p=head-next;while(p!=NULL)if(strcmp(p-name,name)=0)break;p=p-next;return p;/*输出链表*/void Output_List()Student*p;p=head-next;while(p!=NULL)Output_Score(p);p=p-next;/*删除指定学生信息*/void Del_Stud
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生成绩管理系统 C语言 学生 成绩管理系统 语言
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内