课程设计报告学生成绩管理系统

上传人:工**** 文档编号:460452724 上传时间:2023-11-07 格式:DOC 页数:12 大小:277KB
返回 下载 相关 举报
课程设计报告学生成绩管理系统_第1页
第1页 / 共12页
课程设计报告学生成绩管理系统_第2页
第2页 / 共12页
课程设计报告学生成绩管理系统_第3页
第3页 / 共12页
课程设计报告学生成绩管理系统_第4页
第4页 / 共12页
课程设计报告学生成绩管理系统_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《课程设计报告学生成绩管理系统》由会员分享,可在线阅读,更多相关《课程设计报告学生成绩管理系统(12页珍藏版)》请在金锄头文库上搜索。

1、学生成绩管理系统 本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及结构体、单链表、文件等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。一、问题定义创建一个学生成绩管理系统。假设系统中每个学生记录只包括班级、学号、姓名、性别、数学成绩、英语成绩、计算机成绩、总分、平均分、名次等信息。程序的运行效果如下图所示,选择任意菜单后,实现相应功能。图1.1 学生成绩管理系统功能需求二、系统设计21 总体设计采

2、用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。学生成绩管理系统输入记录模块查询记录模块更新记录模块统计记录模块输出记录模块从文件读入从键盘输入按学号查询按班级查询按姓名查询删除记录按名次查询排序记录各科最高分、最低分和平均分输出至文件输出至屏幕图2.1 学生成绩管理系统功能模块图本成绩管理系统要求采用单链表实现,如上图2.1所示,它由如下五大功能模块组成:l 输入记录模块。完成将数据存入单链表的工作。记录可以从以二进制形式存储的数据文件中读入,也可从键盘逐个输入学生记录。学生记录由学生的基本信息和成绩信息字段构成。当从数据文件中读入记录时,也

3、就是把在以记录为单位存储的数据文件中,将记录逐条复制到单链表中。l 查询记录模块。完成在单链表中查找满足相关条件的学生记录。在此成绩管理系统中,用户可以按照学生的班级、学号、名次或姓名在单链表中进行查找。若找到该学生的记录,则返回指向该学生的记录的指针。否则返回一个值为NULL的空指针,并打印出未找到该学生记录的提示信息。l 更新记录模块。完成对学生记录的维护。在此成绩管理系统中,它实现了对学生记录的删除和排序操作,并将修改后的数据存入源数据文件。l 统计记录模块。完成对各门功课最高分和不及格人数的统计。l 输出记录模块。一是实现对学生记录的存盘,即将记录写入数据文件中;二是实现将记录信息以表

4、格的形式在屏幕上打印出来。 22 详细设计2.2.1数据结构设计l 学生成绩信息结构体#ifndef H_STUDENT_HH /*如果H_STUDENT_HH没有定义*/#define H_STUDENT_HH /*那就定义 H_STUDENT_HH */#include #include #include #define LEN sizeof(struct message_student) /*一个结构体数组元素的长度*/#define numsubs 3 /*学科数目*/typedef struct message_student /*结构体定义*/ char number6; /*学号

5、*/ char number16; /*班级*/char name20; /*学生姓名*/char sex4; /*性别*/float subjectnumsubs; /*科目*/float score; /*总分*/float average; /*平均分*/int index;student;extern int numstus; /*学生数目*/extern student *pointer; /*指向结构体数组*/extern int lens;int menu_select(); /*声明函数*/int dakaiwenjian(student stu); /*打开文件*/int c

6、haxunjilu(student stud); /*查询记录*/int cunchujilu(student stud); /*存储记录*/void huanying(); /*欢迎界面*/void xianshijilu1(); /*显示记录*/void showtable(); /*显示桌面*/void paixu(student stu); /*排序*/void shanchujilu(student stu,int i); /*删除*/void tianjiajilu(student stud); /*添加记录*/void xianshijilu(student stud,int n

7、1,int n2); /*显示记录*/void xiugaijilu(student stud); /*修改记录*/void jishu(student stud); /*为记录计数*/void paixunum(student stud); /*为记录排序*/void paixunum2(student stud); /*为记录排序*/void paixuname(student stud); /*为记录排序*/void paixuname2(student stud); /*为记录排序*/void paixujishu(student stud); /*为记录排序*/void paixuj

8、ishu2(student stud); /*为记录排序*/void tongjishuju(student stud); /*统计记录*/void xianshijilu1(); /*显示记录*/2.2.2 主控main()函数执行流程判断键值,调用相应函数,完成相应功能开始以可读写的方式打开一个数据文件将此文件的内容读出,并存入一个新的单链表中调用menu_select()菜单函数进入if函数输入08中的一个数值,选择相应操作调用函数writetotext,进行写数据文件操作结束输入是否为0 ?是否已对修改进行了存盘是是否否图2.2 主控函数执行流程图本成绩管理系统根据按键判断。在判断键值

9、时,有效的输入为本0至8之间的任意数值,其他输入都被视为错误按键。若输入为0(即变量select=0),它会继续判断,如果对记录进行过更新操作,那么是否已经保存过新的数据,若没有,则全局变量saveflage=1,系统会提示用户是否需要进行数据存盘操作,用户输入y或n,系统会自动进行存盘操作后再执行退出成绩管理系统的操作。若选择1,则调用tianjiajilu函数,执行增加学生记录操作;若选择2,则调用chaxunjilu函数,执行查询学生记录操作;若选择3,则首先调用chaxunjilu函数,执行查询学生记录操作,查找出学生纪录后再调用shanchujilu函数,执行删除学生记录操作;若选择

10、4,则调用sort函数,执行按降序排序学生记录操作;若选择5,则调用tongjishuju函数,执行统计学生记录操作;若选择6,则调用dakaiwenjian函数,打开一个已储存的文件;若选择8,则调用cunchujilu函数,执行将学生记录存入数据文件的操作;若选择0,break,退出系统;若输入为09之外的值,default,给出按键错误的提示输入错误,请输入数字08:。2.2.3 函数功能描述l 函数名: strcmp 功 能: 串比较 用 法: int strcmp(char *str1, char *str2); 程序例: #include #include int main(voi

11、d) char *buf1 = aaa, *buf2 = bbb, *buf3 = ccc; int ptr; ptr = strcmp(buf2, buf1); if (ptr 0) printf(buffer 2 is greater than buffer 1n); else printf(buffer 2 is less than buffer 1n); ptr = strcmp(buf2, buf3); if (ptr 0) printf(buffer 2 is greater than buffer 3n); else printf(buffer 2 is less than buffer 3n); return 0; l 函数名: getchar 功 能: 从stdin流中读字符 用 法: int getchar(void); 程序例: #include int main(void) int c; /* Note that getchar reads from stdin and is line buffered; this means it will not return until you press ENTER. */ while (c = getchar() != n) printf(%c,

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

当前位置:首页 > 医学/心理学 > 基础医学

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