C语言课程设计报告34661497

合集下载

c语言课程设计报告详细版

c语言课程设计报告详细版

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语言课程设计报告文档

c语言课程设计报告文档

c语言课程设计报告文档一、课程目标知识目标:1. 理解C语言的基本语法和程序结构,掌握变量定义、数据类型、运算符、表达式等基本概念;2. 学会使用C语言进行顺序结构、分支结构、循环结构的编程,并能运用这些结构解决实际问题;3. 掌握C语言数组和字符串的使用,熟练运用数组进行数据处理;4. 了解C语言函数的定义与调用,学会编写简单的函数,理解函数参数、返回值等概念;5. 了解C语言指针的基本概念,学会使用指针进行内存操作和数据传递。

技能目标:1. 培养学生运用C语言编程解决实际问题的能力;2. 培养学生具有良好的编程习惯,如代码规范、注释清晰等;3. 提高学生调试程序、查找并解决问题的能力;4. 培养学生团队协作能力,学会与他人共同完成项目。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习和探究的精神;2. 培养学生面对编程困难时,具有坚持不懈、勇于克服的品质;3. 增强学生的自信心,使其在编程实践中感受到成就感;4. 引导学生认识到编程对于社会发展的重要性,培养其社会责任感。

本课程旨在让学生掌握C语言的基本知识和技能,培养其编程思维和解决问题的能力,同时注重培养其情感态度价值观,使其成为具有全面素质的计算机编程人才。

在教学过程中,根据学生的年龄特点和认知水平,采用任务驱动的教学方法,以实例为主线,引导学生主动参与、探究学习。

通过课程学习,使学生能够具备一定的编程基础,为后续学习打下坚实基础。

二、教学内容本章节教学内容围绕C语言基础知识,结合课程目标,制定以下教学大纲:1. C语言概述- 了解C语言发展史、特点和应用领域;- 掌握C语言程序的基本结构。

2. 数据类型、变量和常量- 学习基本数据类型(整型、浮点型、字符型);- 掌握变量的定义、赋值和作用域;- 理解常量的概念及其使用。

3. 运算符与表达式- 掌握算术、关系、逻辑运算符及其优先级;- 学习表达式的构成和计算。

4. 顺序结构程序设计- 学习C语言程序的基本输入输出函数;- 编写简单的顺序结构程序。

C语言程序设计课程设计报告

C语言程序设计课程设计报告

C语言程序设计课程设计报告1. 引言C语言程序设计是计算机科学与技术领域中一门重要的课程。

本报告旨在总结并展示我在该课程中的设计项目。

该项目要求我们使用C 语言设计并实现一个具有特定功能的程序。

2. 项目背景本项目的背景是为了帮助学生加深对C语言的理解和应用。

通过实践项目,我们可以更好地掌握C语言的语法和技巧,提升我们的编程能力。

3. 项目目标本项目的目标是设计一个简单的学生成绩管理系统。

该系统可以实现以下功能:- 输入学生的姓名和成绩;- 计算学生的平均成绩和总成绩;- 根据学生成绩进行排序;- 输出学生成绩单。

4. 设计思路为了实现项目的目标,我采取了以下设计思路:- 使用结构体来保存学生的信息,每个结构体包括学生的姓名和成绩;- 使用数组来保存学生的信息,数组的每个元素对应一个学生的信息;- 使用循环和条件语句来实现用户界面和功能选项;- 使用排序算法对学生成绩进行排序。

5. 程序设计与实现在程序的设计与实现过程中,我首先定义了学生信息的结构体,并声明了相应的全局变量和函数。

接着,我编写了主函数,其中包括用户界面的显示和功能选项的处理。

用户界面的显示采用了简洁美观的格式,每次显示菜单供用户选择相应的功能。

用户可以通过输入对应的数字来选择功能,并根据提示进行相应的操作。

在实现功能方面,我使用了循环来保证程序能够持续运行,直到用户选择退出。

根据用户的选择,程序会调用不同的函数来完成相应的功能,比如输入学生信息、计算平均成绩和总成绩、排序学生成绩等。

6. 测试与验证为了验证程序的正确性和稳定性,我进行了多次测试。

我输入了不同数量和不同范围的学生信息,以确保程序能够正确处理各种情况下的数据。

通过测试,我发现程序能够正常运行,实现了预期的功能。

输入的学生信息能够被正确保存、计算和排序,最终能够输出正确的学生成绩单。

7. 总结与展望通过本项目的设计与实现,我加深了对C语言的理解和应用,提升了我的编程能力。

C语言课程设计设计报告书

C语言课程设计设计报告书

C语言课程设计设计报告书一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量声明、数据类型、运算符、表达式等基本概念。

2. 学会使用C语言进行顺序结构、分支结构和循环结构的编程。

3. 掌握函数的定义、声明和调用,理解局部变量和全局变量的作用域。

4. 了解数组、指针和字符串的使用,能够运用它们解决实际问题。

技能目标:1. 培养学生编写、编译和调试C程序的能力,提高编程技巧。

2. 培养学生运用C语言解决实际问题的能力,如数值计算、数据处理等。

3. 培养学生分析问题、设计算法和编写程序的能力,提高逻辑思维能力。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习积极性,提高自主学习能力。

2. 培养学生合作学习、分享经验的精神,提高团队协作能力。

3. 培养学生严谨、认真、负责的学习态度,养成良好编程习惯。

课程性质:本课程为高中年级C语言课程,以实践为主,注重培养学生的编程能力和逻辑思维能力。

学生特点:高中年级学生对计算机编程有一定的基础,好奇心强,学习积极性较高,但需加强实践操作和问题分析能力的培养。

教学要求:结合课程内容和学生特点,采用任务驱动、案例教学等方法,引导学生主动探究、动手实践,提高编程技能和解决问题的能力。

同时,注重培养学生良好的编程习惯和团队合作精神。

通过本课程的学习,使学生能够具备C 语言编程的基本能力,为后续计算机课程学习打下坚实基础。

二、教学内容1. C语言基础知识:变量、数据类型、常量、运算符、表达式。

教材章节:第一章2. 控制结构:顺序结构、分支结构(if语句、switch语句)、循环结构(for循环、while循环、do-while循环)。

教材章节:第二章3. 函数:函数定义、声明、调用;局部变量和全局变量;递归函数。

教材章节:第三章4. 数组:一维数组、二维数组;数组的初始化、遍历和排序。

教材章节:第四章5. 指针:指针的定义与使用;指针与数组、字符串、函数的关系。

《C语言课程设计》设计报告

《C语言课程设计》设计报告

《C语言课程设计》报告书指导教师:张娜课程名称: C语言程序设计班级: 0124071姓名:王者无疆学号: 0070082011河南城建学院、土木与材料工程系2011年1月目录一.课程设计目的二.课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交课程设计报告三.课程设计的基本过程1.程序的功能设计2.程序的数据设计3.程序的函数设计4.函数编程及调试5.整体调试6.设计总结四. 课程设计报告的内容五. 课程设计考核方式六. 进度计划第一天选择课程设计题目,分析课题的要求,编写详细设计说明第二天编程及调试第三天调试,修正,运行软件第四天写课程设计报告,检查程序及软件第五天提交课程设计报告(打印稿及电子稿)七、心得体会八、附一题一、课程设计目的课程设计是学习掌握C语言知识的重要实践环节,是在课程实验基础上进行的综合性实践教学活动。

课程设计围绕课程的整体教学目标进行,课程设计的题目具有一定的综合性和应用性,只靠个别单元的知识一般不能实现课程设计的目标,需要对课程知识进行综合运用。

要完成好课程设计,就要对课程知识进行系统学习、复习、总结、应用,达到在实践中学习知识、掌握知识、应用知识和培养能力的目的。

①通过课程设计,进一步熟悉掌握以下知识:数据类型、分支控制、循环控制、函数的定义及调用、结构体及数组、指针、文件操作、编译预处理等。

②通过课程设计,达到系统理解、综合运用课程知识的学习目标。

③通过课程设计,学会用C语言程序解决实际问题的方法。

④通过课程设计,掌握程序的局部测试、调试方法,建立程序系统调试、测试的基本概念和思想,学会较大程序的系统测试和调试方法。

二. 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交课程设计报告三.课程设计的基本过程C语言课程设计一般包括6个步骤,即程序的功能设计、程序的数据设计、程序的函数设计、函数编码及调试、程序整体调试和课程设计总结等,各个步骤都有其特定的任务。

c语言课程设计设计报告

c语言课程设计设计报告

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. 让学生掌握C语言的基本语法,包括变量声明、数据类型、运算符、控制结构等;2. 培养学生运用C语言进行程序设计的能力,学会编写简单的程序解决实际问题;3. 使学生了解C语言中的数组、函数和指针等高级概念,并能够灵活运用。

技能目标:1. 培养学生熟练使用C语言编程环境,如Turbo C或Visual Studio等;2. 提高学生的编程技巧,使其能够编写具有逻辑性和可读性的代码;3. 培养学生独立分析问题、设计程序解决问题的能力。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动探索、自主学习的精神;2. 培养学生严谨、细心的学习态度,使其认识到编程过程中细节的重要性;3. 强调团队协作和交流分享,提高学生的沟通能力和团队意识。

分析课程性质、学生特点和教学要求:1. 课程性质:C语言课程属于信息技术学科,具有实践性和应用性强的特点;2. 学生特点:学生为初中生,具有一定的逻辑思维能力和计算机操作基础,但编程经验不足;3. 教学要求:结合学生特点,注重理论与实践相结合,以实例教学为主,引导学生动手实践。

1. 熟练运用C语言编写简单的程序;2. 掌握C语言的基本语法和编程技巧;3. 提高编程兴趣,形成自主学习、团队协作的良好习惯。

二、教学内容1. C语言基础知识:- 变量与常量的概念及其声明- 数据类型:整型、浮点型、字符型- 运算符:算术、关系、逻辑、赋值运算符- 控制结构:顺序结构、选择结构、循环结构2. 函数与数组:- 函数的定义、声明和调用- 数组的定义、初始化和使用- 一维数组、二维数组的操作3. 指针与字符串:- 指针的概念、声明与使用- 指针与数组的关系- 字符串的基本操作4. 编程技巧与实践:- 编程规范与命名规则- 代码调试与优化- 简单算法的实现(如排序、查找)5. 综合案例分析与编程实践:- 结合实际案例,运用所学知识进行程序设计- 针对不同案例,分析问题、设计算法、编写程序- 案例包括:计算器、成绩管理系统、小游戏等教学内容安排与进度:1. C语言基础知识(2周)2. 函数与数组(2周)3. 指针与字符串(2周)4. 编程技巧与实践(1周)5. 综合案例分析与编程实践(3周)教材章节关联:1. C语言基础知识:教材第1-3章2. 函数与数组:教材第4-5章3. 指针与字符串:教材第6章4. 编程技巧与实践:教材第7章5. 综合案例分析与编程实践:教材第8章及课后习题、拓展案例三、教学方法1. 讲授法:- 对于C语言的基本语法、概念和理论,采用讲授法进行教学,确保学生能够系统地掌握知识;- 讲授过程中注重条理清晰、深入浅出,结合实际案例,提高学生的理解和记忆;- 定期进行知识巩固,通过讲解经典例题,帮助学生深化理解。

(完整版)c语言课程设计设计报告

(完整版)c语言课程设计设计报告

C语言课程设计报告姓名:学号:年月目录:●程序功能简介●题目分析●函数的调用关系图及主要算法●源程序及注释●测试流程●心得感想程序一:简单数学问题一、程序功能简介:实现多个简单数学问题的求解。

二、题目分析完成与菜单项对应的功能设计1、void FindNum( ); /*用穷举法找到被咬掉的数字*/2、void FindRoot( ); /*求解方程ax2+bx+c=0的根*/3、void Detective( ); /*根据线索用穷举法找出牌照号码*/4、void Monkey( ); /*根据天数循环求出第一天所摘桃子数*/5、void Diamond( ); /*调用函数Print_Diamond( )输出line行的钻石图案*/6、void Calculator( ); /*实现两个整数简单的加减乘除四则运算*/三、函数的调用关系图:四、源程序及注释:#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<math.h>int menu_select();void main() /*主函数*/{for(;;){switch(menu_select()){case 1:FindNum();system("pause");break;case 2:FindRoot();system("pause");break;case 3:Detective();system("pause");break;case 4:Monkey();system("pause");break;case 5:Diamond();system("pause");break;case 6:Calculator();system("pause");break;case 0:printf("Goodbye!\n");system("pause");exit(0);}}}int menu_select() /*主函数菜单*/ {char c;do{system("cls");printf("1.FindNum\n");printf("2.FindRoot\n");printf("3.Detective\n");printf("4.Monkey\n");printf("5.Diamond\n");printf("6.Calculator\n");printf("0.Goodbye!\n");c=getchar();}while(c<'0'||c>'6');return(c-'0');}FindNum() /*找数字*/{int i;for(i=1;i<=9;i++) /*穷举*/if((30+i)*6237==(10*i+3)*3564)printf("%d\n",i);}FindRoot() /*找方程的根*/{float a[10],b[10],c[10],disc,x1,x2,real,image; /*定义abc三个数组存放方程的系数*/int i,k,j;for(i=0;i<10;i++) /*循环输入方程的三个系数*/{printf("please input three real numbers:\n");scanf("%f%f%f",&a[i],&b[i],&c[i]);printf("press '1' to continue\npress '2' to calculate\n");scanf("%d",&k);if (k==2) break; /*判断是否继续输入*/}for(j=0;j<=i;j++){printf("The equation %d",j+1);if (fabs(a[j])<=1e-7) /*a=0的情况*/printf(" is not quadratic, solution is %.2f\n",-c[j]/b[j]);else{disc=b[j]*b[j]-4*a[j]*c[j];if (fabs(disc)<=1e-7) /*有两个相等的实根的情况*/ printf(" is not quadratic,solution is: %.2f\n",-b[j]/(2*a[j])); else if (disc>1e-7) /*有两个不等实根的情况*/{x1=(-b[j]+sqrt(disc))/(2*a[j]);x2=(-b[j]-sqrt(disc))/(2*a[j]);printf(" has distinct real roots: %.2f and %.2f\n",x1,x2); }else /*有两个虚根的情况*/{real=-b[j]/(2*a[j]);image=sqrt(-disc)/(2*a[j]);printf(" has complex roots:\n");printf("%.2f+%.2f i\n",real,image);printf("%.2f-%.2f i\n",real,image);}}}}Detective() /*找牌照*/{int i,a,b,c,d;long m;for(i=32;i<=99;i++) /*穷举找出后四位号码*/ {m=i*i;a=m%10;b=m/10%10;c=m/100%10;d=m/1000;if(a==b&&c==d)break;}printf("%ld\n",m+310000);}Monkey() /*猴子吃桃问题*/{int n,i;long x;scanf("%d",&n);x=1;for(i=n-1;i>=1;i--)x=(x+1)*2;printf("%ld\n",x);}void print_diamond(int line){int i,j,k,m,n,p,q,a,b;for(i=1;i<=(49-line)/2;i++) /*输出(49-line)/2行的空格*/printf("\n");for(j=1;j<=(line+1)/2;j++){ for(m=1;m<=(80-line)/2;m++) /*先输出(80-line)/2个空格*/ printf(" ");for(a=1;a<=(line-(2*j-1))/2;a++) /*行数j从1到中间一行输出(line-(2*j-1))/2个空格*/printf(" ");for(n=1;n<=2*j-1;n++) /*中间行及上面每行输出2*j-1个"*"*/printf("*");printf("\n");for(k=1;k<=(line-1)/2;k++) /*同理输出中间行下面的钻石图案*/{ for(p=1;p<=(80-line)/2;p++)printf(" ");for(b=1;b<=k;b++)printf(" ");for(q=1;q<=line-2*k;q++)printf("*");printf("\n");}}Diamond() /*钻石*/{int line;scanf("%d",&line);print_diamond(line); /*调用print_diamond输出钻石图案*/ }Calculator() /*简单计算器*/{int a[4],b[4],c[4],i,j,k; /*定义ab两个数组存放数*/char ch[4]; /*定义c存放运算符*/FILE *fp1,*fp2;fp1=fopen("expres.txt","r"); /*打开expres文件*/if(fp1==NULL) /*判断打开成功*/printf("Can not open file expres\n");exit(1);}for(i=0;i<=3;i++)fscanf(fp1,"%d%c%d",&a[i],&ch[i],&b[i]); /*循环读入四道题*/ for(j=0;j<=3;j++){switch(ch[j]) /*判断运算符*/{ case '+':c[j]=a[j]+b[j]; break;case '-':c[j]=a[j]-b[j]; break;case '*':c[j]=a[j]*b[j]; break;case '/':c[j]=a[j]/b[j]; break;}}fp2=fopen("result.txt","w"); /*打开文件result*/if(fp2==NULL) /*判断打开文件是否成功*/{printf("Can not open file expres\n");exit(2);}for(k=0;k<=3;k++) /*循环向文件中输入结果*/fprintf(fp2,"%d%c%d=%d\n",a[k],ch[k],b[k],c[k]);printf("succeed!\n");}五、测试流程:运行程序屏幕显示:1.FindNum2.FindRoot3.Detective4.Monkey5.Dismond6.Calculator0.Goodbye!输入:1回车显示:9Press any key to continue …按任意键返回菜单输入:2回车显示:please input three real number:输入:0回车1回车2回车显示:press ‘1’ to continuep ress’2’ to calculate输入:1回车显示:please input three real number:(按照以上方法再输入三组数据:1,2,1;1,3,2;1,0,4后选择2,回车)显示:The equation 1 is not quadratic, solution is -2.00The equation 2 is not quadratic, solution is -1.00The equation 3 has distinct real roots: -1.00and-2.00The eauation 4 has complex roots:-0.00+2.00 i-0.00-2.00 iPress and key to continue …按任意键返回菜单输入:3 回车显示:317744Press and key to continue …按任意键返回菜单输入:4 回车10 回车显示:1534Press and key to continue …按任意键返回菜单输入:5 回车5 回车输出:*************Press and key to continue …按任意键返回菜单输入:6 回车显示:succeed!Press and key to continue …按任意键返回菜单输入:0 回车显示:Goodbye!Press and key to continue …按任意键结束程序程序二:学生成绩简单管理一、程序功能简介:用结构体数组结构实现简单的学生管理成绩管理功能,要求具有数据输入、数据输出、数组排序、元素插入、元素删除、查询等功能。

C语言课程设计报告

C语言课程设计报告

目录(一)设计目的 (3)(二)设计内容 (3)(三)总体设计 (4)(四)详细设计…………………………………5-10(五)调试与测试 (11)(六)设计总结 (12)《C语言课程设计》如:通讯录管理系统一、课程设计目的(涉及到的知识点和能力要求)1、通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。

2、通过课程设计,学会设计数据结构。

其中包括对结构数组、数据文件等知识的运用。

3、通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。

4、通过课程设计,训练C程序调试能力,能将一个中小型各级组织系统联调通过。

5、通过课程设计,开发一个中小型系统,掌握系统研发全过程。

6、通话课程设计,培养分析问题、解决实际问题的能力。

二、课程设计内容及任务要求:(题目或问题的简要描述分析)设计一个实用的通讯录管理系统,能以简便高效的方式对通讯录进行管理和检索,具体要示:(1)录入:联系人信息包括:姓名,地址,电话。

以结构数组或数据文件的形式存放通讯录信息。

(2)更新:能插入、修改、删除通讯录信息。

(3)浏览:按录入先后为序进行通讯录信息浏览。

(4)查询:能实现指定联系人信息查询或指定电话号码查询功能。

(5)系统以菜单方式工作,界面友好,易于操作,容错性好。

三、总体设计1、模块化设计为实现系统功能,本程序主要分为六个模块。

它们分别为:录入联系人信息、删除联系人信息、查询联系人信息、增加联系人信息、浏览所以联系人信息、退出该程序。

这六个函数再通过主函数调用分别得以实现。

主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用通讯录的哪种功能。

然后,通过执行多分支选择语句——switch语句,分别实现其它各个函数的调用功能。

其它各个函数的功能分别如下:Enter函数用于录入通讯录中学生的信息;Delet函数用于对通讯录中指定信息的删除;Search函数用于对通讯录中指定信息的查询;Add函数用于在通讯录中插入信息;Modify函数用于对联系人进行修改;Load函数用于对通讯录中所有信息进行浏览;Quit函数用于退出系统。

c语言程序设计课程设计报告

c语言程序设计课程设计报告

C语言程序设计课程设计报告1. 引言本报告旨在介绍C语言程序设计课程设计的整体思路和步骤。

通过这个课程设计项目,我们将能够深入了解C语言的基本特性和程序设计的基本原理,并通过实践来提升我们的编程能力。

2. 课程设计的目标我们的课程设计项目旨在实现一个简单的学生信息管理系统。

该系统具有以下功能: - 添加学生信息 - 查询学生信息 - 修改学生信息 - 删除学生信息3. 思路和步骤步骤一:项目初始化首先,我们需要创建一个新的C语言项目,并为该项目选择合适的开发环境。

常见的C语言开发环境包括Dev-C++、Code::Blocks等。

选择一个适合自己的开发环境后,我们可以开始编写代码。

步骤二:设计数据结构在开始编写代码之前,我们需要设计合适的数据结构来存储学生的信息。

常用的数据结构包括数组、链表等。

在我们的设计中,我们可以使用结构体来表示学生的信息,例如:typedef struct {int id;char name[20];int age;} Student;这个结构体包含了学生的学号、姓名和年龄三个属性。

步骤三:实现功能函数接下来,我们可以开始实现各种功能函数。

例如,我们可以编写一个函数来添加学生信息:void addStudent(Student* students, int* count) {// 获取学生信息,并将其存储到students数组中// 更新count变量,表示学生数量加一}同样地,我们可以编写函数来查询、修改和删除学生信息。

步骤四:编写主函数在实现了各种功能函数后,我们可以编写一个主函数来调用这些函数,从而完成整个程序的逻辑。

主函数可以包含一个菜单,让用户选择执行不同的功能。

例如:int main() {Student students[100];int count = 0;int choice;do {// 显示菜单// 根据用户的选择,调用相应的功能函数} while (choice != 0);return0;}步骤五:测试和调试完成编码后,我们需要对程序进行测试和调试,以确保它能够正常运行,并且功能符合设计要求。

c语言课程设计报告

c语言课程设计报告

c语言课程设计报告C语言课程设计报告。

一、设计目的。

本次课程设计的目的在于通过实际的项目实践,帮助学生巩固C语言的基础知识,提高编程能力,培养学生的实际动手能力和解决问题的能力。

二、设计内容。

1. 学生信息管理系统。

设计一个简单的学生信息管理系统,包括学生的基本信息录入、查询、修改和删除功能。

通过这个项目,学生可以学习如何使用C语言中的结构体、文件操作等知识,加深对C语言的理解。

2. 简易计算器。

设计一个简易的计算器程序,实现基本的加减乘除运算,同时具备错误输入提示和异常处理功能。

通过这个项目,学生可以学习如何使用条件语句、循环语句和函数等知识,提高对C语言的掌握程度。

3. 学生成绩管理系统。

设计一个学生成绩管理系统,包括成绩录入、统计、排名等功能。

通过这个项目,学生可以学习如何使用数组、指针等知识,提高对C语言的应用能力。

三、设计思路。

在设计过程中,我们要注重培养学生的问题分析和解决能力,鼓励他们多动手实践,多思考,多尝试。

同时,要引导学生注重代码的规范性和可读性,提高代码的质量和可维护性。

四、设计方法。

1. 理论教学与实践相结合。

在课程教学中,要注重理论知识的讲解,同时配合实际的项目练习,让学生在实践中巩固所学知识,提高编程能力。

2. 引导学生独立思考与合作交流。

在项目实践过程中,要引导学生独立思考问题,培养他们解决问题的能力,同时鼓励学生之间的合作交流,共同解决问题,促进学习效果的提高。

3. 鼓励创新与实践。

在项目设计中,要鼓励学生发挥创造力,设计出独特的程序,同时要注重实际操作,让学生通过实践检验自己的设计,不断完善和改进。

五、设计效果。

通过本次课程设计,学生将能够掌握C语言的基本语法和常用技巧,提高编程能力,培养解决问题的能力,为以后的学习和工作打下坚实的基础。

六、总结。

C语言课程设计是学生学习C语言的重要环节,通过设计实际项目,可以提高学生的动手能力和解决问题的能力,为学生今后的学习和工作打下坚实的基础。

c语言课程设计报告书3篇

c语言课程设计报告书3篇

c语言课程设计报告书3篇c语言课程设计报告书1我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理。

简单界面程序。

高级界面程序。

程序的添加修改。

用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的.语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

c语言课程设计报告.

c语言课程设计报告.

c语言课程设计报告.一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,具备使用C语言进行程序设计的能力。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据结构(如数组、链表、栈和队列等)和算法(如排序、查找等)。

2.技能目标:学生能够运用C语言编写解决问题的程序,具备一定的编程实践能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,使其认识编程在实际生活中的应用和价值。

二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.C语言基本语法:数据类型、运算符、表达式、语句等。

2.数据结构:数组、链表、栈、队列、树等。

3.算法:排序算法(冒泡排序、选择排序、插入排序等)、查找算法(顺序查找、二分查找等)等。

4.编程实践:使用C语言解决实际问题,培养学生的编程能力和解决问题的能力。

三、教学方法为了实现教学目标,本课程将采用以下几种教学方法:1.讲授法:教师讲解C语言的基本语法、数据结构和算法,帮助学生建立知识体系。

2.案例分析法:分析实际编程案例,让学生了解编程在实际中的应用。

3.实验法:学生动手编写程序,巩固所学知识,培养编程能力。

4.讨论法:分组讨论问题,培养学生的团队协作能力和解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《C程序设计语言》(K&R著)。

2.参考书:《C Primer Plus》(Stephen Prata著)。

3.多媒体资料:教学PPT、视频教程等。

4.实验设备:计算机、网络等。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

具体评估方法如下:1.平时表现:占课程总评的30%,包括课堂参与度、提问回答、团队协作等。

2.作业:占课程总评的30%,包括编程练习、算法设计等。

3.考试:占课程总评的40%,包括期中考试和期末考试。

以上评估方式客观、公正,能够全面反映学生的学习成果。

c语言课程设计实验报告

c语言课程设计实验报告

c语言课程设计实验报告一、课程目标知识目标:1. 理解C语言编程的基本概念,包括变量、数据类型、运算符、表达式等;2. 学会使用C语言控制结构,如顺序结构、分支结构和循环结构;3. 掌握C语言数组和字符串的基本操作;4. 了解C语言函数的定义和调用方法;5. 掌握C语言指针的基本概念和使用方法。

技能目标:1. 能够独立编写简单的C程序,实现基本的计算和控制功能;2. 能够运用所学知识解决实际问题,具备一定的编程调试能力;3. 能够阅读和分析C程序,理解程序的设计思路和逻辑结构;4. 能够通过团队协作,共同完成复杂的编程任务。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习热情;2. 培养学生的逻辑思维能力,提高问题分析能力;3. 培养学生良好的编程习惯,注重代码规范和可读性;4. 培养学生团队协作精神,提高沟通与表达能力;5. 培养学生面对困难敢于挑战、勇于探索的精神。

课程性质:本课程为C语言编程入门课程,以实践为主,注重培养学生的动手能力和编程思维。

学生特点:学生为初中生,具备一定的计算机操作基础,但对编程知识了解较少,好奇心强,学习积极性高。

教学要求:教师应结合学生特点,采用案例教学、任务驱动等方法,引导学生主动参与,注重实践操作,提高编程技能。

在教学过程中,关注学生的个体差异,给予个性化指导,确保每位学生都能达到课程目标。

通过课程学习,使学生能够掌握基本的C语言编程知识,为后续学习打下坚实基础。

二、教学内容1. C语言基础知识:变量定义、数据类型、常量与变量、运算符、表达式;教材章节:第一章《C语言概述》及第二章《数据类型与表达式》。

2. 控制结构:顺序结构、if语句、switch语句、循环结构(for、while、do-while);教材章节:第三章《控制结构》。

3. 数组与字符串:一维数组、二维数组、字符串的基本操作;教材章节:第四章《数组和字符串》。

4. 函数:函数定义、函数调用、局部变量与全局变量、递归函数;教材章节:第五章《函数》。

c语言课程设计设计报告

c语言课程设计设计报告

c语言课程设计设计报告一、教学目标本课程的教学目标是让学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,培养学生编写简单C程序的能力,使学生了解程序设计的基本思路和方法,培养学生的逻辑思维和问题解决能力。

具体来说,知识目标包括:1.理解C语言的基本语法和编程规范;2.掌握基本数据类型、运算符和表达式;3.熟悉控制结构,如条件语句、循环语句等;4.了解函数的定义和调用方法。

技能目标包括:1.能够使用C语言编写简单的程序;2.能够阅读和理解简单的C语言程序;3.能够使用调试工具对程序进行调试和优化。

情感态度价值观目标包括:1.培养学生对编程的兴趣和热情;2.培养学生克服困难、解决问题的决心和勇气;3.培养学生团队协作、共同进步的精神。

二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.C语言基本语法和编程规范;2.数据类型、运算符和表达式;3.控制结构,如条件语句、循环语句等;4.函数的定义和调用方法;5.简单程序的设计和调试。

教材选用《C程序设计语言》(K&R),章节安排如下:1.第1-3章:C语言基本语法和编程规范;2.第4-5章:数据类型、运算符和表达式;3.第6-7章:控制结构;4.第8章:函数的定义和调用方法;5.课后练习和案例分析。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解基本语法、数据类型、运算符、控制结构和函数等基础知识;2.案例分析法:分析典型程序,使学生了解编程思路和方法;3.实验法:上机编程实践,培养学生的动手能力;4.讨论法:分组讨论问题,培养学生的团队协作和问题解决能力。

四、教学资源本课程所需教学资源包括:1.教材:《C程序设计语言》(K&R);2.参考书:C语言相关辅导书籍;3.多媒体资料:PPT课件、教学视频等;4.实验设备:计算机、编程环境等。

以上教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。

c语言程序课程设计报告完整版

c语言程序课程设计报告完整版

目录1. 实训一贪吃蛇游戏2. 实训二学生成绩管理系统3.4.5.6.7.8.9.10.11.12.13.14.15.每次实验课必须带上此本子,以便教师检查预习情况和记录实验原始数据。

实验时必须遵守实验规则。

用正确的理论指导实践袁必须人人亲自动手实验,但反对盲目乱动,更不能无故损坏仪器设备。

这是一份重要的不可多得的自我学习资料袁它将记录着你在大学生涯中的学习和学习成果。

请你保留下来,若干年后再翻阅仍将感到十分新鲜,记忆犹新。

它将推动你在人生奋斗的道路上永往直前!江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩实训一贪吃蛇游戏一、实训目的和要求根据老师布置的任务,对项目进行需求分析;确定数据结构和算法;画流程图或N-S 图并形成相关文档。

根据算法编写程序并且调试程序直到程序通过。

本程序实现的主要技巧在二维数组的应用上。

目的是通过游戏程序增加编程的兴趣,提高编程水平。

二、主要仪器设备安装了Windows操作系统、Turbo C 或Visual C++的计算机。

三、实训内容和原理贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。

四、实训小结1、功能描述指导老师:第页江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩2、总体设计(1)功能模块设计图1 图形驱动模块图2 图形结束模块指导老师:第页江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩图3 开始画面模块指导老师:第页江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:第页江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:第页江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:第页江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:第页江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩指导老师:第页江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩图4 游戏过程模块指导老师:第页江西科技师范学院实验报告年级班号姓名同组姓名实验日期年月日成绩图5 游戏结束模块(2)数据结构设计struct Food{int x;int y;int yes;}food;x表示食物的横坐标;y表示食物的纵坐标;yes用来判断是否要出现食物。

C语言课程设计报告(绝对可以运行)

C语言课程设计报告(绝对可以运行)

C语言课程设计报告(绝对可以运行)目录一、设计目的 (1)二、设计内容和要求 (1)三、实验(设计)环境 (1)四、架构设计 (2)五、运行结果 (3)六、程序清单 (5)七、测试与调试数据 (12)八、总结与体会 (13)一、设计目的1、通过本课程设计,培养上机动手能力,使学生巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关;2、为后续各门计算机课程的学习打下坚实基础。

3、理解程序设计的思路,掌握结构化程序设计的方法,综合使用C语言进行程序编写,巩固常用的C语言概念,如数组、指针、结构体、链表、文件操作等,注意良好的程序设计风格的培养。

提高编写程序解决实际问题的能力、调试程序的技能。

二、设计内容和要求学生信息管理系统内容包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

要求:提供以下功能:1,系统以菜单方式工作2,学生信息录入功能(学生信息用文件保存)---输入3,学生信息浏览功能---输出4,查询、排序功能---算法5,按学号查询6,按姓名查询7,学生信息的删除与修改(可选项)三、实验(设计)环境1.硬件:PC机2.软件:Dos,Turbo C 2.0/Turbo C++3.0四、架构设计1.需求分析作为一个完善的学生信息管理系统,可以根据用户的需求大致总结出如下需求:应用软件是一个基于(填写所用的软件工具)的程序.应用程序具有良好的人机交互界面.应用程序具有良好的可操作性.用户可以随时检索,删除或增加新的记录,保存或取消新的记录.2.架构设计2.1设计模块的算法是逐步细化的过程.读入学生信息在模块中利用文件的打开方式,将已经存在的文件的数据向计算机输入。

即为输入打开一个文本文件。

查询学生信息模块。

本模块又包含两个子模块,可以分别按学号和姓名进行查询.查询时将输入的信息通过循环与相应组成员一一对较.修改学生信息模块。

本模块首先输入需要修改记录的学号,通过循环查找到该记录后,再输入新数据替代原有数据.增中学生信息模块。

C语言课程设计报告

C语言课程设计报告

C语言课程设计报告一、设计目的本次课程设计旨在帮助学生熟悉C语言的基本语法和编程思想,通过设计一个简单的C语言程序,掌握C语言的基本编写技巧和调试方法,加深对C语言的理解。

二、设计内容本次C语言课程设计要求学生设计一个简易的学生信息管理系统,包括学生的基本信息录入、查询、修改和删除功能。

三、设计思路1. 需要定义一个学生信息的结构体,包括学号、姓名、年龄等基本信息。

2. 定义一个学生信息数组,用于存储学生信息。

3. 实现录入学生信息的功能,通过用户输入学生的学号、姓名、年龄等信息,并将其存储到学生信息数组中。

4. 实现查询学生信息的功能,用户输入要查询的学生学号,系统通过遍历学生信息数组找到对应的学生信息并输出。

5. 实现修改学生信息的功能,用户输入要修改的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并提示用户输入新的学生姓名、年龄等信息,并将其更新到学生信息数组中。

6. 实现删除学生信息的功能,用户输入要删除的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并将其从学生信息数组中删除。

四、设计步骤1. 定义一个学生信息的结构体,并在主函数中定义一个学生信息数组。

2. 实现录入学生信息的功能,通过用户输入学生的学号、姓名、年龄等信息,并将其存储到学生信息数组中。

3. 实现查询学生信息的功能,用户输入要查询的学生学号,系统通过遍历学生信息数组找到对应的学生信息并输出。

4. 实现修改学生信息的功能,用户输入要修改的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并提示用户输入新的学生姓名、年龄等信息,并将其更新到学生信息数组中。

5. 实现删除学生信息的功能,用户输入要删除的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并将其从学生信息数组中删除。

6. 编写主函数,实现菜单选择功能,用户可以通过选择不同的菜单选项进行录入、查询、修改和删除学生信息的操作。

五、实验成果经过设计和编码,最终实现了一个简易的学生信息管理系统,能够完成学生信息的录入、查询、修改和删除功能。

c语言课程设计报告

c语言课程设计报告

学年学期《C语言程序设计》课程设计报告班级:学号:学生姓名:指导教师:年月日实验项目:实验时间:实验地点:实验目的:为了进一步加强对C语言的理论知的理解,掌握各种语句和函数的格式、功能及应用,掌握C语言程序设计的基本方法,掌握顺序结构、选择结构、循环程序结构的编程以及对数组、指针系统函数、文件及各类数据结构的应用。

提高学生的实际编程和上机调程的技能,利用C语言系统环境(Win-TC或VC++),设计编程,以便巩固加深所学的基本知识,提高学生分析问题,解决实际问题的基本能力和技巧。

实验内容: 任务一:C语言基础程序设计训练任务二:综合应用设计编程任务1(1) 题目:编写一个程序实现合并整数功能。

要求将两个两位正整数a、b合并成一个正整数c,合并的方式是:将a数的十位和个位依次在c数的千位和十位上,b数的十位和个位依次在c数的百位和个位上(例如:当a=45,b=12时,则c=4152)。

(2)程序清单(3) 框图(4)运行结果任务2(1)题目:编写一个程序求出200-300之间满足这样条件的数:它们三个数字之积为42,三个数字之和为12。

要求用多重循环实现。

(2)程序清单(3)框图(4)运行结果任务3(1)题目:编程求数列20120........4143132121+++++的前20项之和 (2)程序清单(3)框图(4)运行结果任务4(1)题目:编一程序输出如下图形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1 (2)程序清单(3)运行结果(4)框图开始inta[7][7];i=0i<7a[i][0]=1;i++i=2i<7a[i][j]=a[i-1][j-1]+a[i-1][j]; i++i=0i<7Multii++结束任务5(1)题目:编程验证哥德巴赫猜想:任何一个大偶数(大于等于6)总可以表示成两个素数之和。

程序中要求有一个求素数(或判断是否是素数)的函数。

c语言课程设计报告

c语言课程设计报告

c语言课程设计报告本文将从以下几个方面来介绍我的C语言课程设计报告:设计目的、设计方法、设计过程、设计结果以及结论。

设计目的本次C语言课程设计的目的是熟悉C语言的基本语法,掌握C 语言的编写方法,并通过设计一个小型的程序来将所学的知识应用到实际中,提高自己的编程水平。

设计方法首先,我阅读了C语言的基本语法,学习了控制流程语句、函数、数组、指针等等知识点。

紧接着,我参考了一些经典的C语言程序,比如“猜数字”、“汉诺塔”等等,学习了这些程序的设计思路。

然后,我选定了一个题目——一个简单的计算器程序,通过这个程序的设计,来练习并应用我所学的C语言知识。

设计过程首先,我在Dev-C++集成开发环境中创建了一个新项目,然后分别编写了程序的界面、输入模块、计算模块和输出模块。

程序的界面主要使用了C语言中的输出语句,将计算器的各个按钮、数字及对应的运算符输出到控制台窗口。

输入模块主要使用了C语言中的scanf函数,得到用户输入的数字和符号,并将其存储在相应的变量中。

计算模块则采用了C语言中的if-else语句,根据不同的符号执行相应的计算操作,最后将结果存储在一个变量中。

输出模块再次使用了输出语句,将计算结果输出到控制台窗口。

设计结果最终,我的计算器程序实现了加、减、乘、除四种基本运算,用户可以通过程序界面输入数字和符号,计算器程序会自动进行计算,并将结果输出到控制台窗口。

该程序易于操作,界面简洁明了,计算结果准确可靠,达到了我预期的效果。

结论通过这次C语言课程设计,我掌握了C语言的基本语法和编写方法,加深了对计算机编程的理解,提高了自己的编程水平。

同时,我也感受到了编程带来的乐趣和成就感,我将继续努力掌握更多的编程知识,在以后的学习和实践中取得更好的成绩。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(此文档为word格式,下载后您可任意编辑修改!)信息科学与工程学院课程设计报告书课程名称:C语言课程设计班级:自动化1006学号:姓名:孙逊指导教师:尉宇二○一一年九月目录11 题目及要求 (1)1.1题目内容 (3)1.2设计要求 (3)1.3设计报告及书写内容要求 (4)2 程序分设计说明 (5)2.1概要设计 (5)2.2流程图 (5)2.3详细设计 (6)3 调试与测试 (8)3.1相关界面显示 (8)3.2数据测试 (10)3.3问题及思考 (11)3.4指导老师的建议 (13)4 总结 (14)5 附件:源程序代码 (15)1.题目及要求1.1题目内容题目一:汽车售票系统任务:自学C语言中相关知识,设计出汽车售票系统。

要求如下所述:每天“武汉火车站→天河机场”有5个班次的汽车(假设),具体的数据格式如下:班次发车时间载客量已售票数1 06:40 50 02 09:30 40 03 12:00 40 04 14:30 40 05 16:00 50 0为售票员开发一个小程序,以完成每天的“火车站→植物园”的售票业务。

要求如下:1. 能够售票和退票。

以文件(myfile.txt)的形式保存当天各个车次的售退票情况。

◆售票功能当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。

◆退票功能退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。

◆查询显示功能可以随时显示当前售票现状(如:班次发车时间载客量已售票数余票等信息)。

2. 用户界面中的菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”5项。

可适当增加其他附加功能。

1.2设计要求◆为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名、路径等自定;◆根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后可返回到主菜单,继续选择其他功能执行。

源程序要求书写规范,结构清晰。

重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。

◆程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。

如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和1.3设计报告及书写内容要求课程设计和上机调试任务完成之后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。

课程设计报告的内容应包括以下五个部分:1)需求分析:包括设计题目、设计要求以及系统功能需求分析;2)概要设计:包括系统总体设计框架和系统功能模块图;3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4)主要源程序代码:完整源程序清单及关键注释;5)调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考;6)课程设计小结:包括课程设计过程中的学习体会与收获、对C语言和本课程设计的认识以及自己的建议等内容。

2.程序分析及设计说明2.1概要设计初看题目不难发现这是一个主函数调用三个子函数从而实现售票、退票、查询的功能,调用完毕返回主函数由此可以确定大致的框架。

设计之初,根据题目要求需要用到结构体,函数、指针文件等相关知识,事先对其进行回顾。

设计之时,应该明确:是用结构体去存放同一班车的相关信息;用“while(1)”实现程序的不断循环,即相关售退票函数结束可以回到主函数实现下一以为顾客的操作而不出现程序结束的现象;用switch case实现不同的函数入口。

这样一个大致的模型就已经构建。

2.2流程图2.3详细设计主程序关键部位1.由于车次的各个信息,以及系统时间变量在许多子函数有调用,所以对于各车次的结构体变量,系统时间变量要再最前面以全局变量的形式定义,以便作用域的范围满足程序需求。

2.对于主菜单下的选择1,2,3都是通过调用子函数实现,而选择0是退出程序,所以在用switch之前就应该判断输入内容是否为0,是,则直接进入退出。

当然这应该包含在while (1){ }语句内。

3.如果是选择售票或退票应先提示选择车次,并以参数的形式带入函数。

4.对于主函数和子函数中篇幅比较长而且需要多次使用的打印语句,判断语句应该在库函数的引用后进行宏定义,比如说主菜单的输出,车次信息的打印,系统时间与发车时间的比较。

5.系统时间的获取运用“curr =time(NULL);date =localtime(&curr);”语句子程序关键部位1.每个子程序都需要清屏处理system("cls");使得用户产生由主菜单点击进入选项的感觉,增强界面的友好性。

2.子程序中出现的新界面在完成相关售票,退票,查询后应该予以停留,方便用户确认信息,否者完成后一闪而过回到主菜单,并不能确认是否已经成功完成操作。

因此运用两次“getchar();”,达到屏幕停滞的效果,再按任意键返回。

3.在售票和退票的界面应该再次打出当前的各个车次信息,以便用户做出选择,并不是每个用户都知道要买什么车次的车子,这样也是为了增强了程序的友好性。

辅助函数设计1.对于主菜单【void menu()】、车次信息【表头voidprintheader(),内容void printdata(…)】、信息保存【void save(…)】等内容会在程序的许多部位出现,因此单独使用函数予以实现,使得程序更加清晰。

2.由于每次输入需要检查输入信息是否合格,如果不合格应该报错,并重新输入,因此定义一个void wrong() 来输出按键错误信息。

3.调试与测试3.1相关界面显示主界面售票界面退票界面查询界面(注:由于版面限制,在此只出现了部分情况的界面)3.2数据测试本次报告的内容为其中一次测试,测试时间13:41,其他不一一给出,由于涉及到系统时间问题所以每天需要分时段进行测试或是修改系统时间。

(1)售票系统车次发车时间载客量已售车票测试结果1 06:40 50 0 超过时间无法购票2 09:30 40 0 超过时间无法购票3 12:00 40 0 超过时间无法购票4 14:30 40 3 可以购票(购3票)5 16:00 40 4 可以购票(购4票)(2)退票系统车次发车时间载客量已售车票测试结果1 06:40 50 0 超过时间无法购票2 09:30 40 0 超过时间无法购票3 12:00 40 0 超过时间无法购票4 14:30 40 2 可以退票(退1票)5 16:00 40 3 可以退票(退1票)(3)查询系统正常输出3.3问题及思考问题一:系统时间的获取问题二:发车时间的打印问题问题三:发车时间与系统时间的比较问题四:屏幕停滞问题问题解决:1.系统时间的获取通过对于网上资料的查询,获得了系统时间的调用方式,先引用库函数<conio. | %d | 0%d:%d | %2d | %2d |")从而解决了比较时间和打印输出的问题。

由此通过以下语句可以实现发车时间与系统时间的比较((date->tm_)>=((q+c)->min))))即先比较hour,再比较hour相同时min的大小。

问题四:屏幕停滞问题由于知识的有限,对于很多功能知识了解大概,通过网上的查询,得知getchar()有停滞界面的功能。

3.4指导老师的建议与改进指导老师在程序的调试过程中提到了,购票的连续性,也就是一位客户完成一张票的购买后可以重复购票,并给出了“封装函数”的建议。

要想达到要求也就是要把sell()函数再次拆分,并且要想重复购票还要构造循环,直至输入项为0(代码中输入为0时退出当前界面,退回主界面)。

4 总结本次C语言课程设计从暑假就开始收集资料,学习相关知识,一些上课未涉及的内容也做了些了解和掌握,直至开学的第一周陆续完成。

在实验的设计的过程中出现了许多上课、作业中没有遇到过的问题,这就是理论与实践的区别,知道知识却不能很好的运用,说明自己没有真正的掌握C语言,学习的只是皮毛,使我认识到了实践、动手编译的重要性。

以下本次C语言课程设计的几点小结:(1)通过上网学习和参阅参考资料陆续解决了系统时间的定义及调用、菜单形式界面的形成、屏幕停滞问题等问题。

(2)在编译的过程中大大提高了编程的逻辑性,在语言清晰、简洁方面有了较好的提高。

在程序查错的过程中也学会了设置断点,分块检查,逐渐提高了判断错误的速度和准确性。

(3)通过在上课时间与老师的交流了解到了函数模块化的重要性。

把程序的总目标分成一个个模块,提高清晰度和可读性。

(4)本次试验是个自主学习的机会,通过本次试验也增强了自己的信息获取能力和自学能力。

5 附件:源程序代码#include<time.\n\n information "#define HEADER2 "\n | 车次 | 发车时间 | 载客量 | 已售车票 | "#define HEADER3 "\n |-|-||| "#define FORMAT1 "\n | %d | %d:%d | %2d | %2d |"#define FORMAT2 "\n | %d | 0%d:%d | %2d | %2d |"#define FORMAT3 "\n | %d | %d:0%d | %2d | %2d |"#define DATA (q+i)->num,(q+i)->,(q+i)->busload,(q+i)->sold#define END "\n "#define STOP getchar();getchar();return;#define JUDGE ((date->tm_)>=((q+c)->min))))*判断即时时间已大于发车时间*struct tm *date; *定义系统时间为全局变量*time_t curr;struct information *标记为information*{int num; *车次*int ; *发车时间*int busload; *载客量*int sold; *已售车票*}inf[5]={{ },{},{},{},{}}; *初始化结构体*FILE *k; *定义文件指针全局变量*void menu() *主菜单*{system("cls"); *清屏*cprintf("\n\n\n\n\ 公交车自动服务系统 \n\n");cprintf(" ************************** M e n u *****************************\n\n");cprintf(" * 1.购票*\n\n");cprintf(" * 2.退票*\n\n");cprintf(" * 3.查询*\n\n");cprintf(" * 0.退出*\n\n");cprintf("****************************************************************\n\n"); }void wrong() *输出按键错误信息*{printf("\n***********Error:input ");getchar();}void save(struct information *q) *保存当前信息* {k=fopen("file.txt","w+"); *打开文件*if(fwrite(q,sizeof(struct information),1,k)!=1) *记录当日数据* printf("file write error\n") ; *报错*fclose(k); *关闭文件*printf("\n==========>已成功保存当前信息!");}void printheader() *格式化输出表头*{printf(HEADER1);printf(HEADER2);printf(HEADER3);}void printdata(struct information *q) *格式化输出表中数据*{int i;for(i=0;i<5;i++){if((q+i)-><10)printf(FORMAT3,DATA);elseprintf(FORMAT1,DATA);}printf(END);}void sellson(int c,struct information *q){curr =time(NULL);date =localtime(&curr);c--;int f=(q+c)->sold,j=(q+c)->busload;if(f==j) *判断已售量完*{printf("\n==========>对不起,此票已售完\n");STOP}else if(JUDGE){printf("\n==========>对不起,此班车已发车 , 无法售票\n ");STOP}else{int d;printf("\n========>您选择的是第 % d车",(c+1));printf("\n\n========>确认购票请按 1,取消请按 0 , 请输入:");scanf("%d",&d);while(1){if(d==1){((q+c)->sold)++; *已售量加一*printf("\n 完成购票!");break;}else if(d==0) *取消售票*{printf("已经取消售票");break;}else{wrong();}}STOP}}void returnson(int c,struct information *q){c--;if(JUDGE) *判断当时时间是否已经大于发车时间*{printf("\n========>对不起,此班车已发出,无法退票\n"); STOP}else if((q+c)->sold==0){printf("\n========>对不起, 售票量为 0 ,无法退票\n");STOP}else *退票*{int d;printf("\n========>您选择的是第 % d车",(c+1));printf("\n\n==========>确认退票请按 1,取消请按 0 , 请输入:");scanf("%d",&d);if(d)((q+c)->sold)--; *已售量减一*printf(" 完成退票!\n");}STOP}void sell(struct information *q) *售票函数*{int bus_num;while(1){system("cls");printheader();printdata(q);printf("\n\n");while(1){printf("请选择车次(1~5) 退出选择“0”请输入:");scanf("%d",&bus_num);switch(bus_num) *子函数入口*{case 0 :break;case 1 :sellson(1,q);break;case 2 :sellson(2,q);break;case 3 :sellson(3,q);break;case 4 :sellson(4,q);break;case 5 :sellson(5,q);break;default : wrong();continue;}if(bus_num==0)return;printf("若继续购票,");}}}void returns(struct information *q) *退票函数*{curr =time(NULL);date =localtime(&curr); *获取即时系统时间*int bus_num;while(1){system("cls");printheader();printdata(q);printf("\n\n");while(1){printf("\n\n 请选择车次(1~5) 选择“0”退出请输入:");scanf("%d",&bus_num);switch(bus_num) *子函数入口*{case 0 :break;case 1 :returnson(1,q);break;case 2 :returnson(2,q);break;case 3 :returnson(3,q);break;case 4 :returnson(4,q);break;case 5 :returnson(5,q);break;default : wrong();continue;}if(bus_num==0)return;printf("若继续购票,");}}}void inquire(struct information *q) *查询函数*{system("cls");printheader(); *格式化输出表头*printdata(q); *格式化输出表中数据*printf("\n\n press any key to return to the menu"); STOP}void main() *主菜单*{struct information *p; *指针域*int select;char ch; *ch用来保存y,n*p=inf;k=fopen("E:\\file.txt","ab+"); *以追加方式打开一个二进制文件,可读可写,若此文件不存在,会创建此文件*if(k==NULL){printf("\n=====>can not open file!\n");exit(0);}while(1){system("cls");menu();printf(" 请输入 ( 0 ~ 3 ) : ");scanf("%d",&select);if(select==0) *退出系统*{getchar();printf("\n=====>Whether save the modified record to file?(yn):");scanf("%c",&ch);if(ch=='y'||ch=='Y')save(p);printf("\n=====>thank you for useness! ");getchar();break;}switch(select) *判断并由相应的函数处理*{case 1:sell(p);break; *购票*case 2:returns(p);break; *退票*case 3:inquire(p);break; *查询*default: wrong();getchar();break; *按键有误,必须为数值0-3* }curr =time(NULL);date =localtime(&curr); *获取即时系统时间*if((date->tm_hour)>=16) *判断是否已经过16点*save(p);}}。

相关文档
最新文档