c语言课程设计报告模版
- 格式:doc
- 大小:75.50 KB
- 文档页数:10
文华学院
C语言课程设计报告题目:
学生姓名:学号:
学部(系):
专业年级:
指导教师:
2016年3月
(题目)
1. 概述
(对题目要实现的功能做介绍)
2. 设计任务分析
(分析问题,用什么方法解决,关键解法和技术;用什么数据存储方式如数组还是链表等)
3. 系统总框图
(通过画图展示整个程序的功能结构,代码模块划分等,请参见范例)
4. 功能模块描述
(分小点阐述各个代码模块的功能和实现技术,比如主函数,各个子函数的实现方法等)
5. 源程序
(列出完整源程序,用注释方法加以注释)
6. 运行测试及调试
(适当抓3-5图片,演示程序的运行结果或调试过程)
7. 结语
(总结编写代码、调试过程中的经验教训;遇到的错误及解决办法;感想等)。
c语言课程设计报告详细版一、课程目标知识目标:1. 掌握C语言的基本语法和结构,包括变量声明、数据类型、运算符、表达式和语句。
2. 理解并能运用控制结构,如顺序、选择和循环结构进行程序设计。
3. 学会使用数组、函数和指针进行程序开发,并能理解它们在解决复杂问题中的应用。
4. 熟悉基本的输入输出操作,文件操作以及简单的错误处理机制。
技能目标:1. 能够编写简单的C程序,解决实际问题,展现出逻辑思考和问题解决的能力。
2. 能够阅读和分析C程序代码,理解程序的结构和执行过程。
3. 能够使用调试工具检查和修正程序中的错误,提高程序的稳定性和可靠性。
4. 能够通过小组合作,完成一个综合性的项目,培养团队协作和项目管理的初步技能。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发探究计算机科学的热情,形成主动学习和终身学习的习惯。
2. 培养学生的创新思维和批判性思维,鼓励尝试不同的解决方案,勇于面对编程中的挑战。
3. 增强学生的信息意识和责任感,理解程序在现实生活中的应用和影响,认识到编程对社会发展的贡献。
4. 通过项目实践,培养学生的集体荣誉感,加强沟通能力,形成良好的团队合作精神。
课程性质分析:本课程为高年级的C语言程序设计,旨在通过项目驱动的教学方法,使学生在实践中掌握C语言的编程技能,并能够在日常生活和学习中应用。
学生特点分析:学生具备一定的逻辑思维能力,对计算机编程有一定兴趣,但个体差异较大,需要针对不同层次的学生设计不同难度和类型的教学活动。
教学要求:1. 结合实际案例进行教学,强调理论知识与实践操作的结合。
2. 注重培养学生的实际编程能力和问题解决能力,鼓励学生自主探索和协作学习。
3. 通过形成性评价和总结性评价相结合的方式,全面评估学生的学习成果。
二、教学内容1. C语言基础- 变量与数据类型- 运算符与表达式- 输入输出函数- 顺序结构程序设计2. 控制结构- 选择结构(if-else)- 循环结构(for、while、do-while)3. 函数与数组- 函数定义与调用- 数组的使用- 二维数组4. 指针与字符串- 指针的概念与使用- 指针与数组- 字符串处理函数5. 文件操作与错误处理- 文件的打开与关闭- 文件的读写操作- 简单错误处理6. 综合项目实践- 项目需求分析- 功能模块划分- 编程实现与调试- 项目展示与评价教学内容安排与进度:第一周:C语言基础第二周:控制结构第三周:函数与数组第四周:指针与字符串第五周:文件操作与错误处理第六周至第八周:综合项目实践教材章节关联:《C程序设计》第一章至第五章,涵盖课程教学内容中的所有知识点,为综合项目实践打下基础。
C语言程序设计课程设计报告题目:设计者:专业班级:学号:指导教师:所属系部:年月日辽东学院信息技术学院学生成绩管理系统说明文档概述本系统主要实现用户登录,显示菜单,学生信息的输入、输出、按学号查询学生信息、按成绩降序排序,把学生信息保存到文件,从文件中导出学生信息等功能。
在输入信息时进行数据的有效性验证。
模块结构图1:登录功能:用户输入口令,如果与系统内保存的密码相一致,则登陆成功;否则重新输入口令,直至输入口令正确才可以登录系统。
(可增加将口令加密后存入文件,登录时读文件机密后判断)2:显示主菜单:用户登录成功,系统显示图形界面,显示系统功能的提示信息。
3:学生信息输入:用户输入要添加的学生的学号、姓名、成绩等信息,系统逐个保存学生信息。
当用户输入学号为0时,输入结束。
输入数据时,来验证数据的输入格式正确,保证学号唯一性4:学生信息输出:将结构体数组中的学生信息输出到屏幕上5:按学号查询学生信息:用户输入要查询学生的学号,系统查询该学号在结构体数组中是否存在,存在则输出该学生的全部信息;否则,输出not found。
6:成绩排序:对结构体数组中的所有学生按成绩有高到低的顺序排序,用冒泡法(或其它排序方法)来实现。
7:导出数据:把结构体数组中的学生信息保存到磁盘文件里8:导入数据:从外部文件中导出学生信息到结构体数组里9:退出:结束程序运行。
系统流程图学生成绩管理系统系统流程图函数声明列表使用说明本系统较为简单,运行系统时要参照系统流程图顺序;1)用户登陆系统,先输入口令,正确,登陆成功;否则,系统等待再次输入口令,直到输入正确才能登陆系统。
2)显示主菜单3)依次选择菜单上的1-7,执行相应的功能,然后重新显示主菜单4)最后选择8,退出系统。
cyuyan课程设计报告模板一、教学目标本课程的教学目标是让学生掌握C语言的基本语法、数据结构和算法,培养学生编写简单程序的能力,使学生了解计算机编程的基本思维和方法。
具体来说,知识目标包括:了解C语言的基本语法、数据结构和算法;技能目标包括:能够运用C语言编写简单的程序;情感态度价值观目标包括:培养学生对计算机编程的兴趣和热情,提高学生解决问题的能力。
二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法、数据结构和算法。
教学大纲如下:1.C语言的基本语法:变量、数据类型、运算符、表达式、语句等。
2.数据结构:数组、链表、栈、队列等。
3.算法:排序算法、查找算法、递归算法等。
三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。
1.讲授法:通过讲解C语言的基本语法、数据结构和算法,使学生掌握相关知识。
2.讨论法:引导学生针对案例进行分析,培养学生的思考和解决问题的能力。
3.案例分析法:分析实际编程案例,使学生更好地理解C语言的应用。
4.实验法:让学生动手编写程序,提高学生的实际编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料。
2.参考书:推荐一些经典的C语言编程参考书,丰富学生的知识储备。
3.多媒体资料:制作精美的课件、教学视频等,提高学生的学习兴趣。
4.实验设备:提供充足的计算机设备,确保学生能够进行实验和实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试。
平时表现主要评估学生的出勤、课堂参与度和团队合作能力;作业分为编程作业和实践报告,主要评估学生的编程能力和实际操作能力;考试分为期中和期末考试,主要评估学生对C语言基本语法、数据结构和算法的掌握程度。
评估方式客观、公正,能够全面反映学生的学习成果。
六、教学安排本课程的教学安排如下:共计32课时,每周2课时,共16周。
C语言课程设计报告模版Course Design reporter课程名称: C语言课程设计英文名称 : Course Design of C Programming 专业:经济学+软件工程111学号:姓名:指导教师:赵力日期:2020年 7月12日至2020年 7月18 日大连交通大学软件学院《C语言课程设计》报告C Program Experiment Designing课程编号:0120308006学时: 40学时适用专业:软件工程专业授课单位:软件学院一、C语言课程设计目的及要求目的:依照课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积存调试C程序的体会;通过完成辅导教材中的编程题,逐步培养学生的编程能力、用运算机解决实际问题的能力。
要求:1.熟悉Microsoft Visual C++ 6.0 的编程环境、要紧菜单功能。
2.通过上机验证运算符、表达式、运算规则、函数使用。
3.熟练使用C语言的典型语句编写简单程序。
4.调试典型例题或习题。
5.提高上机编程能力二、实验类型设计类型三、实验学时40学时四、实验设备微型运算机、Windows XP操作系统、Microsoft Visual C++ 6.0软件一套五、C语言课程参考教材:[1] 李瑞,徐克圣,刘月凡,戚海英.C程序设计基础(第2版). 清华大学出版社.2011-2[2] 梁旭,谷晓琳,黄明.C语言课程设计(第2版).人民邮电出版社,2009-8课程设计(报告)任务书任务及要求:1.设计(研究)内容和要求研究内容:C语言课程设计题目相关内容5个小程序都分别是什么任务和要求:(1)学习C语言基础知识,把握C语言编程和程序调试的差不多技能。
(2)对指导教师下达的题目进行系统分析。
(3)依照分析结果完成系统设计。
(4)编程:在运算机上实现题目的代码实现。
(5)完成对该系统的测试和调试。
(6)提交课程设计报告。
课程设计报告模板c语言一、课程目标知识目标:1. 理解C语言的基本语法结构,掌握变量定义、数据类型、运算符等基础知识;2. 学会使用控制结构,如顺序结构、分支结构和循环结构;3. 掌握函数定义、声明和调用的方法,理解局部变量和全局变量的概念;4. 了解数组、字符串和指针的使用,并能运用它们解决实际问题。
技能目标:1. 能够运用C语言编写简单的程序,解决问题;2. 培养良好的编程习惯,如规范命名、合理注释、代码缩进等;3. 学会使用编译器进行程序编译、调试和运行;4. 能够阅读和分析简单的C程序代码,提高编程能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情;2. 培养学生的逻辑思维能力,提高问题解决能力;3. 培养学生的团队协作意识,学会与他人分享编程经验;4. 培养学生严谨、细心的学习态度,养成良好的编程习惯。
课程性质:本课程为初中年级的信息技术课程,旨在让学生掌握C语言编程的基本知识和技能。
学生特点:初中学生具有较强的逻辑思维能力和学习兴趣,但对编程知识了解较少。
教学要求:结合学生特点,注重理论与实践相结合,通过实例分析、编程实践等方式,使学生能够掌握C语言的基本知识,提高编程能力。
在教学过程中,关注学生的情感态度,激发学习兴趣,培养良好的编程习惯。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. C语言基础知识- 变量定义、数据类型和运算符- 输入输出函数的使用- 顺序结构程序设计2. 控制结构- 分支结构(if、if-else、switch)- 循环结构(for、while、do-while)3. 函数- 函数定义、声明和调用- 局部变量和全局变量- 递归函数4. 数组、字符串与指针- 数组的使用和操作- 字符串的基本操作- 指针的概念和用法5. 编程实践- 编写简单程序,解决问题- 分析实例代码,提高编程能力- 调试程序,找出并修复错误教学内容安排与进度:第一周:C语言基础知识,顺序结构程序设计第二周:控制结构(分支、循环)第三周:函数的定义和调用,递归函数第四周:数组、字符串与指针第五周:编程实践与总结教材章节关联:教学内容与教材相应章节紧密关联,确保学生能够在学习过程中系统地掌握C 语言知识。
c语言程序设计实验报告模板篇一:C语言程序设计实验报告一、实验目的:1、掌握C语言的数据类型和变量的声明。
2、掌握不同类型数据之间赋值的规律。
3、掌握C语言的运算符和表达式的使用。
4、熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容:①输人程序:#includevoid main { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); } ②运行此程序并分析结果(2)按习题4. 8要求编写程序题目为: 设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。
程序:三、实验步骤:①输人程序:#includevoid main { int a, b; float d,e; char c1,c2; double f, g; long m, n;unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }②运行此程序并分析结果。
c语言课程设计设计报告c语言课程设计设计报告「篇一」c语言课程设计实验报告第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。
(]1.2 实验要求在报告中记录建立、保存C程序实习过程。
1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main{printf (“Hello World! ”);}2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。
第二章数据类型2.1 实验目的(1)掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。
()(2)通过编程进一步理解和掌握运算符的确切含义和功能。
2.2 实验要求(1)在报告中记录建立、保存C程序实习过程。
(2)完成典型题目,分析遇到的困难和实验中的收获。
2.3 实验基本内容输入程序,观察输出结果 1>./*test2.1c*/1)编译如下程序: #includevoid main{char ch; int k;ch='a',k='b';printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d ",k) }2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
2>./*test2.2c*/1)编译如下程序: #includevoid main{float a1,a2; double b1,b2; a1=1234.12; a2=0.000001; b1=1234.12; b2=0.000001;printf("%f,%l f ",a1+a2,b1+b2);}2)链接。
c 课程设计报告模板一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、编程思想和编程方法,培养学生具备运用C语言解决实际问题的能力。
具体目标如下:1.知识目标:(1)了解C语言的发展历程和特点;(2)掌握C语言的基本语法和数据类型;(3)熟悉C语言的运算符、表达式和语句;(4)理解函数的定义和调用;(5)掌握数组、指针和字符串的使用;(6)了解结构体、共用体和枚举类型;(7)掌握文件操作和数据结构。
2.技能目标:(1)能够使用C语言编写简单的程序;(2)具备阅读和理解C语言程序的能力;(3)掌握C语言程序的调试和优化方法;(4)能够运用C语言解决实际问题。
3.情感态度价值观目标:(1)培养学生的编程兴趣,提高学生对计算机科学的热爱;(2)培养学生团队合作精神和自主学习能力;(3)使学生认识到C语言在实际应用中的重要性。
二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.C语言的基本语法和数据类型;2.运算符、表达式和语句;3.函数的定义和调用;4.数组、指针和字符串的使用;5.结构体、共用体和枚举类型;6.文件操作和数据结构;7.实际应用案例。
教学过程中,将按照由浅入深、循序渐进的原则,合理安排教学内容的安排和进度。
三、教学方法为了提高教学效果,将采用以下教学方法:1.讲授法:讲解C语言的基本语法、数据类型、运算符、函数等内容;2.案例分析法:分析实际应用案例,使学生掌握C语言在实际问题中的应用;3.实验法:安排上机实验,让学生动手编写C语言程序,巩固所学知识;4.讨论法:学生进行小组讨论,促进学生之间的交流与合作。
四、教学资源为了支持教学内容和教学方法的实施,将准备以下教学资源:1.教材:《C程序设计语言》(K&R);2.参考书:《C Primer Plus》、《C和指针》;3.多媒体资料:教学PPT、视频教程;4.实验设备:计算机、网络环境。
通过以上教学资源,为学生提供丰富的学习体验,提高教学质量。
XX学院C语言课程设计报告课程名称: C语言课程设计课程编号:报告题目: 学生姓名: 学号:专业成绩: 任课教师:评阅日期:C语言课程设计报告一、 C语言课程设计的目的C语言的教学是学生根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力;具体来说:1.进一步掌握和利用C语言进行程设计的能力; 2、进一步理解和运用结构化程设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或N-S图表示算法; 6、掌握书写程设计开发文档的能力书写课程设计报告;二、课程设计报告正文1课程设计题目的原文;假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量;试设计一民航订票系统,使之能提供下列服务:航班信息录入功能文件保存完成航班信息浏览功能;查询航线至少一种查询方式;2题目的分析需求分析;任务:通过此系统可以实现如下功能:录入:可以录入航班情况数据可以存储在一个数据文件中浏览:航班信息浏览功能需要提供显示操作;查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况如,输入航班号,起飞抵达城市,确定航班是否满仓;另外要提供键盘式选择菜单以实现功能选择;要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数;3整体设计与模块划分;根据需求分析,该程序可分为以下四大模块:4代码设计;包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析;等等;A.主函数1分析:主函数的功能比较简单,形式比较简洁,主要功能为:在系统中没有程序所要的文件时,为程序建立一个所许的文件;调用菜单函数;程序中的各模块都要用到同一个文件,如果该文件不存在,则该程序就无法正常运行,增加第一个功能就是保证文件的可用切可打开本来只要在主函数里调用各功能模块就行了,但是为了让程序能够方便的回到主函数里,所以就建立了一个菜单函数;菜单函数的功能是替主函数调用个功能模块函数,因而设计的基本思路很简单,即:用一个输入来接受用户的选择,加以个循环来让输入错误的用户继续输入,直到输入正确为止;用一个switch语句来选择用户所要用到的函数;2程序:void menu{int n,w;do{puts"\t\tMENU\n\n";puts"\t\t\t\t 1.enter new data";puts"\t\t\t\t 2.Browse all";puts"\t\t\t\t 3.Search";puts"\t\t\t\t 4.exit";puts"\n\n\t\t \n";printf"Choice your number1-4: \b\b";scanf"%d",&n;ifn<1||n>4{w=1;getchar;}else w=0;}whilew==1;switchn{case 1:enter;break;case 2:Browse;break;case 3:Search;break;case 4:exit0;}}/主函数/main{ menu;}B.公共函数1分析:各功能模块中的分程序中的交错的较多,因而,本程序的公共函有5个,这使得各功能模块函数显得简洁,这是程序的一个特点;此处的公共函数的功能较为简单,但他很实用;2程序:1、把航班信息输入到文件中的函数;void inputi{struct flight t;printf"\nflight_no startstation endstation flytime plan_ticket sell_ticket\n";scanf"%d%s%s%s%d%d",&t.flight_no,t.startstation,t.endstation,t.flytime,&t.plan_ticke t,&t.sell_ticket;fp=fopen"flydata.txt","ab";iffp{printf"can not open this file\n";exit0;}else fwrite&t,sizeofstruct flight,1,fp;fclosefp;}2、输出一个航班信息函数void printf_oneflightint i{printf"\n%5d%20s%20s%10s%4d%4d\n",flyi.flight_no,flyi.startstation,flyi.endstation,f lyi.flytime,flyi.plan_ticket,flyi.sell_ticket;}3、输出文件内容结构函数void printf_face{printf"\n\tNO. startstation endstation flytime plan_ticketsell_ticket\n";}4、载入函数实现文件内容载入程序,并返回飞机航班数值;int load{FILE fp;int i;iffp=fopen"flydata.txt","rb"==NULL{printf"\nCan not open file\n";exit0;}fori=0;feoffp;i++fread&flyi,sizeofstruct flight,1,fp;fclosefp;returni-1;}5、返回退出函数实现程序退出、返回;void printf_back{int w;printf"\n\n\tSuccessful.^_^\n\n";printf"What do you want to do\n\n\t1.Browse all now\t2.back:\b\b";scanf"%d",&w;ifw==1 Browse;else menu;}C.航班基本信息输入模块航班信息录入函数:1分析:航班的基本信息,对它们输入后,要存进原文件,采用fwrite函数就可以实现;但是,用该函数存进文件的数据都是以二进制的形式存在的,不是通常所采用的形式,可以改用fprintf函数来实现该功能;不过本程序采用的是fwrite函数;再用户输入完成后,程序会询问是否继续输入,这个功能更具人性化,可以省去返回到主函数在进入这个函数的麻烦流程图输入信息2程序:void enter{int i,n;printf"How many flights do you want input : \b\b";scanf"%d",&n;printf"\n Enter data now\n\n";fori=0;i<n;i++{printf"\n Input %dth float record.\n",i+1;inputi;}printf_back;}D. 航班信息浏览模块流程图显示信息显示航班信息:void Browse{int i,n;n=load;printf_face;fori=0;i<n;i++{ifi%10==0{printf"\nPress any key to contiune ...";getchar;puts"\n\n";}puts"\n\n";printf_oneflighti;}printf"\tThere are %d record.\n",n;printf"\nPress any key to back ...\n";getchar;menu;}E. 航班信息查询模块分析:基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询;在查询小模块中采用了直接查找的方法;本模块可以通过多种查询方式进行完善;这是本程序没有做的地方;流程图程序:void Search{int m,i,flight_no,flag=0;printf"Please input flight_no:\n";scanf"%d",&flight_no;m=load;fori=0;i<m;i++{ifflight_no==flyi.flight_no{flag=1;printf"\nThe flight message is:\n";printf_oneflighti;}}ifflag==1printf"Found";elseprintf"Not Found";printf_back;}5运行与测试报告:在第一步编程过程中很顺利的编写好了各模块,最后整合成了一个完整的程序,但在调试过程中遇到了许多问题;如一些由于粗心导致分号,括号,字母输错的例子很多;但都很快改正;还有函数调用错误fp=fopen"flydata.txt","ab";我在写时丢了fopen结果一直错误,并且发现不了,后来请老师才解决问题;还有写程序中我经常忘记头文件包含命令,以及函数声明,导致调试中出现警告;这让我体会到只有耐心的一行一行的改错误才能把程序调试好;运行中遇到问题:例如,对数据的写文件操作中,我把存在flyN中的数据以fwrite&flyN,sizeofstruct flight,1,fp写入文件,结果发现文件中总是不能出现数据;以至程序不能运行后面部分;后来才发现取得地址错了应改成fwrite&t,sizeofstruct flight,1,fp;在机票显示阶段就是这问题让程序出现错误;不能正确读出输入的飞机航班信息;三、总结程序整体上运行与题目要求很吻合,算法大多比较通用,各个函数模块的正确性、完备性、对输入的容错能力以及算法的进一步改进在设计中都有表述,这道题使我熟悉了文件的输入输出操作,真切的感受到了fprintf和fwrite函数的区别回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整半个月的日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容;通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力;在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识;四、程序代码:include<stdio.h> /头文件包含命令/include<stdlib.h>define N 50struct flight /结构体存放航班信息的结构/{int flight_no;char startstation20;char endstation20;char flytime10;int plan_ticket;int sell_ticket;}flyN;/定义结构体变量/FILE fp;void Browse;void printf_oneflightint i;void menu;void inputi / 把航班信息输入到文件/{struct flight t;printf"\nflight_no startstation endstation flytime plan_ticket sell_ticket\n";scanf"%d%s%s%s%d%d",&t.flight_no,t.startstation,t.endstation,t.flytime,&t.plan_ticket,&t .sell_ticket;fp=fopen"flydata.txt","ab";iffp{printf"can not open this file\n";exit0;}else fwrite&t,sizeofstruct flight,1,fp;fclosefp;}void printf_oneflightint i /输出一个航班信息/{printf"\n%5d%20s%20s%10s%4d%4d\n",flyi.flight_no,flyi.startstation,flyi.endstation,flyi. flytime,flyi.plan_ticket,flyi.sell_ticket;}void printf_face /输出文件内容结构/{printf"\n\tNO. startstation endstation flytime plan_ticket sell_ticket\n"; }int load/载入函数实现文件内容载入程序,并返回飞机航班数值/{FILE fp;int i;iffp=fopen"flydata.txt","rb"==NULL{printf"\nCan not open file\n";exit0;}fori=0;feoffp;i++fread&flyi,sizeofstruct flight,1,fp;fclosefp;returni-1;}void printf_back /返回退出函数实现程序退出、返回/{int w;printf"\n\n\tSuccessful.^_^\n\n";printf"What do you want to do\n\n\t1.Browse all now\t2.back:\b\b";scanf"%d",&w;ifw==1 Browse;else menu;}void enter/航班信息录入/{int i,n;printf"How many flights do you want input : \b\b";scanf"%d",&n;printf"\n Enter data now\n\n";fori=0;i<n;i++{printf"\n Input %dth float record.\n",i+1;inputi;}printf_back;}void Browse{int i,n;n=load;printf_face;fori=0;i<n;i++{ifi%10==0{printf"\nPress any key to contiune ...";getchar;puts"\n\n";}puts"\n\n";printf_oneflighti;printf"\tThere are %d record.\n",n;printf"\nPress any key to back ...\n";getchar; /没有返回植/menu;}void Search/查询/{int m,i,flight_no,flag=0;printf"Please input flight_no:\n";scanf"%d",&flight_no;m=load;fori=0;i<m;i++{ifflight_no==flyi.flight_no{flag=1;printf"\nThe flight message is:\n";printf_oneflighti;}}ifflag==1printf"Found";elseprintf"Not Found";printf_back;}void menu{int n,w;{puts"\t\tMENU\n\n";puts"\t\t\t\t 1.enter new data";puts"\t\t\t\t 2.Browse all";puts"\t\t\t\t 3.Search";puts"\t\t\t\t 4.exit";puts"\n\n\t\t \n";printf"Choice your number1-4: \b\b";scanf"%d",&n;ifn<1||n>4{w=1;getchar;}else w=0;}whilew==1;switchn{case 1:enter;break;case 2:Browse;break;case 3:Search;break;case 4:exit0;}}/主函数/main{menu;/菜单函数的功能是替主函数调用个功能模块函数/}。
C语言课程设计报告学生姓名:学生学号:所在班级:任课教师:通讯录管理系统一.设计目的设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。
(1)数据包括:人名、工作单位、电话号码和E-mail地址。
(2)可对记录中的姓名和电话号码进行修改。
(3)可增加或删除记录。
(4)可显示所有保存的记录。
(5)可按人名或电话号码进行查询。
二.设计思路根据要求,电话簿数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。
三.总体设计图1 系统功能模块图四.详细设计1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2. 主函数流程图V oid menu() /*主界面*/{int n, w1;void enter(); void add(); void modify(); void browse(); void deleter(); void search(); do{puts("\t******************************菜单*****************************\t\n\n"); puts("\t\t\t\t1.新建联系人");puts("\t\t\t\t2.添加联系人");puts("\t\t\t\t3.修改");puts("\t\t\t\t4.删除");puts("\t\t\t\t5.浏览");puts("\t\t\t\t6.查找");puts("\t\t\t\t7.退出");puts("\n\n\t***************************通讯录******************************\t\n"); printf("请选择服务种类(1-7) : [ ]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case 1: enter(); break; /*输入模块*/case 2: add(); break; /*添加模块*/附录:源代码#define N 50#include<stdio.h>#include<string.h>struct people{char name[20]; char company[50]; char num[15]; char mail[20];}peop[N];void printf_face(){ printf("\n\t姓名\t单位\t电话号码\t邮箱\n"); }void printf_one(int i){ printf("\t%s\t%s\t%s\t%s\n",peop[i].name,peop[i].company,peop[i].num,peop[i].mail); }void printf_n(int n){ int j;for(j=0;j<n;j++){ if((j!=0)&&(j%10==0)) {printf("\n\nPress any key to continue...:"); getchar(); puts("\n\n");} printf_one(j);} getchar();}int load(){ FILE *fp;int i;if((fp=fopen("file","rb"))==NULL){ printf("\nCan not open file\n");exit(0);}for(i=0;!feof(fp);i++)fread(&peop[i],sizeof(struct people),1,fp);fclose(fp);return(i-1);}int modify_data(int i,int n){ int c,w1; void input(int i); void menu();do{ puts("\n修改选项=>\n\n 1).姓名2).单位3).电话号码4).邮箱5).所有数据6).取消并返回");printf("请选择?: [ ]\b\b");scanf("%d",&c);if(c>6||c<1) {puts("\nChoose error! Please again!"); getchar();}}while(c>6||c<1);do{ switch(c){ case 1: printf("name:"); scanf("%s",peop[i].name); break;case 2: printf("company:"); scanf("%s",peop[i].company); break;case 3: printf("number:"); scanf("%s",peop[i].num); break;case 4: printf("e-mail:"); scanf("%s",peop[i].mail); break;case 5: input(i); break;case 6: menu();}puts("\nNow:\n");printf_face(); printf_one(i);printf("\n确定?\n\n\t1).是2).不,重新修改3).返回不保存[ ]\b\b");scanf("%d",&w1);}while(w1==2);return(w1);}void input(int i){ printf_face(); printf("\t");scanf("%s\t%s\t%s\t%s",peop[i].name,peop[i].company,peop[i].num,peop[i].mail); }void save(int n){ FILE *fp; int i;if((fp=fopen("file","wb"))==NULL){ printf("\nCan not open file\n");exit(0);}for(i=0;i<n;i++)if(peop[i].name[0]!='\0')if(fwrite(&peop[i],sizeof(struct people),1,fp)!=1)printf("file write error\n");fclose(fp);}void printf_back(){int w; void browse(); void menu();printf("\n\n\t^_^.Successful. ^_^\n\n");printf("What do you want to do?\n\n\t1).浏览所有\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1) browse();else menu();}void main(){void menu();menu();}void menu(){int n, w1;void enter(); void add(); void modify(); void browse(); void deleter(); void search(); do{puts("\t************************菜单************************ ");puts("\t\t*******************1.新建联系人*******************");puts("\t\t*******************2.添加联系人*******************");puts("\t\t*******************3.修改*******************");puts("\t\t*******************4.删除*******************");puts("\t\t*******************5.浏览*******************");puts("\t\t*******************6.查找*******************");puts("\t\t*******************7.退出*******************");puts("\n\n\t********************通讯录********************* ");printf("请选择服务种类(1-7) : [ ]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case 1: enter(); break;case 2: add(); break;case 3: modify(); break;case 4: deleter(); break;case 5: browse(); break;case 6: search(); break;case 7: exit(0);}}void enter(){ int i,n;printf("How many people(0-%d)?:",N-1);scanf("%d",&n);printf("请输入数据:\n");for(i=0;i<n;i++){printf("\n输入第%d个记录.\n",i+1);input(i);}if(i!=0) save(n);printf_back();}void add(){ int i,n,k,t;n=load();printf("How many people do you want to add(0-%d)?:",N-n-1);scanf("%d",&t); k=n+t;for(i=n;i<k;i++){ printf("\n输入第%d个记录.\n",i-n+1); input(i);}save(k); printf_back();}void modify(){ struct people s; int i,n,k,w0=1,w1,w2=0;n=load();do{ k=-1; printf_face(); printf_n(n);do{ printf("\n\nEnter name that you want to modify!\nName:");scanf("%s",);for(i=0;i<n;i++)if(strcmp(,peop[i].name)==0) {k=i; s=peop[i];}if(k==-1) printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face(); printf_one(k);w1=modify_data(k,n);if(w1==1) {printf("\n\t^_^.Successful ^_^.\n\n是否继续?\n\n\t1).是2).保存返回\t[ ]\b\b");scanf("%d",&w0); w2=1;}else{w0=0; if(w2==0) peop[k]=s;}if((w0!=1)&&(w2==1)) save(n);}while(w0==1); menu();}void browse(){ int n;n=load();printf_face(); printf_n(n);printf("\t共有%d 记录.\n",n);printf("\nPress any key to back...");getchar();menu();}void search(){ int w0,k,i,n,w1,w2; struct people s; n=load();do{printf("请选择查找类别: 1).姓名2).电话号码[ ]\b\b");scanf("%d",&w1); if(w1<1||w1>2) {printf("输入错误!请重新输入!\n"); w2=1;} }while(w2==1);if(w1==1){do{ k=-1;do{ printf("\n\nEnter name that tou want to search!\nName:");scanf("%s",);for(i=0;i<n;i++)if(strcmp(,peop[i].name)==0) {k=i; s=peop[i];}if(k==-1) printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face(); printf_one(k);printf("\nWhat do you want to do?\n\t1).继续2).返回菜单[ ]\b\b");scanf("%d",&w0);}while(w0==1);menu();}else{ do{ k=-1;do{ printf("\n\nEnter number that tou want to search!\nNum:");scanf("%s",s.num);for(i=0;i<n;i++)if(strcmp(s.num,peop[i].num)==0) {k=i; s=peop[i];}if(k==-1) printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face(); printf_one(k);printf("\nWhat do you want to do?\n\t1).继续2).返回菜单[ ]\b\b");scanf("%d",&w0);}while(w0==1);menu();}}void deleter(){struct people s; int i,n,k,w0,w1;n=load();do{ k=-1; printf_face(); printf_n(n);do{ printf("\n\nEnter name that you want to delete!\nName:");scanf("%s",);for(i=0;i<n;i++)if(strcmp(,peop[i].name)==0) {k=i; s=peop[i];}if(k==-1) printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face(); printf_one(k);printf("\n确定?\n\t1).是2).返回[ ]\b\b");scanf("%d",&w0);if(w0==1) {peop[k].name[0]='\0'; save(n);} else break;printf("\n\t^_^.Successful^_^.\n");printf("What do you want to do?\n\t1).继续2).返回[ ]\b\b");scanf("%d",&w1);}while(w1==1);menu();}五.设计体会通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。