2011年计算机高级语言课程设计(C)要求与安排
- 格式:doc
- 大小:47.50 KB
- 文档页数:6
2011年计算机高级语言课程设计(C)
课程设计是实践性教学环节。
在C语言课程设计阶段,学生要通过模仿范例的练习最终完成独立的程序编制任务。
课程设计的目的是要让学生了解程序(软件)开发的规范方法,培养学生的实际编程能力。
在实际工作中,开发一个软件,在通过可行性论证后,软件交给用户使用前,一般要经过下列阶段。
需求分析/问题定义—设计—编写代码—组合测试
学生在完成课程设计后,应该对程序开发的各阶段及其任务有所了解和体会,通过学习和实践,初步学习和掌握程序开发过程的规范性方法。
学生是否掌握程序开发过程的规范,完成任务是否合理、正确、完备,就要通过课程设计报告表达出来。
教材:张冬梅, 等编著. 《C语言课程设计与学习指导》
课程设计安排
以上机实验的形式自学《C语言课程设计与学习指导》课程设计部分的内容为主,每位同学根据自己在班级中的序号,从该教材的第六章中选择对应序号的问题作为本次课程设计的题目,完成课程设计报告的编写。
最终的成绩将根据上机考勤、课程设计报告、软件程序的完成情况来确定,请大家认真完成。
课程设计报告的编写和提交要求
1)课程设计报告必须按照《中国地质大学本科生课程论文》的模
板编写,不符合格式要求的将扣分;
2)最终必须提交的东东包括:纸质《课程论文》一份,《课程论文》电子版一份,软件程序源码和数据(能够运行出论文中的结果)一份。
3)提交的最后期限:2012年1月6日
课程设计报告的主要内容
下面结合《C语言课程设计与学习指导》第5章的例题,说明课程设计报告的各部分应该包含的主要内容。
1、需求分析/问题定义
每位学生都有一个要完成的题目。
题目代表了一个实际需要解决的问题或者某项工作的实际操作过程。
“需求分析”就是由程序编制人员在深入理解用户工作过程或者用户要求的基础上,描述将要交给用户的程序(应用系统)运行后的执行情况(功能和效果),它要描述计算机将如何模拟完成用户的各项任务。
“需求分析”部分是用户最后验收程序的重要依据。
题目是从用户的角度出发、使用用户的语言来叙述的。
“问题定义”,它是程序设计人员与用户沟通后,从编程者的角度对问题的叙述,它是编程人员用计算机领域的术语来重新描述用户所提出的要求,用确定清晰的语言说明最终提交给用户的应用系统的性能。
“问题定义”是编程人员的检验、调整、修改程序时的重要依据。
以第5章(P67)的例题为例,这部分可以有(但不限于)这样的内容:
用户所要求的“学生成绩管理系统”是使用计算机对学生成绩的有关信息进行处理的一个系统。
它提供对数据的输入、查询、删除、排序、存储等管理操作。
与手工处理相比,使用计算机管理数据可以更高效,并可以提供一些自动化的处理。
(——问题定义)
根据用户要求,我设计的应用系统运行后,将呈现一个中文的选择菜单,当用户输入了选项的号码后,就转到相应功能的菜单界面,去完成相应的功能。
一项功能完成后,如果选择的不是“退出”所标示的号码,则系统将再次显示菜单。
系统提供的选项有:1、数据录入2、显示3、查找4、删除5、排序6、退出。
其中,“退出”是指退出“学生成绩管理系统”的运行。
“学生成绩管理系统”(以下简称系统)交给用户第一次运行时,有少量的学生的信息(10条),每个学生的信息按要求有学号、姓名、三门课程成绩和平均成绩共六项内容。
用户每一次运行学生成绩管理系统对数据所进行的修改(录入、添加、删除等),都会保存下来,在系统下次运行时可以调出使用,学生的数据只会因为执行删除操作被删去,不会因为退出系统的运行而消失。
系统具有友好的中文提示界面。
为了减少误操作的副作用,当用户对数据进行修改操作时,都会出现提示信息,请用户确认,然后才自动保存修改后的内容。
“数据录入”模块,需要输入的项目有姓名和三门课程成绩,其他项目——学号是自动生成的,平均成绩由输入数据自动计算产生;
“显示”功能是指显示当前所有学生的学号和姓名两项内容;
“查找”模块,可以根据输入的三个单项内容的值——姓名、学号和平均成绩,去查找内容相匹配的记录。
符合条件的记录,就将其全部数据显示在屏幕上,如果没有符合条件的记录,显示出“找不到符合条件的记录”信息;
“删除”模块,提供删除学生数据的功能。
根据输入的学号和姓名两项数据,查找两项内容都与之相匹配的记录,如果记录存在,在请用户再次确认后,可以执行删除操作,真正去掉该记录。
“排序”功能是按照用户所选择的一门课程或平均成绩,按照分数对学生进行排序后,依次显示出学生姓名和该项分数值。
用户选择“退出”操作后,退出“学生成绩管理系统”的运行。
2、总体设计
总体设计部分要包含以下内容:
系统的功能模块划分(图)。
如有必要,再用文字进行扼要说明。
列出自定义数据类型的定义、全局变量的定义。
说明数据文件存储的数据内容以及存储结构。
还是以第5章的例题来说明。
该题对应的总体设计可以有(不限于)以下的内容:
根据需求分析,对系统进行如下的功能模块划分,见图5_1。
(列出图5_1(P68))
系统中的全局变量数组stu及其数据结构定义:
#define N 500//N根据学生人数设置
struct student
{ char num[11];
char name[20];
int xcore[3];
float ave;
}stu[N];
在程序运行过程中,保存在磁盘文件上的学生成绩信息通过文件的读操作,读入到数组stu,全局变量数组stu在不同函数之间传递信息,对数据进行的修改也是经过先修改数组中的数据,最后再通过文件的写操作,存储至磁盘文件上。
数组stu类型是结构体类型struct student。
本系统中,存储学生成绩的数据文件名是score.txt,该文件中的数据是以struct student类型为单位组织起来,以二进制文件的形式存放的。
在系统首次提交给用户时,文件中有十条学生信息,便于用户学习系统操作时使用。
3、详细设计
选择具有代表性和典型性的模块进行祥细分析,其它模块则简明扼要地说明。
进行祥细分析的内容是1、叙述算法;2、列出流程图;3、说明模块内的控制实现的策略,指明完成控制的变量和控制逻辑;4、说明公共函数的功能等。
第5章的例题,可以选择修改或查找模块为例进行祥细分析。
4、代码与说明
程序代码可以仅作为附录出现。
代码部分也可以省略或者合并到祥细说明部分,如果代码较为复杂或者觉得确有必要,可以列出值得分析的代码片断进行分析说明。
调试程序/程序测试
从写出代码直至得到可以真正运行的系统,必须经过程序的调试和测试。
程序代码测试有一整套系统的理论和方法,有兴趣的同学可以看参考书了解更多内容。
测试程序的目的不是证实自己程序的正确性而是找出其中的潜在错误。
在调试程序时,可以有意输入一些边缘性的、不合理或者错误数据,测试程序是否能合理处理。
测试过程,可以发现程序中的错误。
在设计报告中可以列出一些你测试程序查找错误的思路做法,包括待测试的模块,准备测试数据的目的和测试数据,实际的输出结果,得出的结论,对程序作了什么修改等内容。
5、小结
这一部分是对课程设计学习过程的小结,也可以分类说明遇到的问题及解决的方法;当然也可以有感想之类的内容。
程序设计注意事项
在C语言课程设计阶段所编写的程序,是用程序解决实际问题的一次模拟练习。
在编程程序过程中,除了要考虑采用良好算法提高程序的效率之外,一个重要的要求是要多从用户的角度考虑问题,编写出符合用户习惯、有足够提示信息、易于用户操作的“用户友好”系统。
足够的提示信息程序运行过程中要求用户输入数据时,要让用户知道待输入数据的含义、格式、范围等内容;在界面转换或者出现菜单处,要对当前状况有明确交代。
例如,显示“工资查询结果界面”或者“设备管理系统主菜单”等等内容。
总之,提示信息要足以让用户明白自己要进行的操作,让用户随时掌握程序当前的运行状态。
提示用语符合用户习惯程序运行界面的文字,应该尽量使用中文。
在提示用语中,少用或者不用计算机专业的术语而用日常生活用语或者用户所属行业的术语代替。
例如,用“整数”代替“整型数据”;用“项目”而不使用“字段”等。
对程序运行的中间结果或者最终结果,要明确标示每项数据代表的含义以及数据的不同值所表示的意义,而不是简单显示存储数据所用的内存变量名称和变量的值。
例如,显示“方程没有实根”,不要显示“d<0”。
再如,查询结果显
示为婚姻状况:已婚而不要显示成:m == 1
减少和方便用户操作,1、减少用户的操作,如果要求输入的数据项是若干确定的内容之一,例如,性别、学历等项目,提供选项让用户选择而不是让用户输入具体值。
2、考虑到用户发生操作错误的可能性并能进行正确处理。
例如,由用户选择某操作时,让用户再确认一次;或者设置一个默认值,当用户操作错误时,按默认值进行处理。
如果是由用户输入数据,可以通过设置输入数据宽度来控制数据的范围,还可以设定出错的允许次数,在允许的次数内,用户可以重新操作,例如输入密码。
如果用户操作错误,一是要保护数据的正确性,二是要使程序继续运行或者正常结束,不能因此使程序运行受影响。
C课程设计上机时间。