1、程序设计综合实践课程名称:程序设计综合实践计划学时:32 学时(1 周)一、 设计目的1、进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程设计开发文档的能力(书写课程设计报告) ;二、 设计要求和设计指标(参考附录题目范围)三、 考核形式考核办法:结合课程设计报告和平时情况评定。评分标准:程序与报告占 70,平时占 20,答辩占 10。实践项目合格为 60 分,评分等级为优秀、 良好、 中等、 及格、不及格五个级别。难度不同的
2、课程设计,视完成的情况给分,若完成指定的功能,按对应的标准给分,若在完成指定功能的基础上,还添加扩展功能,有创意,并且成功实现,给与一定的加分;未完成或有错误,酌情给分。四、 课程设计要求独立完成,严禁抄袭,如发现雷同,一经证实,相关人都按作弊处理,没有成绩,并且上报学院。五、 应提交材料1、课程设计报告(不少于3000字)1)课程设计题目、内容、要求。封面格式见附页。2)总体设计(包含几大功能模块) 。3)详细设计(各功能模块的具体实现算法流程图)4)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。5)调试分析(包含各模块的测试用例,及测试结果。 )6)总结(课程设计完成了哪些功能,
3、有没有什么扩展功能 还有哪些地方需要改进,及通过一周的课程设计有何收获,调试程序的体会等)2、源程序每个同学提交源程序(*.c) 、应用程序(*.exe) 、保存数据的文件*.dat和课程设计报告文档(*.doc) 。在统一答辩完成后,每个教学班交一张光盘,包含所有学生的资料,每个学生的资料放在以“学号姓名”命名的文件夹中。六、 思考题1、说明程序总体设计的基本思想有哪些?2、能否通过改进设计方法提高设计效率?附录 I:课程设计报告结构及要求(课程设计报告要求打印,用小 4 号宋字,行距 20 磅,A4 纸,上下左右各留边距 20mm。)hujdownload (1)封面(按学校统一规定格式)
4、封面包括:题目、学院、专业、班级、学号、学生姓名、指导教师及时间(2)摘要摘要是实践项目内容的简短陈述,一般不超过 400 字。关键词应为反映实践项目内容的通用技术词汇,一般为 4 个左右。(3)目录目录的三级标题建议按 1、1.1、1.1.1的格式编写。目录参考:1设计目的与要求2总体设计(包含几大功能模块)3详细设计(各功能模块的具体实现算法流程图)4数据结构设计描述,各模块(函数)的功能介绍,参数说明等。5调试分析(包含各模块的测试用例,及测试结果。)6总结(课程设计完成了哪些功能,有没有什么扩展功能 还有哪些地方需要改进,及通过一周的课程设计有何收获,调试程序的体会等)7答辩记录(正文
5、处请留出适当空白)8教师意见(正文处请留出十行空白)(4)正文正文应按目录中编排的章节依次撰写,要求计算正确,论述清楚,文字简练通顺,插图简明,书写整洁。(5)参考文献参考文献必须是学生在课程设计中真正阅读过和运用过的,文献按照在正文中的出现顺序排列。附录 II:学生实习报告课程名称_程序设计综合实践_题目名称_学生学院_ _ _专业班级_ _学 号_学生姓名_指导教师_胡隽 _2012 年 8 月 18 日附录 II:参考习题1. 车票管理系统一车站每天有 n 个发车班次,每个班次都有一班次号(1,2,3,n) ,固定的发车时间固定的路线(起始站、终点站) ,大致的行车时间,固定的额定载客量
6、。例如:班次 发车时间 起始站 终点站 行车时间 额定载量 已订票人数1 8:30 福州 广州 7 45 302 9:30 福州 厦门 2.5 40 403 8:00 福州 泉州 2 45 354 10:00 福州 福清 1 50 15功能要求:(1)录入班次信息(信息用文件保存) ,可不定时地增加班次数据。(2)浏览班次信息,可显示所有班次的当前状况。如果当前系统时间超过了某班次的发车时间,则显示“此班车以发出”的提示信息。(3)查询路线:可按班次号查询,也可按终点站查询。(4)售票和退票功能。当查询出已订票人数小于额定在量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。退票时,输
7、出退票的班次,当本班车未发出时才能退票,自动更新已售票人数。要求:采用文件方式存储数据,系统以菜单方式工作2图书管理图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格、库存量等。试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作(1)采编入库:新购入一本书,经分类和确定书号后登记到图书账目中去,若该书已存在,这库存量增加(2)借阅:若一种书的现存量大于 0,则借出一本,登记借阅者的图书证号和归还期限(3)归还:注销借阅者的登记,改变该书的现存量(过期罚款-选作)(4)清除库存:某书已无保留价值,将它从图书账目中注销(5)查询功能: 按书名查询 按作者名查询3 编
8、制万年历程序编写一个万年历程序,能显示日历,查询任意日期。日历初始化和显示。能根据系统日期进行初始化,并显示当前月份的月历,并突出显示当前日期。日期查询,可以输入一个日期,然后查询并正确显示日期所在月份的月历,并突出显示查询日期,如果输入日期不正确给出提示。4. 通讯录管理系统设计一个学生通讯录管理系统 ,在链表程序的基础上,增加查询功能,设计要求如下:1、文件功能1) 存储文件使用指定文件名或默认文件名;2) 可以不保存输入记录,但需要确认是否保存输入记录;3) 如果已有文件,只能在其后追加;4) 新增记录可以不存入原文件中,可以用原来的文件覆盖内存的内容;2、输入功能1) 可以从文件中读入
9、;2) 可以直接从键盘输入;3、删除记录1) 可以按“姓名”或“电话”方式删除记录并更新内存链表内容;2) 能给出被删除的信息,输出没有找到的信息;3) 如果已经是空表,上出时应给出信息并返回主菜单;4) 如果没有要删除的信息,输出没有找到的信息;5) 删除操作仅限于内存,只有执行保存记录时,才能覆盖原记录;4、查询记录1) 可以按“姓名”或“电话”方式查询记录;2) 能给出查询记录的信息;3) 如果查询的信息不存在,输出没有找到的信息;5、更新记录功能1) 可以随时修改、排序或插入新记录,其中排序、修改和插入可以选择可按姓名或电话进行操作;2) 姓名可由 16 位字符和数字的混合编码组成;3
10、) 电话号码可由 18 位字符和数字组成;6、输出记录功能1) 将输出信息加上输出信息信息栏,例如:姓名 电话 性别 年龄 生日 宿舍李四 1234 男 21 7 月 1 日 东二 3332) 可以将记录存盘,保存到文件以上功能的功能选择需要在屏幕上列出各个选择项,然后接受键盘的输入作选择。但如用菜单实现将有加分。7、测试程序1) 应列出测试大纲对程序进行测试;2) 应保证测试用例测试到程序的各种边缘情况。5. 学生成绩管理系统设计一个学生成绩管理系统,对上学期的本班的学习成绩进行管理,可以用数组来设计这个程序,具有查询和检索功能,并且能够对指定文件操作,也可将多个文件组成一个文件。1、设计内
11、容1) 每一条记录包括一个学生的学号、姓名、性别、各门课成绩(上学期的科目)、平均成绩。2) 输入功能:可以一次完成若干条记录的输入。3) 显示功能:完成全部学生记录的显示。4) 查找功能:完成按姓名或学号查找学生记录,并显示。5) 排序功能:按学生平均成绩进行排序。6) 插入功能:按平均成绩高低插入一条学生记录。7) 将学生记录存在文件student.dat中。8) 应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、设计要求已知有存储本班学生记录(包括学号、姓名、科目成绩、性别、 )的文件student.dat,所有学生以学号从小到大排序(该文件自行建立) 。要
12、求编程序实现查询、排序、插入、删除诸功能。具体要求如下:1) 要求显示如下界面a) *a) 1-查询b) 2-排序c) 3-插入d) 4-删除b) *c) 通过选择 1-4 来确定要做哪一个操作。2) 若选 1,则出现如下界面a) *a) 1.1-按学号查询b) 1.2-按姓名查询c) 1.3-按成绩查询b) *c) 通过选择 1.1-1.3 来确定要做哪一个操作,其中:按姓名查询用顺序法实现;按成绩查询实现查询成绩小于 m 分的学生;找到该生将学生记录输出到屏幕,若查无此人,输出相关信息。3) 若选 2,则按成绩从大到小排序,姓名,学号顺序也随之调整。4) 若选 3,将一个新学生记录按学号顺
13、序插入,并把结果保存到文件student.dat 中。5) 若选 4,删除指定学生的记录,并把结果保存到文件 student.dat 中。6) 不同的模块都要有出错处理,并能给出出错提示。如输入数据错误,文件操作错误等等7) 以上各个功能均编写成子函数,由主函数调用实现。8) 利用结构体数组实现学生成绩的数据结构设计;9) 完成设计任务并书写课程设计报告。6. 长整数四则运算【问题描述】设计任意两个长正整数(小于 80 位)的加法函数 add()和乘法函数mult(),并求任意整数(58 )的阶乘。【实现提示】用无符号整型或字符型数组存储任意长整数。 【测试数据】6!=7209!=362880
14、19!=121645100408832000039!=20397882081197443358640281739902897356800000000 7. 保龄球计分【问题描述】打保龄球是用一个滚球去撞击 10 个站立的瓶,将瓶击倒。一局分 10 轮,每轮可滚球 1 次或多次,以击到的瓶数为依据计分,一局得分为 10 轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一轮或两轮得分。计分规则如下: 若某一轮的第一次滚球就击倒全部 10 个瓶,则本轮不再滚球(若是第 10 轮还需加 2 次滚球) ,该
15、轮得分为本次击倒瓶数 10 与以后 2 次滚球所击倒瓶数之和。 若某一轮的第一次滚球未击倒全部 10 个球,则对剩下未击倒的瓶再滚球一次,如果这 2 次滚球击倒全部 10 个瓶,则本轮不再滚球(若是第 10 轮还需加 1 次滚球) ,该轮得分为这 2 次击倒瓶数 10 与以后 1 次滚球所击倒瓶数之和。 若某一轮 2 次滚球未击倒全部 10 个瓶,则本轮不在滚球,该轮得分为这 2 次滚球所击倒瓶数之和。【实现提示】 模拟 10 个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。 逐人逐轮逐次输入一次滚球击倒的瓶数。 对 10 人的得分由低到高排序并显示。 最后,把排序的存入文件中。【测试
16、数据】自定模拟数据8 学生管理系统使用下面的数据,用 C+设计一个简单的学籍管理系统,实现出最基本的功能。学生基本信息文件(A.TXT)及其内容:A.TXT 文件不需要编程录入数据,可用文本编辑工具直接生成学号 姓名 性别 宿舍号码 电话号码2006001 张成成 男 501 87732111 . 学生成绩基本信息文件(B.TXT)及其内容:学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分2006001 A01 大学物理 3 66 78 82 2006002 B03 高等数学 4 78 -1 90 . . (一)功能要求及说明:(1) 数据录入功能 : 对 B.
17、TXT 进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共 7 个数据. 综合成绩、学分由程序根据条件自动运算。综合成绩的计算:如果本课程的实验成绩为 -1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%; 如果实验成绩不为-1, 表示本课程有实验 ,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70% . 实得学分的计算: 采用等级学分制 . 综合成绩在 90-100 之间 ,应得学分=学分*100% 综合成绩在 80-90 之间 ,应得学分=学分*80%综合成绩在 70-80 之间 ,应得学分=学分*75% 综合成绩在 60
18、-70 之间 ,应得学分=学分*60%综合成绩在 60 以下 ,应得学分=学分*0%(2)查询功能:分为学生基本情况查询和成绩查询两种A:学生基本情况查询:A1-输入一个学号或姓名(可实现选择) ,查出此生的基本信息并显示输出。A2-输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。B:成绩查询:B1:输入一个学号时,查询出此生的所有课程情况,格式如下:学 号:xx 姓 名:xxxxx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩
19、:xxxx 实得学分: xx 共修:xx 科,实得总学分为: xxx(3)删除功能:当在 A.TXT 中删除一个学生时,自动地在 B.TXT 中删除此人所有信息。(4 ) 排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。9. 简易库存- 销售管理系统 某公司销售员(编号:E0001-E000N) ,负责销售产品(编号: p0001-p000m) 。每个销售员在销售商品时,根据库存情况,执行订单操作(销售表,更新库存) 。试设计一个简易库存-销售管理系统,使之能提供以下功能:1、系统以菜单方式工作2、销售表信息录入功能(销售表信息用文件保存 )输入3、统计销售情况1)计算每个人每种产品的销售额。2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4. 对库存中零库存的商品,提出警示(建议进货) 。5. 当某种商品停产或有新产品时,及时更新产品信息。