C语言程序设计项目实训指导书.docx
《C语言程序设计项目实训指导书.docx》由会员分享,可在线阅读,更多相关《C语言程序设计项目实训指导书.docx(10页珍藏版)》请在冰豆网上搜索。
C语言程序设计项目实训指导书
C语言程序设计项目实训指导书
指导教师:
刘洁
计算机技术系
二〇一五年九月
内容简介
本实训项目为C语言程序项目开发实训,适用于计算机系各相关专业,在第一学年第一学期开设。
学生自己动手进行需求分析、项目设计、编码及测试,采用VC++6.0进行C程序的开发,以小组的形式完成。
通过综合实训培养学生综合运用所学的基础理论、基础知识、基本技能进行分析和解决实际问题的能力,加深对所学知识的理解和掌握,使学生受到C程序系统设计开发的综合训练,了解和掌握C应用程序开发基本模式,增强团队协作能力,提高职业技能和职业素质。
一.实训的目的与要求:
(一)实训目的
课程设计环节是高职高专院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。
通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学到的专业理论知识,而且能够培养学生工程意识、创新能力及团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。
正如一句行话所说“C语言入门容易得道难”,对于多数学生来说,在学习了C语言之后,除了应付全国计算机等级考试之外,不知还有其他用途,对丰富的C函数所知甚少,因而对C语言兴趣不大。
因此,本课程设计环节从算法、数据结构、C语言丰富的函数以及程序设计等方面进行了精心考虑和组织,追求典型性、完整性、实用性和趣味性,希望不仅能够提高学生学习C语言的兴趣,更为开发程序打下坚实的基础。
(1)加深对讲授内容的理解。
C语言程序设计课程中的一些语法规则和阶段性知识,只靠课堂讲授既枯燥无味又难以记忆,但它们都很重要,要想熟练掌握,必须经过大量实践加深对它们的理解与把握。
(2)通过设计,熟练上机调试程序。
学生上机时不应依靠别人帮助调试程序和排错,应该做到善于发现程序中的错误,并且能很快的排除这些错误,使程序能正确运行。
经验丰富的人,在编译连接过程中出现“错误信息”时,一般能很快判断出错误所在,并改正。
而缺乏经验的人即使在明确的“错误信息”下也往往找不出错误。
要真正掌握计算机应用技术,不仅要了解和熟悉有关的理论和方法,还要自己动手实现,尤其在程序设计课程中后者更为重要。
因此要求程序员不仅懂理论、会编程,同时能快速上机调试程序。
(3)C语言综合程序设计能力的提高。
学生对于C语言的学习不能仅停留在读懂简单程序和编写短小的阶段性程序阶段,应善于将所学的知识贯穿起来,综合运用C语言的全部知识,达到能够纵观全局,分析、设计具有一定规模的题目的要求,做到对知识的全面掌握和运用。
(二)实训要求
1、总体要求
利用学到的编程知识和编程技巧,通过布置具有一定难度的程序设计题目,帮助学生熟悉程序编写,及时查究错误,独立完成。
课程设计内容要求如下:
(1)对系统进行正确的功能模块分析、控制模块分析。
(2)系统设计要实用。
(3)编程简练、可用,功能全面,具有较好的可读性。
(4)说明书、流程图要清楚。
2、实训前的准备工作
为了充分利用上机时间,在进行实验前应事先做好各种准备工作,以提高的效率。
准备工作至少包括以下几点:
(1)了解所用VC++6.0技术的开发环境设置和使用方法;
(2)复习与实训题目有关的知识,熟悉实现方法;
(3)准备好上机所需的素材;
(4)对实训时可能出现的问题应事先作出估计,有疑问的地方应标上记号,以便在实训时给予特别注意;
(5)准备好上机时使用的参考书。
3、学生分组要求
4个学生一组,选出一名组长。
每一组交一份实训报告,一份作品。
4、实训结果要求
(1)项目代码要求:
能够正常运行,有必要的注释和文档。
(2)完成实训任务后,要认真撰写实训报告。
二.实训的前期准备(设备、用具与软件环境)
设备:
开通局域网与实习用机
软件环境:
VC++6.0
三.实训的题目
(一)学生成绩管理系统
1.项目描述:
设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能。
2.系统设计说明:
每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩。
输入功能:
可以一次完成若干条记录的输入。
显示功能:
完成全部学生记录的显示。
查找功能:
完成按姓名查找学生记录,并显示。
排序功能:
按学生平均成绩进行排序。
插入功能:
按平均成绩高低插入一条学生记录
删除功能:
如果输入错误,可以删除学生记录;
退出。
(二)模拟ATM机系统
1.项目描述:
利用函数调用实现ATM机功能的设计;系统的各个功能模块要求用函数的形式实现;提供一个界面来调用各个功能;调用界面和各个功能的操作界面应尽可能清晰美观。
2.ATM机系统设计:
试设计一简单模拟ATM机系统,系统以菜单方式工作,采用自定义函数设计各功能模块被主菜单调用,使之能提供以下基本功能:
(1)密码识别功能
(2)取款功能
(3)存款功能
(4)查询功能
(5)修改密码功能
(6)正常退出功能
各功能模块对可能出现的异常情况能进行简单的识别和纠错。
(三)企业人员管理系统
1.项目描述:
某小型公司,主要有4类人员:
经理、兼职技术人员、销售经理和兼职推销员。
现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。
2.系统设计说明:
人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
程序对所有人员有提升级别的功能。
月薪的计算方法是:
经理拿固定月薪,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成,销售经理既拿固定月薪也领取销售提成。
能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息。
(四)设计三星公司的设备管理系统。
三星公司现有以下设备:
普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%。
请编制-程序要求对所有的库存设备都能实现按照品名进行显示、查找、增加和删除及保存的功能。
(五)高校人事管理系统。
1.项目描述:
某高校主要人员有:
在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
现在,需要存储这些人员的人事档案信息:
编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。
2.系统设计说明:
添加删除功能:
能根据学院人事的变动情况,添加删除记录。
查询功能:
能根据编号和姓名进行查询。
编辑功能(高级):
根据查询对相应的记录进行修改,并存储。
统计功能:
能根据多种参数进行人员的统计(如在职人数、党员人数、女工人数、高学历高职称人数)。
5)保存功能:
能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。
人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
(六)图书信息管理系统
1.项目描述:
设计一图书信息管理系统。
2.系统设计说明:
系统以菜单方式工作。
能进行图书信息的录入,图书信息包括登录号、书名、作者名、分类号、出版单位、出版时间和价格等。
能进行图书信息的浏览。
4)能进行图书的查询和排序(按书名查询、按作者名查询)。
能进行图书信息的删除与修改。
(七)学生选修课程系统设计
1.项目描述:
假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分及开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
2.系统设计说明:
系统以菜单方式工作。
能进行课程信息的录入。
能进行课程信息的浏览。
4)能进行课程信息的查询(按学分查询、按课程性质查询)。
能进行选修课程。
(八)通讯录
1.项目描述:
设计一个同学通讯录
2.系统设计说明:
(1)创建通讯录。
输入学生的姓名、学号和电话号码等,并将它们存放在对应的数组中;每输入一组数据,记录数增1。
(2)显示通讯录。
将记录学生姓名、学号和电话号码的数组中的数据一一输出到屏幕上,可以根据实际记录数确定循环次数。
(3)查询通讯录。
分别按学号和姓名进行查询,查询时将输入的信息通过循环与相应数组成员一一进行比较。
(4)修改通讯录。
输入需要修改记录的学号,通过循环查找到该记录后,再输入新数据替代原有数据。
(5)添加通讯录。
判断输入的学号是否重复,若不重复再将输入的信息添加到对应的数组中,每输入一组数据,记录数增1。
(6)删除通讯录。
分别按学号和姓名进行删除。
(7)排序通讯录。
分别按学号和姓名进行排序。
排序方式可以是升序或降序。
(8)退出。
(九)学籍管理系统
1.项目描述:
设计一个简单的学籍管理系统
2.系统设计说明:
学生基本信息:
学号姓名性别宿舍号码电话号码
01张成成男501
02李成华女101
03王成凤女101
04张明明男502
05陈东男501
06李果男502
07张园园女102
学生成绩基本信息:
学号课程
编号课程名称学分平时成绩实验
成绩卷面
成绩综合成绩实得学分
01A01大学物理3667882
02B03高等数学478-190
01B03高等数学445-188
02C01VF3657666
功能要求及说明:
(1)数据录入功能。
录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩和卷面成绩共7个数据。
综合成绩、实得学分由程序根据条件自动运算。
①综合成绩的计算。
如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70%。
②实得学分的计算。
采用等级学分制。
综合成绩在90~100分之间,应得学分=学分*100%;综合成绩在80~90分之间,应得学分=学分*80%;综合成绩在70~80分之间,应得学分=学分*75%;综合成绩在60~70分之间,应得学分=学分*60%;综合成绩在60分以下,应得学分=学分*0%。
(2)查询功能。
分为学生基本情况查询和成绩查询两种。
①学生基本情况查询。
输入一个学号或姓名(可实现选择),可查询出此学生的基本信息并显示输出;输入一个宿舍号码,可查询出本室所有学生的基本信息并显示输出。
②成绩查询。
输入一个学号时,可查询出此学生的所有课程情况,格式如下。
学号:
××姓名:
×××××
课程编号:
×××课程名称:
×××××综合成绩:
××××实得学分:
××
课程编号:
×××课程名称:
×××××综合成绩:
××××实得学分:
××
课程编号:
×××课程名称:
×××××综合成绩:
××××实得学分:
××
共修:
××科实得总学分为:
×××
(3)排序功能。
能实现选择按综合成绩或实得学分升序或降序排序并显示数据。
(十)飞机订票系统
1.项目描述:
设计简单的飞机订票系统
2.系统设计说明:
(1)录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
(2)查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
(3)订票:
(订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
(4)退票:
可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
(5)修改航班信息:
当航班信息改变可以修改航班数据文件
(十一)公交一卡通系统。
1.项目描述:
试设计一公交一卡通系统。
2.系统设计说明:
1)添加新卡。
能够添加一张新卡,卡号按照自然数列向下自动产生,而用户姓名和卡内所续金额由键盘输入,此时卡内余额就是户输入的所续金额。
如果整个系统中的卡号之间出现了被注销过的卡标记,则先将此卡号分配给新卡使用,以便尽量保证该系统中卡号的连续性。
2)注销旧卡。
由用户输入卡号,判断该卡号是否存在,若存在并且该卡没有注销标记,则将该卡的余额退回给用户,同时对该卡做注销标记。
3)修改卡信息。
由用户输入自己的卡号,如果存在该卡,并且该卡没有被注销,则弹出一个小菜单列出允许修改的选项。
根据用户的选择让用户进行修改。
4)坐车读卡。
假设公交票价的规定是10站以内1元,11~15站2元,16~20站3元,21~25站4元,26~30站5元,每趟车不超过30站。
在乘公交车时,由用户输入自己的卡号和将要坐的站数。
如果该卡存在,并且该卡没有被注销,则系统根据票价的规定,从该卡的余额中扣除相应的票价。
在扣除票价时,如果卡内余额不足,则提示用户支付现金。
5)续钱并查找续钱最多的用户。
由用户输入自己的卡号和要续的金额,如果该卡存在,并且该卡没有被注销,则系统将所续的金额和卡内的余额之和作为最终卡内余额。
找出目前所续金额最多的用户,并显示其全部信息。
四.实训的设计进度安排
课程设计的题目应提前一周布置,以便学生作好充分准备。
一周的课程设计主要分成以下几个阶段:
(1)系统分析与设计阶段。
在前期资料查阅的基础上,学生对所选课题进行功能分析与设计。
(2)程序编制与调试阶段。
学生在老师的指导下独立完成程序的编制与调试,老师应实时考察学生的实际编程与调试能力。
(3)总结报告和书写说明书阶段。
学生根据规定的格式编写内含课题说明书的课程设计报告。
(4)答辩与考核阶段。
教师组成班级答辩组,对学生进行当面提问答辩,答辩既可以以语言表达的方式,也可以直接在机房中进行实际操作与调试。
教师将综合每一学生一周的表现及能力进行综合评分。
五.主要参考文献及资源
C程序设计人民邮电出版社宋铁桥
成绩评定及审批
成绩评定办法:
(说明:
根据学生在课程设计中的实际表现并结合实训报告的写作水平给予其“优、良、中、及格或不及格”的成绩。
)
学生在课程设计中的实际表现占70%,实训报告的写作水平占30%
优:
独立完成,代码规范,功能全部实现,并有一定扩展,有适当注释;实训报告撰写认真,体现一定技术水平
良:
基本能独立完成,代码规范,功能全部实现,有适当注释;实训报告撰写认真
中:
在教师指导下完成,功能基本实现,有适当注释;实训报告撰写较认真
及格:
在教师指导下完成,实现主要功能;实训报告撰写较认真
不及格:
不能完成项目
所在专业负责人审核意见:
负责人:
年月日
所在系审核意见:
负责人:
年月日