C语言课程设计--学生成绩管理.doc_第1页
C语言课程设计--学生成绩管理.doc_第2页
C语言课程设计--学生成绩管理.doc_第3页
C语言课程设计--学生成绩管理.doc_第4页
C语言课程设计--学生成绩管理.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计设计题目: 学生成绩管理 一、课程设计的原始资料及依据本学生成绩管理系统用计算机管理电子学生成绩的一种计算机应用技术的创新,在计算机还未普及之前学生成绩管理都是由笔录手工记录学生成绩的方式来操作的。现在一般的学生成绩管理都是采用计算机作为工具的实用的计算机学生成绩管理程序来帮助人们进行更有效的学生成绩信息管理。查阅有关资料,进一步理解程序设计模块化的思想,并利用此思想编写一个简单的学生成绩管理系统。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。二、课程设计主要内容及要求1.认真阅读资料,掌握程序设计模块化的思想。2.要求在设计的过程中,建立清晰的层次结构。3.画出主要的功能结构图和主要模块的流程图。4.基本信息管理功能能录入、添加新数据(一个结点包括:学号、姓名、成绩),例如:01 杨春 90 修改功能:可以按学号查找,然后修改。删除功能:选中某个人的姓名时,可对此人的相应数据进行删除。其他功能:按成绩排序、保存读取记录。5. 要求操作简单,用户界面友好。6. 运行程序,检查结果是否和理论值一致。7. 环境使用Windows,Turbo C环境。三、对课程设计说明书撰写内容、格式、字数的要求1课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、设计小组评语、参考文献等。一般不应少于3000字。2在适当位置配合相应的实验原理图、数据通路图、微程序流程图、实验接线图、微指令代码表等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。设计小组评语处注明设计组编号、设计组组长、设计组成员,并由设计组组长给出评语。4课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。5课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。四、设计完成后应提交成果的种类、数量、质量等方面的要求1完成“基本模型机”中指定机器指令的操作功能,运行稳定。2课程设计说明书。五、时间进度安排顺序阶段日期计 划 完 成 内 容备注1第1天(03月24日)阅读资料2第23天(03月25日26日)系统分析设计3第48天(03月27日04月02日)程序编制、调试及运行4第9天(04月03日)成绩评定5第10天(04月04日)撰写课程设计说明书六、主要参考资料(文献)1谭浩强.C程序设计(第三版).北京: 清华大学出版社,20052石小岭C 语言程序设计实训教程 机械工业 20003李兰友 TurboC 语言程序设计400例 电子工业20024张翔C语言函数大全 电子工业出版社20035郭翠英 C语言 课程设计案例精编 中国水利水电出版社2002 沈 阳 工 程 学 院程序设计基础课程设计成绩评定表系(部): 信息工程系 班级: 计本083 学生姓名: 安大强指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以8) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名: 年 月 日答 辩 小 组 评 审 意 见评价内容具 体 要 求权重评 分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。0.55432答 辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55432答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名: 年 月 日课 程 设 计 总 评 成 绩分沈阳工程学院课程设计报告摘要现代科学技术的飞速发展,改变了世界,也改变了人类的生活。作为新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。新世纪需要具有丰富的现代科学知识,能够独立解决面临的任务,充满活力,有创新意识的新型人才。C语言是在国内外使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。现在大多数的高校都把C语言作为第一门计算机语言进行教学,这是可行的,学生是能够学习好的。学生成绩管理系统用于利用计算机管理学生成绩,方便人们进行更有效的对学生的成绩管理。该设计主要是应用了C程序设计中的一些算法,还有一些函数的调用,结构体的应用等,根据他们的基本思想来编写程序。程序包括的主要内容可以对通讯录管理系统进行查找、添加、删除、排序、插入、复制等操作,设计一个有关学生成绩管理的程序,来实现我们的目的。在学习中,先要学习程序设计课程的目的掌握设计程序的思路,学习会用计算机语言编写程序,以实现所需要处理的任务。要正确处理算法与语法的关系,算法是程序的核心、是灵魂,语法是外壳、是工具。不应把学习重点放在语法规则上,语法是重要的,不掌握语法规则就无法编写出正确的程序。一定要把重点放在解题的思路上,通过思考,和大量的阅读,来构造一个完整的程序。请记住:重要的是学会编程,而不是背语法。其次,主要是学习程序设计的方法,进行程序设计的基本训练,大多数的学生应该把精力放在最基本,最常用的内容上,学好基本功。所以,我们当今大学生更应学好每一个学科,来迎接每依次挑战,面对明天,承担明天。关键词 数组,算法,结构体,排序沈阳工程学院课程设计报告 目录摘要.第一章 引言.11.1题目背景.11.2题目目的.11.3解决问题.1第二章 使用工具与特点.22.2.1C语言的历史背景.22.2.2C语言的特点.3第三章 系统分析与设计.43.1系统功能.43.2功能设计.63.2.1 修改姓名函数.63.2.2 删除姓名函数 .8第四章 系统功能实现.94.1输入姓名函数.9 4.2显示姓名列表11总 结.13致 谢.14参考文献 15II沈阳工程学院课程设计(报告)第一章 引言1.1设计背景随着计算机技术的飞速发展,改变了世界,也改变了人类的生活。作为现代科学技术的飞速发展,改变了世界,也改变了人类的生活。新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求当今社会,多元文化快速发展,人与人的交流也越来越多,社交也就越广泛,这时,记住自己认识的人是很重要的,因此我们做了这个程序,为了使我们更有效的纪录下自己所认识,更方便去和更多的人交流而不会记错。C语言成了在国内外使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。现在大多数的高校都把C语言作为第一门计算机语言进行教学,这是可行的,学生是能够学习好的。1.2设计目的这次设计主要是应用了C程序设计中的一些算法,还有一些函数的调用,结构体的应用等,根据他们的基本思想来编写程序。程序包括的主要内容可以对学生成绩管理系统进行输入、修改、删除、排序、显示等操作,设计一个有关学生成绩信息管理的程序,来方便人们对信息更方便的使用,经过这样一个过程来巩固和完善自己所学的知识,同时来培养一下自己的实践能力。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力为了人们能够更快的记录学生的成绩管理,使人们不再因为添加、排序学生成绩而苦恼。1.3解决问题学生成绩管理系统用于计算机管理电子学生成绩,方便人们进行更有效的学生成绩信息管理。在这个程序中可以对学生成绩管理系统中的内容进行输入、修改,可以添加记录、显示记录,还可对其中的成绩记录进行排序等等。使信息管理更具体、更明朗、更电子化,让人一目了然,给人们带来无穷的快捷。这次实训,使我们对C语言的掌握更加熟练,也解决了一些问题:1、解决手工记录和减少工作量,以及相关函数的使用。2、解决函数间的链接关系,使函数的调用更加方便灵活以及相关函数的使用。3、解决对单个函数如何操作和各种按键的功能设置以及相关函数的使用。4、解决对程序显示窗口的设置及对各种相关函数的使用。5、提高分析问题、解决问题和实际动手的能力。第二章使用工具与特点2.1C语言的发展历史本次C语言课程设计中,我们小组的题目是学生成绩管理,在设计过程中,我们使用的软件是TurboC 2.0.C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。早期的操作系统等系统软件主要是用汇编语言编写的(包括 UNIX操作系 统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较 差。为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以 实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作),例如:对内 存地址的操作、位操作等)。人们设想能否找到一种既具有一般高级语言特性 ,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种 情况下应运而生了。 C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。 1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。1963年英国的剑桥大学推出了CPL(CombinedProgram- ming Language)语言。CPL语言在ALGOL 60的基础上接近了硬件一些,但规 模比较大,难以实现。1967年英国剑桥大学的Matin Richards对 CPL语言作了 简化,推出了BCPL(Basic Combined Programming Language)语言。1970年 美国贝尔实验室的 Ken Thompson以 BCPL语言为基础,又作了进一步简化, 设计出了很简单的而且很接近硬件的 B语言( 取 BCPL的第一个字母),并用 B语言写第一个UNIX操作系统,在PDP-7上实现。 后来,C语言多次作了改进,但主要还是在贝尔实验室内部使用。直到1- 975年UNIX第6版公布后 ,C语言的突出优点才引起人们普遍注意。1977年出 现了不依赖于具体机器的C语言编译文本可移植C语言编译程序,使C移植 到其它机器时所做的工作大大简化了,这也推动了UNIX操作系统迅速地在各 种机器上实现。例如,VAX,AT&T等计算机系统都相继开发了UNIX。随着 UNIX的日益广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一对孪 生兄弟,在发展过程中相辅相成。1978年以后,C语言已先后移植到大、中、 小、微型机上,已独立于UNIX和PDP了。现在C语言已风靡全世界,成为世界 上应用最广泛的几种计算机语言之一。以1978年发表的UNIX第7版中的C编译程序为基础,Brian W.Kernighan和 Dennis M.Ritchie(合称K&R)合著了影响深远了名著The C Programming Lan- guage,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C。1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种 版本对C的发展和扩充 ,制定了新的标准,称为ANSI C。ANSI C比原来的标 准C有了很大的发展。1987年,ANSI C又 公布了新标准-87 ANSI C 。目前流行的C编译系统都是以它为基础的。2.2C语言的特点.简洁紧凑、灵活方便C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。2. 运算符丰富C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。3. 数据结构丰富C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。4. C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。5. C语法限制不太严格、程序设计自由度大一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。6. C语言允许直接访问物理地址,可以直接对硬件进行操作因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。7. C语言程序生成代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低1020%。8. C语言适用范围大,可移植性好C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。 第三章 系统分析与设置3.1系统功能本次课程设计的题目是学生成绩管理系统,能够简单的完成学生姓名,学号,成绩的录入,同时可以完成修改,删除,插入,排序,显示输入的资料。输入的信息通过结构体存入所对应的文件中,通过使用定义的各种指针添加,读取和删除信息。本组课程设计的总体思想是这样的,首先需要用户输入以有的文件名或者按回车直接进入,然后进入到的是学生成绩管理的总菜单,它包括:(姓名的输入与修改成绩的输入与修改成绩的显示退出)其中,姓名的输入与修改函数中又包含了项子函数,成绩的输入与修改函数中又包含了项子函数,成绩的显示函数中也包含了项子函数。具体结构功能图如图3.1所示:学生成绩管理系统退出成绩的显示成绩的输入与修改姓名的输入与修改1-成绩显示2-排序显示3-不及格显示4-退出1-输入成绩2-修改成绩3-退出1-输入姓名2-修改姓名3-删除姓名4-插入姓名5-显示姓名6-退出、 添加姓名子菜单1-添加在最前面2-添加在中间3-添加在最后4-退出图3.1 程序结构功能流程图3.2功能设计在程序设计中,我编制了修改和删除记录函数,记录的修改和删除是利用函数调用来完成的。3.2.1 修改姓名修改姓名是从Revname子函数开始,由图2.2修改姓名流程图所示。Revname子函数开始1定义整形变量j=0,iNo=0123YNStuj.num=iNoY4j+whilecontinue输出number=0!Do循环开始输出”input student number (-1end):”输出iNo的值iNo00breakiNo=0012YY输出iNo,的值3输出iNo不存在输入的值输出iNo,的值While(1)Y4结束N图3.2修改姓名流程图3.2.2 删除姓名删除姓名是从delname函数开始的,如图3.3删除姓名流程图所示。输出询问是否删除信息strcmp(S,cS)=0Stui.num!=-1while循环开始i=0;iY=0;cS0=0输入一个字符串赋值给cSdo循环开始输出“Input student name(Enter end):”do循环开始定义字符型数组cS10,cF,并分别赋值”,0定义整型变量I,iY,iNo,并分别赋值1,0,0开始NYbreak退出do while循环NYNY输入cF的值NcF=y| cF=YY输出Stui.num和Stui.mame的值stui.num=Stui+1.num; strcpy(S,Stui+1.nameNStui.num!=-1iY=1Yi+breakStui.num=Stui+1.num; strcpy(S,Stui+1.name);输出cS的值i+NiY=0Y输出cS的值没有找到Nwhile(1)Y结束第四章 系统功能实现4.1修改姓名修改姓名是从第一个纪录开始,用查找学号的方法,对要进行修改的学生进行查找。如果你没输入,则跳出盾环,或你输入的学号系统中没有找到则回到盾环体首重新输入。若找到则对你输入的学号的学生姓名进行修改。(1)运行函数后,首先输入一些纪录,按6回车就回到了Name menu的主界面如图4.1 图4.1 Name menu主界面(2)再按2回车就进入了修改姓名的界面,如图4.2 图4.2 修改姓名界面 (3)系统提示你输入学生的学号,例如你输入了1号按回车后,系统自动让你输入你要修改的姓名,输入后按回车,系统自动显示你修改后的结果。如图4.3 图4.3 修改1号的姓名为yyu程序原代码:/*姓名输入与修改函数Nameipt,调用修改姓名函数*/void Revname(STUTYPE *Stu)/*修改姓名函数 输入学号,修改姓名*/ int j=0,iNo=0;Do printf(ntt Input student number(-1 end):);/*输入学号*/ scanf(%d,&iNo); if(iNo=0! n); continue;while(Stuj.num!=iNo & Stuj.num!=-1) j+;if(Stuj.num=iNo) printf(tt no.%d%s Revise:,iNo,S); scanf(%s,S); printf(tt no.%d %sn,iNo,S);Else printf(ttt no.%d not exist. nn,iNo); while(1);4.2删除姓名删除姓名之前要先找到该同学姓名这一过程和修改姓名时查找同学姓名方法一样,如果你没输入学号则系统自动跳出,或你输入的学号系统内没有,则系统自动跳回到盾环首,若找到则对你输入的姓名的同学的纪录进行删除操作。首先运行函数,到Name menu主界面,按3后回车到了删除姓名的界面,如图4.4 图4.4 删除姓名界面 系统提示你输入同学的姓名,输入后系统问你是否真删除该同学姓名,如图4.5 图4.5 系统问你是否要删除该同学纪录 你若打y,则系统自动删除了该同学的纪录,并自动回到name menu主界面,若打n则系统直接回到name menu主界面。程序原代码:/*姓名输入与修改函数Nameipt,调用删除姓名函数*/void Delname(STUTYPE *Stu) int i=1,iY=0,iNo=0; char cS10=,cF=0;do ptintf(ntt Input student name(Enter end):);/*输入被删除学生姓名*/ gets(cS); if(cS0=0) break;/*直接按回车退出循环*/ i=0; iY=0;/*标志位,找到=1*/ while(Stui.num!=-1)/*查找要删除的学生姓名*/ if(strcmp(S,cS)=0) printf(tt no.%d %s Are you sure delete?,Stui.num,S);scanf(%c,%cF);/*确实删除吗?*/if(cF=y| cF=Y) stui.num=Stui+1.num; strcpy(S,Stui+1.name); while(Stui.num!=-1) i+; Stui.num=Stui+1.num; strcpy(S,Stui+1.name); /*将后面的姓名向前移*/ printf(tt %s deleted. nn,cS); else printf(tt no.%d %s n,Stui.num,S); iY=1; break; i+; if(iY=0) printf(tt not have find %s.nn,cS); while(1); 总 结编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强破自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误和漏洞,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论