C语言课程设计报告-班级成绩管理系统.pdf

上传人:tbuqq 文档编号:5212953 上传时间:2020-02-23 格式:PDF 页数:24 大小:829.89KB
返回 下载 相关 举报
C语言课程设计报告-班级成绩管理系统.pdf_第1页
第1页 / 共24页
C语言课程设计报告-班级成绩管理系统.pdf_第2页
第2页 / 共24页
C语言课程设计报告-班级成绩管理系统.pdf_第3页
第3页 / 共24页
C语言课程设计报告-班级成绩管理系统.pdf_第4页
第4页 / 共24页
C语言课程设计报告-班级成绩管理系统.pdf_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《C语言课程设计报告-班级成绩管理系统.pdf》由会员分享,可在线阅读,更多相关《C语言课程设计报告-班级成绩管理系统.pdf(24页珍藏版)》请在三一文库上搜索。

1、. . 目录 第一章绪论 - - 第二章需求分析 - 2.1 程序的功能 - 2.2 输入输出的要求 - 第三章概要设计 - 3.1程序的模块组成 - 3.2学生信息结构数组 - 3.3各个程序的功能介绍 - 第四章详细设计 - 4.1总流程图 . . - 4.2统计函数流程图 - 第五章测试 - - 5.1系统调试 - 5.2结果分析 - 第六章使用说明 - 第七章总结 - - 附录 - - 评分表 - - . . 第 一 章 :绪论 一. 成绩管理系统的背景分析: 当今时代是飞速发展的信息时代, 在各行各业中离不开信息处理, 正是计算机被广泛应用于信息管理系统的环境. 计算机的最大好处在于

2、 利用它能够进行信息管理. 使用计算机进行信息控制, 不仅提高了工作 效率, 而且大大的提高了其安全性. 尤其对于复杂的信息管理, 计算机能 够充分发挥它的优越性 . 随 着 科 学 技 术 的 不 断 提 高 , 计 算 机 科 学 日 渐 成 熟 , 其 强 大 的 功 能 在 人 类 社 会 的 各 个 领 域 并 发 挥 着 越 来 越 重 要 的 作 用 . 学 生 成 绩 管 理 系 统 提 供 了 强 大 的 学 生 成 绩 管 理 管 理 功 能 , 方 便 系 统 管 理 员 对 学 生 成 绩 等 信 息 的 添 加 , 修 改 , 删 除 , 查 询 , 留 言 等 操

3、作 , 同 时 一 样 的 方 面 学 生 对 自 己 各 科 成 绩 查 询 , 学 习 的 交 流 . 二 开 发 学 生 成 绩 管 理 的 必 要 性 开 发 一 个 学 生 成 绩 管 理 系 统 , 采 用 计 算 机 对 学 生 成 绩 进 行 管 理 , 进 一 步 提 高 了 办 学 效 益 和 现 代 化 水 平 . 为 广 大 教 师 和 学 生 提 高 工 作 效 率 , 实 现 学 生 成 绩 信 息 管 理 工 作 流 程 的 系 统 化 , 规 范 化 和 自 动 化 . 现 在 我 国 的 大 中 专 院 校 的 学 生 成 绩 档 案 管 理 水 平 普 遍

4、都 不 是 很 高 , 有 的 还 停 留 在 全 用 纸 介 质 基 础 上 , 这 种 管 理 方 式 已 不 能 适 应 时 代 的 发 展 , 社 会 的 需 求 , 因 为 它 浪 费 了 大 量 的 人 力 物 力 , 也 存 在 着 许 多 不 足 的 因 素 . 在 今 天 信 息 时 代 这 种 传 统 的 管 理 方 法 必 然 会 被 计 算 机 为 基 础 的 信 息 管 理 系 统 所 代 替 . 一 个 高 效 的 学 生 成 绩 管 理 系 统 可 以 存 储 历 届 的 学 生 成 绩 档 案 , 不 需 要 大 量 的 人 力 , 只 需 要 几 名 专 门

5、录 入 员 即 可 操 作 系 统 , 节 省 大 量 人 力 , 可 以 迅 速 查 到 所 需 信 息 , 高 效 , 安 全 , 学 生 在 能 方 便 的 查 看 自 己 的 成 绩 . 三 . 课 程 设 计 内 容 问题描述: 一个有 N个学生的班级,每个学生有M门课程。该系统实现对班级 成绩的录入、显示、修改、排序、保存等操作的管理。 . . 功能要求: 、本系统采用一个结构体数组,每个数据的结构应当包括: 学号、 姓名、 M门课程名称。 、本系统显示这样的菜单: 请选择系统功能项: a、成绩录入 b、成绩显示 c、成绩保存 d、成绩排序 e、成绩修改(要求先输入密码) f 、成

6、绩统计 、显示每门课程成绩最高的学生的基本信息 、显示每门课程的平均成绩 g、退出系统 、执行一个具体的功能之后,程序将重新显示菜单。 、将学生成绩保存到文件中。 算法提示: 、数据结构:结构体类型数组。 、数据库结构:下表构成该系统的基本数据库。 姓名学号课程名称 1 课程名称 2 char Char float float 测试数据: 学生人数 N=10 课程门数 M=4 课程名:数学、语文、英语、政治 其它 该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功 能。 四. 课 程 设 计 要 求 及 分 组 安 排 。 1. 课 程 设 计 要 求 . . 1) 设计正确,方案合

7、理。 2) 界面友好,使用方便。 3) 程序精炼,结构清晰。 4) 设计报告 5000 字以上,含程序设计说明、用户使用说明,系统的 功能框图、流程图、源程序清单等。 5) 上机演示。 6) 每个学生在规定的时间内独自完成相关课题的C源程序编写, 调整 和运行。源程序及编译生成各文件均保存在软盘中; 7) 实际操作过程中遇到的问题及解决方法:设计总结及心得体会. 8) 按任务书的要求,按附录的要求编写课程设计报告(Word文档 格式) 。并用 A4的复印纸打印并装订。 2. 分组及安排 所选题目(共 8 题)根据学生学号顺序选课题号,四个人一道题,相 邻四个学号的同学选同一道题,32 号以后的

8、同学按学号每人选一题。如 你的学号为 15,则所选题目号为:第四题。 3成绩评定 程序设计方案是否合理;程序设计是否正确;调试结果; 设计说明书的质量高低; 答辩时回答问题情况;课程设计周表现情况;总评成绩记入 “课程设计成绩评分表”。 五. 进度安排 第 一 周 星期四 :课题讲解,查阅资料。 第 二 周 星期一 :总体设计,详细设计。 星期二 :编程,上机调试,修改程序。 星期三:上机调试,完善程序。 星期四:上机调试,完善程序。 星期五:答辩。 星期六星期天:撰写课程设计报告。 . . 第二章:系统需求分析 1程序的功能: 对一个有 N个学生的班级, 每个学生有M门课程。该系统实现对班级

9、成绩的录入、显示、 修改、 排序、保存等操作的管理。本系统采用一个包含N个结构的数组,每个数据结构应当 包括:学号、姓名、M个课程名称。 2. 输入输出要求 : 在菜单选项中 1-7, 选择功能项 , 进行对应选项的函数调用 . 输入1, 输入学生的基本信息存入磁盘文件中; 输入2, 输出已存盘的学生信息; 输入3, 输出用户所要选择科目的提问, 输入科目后输出该科目一排好的学生 成绩; 输入4, 修改功能 , 输入密码 . 错误输出是否继续输入密码. 正确则逐个输出是 否想要修改学生信息; 输入5, 输出三项功能的介绍 , 输入你的选择后输出实现的结果; 每执行一个具体的程序后都要重新显示菜

10、单。 . . 第三章:系统概要设计 1程序的模块组成 第一个模块:先定义好一些必要的全局变量以及调用的函数和结构体数组。 第二个模块:设计一个菜单函数menu(); 实现能供用户选择功能项。 第三个模块:用 enter()函数实现成绩的输入。 第四个模块:用 save() 函数实现成绩的保存。 第五个模块:用 print()函数实现成绩输出。 第六个模块:用 cort()函数实现成绩排序功能。 第七个模块:用 modify() 函数实现成绩修改功能。 第八个模块:用count()函数实现成绩统计功能。 2. 学生信息结构数组 struct stu char name20; int num; i

11、nt scoreM; ; 3. 各个程序的功能介绍 1:为便于用户使用,先定义一个常数N 表示人数,学生信息的结构体数组, 以及调用功能项的函数。 2:在menu()函数中,用switch 来选择要执行的功能项用dowhile 实现每种 具体功能后能返回菜单。 3:Enter()函数,用scanf 依次输入学生信息, 在输入多门成绩成绩时, 用for 循环来实现,结尾调用 save() 函数保存。 4:Print ()函数中为使界面美观对学生成绩用%5d 输出,且用换行实现,学 生信息整齐排列。 5:Save()函数使用文件保存。 6:Cort ()函数先定义 choice1, 输出想要排序的

12、科目的 序号,用选择排序 法实现函数学生成绩的排序。 7:Modify ()函数,先定义好一个密码以及 flag=0 ;如果输入的密码错误 则flag=1, 用do while实现是否重新输入密码,密码准确后调用modi()函数, 实现修改功能。 8:Count()函数用 menu1 函数实现一个菜单功能。用 switch 实现,用户选择 想执行的功能,从而调用Show1 ()Show2 ()Show3 () ; . . 第四章:系统详细设计 1总流程图 开始 Main() enter() print() save() sort() modify () 运行程序 count() Choice

13、Choice 函数 1 2 3 4 5 6 退出程序 7 . . 2. 统计函数流程图 开始 调用 menu1 函数 输入 choice1 choice1 调用 show1 函数调用 show2 函 输 入 选 择 的科目 J=0 I=0 I=i+1 Isn+ 1.score Temp=si.score sn.scorei=sn+1.scor Si+1.scoren=tem J=j+1 I=0;sum=0 I=i+1 I.输入选择的科目用标记法找出成绩最高的的学生则输出其基本信 息. 选择.用 for 循环, 先求出了每门的总成绩再除以人数的到平均成绩用一 个数组接收 . 再用循环则的到结果

14、. 选择.先定义了一个数组 bM. 用循环如果出现超过平均成绩的人就自增 一次, 接收到 bM中, 用循环输出 bM则得到每门超过平均成绩的人数. . . 5: 在modify( )函数中,当输入一个错误的密码时会出现死循环,因为跳出 的 位置错误了 第六章:该系统使用说明 1 运行时进入主界面, 系统根据输入的数字选项来调用相应的函数。主要实现 “ 功 能选择 ” 的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序 号进行选择。以下为该介面; . . 2. 当录入完成输入显示学生成绩功能时,运行结果如下图: . . 3. 当输入输入成绩统计功能时,运行结果如下图: . . 3.

15、成绩修改时需要输入密码才能进行, 密码错误时不能进行该操作,只有输入正 确的密码才能运行,运行结果如下图: . . 第七章:总结 不经一番寒彻骨,哪得梅花扑鼻香 。 一周的 C语言课程设计已接近尾声了,现在回想起来真是五味俱全,从开 始的懵懂无知到现在做出一本挺有厚度的资料,我不但实践了课本的知识, 还编 出小程序, 虽然很多人帮了我的忙, 仍旧感觉自己对 C语言有了深入的了解, 还 是有所成长,有所收获,在实践中,自己编程常会犯错误,并总结一些克服缺点 的方法。 深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。 只有经过调试程序, 我们才能掌握正确的语法知识及把问题的解决方法

16、用程序语 言来表达。在这段时间里, 我门匆匆忙忙为了它准备了很多,其中不免有叹息 声,但是总的来说让我么学到了很多,也懂得了很多,不仅在知识方面,还在有 人的生活态度, 目标上。这次的 C语言课程设计充分展示了C的魅力,用一些小 小的实现合成一个系统从而融入到生活中解决实际问题。同时也教会了我应站在 用户的角度去设计程序。在此次设计过程中必不可少的出现了很多问题,整体 规划,模块与模块之间的调用与划分,标识符的使用。单词的拼写错误,结构体 数组的使用,正确的使用循环的限制条件. 。 这些问题大多是因为平时上课很少听讲的原因,以至于很多概念混淆不 清 。这次的课程设计让我看到自己对C语言研究地少

17、之又少。这次的班级成绩 管理系统仍旧存在着不足。 记得开始课设的第一天,我糊里糊涂地在机房呆了一个上午,对老师要求 做的课程设计束手无策,上网搜了几个,但觉得没点意思,最后还是没有用。但 相对于别人的做的系统, 我的好像简单多了。 但后来还是不得不去看书, 因为很 多东西还牛毛都不知道。比如,做这个课程设计时候,最好使用链表,而链表我 们还没有深入去熟悉它, 在说这个课程设计牵涉到前面我们学过的所有内容,如, 一些基本函数的运用,函数的调用及指针,结构体。内容多而复杂,如果没有对 教材有个很好的了解掌握, 是不可能篇好这个程序的。 我还在把书本重新温习了 一遍,对照程序一一翻书, 试图找到一中

18、解释来说明程序当中一些函数的作用和 结构。 接下来的一段时间里对这段程序进行了修改,经过东凑西凑,拼拼剪剪, 终于可以在电脑上运行了, 但是它的功能不是很完善, 需要进一步完善。 后来怀 着疑问去询问老师才发现其实很多问题都想比较简单的,比如在运行程序时发现 无论我怎么输入成绩, 第四门课的成绩都与我输入的分数不同,自己也尝试用很 多方法去解决, 最终不了了之。 同学看过以后告诉我是我在定义的时候把初始值 定义错了。 在修该以后, 再次运行便没看见以前的错误了。后来有用这种方法把 后面的两个警告解决了一个。 在这个过程中,也试图自己独立完成这个课程,偶尔发现书本上第11 章节 里面,有介绍链表

19、的使用, 而且书本上关于这个课程的一些基本函数功能在本章 节都有说明, 比如,链表的创建, 节点的插入, 删除,一些基本信息的修改都有。 . . 最终完成的课程的设计,马马虎虎的,完成的,但是还是受益匪浅。其中老 师与同学的教导让我刻苦铭心。不管其结果怎么样, 但至少这个过程, 让我们明 白了,懂得了很多。虽然有点挫折很艰辛在里面,但是那都是短暂的,美丽的, 它教会了我们不经过自己的努力,是达不到预期的结果的, 不经过自己的实践操 作,是体验不到其中的美妙的。不仅如此,还给了我们一个警告,对待学习不可 马马虎虎, 否则完成不了应有的任务, 得不到理想的结果, 半途而废是失败的首 要原因,不要什

20、么事情都觉得满不在乎,踏踏实实的学习,踏踏实实的工作,拥 有积极乐观的态度去应对一切挫折,最终会让你走想成功的前沿。因为:“胜利 永远是属于永不放弃的人! . . 附录 1. 参考文献 C程序设计(第三版)谭浩强 著清华大学出版社 C语言程序设计实用指南谭浩强 著清华大学出版社 C语言大学实用教程学习指导苏小红著电子工业出版社 2.源代码 #include /*I/O函数 */ #include /*字符串函数 */ #define M 4 /*课程数 */ #define NUM 3 /*人数 */ #define NULL 0 #include #include int avarM; st

21、ruct stu char name20; int num; int scoreM; ; void enter(struct stu s,int n); /*进入 */ void print(struct stu s,int n); /*输入文件 */ void save(struct stu s,int n); /*保存文件 */ void sort(struct stu s,int n); /*排序 */ void modify(struct stu s,int n); /*修改 */ void count(struct stu s,int n); /*统计 */ int menu();

22、void main() void clrscr(); struct stu studentNUM; for( ; ; ) . . switch(menu() case 1:enter(student,NUM);break; case 2:print(student,NUM);break; case 3:save(student,NUM);break; case 4:sort(student,NUM);break; case 5:modify(student,NUM);break; case 6:count(student,NUM);break; case 7:return; int menu(

23、) int choice; printf(“n*级成绩管理 *n“); printf(“ 1 成绩录入 n“); printf(“ 2 成绩显示 n“); printf(“ 3 成绩保存 n“); printf(“ 4 成绩排序 n“); printf(“ 5 成绩修改 n“); printf(“ 6 成绩统计 n“); printf(“ 7 退出系统 n“); printf(“ 学生人数级 NUM 课程数学 0 语文 1 英语 2 政治 3n“); printf(“*n“); do printf(“nchoice1-7:“); scanf(“%d“, while(choice7); retu

24、rn choice; void enter(struct stu s,int n) /成绩录入 char c; int i=0; int j; do printf(“please enter the message:n“); getchar(); printf(“enter name:n“); scanf(“%s“,si.name); . . printf(“enter num:n“); scanf(“%d“, printf(“enter score:n“); for(j=0;jsj.scorek) temp=smin.scorek; smin.scorek=sj.scorek; sj.sco

25、rek=temp; printf(“n The sorted numbers:n“); for(i=0;i3); return choice1; void show1(struct stu a,int n1) int k,i,j,c=0; printf(“please enter the subject num:“); scanf(“%d“, for(i=0;i=n1) printf(“n list No %d studentn“,ci.num); else printf(“modify(y/n)?n“); ch=getchar();getchar(); if(ch=y|ch=Y) print

26、f(“enter numn“); scanf(“%d“, getchar(); printf(“modify name(y/n)?n“); / ch=getchar();getchar(); if(ch=y|ch=Y) printf(“enter name:n“); scanf(“%s“,ci.name); getchar(); . . printf(“modify record(y/n)?n“); ch=getchar();getchar(); if(ch=y|ch=Y) printf(“enter record:n“); for(j=0;jM;j+) scanf(“%d“, getchar(); return; . . 应用技术学院课程设计评分表 课题名称: 项目评价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩 教师签名: 日期: (注: 1此页附在课程设计报告最后一页;2综合成绩按优、良、中、及格和不及格五级 评定。 ) 单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善 教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1