资源描述:
《c语言程序课程设计-学生成绩管理程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、武汉科技大学二〇一〇~二〇一一学年第一学期信息科学与工程学院课程设计报告书课程名称:C语言课程设计班级:自动化2009级2班学号:姓名:指导老师:二〇一〇年九月设计题目:学生成绩管理程序任务:自学C语言中相关知识,设计出学生成绩管理程序。设计要求:l能录入学生信息存储在文件中,每位学生录入的信息有:姓名、学号、性别、班级、和三门功课(数学、英语、计算机)的成绩;l能够统计每个学生三门课程的总成绩;l能按学生学号查询其三门功课成绩并显示;l能浏览全部学生成绩;l能按总成绩有高到低显示学生信息。系统功能需求分析:1
2、,系统要求用户必须输入正确的信息格式;2,系统应该提供已经记录在案的信息数目;3,系统应提供查询、删除、保存、浏览功能;系统总体设计框架:主界面查询学生资料删除学生资料登记学生资料修改学生资料保存浏览全部排序浏览系统功能模块图:1,登记学生资料尽快保存;2,删除学生信息;3,查询学生信息;4,修改学生信息;5,保存学生信息;6,保存资料后浏览全部学生成绩;7,保存资料后按总成绩排名;0,退出系统。功能模块的算法设计思路:1,增加学生:将指针放在链表尾,开辟一个结构体单元,输入学号,查找是否有重复学号,如无,则写
3、入,再关闭文件。2,查询信息:如果l->next为空,则无信息;按学号查,输入要查的学号,与链表中数据一个一个进行比较,找到所在处,指针指向,输出信息。无信息则提示。3,删除信息:如果l->next为空,则无信息;按学号删,输入要删的学号,在链表中号码一个一个与所找学号比较,找到后将前一个数据的尾接到后一个的头;4,修改信息:如果l->next为空,则无信息,输入要该的学号,在文件中找到,重新写入各项信息,保存。5,保存:打开一个制定文件,将链表的内容写入文件中,关闭文件。6,浏览:打开文件,找到链表头,逐个输
4、出。7,排序:建立一个新的结构体,将文件中内容复制到新结构体中,用冒泡排序将总成绩排序,输出。工作流程图:主要源程序代码:#include"stdio.h"#include"stdlib.h"#include"string.h"intnumbercount=0;/**/structstudent{charnum[10];/*学号*/charname[20];/*姓名*/charsex[10];/*性别*/charclas[10];/*班级*/intmgrade;/*数学*/integrade;/*英语*/int
5、cgrade;/*计算机*/inttotle;/*总分*/};typedefstructnode{structstudentdata;structnode*next;}Node,*Link;voidprintenglish(Node*p)/*本函数用于输出英文*/{printf("%-12s%st%st%st%dt%dt%dt%d",p->data.num,p->data.name,p->data.sex,p->data.clas,p->data.mgrade,p->data.egrade,p-
6、>data.cgrade,p->data.totle);}voidAdd(Linkl)/*增加学生信息*/{Node*p,*r,*s;charnum[10],a[10];r=l;/*l为小写L*/s=l->next;while(r->next!=NULL)r=r->next;/*将指针置于最末尾*/while(1){printf("请你输入学号:");scanf("%s",num);for(;s!=NULL;s=s->next){if(strcmp(s->data.num,num)==0){printf("提示
7、:学号为'%s'的学生已经存在,若要修改请你选择'4修改'!",num);printf("学号姓名性别班级数学成绩英语成绩计算机成绩总分");printenglish(s);printf("");return;}}p=(Node*)malloc(sizeof(Node));strcpy(p->data.num,num);printf("请你输入姓名:");scanf("%s",p->data.name);getchar();printf("请你输入性别:");scanf("%s",p->data.s
8、ex);getchar();printf("请你输入班级:");scanf("%s",p->data.clas);getchar();printf("请你输入计算机成绩:");scanf("%d",&p->data.cgrade);getchar();printf("请你输入数学成绩:");scanf("%d",&p->data.mgrade);getchar();printf("请你