12012年《C语言程序设计》课程设计_第1页
12012年《C语言程序设计》课程设计_第2页
12012年《C语言程序设计》课程设计_第3页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2012年C语言程序设计课程设计-大型作业任务书一、题目(1)题目1 三北防护林信息管理系统(2)题目2 .列车时刻表信息管理系统(3)题目3伦敦奥运会信息管理系统二、选题规定(1)学号尾数(最后一位)为:1、4、7、0者自动选择题目(1),即:题目1 三北防护林信息管理系统。(2)学号尾数(最后一位)为: 2、5、8者自动选择题目(2), 即:题目2 列车时刻表 信息管理系统。学号尾数(最后一位)为:3、6、9者自动选择题目(3), 即:题目3伦敦奥运会信息管理系统。三、需要处理的基础数据注:与中文字段名对应的英文字段名自己确定;类型和长度可以根据需要修改。(一)三北防护林信息管理系统1 省

2、自治区防护林基本信息参考: 省自治区包括:省自治区编号,省自治区名称,面积单位为:万亩;资金和救济金额单位为:万元中文字段名类型及长度举例或说明省自治区编号 char481代表青海省自治区名称char20青海省森林面积float12345.6789(万亩)木材畜积量float12345.6789(万立方米)沙漠面积float土地面积float该省土地总面积当年造林面积float当年造林资金float累计造林资金:float当年伐木面积float当年木材收益float累计木材收益 float当年经济林收益float累计经济林收益float所辖市县数 int总人口int2 县市防护林基本信息参考:

3、中文字段名类型及长 度举例县市编号char8815000代表青海省玉树县县市名称char20玉树县省自治区编号char481代表青海森林面积float12345.6789(万亩)木材畜积量float12345.6789(万立方米)沙漠面积float土地面积float该省土地总面积当年阔叶林造林面积float当年针叶林造林面积float当年经济林造林面积float当年造林资金float累计造林资金float当年伐木面积float当年木材收益float累计木材收益float当年经济林收益float累计经济林收益float人口int下辖林场数int3 .林木基本信息参考:中文字段名类型及长度举例林木

4、编号char8如815100代表高山栋编号林木名称char7如咼山栋,硬叶栋,水曲柳,黄花松县市编号char8815000代表青海省玉树县省自治区编号char481代表青海林木类别char10阔叶、针叶、经济林木面积float12345.6789(万亩),该林木累计面积木材畜积量float12345.6789(万立方米)当年造林面积float12345.6789(万亩),当年造林资金float当年该种林木的造林资金累计造林资金float该种林木的累计造林资金当年收益float当年该种林木的木材收益累计收益float该种林木的累计木材收益(二)列车时刻表信息管理系统1 .车次基本信息参考:中文字

5、段名类型及长度举例车次编号char8D3212车次名称char20武汉至上海南车次类型编码char1G、D、Z、T、K、N、L、Y车次类型名称char20G高速动车、D动车、Z直达 特快、T特快、K快速、N管 内快速、L临客、Y旅游列车所属路局编号char843001101所属路局名称char20武汉铁路局,郑州铁路局始发站char10始发时间char20YYYY-MM-DD-HH-MM-SS终到站char10终到时间char20YYYY-MM-DD-HH-MM-SS硬卧下铺全程票价float硬卧中铺全程票价float硬卧上铺全程票价float软卧下铺全程票价float软卧上铺全程票价floa

6、t硬座全程票价float全程运行时间char10HH-MM-SS全程运行里程int2 经停车站基本信息参考:中文字段名类型及长度举例车站编号char84300001车站名称char20武汉站所属路局编号char843001101车次编号char8D3212到站时间char10HH-MM-SS开车时间char10HH-MM-SS运行时间char10HH-MM-SS运行里程int硬卧下铺票价float注:从始发站计算硬卧中铺票价float注:从始发站计算硬卧上铺票价float注:从始发站计算软卧下铺票价float注:从始发站计算软卧上铺票价float注:从始发站计算硬座全程票价float注:从始发

7、站计算余票车次数量int3.经停车次基本信息参考:中文字段名类型及长度举例经停车次编号char8D3212经停车次名称char20武汉至上海南车站编号char84300001路局编号char843001101车次类型char6始发、经停、终到进站时间char10HH-MM-SS开车时间char10HH-MM-SS硬卧下铺票价float注:从本站到终点站硬卧中铺票价float注:从本站到终点站硬卧上铺票价float注:从本站到终点站软卧下铺票价float注:从本站到终点站软卧上铺票价float注:从本站到终点站硬座全程票价float注:从本站到终点站余票数量int(三)伦敦奥运会信息管理系统 1

8、代表团基本信息参考:中文字段名类型及长度举例代表团编号char6100001代表团名称char20中国体育代表团所在国char20中华人民共和国团长姓名char20团长联系方式char20参赛运动项目数int参赛运动员人数int教练员人数int裁判人数int其他辅助人员人数int代表团入住地地址char20代表团入住地电话char20预定房间数int需配备翻译人数int入住奥运村时间char20YYYY-MM-DD-HH-MM-SS离开奥运村时间char20YYYY-MM-DD-HH-MM-SS2 .参赛项目基本信息参考:中文字段名类型及长度举例参赛项目编号char41005参赛项目名称cha

9、r201005代表男子400米接力代表团编号char6100001项目领队姓名char8领队联系方式char20教练员人数int参赛运动员人数int历次取得最好成绩char20取得最好成绩时间char20YYYY-MM-DD-HH-MM-SS取得最好成绩地点char20违禁记录char1Y有,N无3. 参赛选手基本信息参考:中文字段名类型及长度举例参赛选手编号char8参赛项目编号char4代表团编号char6参赛选手姓名char8性别char1M/F出生日期char12YYYY-MM-DD出生地char20中国,湖北,武汉身高int182cm体重int72kg入围成绩char20最好成绩ch

10、ar20兴趣爱好char256四、需实现的系统功能(一)各种基本数据的录入1三北防护林信息管理系统省自治区防护林基本信息录入; 县市防护林基本信息录入; 林木基本信息录入; 其它信息录入。2 列车时刻表信息管理系统 车次基本信息录入; 经停车站基本信息录入; 经停车次基本信息录入; 其它信息录入。3.伦敦奥运会信息管理系统代表团基本信息录入; 参赛项目基本信息录入; 参赛选手基本信息录入; 其它信息录入。要求每个系统的1级链表、2级链表、3级链表都能够进行基本数据的录入。(二)各种基本数据的修改即:允许对以及录入的数据重新进行编辑、修改。如:修改省自治区防护林基本信息(修改1级链表中的结点);

11、修改经停车站基本信息(修改2级链表中的结点);修改参赛选手基本信息(修改3级链表中的结点)。要求每个系统的1级链表、2级链表、3级链表都能够进行基本信息的修改。(三)各种基本数据的插入如:在车次基本信息链(1级链)中插入一条新记录; 在参赛项目基本信息链(2级链)中插入一条新记录; 在林木基本信息链(3级链)中插入一条新记录等。要求每个系统的1级链表、2级链表、3级链表都能够进行新记录的插入。(四)各种基本数据的删除如:1删除 1 级链表中的结点 1-1删除三北防护林信息管理系统中省自治区防护林基本信息链中结点。算法(删除 1 级链表中的结点) : 遍历省自治区防护林基本信息链,找到对应结点;

12、 遍历该结点指向的县市防护林基本信息链; 对链中的每一个结点,删除其指向的林木基本信息链; 再删除该县市防护林基本信息链;最后删除省自治区防护林基本信息链中的对应结点。 1-2删除列车时刻表信息管理系统中车次基本信息链中结点。算法(删除 1 级链表中的结点) : 遍历车次基本信息链,找到对应结点; 遍历该结点指向的经停车站基本信息链; 对链中的每一个结点,删除其指向的经停车次基本信息链; 再删除该经停车站基本信息链;最后删除车次基本信息链中的对应结点。 1-3删除伦敦奥运会信息管理系统中代表团基本信息链中结点。算法(删除 1 级链表中的结点) : 遍历代表团基本信息链,找到对应结点; 遍历该结

13、点指向的参赛项目基本信息链; 对链中的每一个结点,删除其指向的参赛选手基本信息链; 再删除该参赛项目基本信息链;最后删除代表团基本信息链中的对应结点。 2删除经停车站基本信息链中的结点。算法(删除 2 级链表中的结点) : 遍历车次基本信息链,查找到车次基本信息链中对应结点; 遍历对应的经停车站基本信息链,查找到经停车站基本信息链中对应结点; 先删除该结点指向的经停车次基本信链; 然后删除经停车站基本信息链中对应结点;同时修改高校或研究所基本信息链中对应结点的相关数据。 3删除参赛选手基本信息链中的结点。3伦敦奥运会信息管理系统 代表团基本信息录入; 参赛项目基本信息录入; 参赛选手基本信息录

14、入;其它信息录入。算法(删除某个 3级链表中的结点) : 遍历代表团基本信息链,查找到代表团基本信息链中对应结点; 遍历对应的参赛项目基本信息链,查找到参赛项目基本信息链中对应结点; 遍历对应的参赛选手基本信息链,查找到参赛选手基本信息链中对应结点; 删除该结点。同时修改参赛项目基本信息链( 2 级链)和代表团基本信息链( 1 级链)中对应结点的 相关数据。要求每个系统的 1 级链表、 2 级链表、 3 级链表都能够进行结点的删除。(五)基于各种数据的查询如:三北防护林信息管理系统中各种数据的查询 查询指定省自治区的森林面积、 木材蓄积量、 沙漠面积、 当年造林面积、累计造林 资金、累计经济林

15、收益等。查询指定县市的木材蓄积量、 当年阔叶林造林面积、 当年经济林造林面积、 累计经 济林收益等。查询林木面积最大林木名称。 查询木材蓄积量最多的阔叶林林木名称。 查询累计造林资金最大针叶林林木名称。查询阔叶林、针叶林、和经济林中当年收益最大的林木名称。 列车时刻表信息管理系统中各种数据的查询 查询某指定车次的始发站、始发时间、终到站、全程运行时间、全程运行里程、硬 卧下铺全程票价。查询某车次某经停车站的到站时间、 开车时间、 运行时间、运行里程、硬卧下铺票 价,硬座票价。查询指定车次中指定经停车站中的指定经停车次的相关信息。 查询经停车次数量最多的经停车站。查询经停车次数量最多的经停车站中

16、离指定开车时间最近的经停车次。 伦敦奥运会信息管理系统中各种数据的查询查询指定代表团的团长姓名、 参赛运动项目数、 参赛运动员人数、 代表团入住地地 址、入住奥运村时间和离开奥运村时间。查询某代表团中某参赛项目的领队姓名、 参赛运动员人数、 历次取得最好成绩, 以 及是否存在违禁记录信息。查询某参赛项目的参赛运动员人数最多的领队姓名、代表团名称。 查询指定参赛项目中运动成绩最好的运动员姓名、年龄、身高、体重信息。 。(六)基于各种基本数据的统计计算如:三北防护林信息管理系统各种数据的统计 统计并输出三北防护林系统总的森林面积, 总的沙漠面积, 当年总的造林面积和当 年总的造林资金。统计并输出指

17、定省自治区当年阔叶林造林面积、 当年针叶林造林面积、 当年经济林 造林面积。统计并输出指定省自治区的林木种类数, 。 统计并输出木材蓄积量为前三名的县市。统计并输出林木的累计收益为前三名的林木名称及累计收益。 如:列车时刻表信息管理系统各种数据的统计 统计并输出高速动车的车次总数、动车的车次总数以及直达特快的车次总数。 统计并输出余票车次数量为 0(所有经停无余票)的车站数。 统计并输出尚有余票(未满乘)的车次数。 统计并输出指定时间发车数量为前三名的车站名称。统计并输出经停车次数量为指定数量的经停车站数量。 如:伦敦奥运会信息管理系统各种数据的统计 统计并输出本届奥运会总参赛运动项目数, 总

18、参赛运动员人数, 总教练员人数, 总 裁判人数。统计并输出某指定参赛项目的参赛运动员人数、 数。教练员人数、有违禁记录的代表团统计并输出本届奥运会参赛男女运动员的人数。统计并输出参赛运动员人数位居前三名的运动项目的名称。 统计并输出本届奥运会体重居前三名运动员姓名,年龄,身高。五、数据结构说明及举例(1)三个系统的数据结构都必须采用十字交叉链表,也允许辅之以其它链表来完成对系统 基础数据的完整描述。NULL地市1n 的图木木基图本信息链区2I _(三个系统县市分数据结构举例见head_ 省区1 _图head刻表信息管理系统十字交叉链表 团传参赛项目n的参赛选手基本信息链2I团NULL十44&#

19、163;“、I工中> k.亠»经停站站2基;k信息北防护林经P 经冷停息管理的经十字次基本:信息链图3伦敦奥运会信息管理系统十字交叉链表六、要求1、只能使用C语言,源程序编写格式要按照缩进方式,源程序要有详细的注释,使程序容 易阅读。(注:源程序编写格式的规范和注释体现程序员的素质,必须从本课程设计开始培 养。)2、要有用户界面。要求至少采用文本菜单界面;鼓励采用图形菜单界面。3、必须使用结构和十字交叉链表等数据结构。4、 使用三个数据文件来分别保存1级链表、2级链表、3级链表的数据。5、至少输出一份报表(能够显示即可),鼓励自行增加新功能。6、 写实验报告(要求正规打印,A4

20、幅面),内容包括:题目系统功能模块结构图(如图 4,图5所示)。数据结构设计及用法说明(列出程序中的struct设计和自己程序的使用、操作方法)程序结构(画流程图)(如系统总体流程图,某种查询、插入、删除程序实现的程序 流程图。要求采用教材中的标准流程图图符至少画两个流程图。)各模块的功能(解释如图 4中各个模块的软件功能)试验结果(包括输入数据的结果,查询、修改、删除的结果,可以拷屏实现结果的 报告)实验体会(必须真实的说出自己在课程设计中的切身体会。例如:如何构思、如何 设计、如何编程、如何调试?那些地方使你“痛苦不堪”?等等)参考文献附录:程序清单及源程序软盘注:每人以学号+姓名创建目录

21、,目录需包括实验报告电子文档和源程序以备检查。然后由 各班课代表汇总到 U盘上统一提交。7、 使用的C编译器没有限制。根据需要,可以任选TC、VC、CodeBlocks,开源C编译 器UCC、Linux平台下的gcc或其它编译器。鼓励选用Linux平台和gcc编译器;鼓励选用开源 C编译器UCC。8、 课程设计必做部分在9月开学第1周要进行中期检查。原则上要求至少完成60%以上的设计任务。9、凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩并向学院报告。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩并向学院报告。10、 附:封面格式,请根据所做题目修改封面中题目名称

22、。七、创建文本菜单与打印输出的提示1、使用TC创建文本菜单的相关函数window、textbackground 、clrscr 、textcolor 、cprintf 、bioskey、gotoxy、gettext 、puttext 、putch请自行查阅相关资料,了解这些函数的用法。2、 使用CodeBlocks创建文本菜单请参考C语言实验与课程设计。3、打印输出只在屏幕上输出。报表在屏幕上以表格形式输出。八、参考书目1、 C语言程序设计曹计昌,卢萍,李开编著科学出版社2、C语言实验与课程设计李开,卢萍,曹计昌编著科学出版社3、Turbo C使用大全第一册、第二册.徐金梧等编译北京科海培训中

23、心九、评分标准(百分制)1、上机演示占40% (40分)。其中功能演示占本部分的70% (28分),回答问题占本部分的 30% (12分)。2、课程设计报告占40%( 40分)。其中报告占本部分的70%(28分)(说明:其中实验体会占5分),源程序清单占本部分的 30% (12 分)。3、程序风格占20% (20分)。其中数据结构(如是否用十字交叉链表)以及代码的简洁性占本部分的50% (10分),程序注释占本部分的50% (10分)。第2部分-选做提咼部分一、题目(1)题目1. c输入输出库函数的程序设计(2)题目2简单C编译预处理程序设计(3)题目3. C程序的词法元素(token)分析提

24、取程序设计(4)题目4. Simulator and Assembler (简单处理器的 C仿真与汇编程序设计)(5) 题目5.算法设计与算法的 C编程实现二、选题规定(1) 课程设计的提高部分拟采用分组形式进行,目的是培养团队精神和协作能力。(2) 可由 2-4 人组成一组。(3) 各组可以根据兴趣从 4 个题目中任选 1 题做。(4) 也允许个人独立选做 1 题或多题。(5) 题目一经选定,由课代表统计分组情况后上报老师。且一般不允许变更。(6) 选做部分的时间另行安排,不占用规定部分时间。三、相关要求1、题目 1 C 输入输出库函数的程序设计要求(1) 给定 getchar 和 putc

25、har 函数, 实现其它 C 输入输出库函数。 如: gets,puts,printf ,scanf 等。并且在原函数名前加 my 构成新函数名。如: mygets, myputs, myprintf , myscanf 等。 对 myprintf 函数,其功能与 printf 函数相同。 但只要求支持简单的 %c,%d ,%s,%f ,%lf 格式说明。不要求域宽控制。对 myscanf 函数, 其功能与 scanf 函数相同。 但只要求支持简单的 %c,%d,%s,%f ,%lf 格式说明。(2) 鼓励实现参考书 1p241 APPENDIX B :Standard Library 中 B

26、1 Input and Output: <stdio.h> 中的其它库函数。(3) 创建 mylibrary.lib 库,将自己实现的库函数加入到该库中。(4) 对自行设计的每个库函数,编写实验程序,调用 mylibrary.lib 库自行设计的库函数,要 求得到正确结果。(5) 提交设计报告,在设计报告中要求提交测试结果报告以说明调用结果。(6) 提交详细注释的各个库函数清单,并且简短说明设计思路。2、题目 2简单 C 编译预处理程序设计要求 读一个带有编译预处理命令的 C 源程序,要求:(1) 用 #include 编译预处理命令中指定的头文件( .h 文件)内容替换源程序中的

27、 #include 命 令。(2) 对所读源程序中的 #define 编译预处理命令中指定的宏进行宏替换。 包括对带参的宏进行 宏替换。(3) 对条件编译预处理命令进行处理。(4) 输出预处理后的 C 源程序。文件名为:在原源程序名加 pre 前缀形成新的源程序名。(5) 提交设计报告、详细注释的译预处理程序清单,并且简短说明设计思路。3、题目3. C程序的词法元素(token)分析提取程序设计要求C中有六种词法元素:标识符(identifiers ),关键字(keywords),常量(constants),字 符串文字(string literals), 操作符(operators), 空白

28、字符(white space)(包括注释)。请参阅(toke n)进行分析和提取:、 、 要考虑左右两部分。 C 源程序名 .lex 文本文件中。1 p191 起的 APPENDIX A : Reference Manual。 读一个 C 源程序,要求对 C 程序的词法元素1) 分析和提取2) 分析和提取3) 分析和提取4) 分析和提取5) 分析和提取C 源程序中的标识符;C 源程序中的关键字;C 源程序中的常量;C 源程序中的字符串文字;C 源程序中的操作符。6)忽略 C 源程序中的空白字符 (包括注释 )。注: 浮点常量只考虑:整数 .整数形式;对()7)对分析提取的词法元素按照下列格式输

29、出到词法元素的输出格式(文本文件每 1 行的格式)如下:ex文件中的行号 token编号token .C程序中的行号.C程序中的列号 该token第几 次出现/女口: 10 6 ( 5 12 3表示.lex文件中的第10行,token编号是6,对应的token是左圆括号, 它在.C文件中的第5行,第12列,为第3次出现。注意:全部采用 ASCII码文本。(8)提交设计报告、详细注释的词法元素(token)分析提取程序清单,并且简短说明设计思路。4、题目4. Simulator and Assembler (简单处理器仿真和简单汇编程序设计)本题目要求和说明见 Simulator and Assembler.doc文件。要求提交设计报告,程序清单。5、 题目5.算法设计与算法的C编程实现要求(1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论