上海应用技术学院课程设计2011~2012学年第二学期设计题目成绩记录簿院(系)计算机科学与信息工程学院专业计算机应用技术班级11104114学号1110411414学生姓名蒋佳琴设计时间2012.06.25-2012.07.06指导教师马智娴提交日期2012.07.061110411414蒋佳琴程序设计语言课程设计报告上海应用技术学院课程设计任务书课程名称程序设计语言课程设计课程代码B704010设计题目1.小型商品管理系统2.个人收支管理3.日程表管理4.成绩记录簿5.信息发布平台6.银行信贷管理系统题目序号4设计时间2012.06.25~2012.07.06学院计算机科学与信息工程专业计算机应用技术班级11104114一、课程设计任务(条件)、具体技术参数(指标)1.在指导书提供的课程设计题目中选择一题或自选(但需经过指导教师认可)2.每个题目限一人完成,题目选定后不可更换。3.用户提供的主操作界面应该方便用户的操作。4.最后提交的课程设计成果包括:a)课程设计报告电子稿。c)源程序文件。d)可执行程序文件。二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)1.分析课程设计题目的要求;2.写出详细设计说明;3.编写程序代码,调试程序使其能正确运行;4.设计完成的软件要便于操作和使用,有整齐、美观的使用界面;5.设计完成后提交课程设计报告和源代码文件的电子文档。三、课程设计工作进度计划:第一天选择课程设计题目,分析课题的要求,确定设计方案;第二天按功能模块编写详细设计说明;第三天绘制程序流程图;第四~七天编写与调试程序;第八天写课程设计报告;第九天提交课程设计报告;第十天面试或答辩。四、主要参考资料[1]谭浩强.C程序设计(第四版).北京:清华大学出版社,2010[2]谭浩强.C程序设计题解与上机指导(第四版).北京:清华大学出版社,2010[3]HerbertSchildt.C语言大全(第四版).北京:电子工业出版社,2004[4]SamuelP.HarbisonⅢ,GuyL.Steele.C语言参考手册(第5版).北京:机械工业出版社,2003[5]程序设计语言课程设计指导书.指导教师(签名):马智娴教研室主任(签名):马智娴2012年6月25日2012年6月25日1110411414蒋佳琴程序设计语言课程设计报告目录1设计目的................................................................................................................................................52功能描述................................................................................................................................................52.1模块功能..............................................................................................................................................52.2流程图..................................................................................................................................................63总体设计..............................................................................................................................................133.1功能模块设计...................................................................................................................................133.2数据结构设计...................................................................................................................................133.3函数功能描述...................................................................................................................................134程序实现..............................................................................................................................................144.2运行结果...........................................................................................................................................255课程设计总结.......................................................................................................................................281110411414蒋佳琴程序设计语言课程设计报告成绩记录簿1.设计要求:基本功能a)添加成绩b)删除成绩c)查询学生成绩d)查询班级成绩e)退出拓展功能a)写入文件b)读取文件创新(自拟)功能:程序实现的其它功能由个人自拟。2.设计要求具体说明基本功能:成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分;输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0~100之间的整数,学分:1~5之间的实型数。添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:a)查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。b)查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。拓展功能:a)程序启动时先从文件读入数据,如果文件中没有数据则给出提示;b)每次修改的数据写入文件。3.提示定义合适的结构体类型,使用链表或数组的方式组织数据。成绩记录簿1.添加2.删除3.查学生成绩4.查班成绩表5.写入文件6.读取文件0.退出程序的主界面1110411414蒋佳琴程序设计语言课程设计报告1设计目的1.巩固和加深学生对C语言课程的基本知识的理解和掌握;2.掌握C语言编程和程序调试的基本技能;3.利用C语言进行基本的软件设计;4.掌握书写程序设计说明文档的能力5.提高运用C语言解决实际问题的能力2功能描述2.1模块功能2.1.1添加功能:添加学生基本信息中可以输入学生学号,学生姓名和学生班级。添加学生成绩可以输入学生的课程编号、课程名称、成绩、学分。并且可以判断输入数据的合法性。2.1.2删除功能:能够删除输入错误或者不想要的陈旧信息。2.1.3查询功能:能查询学生基本信息,和学生成绩。1110411414蒋佳琴程序设计语言课程设计报告2.2流程图图1系统功能菜单成绩记录簿添加删除查询学生成绩写入文件读取文件退出添加学生基本信息添加学生成绩删除学生基本信息删除学生成绩学号查询姓名查询课程代号查询储存读取结束查询班级成绩1110411414蒋佳琴程序设计语言课程设计报告图2添加(学生基本信息)开始提示输入检查学的合法性放入结构体数组中YN结束1110411414蒋佳琴程序设计语言课程设计报告图3添加(学生成绩)开始提示输入课程编号检查课程编号的合法性输入课程名字和成绩检查成绩的合法性输入学分检查学分的合法性计算学分放入结构体数组中结束YNYNYN1110411414蒋佳琴程序设计语言课程设计报告图4删除(学生基本信息)开始提示输入检查调出学生信息删除结束YN1110411414蒋佳琴程序设计语言课程设计报告图5删除(学生成绩)开始提示输入检查调出学生成绩删除结束YN1110411414蒋佳琴程序设计语言课程设计报告图6查询(学生基本信息)开始输入查询的课程序号判断课程是否存在Y输出该班级所有成绩,学分结束N1110411414蒋佳琴程序设计语言课程设计报告图7查询(学生个人成绩)图8查询班级课程成绩开始输入查询的课程序号判断课程是否存在输出该班级所有成绩,学分结束YN开始输入查询的学号n判断学生存在输出该学生所有成绩,学分结束YN1110411414蒋佳琴程序设计语言课程设计报告3总体设计3.1功能模块设计3.1.1添加功能设计:添加分为两部分添加学生基本信息和添加学生成绩。添加学生基本信息中要求输入学生学号,学生姓名和学生班级。添加学生成绩要求输入学生的课程编号、课程名称、成绩、学分。其中用结构体来建立输入的学生信息的形式。两个结构体间用静态链表连接,使其联系起来。3.1.2删除功能设计:删除也分为两部分删除学生基本信息和删除学生成绩。删除用后一个来覆盖前一个原理进行操作。3.1.3查询功能设计:查询学生成绩可以用3种方法来进行。1.学号2.姓名3.课程代号。班级查询,可输入课程代号,可得班平均分。3.2数据结构设计先建立两个结构体studen1,student2。再设立全局变量,建立循环以验证输入的合法性,全局变量累加,全局变量累减。3.3函数功能描述3.3.1#includestdio.h在使用标准函数库中的输入输出函数时,编译系统要求程序提供有关的信息(例如对这些输入输出函数的声明),#includestdio.h的作用就是用来提供这些信息的,stdio.h是C编译系统提供的一个文件名,stdio是“standardinput&output”的缩写,即有关标准输入输出的信息。在程序中用到系统提供的标准函数库中的输入输出函数时,应在程序的开头写上一行:#includestdio.h或者是#includestdio.h,这样才能调用库函数3.3.2#includectype.h。#includectype.h是在调用字符函数时,在源文件中包含的头文件。字符函数如:intisspace(intch);检查ch是否为空格制表或换行字符。“ctype”中c为字符型char的缩写,type为类型。3.3.3#includestring.hstring.h是个头文件,里面写的是关于字符串操作的一些基本函数。当程序中涉及对字符串的操作时,会用到这个头文件里面的函数。所以要把它include(包含)进来。3.3.4#includestdlib.hstdlib.h里面定义了五种类型、一些宏和通用工具函数。类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CU