图书前言

前言

上机实验是高级语言程序设计课程必不可少的实践环节,学生需要通过大量的编程训练,在实践中掌握程序设计的思想及方法。然而实验课堂的效率一直是困扰我们的一个大问题。随着编程量的增加,在有限的实验时间内,教师忙于应付重复性的代码检查而无法与学生进行更多的交流,学生唯恐漏掉作业检查影响实验成绩不得不浪费大量的时间等待,这些问题大幅降低了实践环节的效率。

在线评判是当前国内外流行的大学生程序设计竞赛所采用的一种评判模式,它支持程序的在线提交和实时评判。我们依据这一思想,建立了宁波大学在线评判系统(简称NBU OJ),设计、整理了大量的程序设计及算法的题目,构成了NBU OJ的题库,并将该系统用于大学一年级“高级语言程序设计C”课程的实践教学。本书是为《C程序设计方法及在线实践》(陈叶芳等编著,清华大学出版社出版)编写的配套实验指导用书及习题用书。全书的实验以NBU OJ为平台,详细介绍Visual C++下的编程要点以及OJ上的评判规则,书中的大部分题目都精选自NBU OJ题库(题目后面给出题号的都选自NBU OJ),可在NBU OJ在线提交并获得实时的评价反馈。NBU OJ面向因特网开放使用,网址为http://www.nbuoj.com。

本书提供了30多个实例分析、160多道上机实验题目以及两个综合课程设计,绝大部分题目都可在NBU OJ在线提交并获得自动评判。我们根据课程的教学要求对这些题目大致进行了难度的划分: 1星(★)表示较容易,2星(★★)表示中等难度,3星(★★★)表示较难。

本书对30多个实例分析提供了完善的参考代码,给出了一些调试步骤及技巧,并总结了常见的编程错误。另外的160多题题目供读者上机实验使用。读者可以先模仿实例分析,然后再做上机实验题,通过“模仿—调试—编写”的上机实践过程,循序渐进地熟悉编程环境及OJ平台,掌握程序设计的思想和方法。

本书的实验1介绍Visual C++ 6.0集成编程环境的使用,程序调试的步骤,各种错误的原因及修正方法,供读者熟悉C语言的编程环境。实验2介绍了宁波大学在线评判系统的使用,包括学生自主做题、教师指导做题、线上课程组的使用、OJ评判规则的介绍以及NBU OJ的特点等。其中线上课程组(Online Course)功能的开发为课程教学、班级人员的管理、成绩的管理提供了极大的方便。请读者仔细阅读实验2的内容,以便更好地利用NBU OJ提供的资源。实验3到实验14提供了C语言课程相关知识点的实例分析、参考代码、常见错误描述以及程序调试的步骤,同时提供若干实验题目供读者实践。实验15包含了两个综合的课程设计,可用于读者综合检测自己的程序设计水平。

致谢

感谢宁波大学信息科学与工程学院的王让定老师、陈华辉老师、王晓东老师、周宇老师,他们给我提出了很多建设性的思路和建议。

感谢宁波大学ACM集训队的队员们,他们和我一起为NBU OJ的建设和成长倾注了心血。他们是蒋明江、谢伟刚、叶青、吴奇、王启运、王晟宇、祝顶梁、韩马超、王杰波、赖敬峰、赵凯、陈善富、陈冬冬、王忠攀、李冰、陈雷、温兴慧、周新、张奕铭等同学。无法完全列举他们的名字,仅在此表示对他们的谢意。

感谢钱江波老师、郁梅老师、李纲老师,他们在NBU OJ的使用及题库的扩充方面给我提供了很大的支持。感谢和我一起参加程序设计课程建设及教学的其他老师,他们是董一鸿老师、石守东老师、何贤芒老师、宋宝安老师、钮俊老师、王小权老师,他们参与了NBU OJ的大量实践并及时提出了改进意见。

本书得到宁波大学计算机科学与技术专业国家高等学校特色专业建设、浙江省重点高校建设、浙江省本科院校“十二五”优势专业建设、浙江省高等教育教学改革项目和课堂教学改革项目、宁波大学精品在线开放课程、宁波大学混合式教学课程、宁波大学重点教研等项目的经费资助,谨致谢意。

本书的编写及题库的建设参考了近年来出版的大量书籍以及一些学校的在线评判系统,吸取了很多专家同仁的宝贵经验,在此一并表示衷心的感谢!

书中肯定会存在不足之处,竭诚欢迎广大读者和同行批评指正。作者电子邮箱: chenyefang@nbu.edu.cn。

陈叶芳

2016年8月