C语言实现的学生成绩管理系统设计

版权申诉
0 下载量 54 浏览量 更新于2024-07-01 收藏 33KB DOCX 举报
"C语言课程设计学生成绩管理系统.docx" 本次C语言课程设计的目标是开发一个学生成绩管理系统,旨在加深学生对C语言中高级技术的理解,如结构体、指针、链表、动态内存管理和文件操作。通过设计这样一个系统,学生能够提升实际问题解决、编程和动手能力,同时培养良好的编程习惯和编程风格,学习如何编写程序文档。 设计内容涵盖了学生成绩的全面管理,包括学号、姓名和各科目成绩。系统应具备的成绩管理功能包括成绩的输入、输出、查询、删除、排序、统计和退出。此外,还要求实现管理员模式,用于切换登录并修改管理员信息。 学生信息结构如下: 1. 每个记录包含学号、姓名和三门课程(语文、数学、英语)的成绩。 2. 成绩信息录入:通过文件存储,支持一次性输入多条记录。 3. 显示所有记录:显示所有学生信息。 4. 查询功能:根据姓名查找并显示学生记录。 5. 删除功能:根据学号删除指定学生的成绩信息。 6. 排序功能:按照学生的平均成绩进行排序。 7. 界面设计:提供用户友好的操作界面,包括功能调用和各功能的具体操作界面。 课程设计需完成的工作包括: 1. 设计并实现算法。 2. 对算法进行测试,提供测试结果和分析。 3. 编写课程设计报告,包含封面、任务书、目录、总体设计、使用说明、运行示例、成员设计概述、源代码(注释清晰)以及指导教师的评价。 系统由以下功能模块组成: 1. 成绩录入:添加新的学生成绩信息。 2. 成绩输出:显示所有或特定学生的成绩。 3. 成绩查询:根据学号或姓名查找成绩。 4. 删除模块:删除指定学生的成绩信息。 5. 排序功能:对成绩进行升序或降序排列。 6. 统计功能:计算平均分、最高分、最低分等统计信息。 7. 退出系统:结束程序运行。 8. 修改管理员信息:允许管理员修改自身信息。 详细设计部分将每个功能模块进行了分解,包括输入、删除、查询、修改、排序、保存记录、显示所有、退出系统和修改管理员信息等。这些模块的实现将涉及C语言的各种核心概念和技术,如函数定义、指针操作、文件操作和结构体的使用等。 通过这个课程设计,学生不仅能掌握C语言的实际应用,还能在实践中锻炼问题解决和系统设计能力,为将来从事更复杂的软件开发打下坚实基础。
319 浏览量
c语言课程设计学生成绩管理系统 c语言课程设计学生成绩管理系统全文共30页,当前为第1页。 学习 ----- 好资料目录——同学成果治理程序题目要求···················2设计目的···················2总体设计···················3具体设计···················3调试与测试·················12源程序···················14总结···················30更多精品文档第 1 页,共 30 页 c语言课程设计学生成绩管理系统全文共30页,当前为第1页。 学习 ----- 好资料 目录 ——同学成果治理程序 题目要求 ··················· 2 设计目的 ··················· 2 总体设计 ··················· 3 具体设计 ··················· 3 调试与测试 ················· 12 源程序 ··················· 14 总结 ··················· 30 更多精品文档 第 1 页,共 30 页 c语言课程设计学生成绩管理系统全文共30页,当前为第2页。 学习 ----- 好资料同学成果治理程序一.题目要求1.问题描述 :对在校同学几门课程的考试成果进行统一治理. 每个同学记录包括学号,姓名, 年龄, 数学 , 英语 , 物理成果 , 默认以学号为序存放 .2.要求:(1) 一个文件按以班为单位储备同学记录.(2) 将答应的操作分为四种, 以 A,B ,C,D,E,F为标志 :A: 插入一个同学记录B: 修改同学记录 ; C:删除一个同学记录 D:查找一个同学记录 E: 浏览同学成果 :F: 退出;;;3.运算同学的总成果 .4.按学号排序输出全班同学成果表.二.设计目的依据题目要求 , 由于同学信息是存放在文件中, 所以应供应文件的输入, 输出; 另外等操作 ; 在程序中需要浏览同学的信息仍应供应键盘式挑选菜单实现功能挑选, 应供应显示., 查找 , 排序等操作三.总体设计依据上面的需求分析, 可以将这个系统分为以下模块: 输入模块 , 修改模块 , 删除模块 , 查找模块 , 显示模块 .更多精品文档第 2 页,共 30 页 c语言课程设计学生成绩管理系统全文共30页,当前为第2页。 学习 ----- 好资料 同学成果治理程序 一. 题目要求 1. 问题描述 : 对在校同学几门课程的考试成果进行统一治理 . 每个同学记录包括学号 , 姓名, 年龄, 数学 , 英语 , 物理成果 , 默认以学号为序存放 . 2. 要求: (1) 一个文件按以班为单位储备同学记录 . (2) 将答应的操作分为四种 , 以 A,B ,C,D,E,F 为标志 : A: 插入一个同学记录 B: 修改同学记录 ; C:删除一个同学记录 D:查找一个同学记录 E: 浏览同学成果 : F: 退出 ; ; ; 3. 运算同学的总成果 . 4. 按学号排序输出全班同学成果表 . 二. 设计目的 依据题目要求 , 由于同学信息是存放在文件中 , 所以应供应文件的输入 , 输出 ; 另外 等操作 ; 在程序中需要浏览同学的信息 仍应供应键盘式挑选菜单实现功能挑选 , 应供应显示 . , 查找 , 排序等操作 三. 总体设计 依据上面的需求分析 , 可以将这个系统分为以下模块 : 输入模块 , 修改模块 , 删 除模块 , 查找模块 , 显示模块 . 更多精品文档 第 2 页,共 30 页 c语言课程设计学生成绩管理系统全文共30页,当前为第3页。 学习 ----- 好资料同学成果治理系统数据输入数据显示数据修改数据删除数据查找 四. 具体设计 1. 主函数 :主函数一般设计得比较简洁, 只供应输入, 处理和输出部分的函数调用,其中各功能模块用菜单方式挑选.流程图 :显示一系列功能模块N输入 n, 判定 n 是否是 A--FY依据 n 的值调用各功能模块函数[ 程序 ]://#include "head.h" int menu_select(){char c; printf("\n\n");printf(" " 1.printf(" " 2.printf(" " 3.printf(" " 4.printf(" " 0. printf("\n\n");增加同学记录查询同学记录 修改同学记录 同学纪录排序 退出系统 "\n");5.6.7.8.统计信息打开文件 储存文件 显示记录"\n");"\n");"\n");"\n");printf("请挑选 (0-8):");c=getchar();getchar(); return (c-'0
352 浏览量
c. 语言课程设计学生成绩管理系 统 德州学院计算机系课程设计报告纸 目录 ——学生成绩管理程序 题目要求 ··················· 2 设计目的 ··················· 2 整体设计 ··················· 3 详尽设计 ··················· 3 调试与测试 ················· 12 源程序 ··················· 14 总结 ··················· 30 第-2- 页 共36 页 德州学院计算机系课程设计报告纸 学生成绩管理程序 一. 题目要求 1. 问题描绘 : 对在校学生几门课程的考试成绩进行一致管理 . 每个学生记录包含学号 , 姓名 , 年纪 , 数学 , 英语 , 物理成绩 , 默认以学号为序寄存 . 2. 要求 : 1) 一个文件按以班为单位储存学生记录 . 2) 将同意的操作分为四种 , 以 A,B ,C,D,E,F 为标记 : A: 插入一个学生记录 ; B: 改正学生记录 ; C:删除一个学生记录 ; D:查找一个学生记录 ; E: 阅读学生成绩 : F: 退出 3. 计算学生的总成绩 . 4. 按学号排序输出全班学生成绩表 . 二. 设计目的 依据题目要求 , 因为学生信息是寄存在文件中 , 因此应供给文件的输入 , 输出等操作 ; 在程序中需要阅读学生的信息 , 应供给显示 , 查找 , 排序等操作 ; 此外还应供给键盘式选择菜单实现功能选择 . 三. 整体设计 依据上边的需求剖析 , 能够将这个系统分为以下模块 : 输入模块 , 改正模块 , 删除模块 , 查找模块 , 显示模块 . 第-3- 页 共36 页 德州学院计算机系课程设计报告纸 学生成绩管 理系统 数据输数据显数据修数据删数据查 入 示 改 除 找 四. 详尽设计 1. 主函数 : 主函数一般设计得比较简单 , 只供给输入 , 办理和输出部分的函数调用 , 此中各功能模块用菜单方式选择 . 流程图 : 显示一系列功能模 块 N 第-4- 页 共36 页 德州学院计算机系课程设计报告纸 输入 n, 判断 n 能否 是 A--F Y 依据 n 的值调用各功 能模块函数 "[ 程序]: " " " " "//#include "head.h" " " " "int menu_select() " " " "{ " " " " "char c; " " " " "printf("\n\n"); " " " "printf(" " 1."增添学生记录 "5. "统计信息 "\n"); " "printf(" " 2."查问学生记录 "6. "翻开文件 "\n"); " "printf(" " 3."改正学生记录 "7. "保留文件 "\n"); " "printf(" " 4."学生纪录排序 "8. "显示记录 "\n"); " "printf(" " 0."退出系统 "\n"); " " " "printf("\n\n"); " " " "printf(" "请选择 (0-8):"); " " " "c=getchar(); " " " "getchar(); " " " " "return (c-'0'); " " " "} " " " " 2. 输入模块 : [剖析]: 独自看各数据信息 , 学号 , 姓名是字符型 , 能够采纳字符型数组 ; 分数为整数 , 采纳整数 ; 数据信息寄存在文件中 , 一条记录对应一个学生 , 既切合习惯又方便信息管理 . 假如要寄存若干学生信息就用构造体数组 : void addrecord(student stud[]) { 第-5- 页 共36 页 德州学院计算机系课程设计报告纸 int i=0,j,num; char str[5]; if(numstus!=0) { printf(" 已有记录存在能否覆盖 ?(y/n)\n"); gets(str); if(str[0]=='Y'""str[0]=='y') i=0; else i=numstus; } printf(" 请输入增添的学生信息条目数 :"); scanf("%d",&num); if(i==0) numstus=num; else numstus+=num; if(numstus>lens) { lens+=50; pointer=(student *)realloc(pointer,lens*LEN); } printf(" 请输入学生信息 :\n"); for(;i<numstus;i++) { getchar(); printf(" 请输入学号 :"); gets(pointer[i].number); printf("