C++程序设计论文
- 格式:doc
- 大小:124.00 KB
- 文档页数:14
计算机程序设计范文计算机程序设计的目的是解决实际问题。
它可以用来自动化任务、处理数据、控制硬件设备等。
在程序设计过程中,程序员首先需要分析问题的需求,然后设计出程序的算法和数据结构。
接下来,在选定的编程语言中实现这些算法和数据结构,最后进行测试和调试。
在程序设计中,算法是最重要的部分。
算法是一系列解决问题的步骤,它描述了问题的解决方法。
程序员需要选择合适的算法来解决问题,并根据具体的应用场景来优化算法。
常用的算法包括排序、查找、图算法等。
数据结构是程序设计中用来组织和存储数据的方式。
不同的数据结构适用于不同的应用场景。
常见的数据结构包括数组、链表、树、图等。
程序员需要选择合适的数据结构来提高程序的效率和可维护性。
编程语言是实现程序设计的工具。
不同的编程语言特点不同,适用于不同的应用场景。
常见的编程语言有C、C++、Java、Python等。
程序员需要熟悉一种或多种编程语言,以便能够用它们来实现程序的功能。
计算机体系结构是程序设计的基础。
它涉及到计算机的硬件组成和运行原理。
程序员需要了解计算机的指令集、内存管理、输入输出等方面的知识,以便编写高效的程序。
在进行程序设计过程中,程序员还需要注意软件工程的原则和方法。
这包括模块化、代码重用、测试驱动开发等。
这些原则和方法能够提高程序的可读性、可维护性和可重用性。
总之,计算机程序设计是一个复杂而有挑战性的过程。
它需要程序员具备扎实的计算机科学知识和丰富的实践经验。
只有不断学习和实践,才能成为一名优秀的程序员。
浅谈独立学院C语言程序设计实验教学的改革与实践摘要:独立学院的培养目标是培养应用型技术人才,而实验教学是培养学生应用技能和创新能力的重要途径之一。
c语言程序设计是我院工科类专业都开设的一门课程,本文在分析了c语言实验中普遍存在问题后,结合我院在实际探讨了c语言实验教学改进,并提出了具体的改进方法。
关键词:独立学院应用型 c语言实验教学改进1 c语言程序设计实验教学的重要性及存在的问题c语言不但可以编写系统软件,而且可以根据用户的需要编写出满足用户要求的应用软件,尤其是c语言具有很好的对计算机的硬件编程能力。
我院计算机类、电子类和通信类专业都开设了c语言程序设计这门课程,它也是“数据结构”、“java程序设计”、“单片机”等课程的选修课程。
由于c语言这门课程比较抽象,具有较强的逻辑性和实践性,且c语言的数据类型较多、表达式丰富、语法结构较复杂,使它成为一门教师难教、学生难学的课程。
所以在重视理论教学的同时,必须加强实践训练。
通过实践,学生能更好的掌握c语言理论知识。
那么学生上机实验的重要性绝不亚于课堂听课,是巩固和发展课堂知识的十分重要的环节,而实验教学主要存在以下几个问题:1.1 学生刚开始学习时兴趣很高,但随着深入学习,兴趣逐渐减小。
学生在刚开始学习这门课程的时候,教师都会告诉学生这门课程很重要,学生当然也比较重视,但随着深入学习,有的学生就觉得c语言很难、很枯燥,再加上独立学院大多数学生学习自觉性和主动性不高,不懂的知识点越来越多,兴趣也就逐渐减小。
1.2 现在大多数c语言教材只注重对c语言语法的剖析,对算法进行剖析过于简单,使学生在上机编程时没有软件工程的概念。
现在大多数的教材在编写时对算法问题只用了很少的章节来分析,使得学生在编程时只有理论知识而不知道怎样把理论知识用来解决实际问题。
1.3 在实验设置上只有验证性实验而没有综合性实验。
在实验设置上,c语言实验课是随着理论课的开设的,都是一些验证性的实验,只验证了一些c语言的知识点,而没有综合性实验,没把c 语言与实际程序开发联系起来。
c语言课程设计论文一、教学目标本课程的目标是让学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生独立思考、解决问题的能力,并培养学生的团队协作意识和创新精神。
1.掌握C语言的基本语法和编程规则。
2.理解并掌握基本数据类型、运算符、表达式。
3.熟悉函数的定义和调用,掌握常用的库函数。
4.掌握数组、指针、字符串的基本操作。
5.理解并掌握控制结构,如if、for、while等。
6.了解并使用常用的数据结构,如链表、栈、队列等。
7.掌握基本算法和排序算法。
8.能够使用C语言编写简单的程序,解决实际问题。
9.具备基本的编程能力和代码调试能力。
10.能够阅读和理解C语言的代码和文档。
11.具备一定的编程思维和逻辑思维能力。
情感态度价值观目标:1.培养学生对计算机科学的兴趣和热情。
2.培养学生的团队协作意识和沟通能力。
3.培养学生的创新精神和解决问题的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程思想。
1.C语言的基本语法和编程规则。
2.基本数据类型、运算符、表达式。
3.函数的定义和调用,常用的库函数。
4.数组、指针、字符串的基本操作。
5.控制结构,如if、for、while等。
6.数据结构,如链表、栈、队列等。
7.基本算法和排序算法。
三、教学方法本课程将采用讲授法、案例分析法、实验法等多种教学方法相结合的方式进行教学。
1.讲授法:通过讲解和演示,使学生掌握C语言的基本语法和编程规则。
2.案例分析法:通过分析实际案例,使学生理解和掌握基本数据类型、运算符、表达式等。
3.实验法:通过动手实验,使学生熟悉和掌握数组、指针、字符串的基本操作。
4.讨论法:通过分组讨论和团队协作,使学生理解并掌握控制结构、数据结构和基本算法。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:《C程序设计语言》(K&R)2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络设备、编程软件五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面反映学生的学习成果。
学生成绩管理系统设计1、课程设计简介1.1 要求参加本课程设计的学生,应当认真完成本课程设计的全部过程。
并以最终课程设计成果来证明其独立完成各种实际任务的能力。
从而,反映出理解和运用本课程知识的水平和能力。
1.2 意义和目的意义:C语言是电子科学与技术专业的重要专业基础课。
在很多后续课程中,都要使用到C语言。
学生通过对C语言的学习,已经具备了使用C语言编写简单的应用程序的能力。
为了加强程序设计基础,开设课程设计课,使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。
目的:1)提高用程序设计解决实际问题的能力。
2)通过提出算法、指定输入输出来设计一个解决方案。
3)用C语言合理地开发两个简洁有效的程序代码来实现该设计。
4)测试程序是否工作且满足设计指标并评价其效率。
1.3 内容链表文件操作题(包括文件输入、文件输出、链表建立、结点插入、结点删除、输出打印等)(参考教材);2、具体实现2.1 程序总体方案2.1.1程序设计思想通过在主函数循环调用各个函数,从而实现文件输出及对链表的连续操作,最终实现链表的新建、打印、查找、保存、读取、更新、删除等等操作,进而管理学生信息,并保存学生的各种信息,方便下一次操作。
链表是以学生学号排序,当出现学号为0时结束本次操作,成功实现一个学号对应一位学生。
2.1.2程序结构或流程图2.2 具体方案 2.2.1 首界面2.2.2文件输出struct student *read()//数据读取,写入内存; { FILE *fp;struct student *p1,*p2,*head;head=NULL; p1=p2=(struct student *)malloc(LEN); if((fp=fopen("G:\\C\\file1.dat","rb"))==NULL) {head=NULL;主函数1 成绩录入2 成绩查询7 成绩输出6 插入记录3 不及格 名单4 修改记录5 删除记录8退出fclose(fp);return(head);}fread(p1,sizeof(struct student),1,fp);head=p1;while(p1->next!=NULL){p2=p1;p1=(struct student *)malloc(LEN);fread(p1,sizeof(struct student),1,fp);p2->next=p1;}fclose(fp);return (head);}用fread函数将文件中的数据项写入内存,返回head,为下面子函数的调用做准备。
高职电子专业《C语言程序设计》课程教学改革的探索摘要:本文从高职院校电子专业开设c程序设计的培养目标着手,基于多年的实际教学经验和教学体会,探讨了当前高职院校电子专业c语言程序设计教学中存在的问题,针对c语言教与学现状,分析传统教学模式和教学内容应如何改革,创新理念,采用案例式教学,结合电子专业工业实践特性加强对学生程序设计能力的培养和训练,以提高教学效果给出一些建议。
关键词:高职教育;电子专业;c程序设计;教学改革中图分类号:g642 文献标识码:a文章编号:1009-0118(2012)04-0117-02《c语言程序设计》是高职电子专业的1门基础课程,在实际应用中使用非常广泛。
开设此门课程的目的是使学生掌握程序设计的基本方法,逐步形成正确的程序设计思想,提高学生逻辑思维、抽象思维和编程能力,并具有一定的程序调试能力,让学生在解决后续单片机课程和全国电子设计大赛实际应用中打下坚实的基础。
近几年,笔者一直承担高职电子专业的《c语言程序设计》教学任务,在教学过程中发现部分学生没有明确学习目标甚至对开设此课程的必要性提出质疑,认为c语言枯燥难学而厌学,有些学生学习不得法,最终丧失了继续学习的信心。
笔者在这几年的教学中,对c 语言课程的教学进行了一些研究和探索,对传统的c语言教学进行了一些改革,同时对于c语言课程的教学改革提出自己的一些看法和建议。
一、高职电子专业c语言教学存在问题探讨从近年招生情况来看,大部分电子专业的生源属于专科生源中基础比较弱的一部分,而且其生源性质也存在着多样性,有中职的、职高的,有理科的、文科的。
在这种情况下,大部分学生缺乏学习积极性和主动性,同时加上从高年级同学那里得知c语言学习难度大,因此就产生了先入为主的思想,对学习《c语言程序设计》这门课程产生恐惧和畏惧心理,甚至有厌学现象。
作为教师要在短时间内达到人才培养方案的要求倍感压力,与此同时,c语言课程有比较强的工业基础应用前景,是后续理论学习和实践应用的基础和重要工具,然而在高职教学目标的定位上没有突出基础理论的应用和电子工业实践能力的培养。
C语言论文程序代码论文摘要:c语言功能非常强大、应用广泛,一直是计算机专业学生的基础课程之一。
在c语言授课过程中,我发现学生虽然学习兴趣浓厚,但往往很难独立编写程序代码。
学生普遍反映c语言抽象难懂,很难在头脑中形成思路。
针对学生的学习障碍,我在教学过程中总结一些学习心得。
关键词:c语言;程序代码c-inquiry learningwang juan(computer and communicationengineering,heilongjiang college ofconstruction,harbin 150025,china)abstract:c-language is very powerful,widely used,one of the basic course for computer major students.in the c-language teaching process,i found that although students interested in learning,but it is often difficult to separate programmingcode.students generally reflect the c-language abstract and difficult,it is difficult to form in the minds of thinking.for students with learning disabilities,i summarize some of the learning processof teaching experience.keywords:c-language;program code一、重视c语言的地位c语言语法简洁、紧凑、使用方便灵活,生产目标代码质量高,程序执行效率高,很多操作系统的程序控制代码都是应用c语言编写的。
题目:公交卡管理系统第一章绪论1.1 绪论C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C 语言,具体应用比如单片机以及嵌入式系统开发。
C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。
许多著名的系统软件,如DBASE Ⅳ都是由C 语言编写的。
用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用这种方法编写的。
归纳起来C 语言具有下列特点:1. C是中级语言。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.C是结构式语言。
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3.C语言功能齐全。
具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。
另外C语言也具有强大的图形功能,支持多种显示器和驱动器。
而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
4. C语言适用范围大。
适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。
C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。
它是数值计算的高级语言。
5.C语言文件由数据序列组成,可以构成二进制文件或文本文件常用的C语言IDE(集成开发环境)有Microsoft Visual C++,D ev-C++,Code::Blocks,Borland C++,Watcom C++ ,Borland C+ + Builder,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc 等等……对于一个初学者,Microsoft Visual C++是一个比较好的软件。
浅谈对中职学生C语言程序设计的教学思考摘要:c语言程序设计课程是中职学校计算机专业的主要课程之一,目前由于各种原因导致进入中职学习的学生基础薄弱,使教师在教授这门课时普遍感到教学效果不理想。
怎样调动中职学生对程序设计课程的兴趣,如何才能取得比较满意的教学效果成为教师们共同关注的话题。
本文从教学环节的设计和考核方式的改革两个方面谈谈自己的看法。
关键词:中职学校 c语言程序设计教学设计考核方式c语言作为当今最流行的程序设计语言之一,不但被作为计算机专业的必修课,而且被选为非计算机专业的选修课。
它也是计算机应用人员应掌握的一种程序设计工具。
在中职学校开展程序设计语言的教学,由于学生在英语和数学方面的基础较差,他们在c语言学习中会遇到很多障碍,从而丧失学习热情。
在这种情况下,如果老师还是按照传统的方法来教学生的话,教学效果可想而知。
作为从事c 语言教学多年的一名老师,我认为针对当前中职学生的特点,要想在c语言的教学上取得比较满意的教学效果,可以在以下两个方面做些努力:1 教学环节的设计首先是教学内容的选择。
中职学生中相当一部分同学基础薄弱,尤其是数学方面,这就要求教师在教学内容的选择上要结合目前中职学生的知识水平,依据中职教学的培养目标,适当降低理论知识的难度和深度,教学内容力求浅显易懂。
本课程知识主要涉及程序设计的三种基本结构、数组、函数等内容,而指针及结构体作为选学内容,学生接受起来困难的话,可以不讲。
教学重点放在对程序设计方法的理解和使用上,着重于程序设计在实践中的应用。
教师应在整合各章知识点,精心安排教学内容上下大功夫。
经过学习能达到学生对基本概念要理解,编程思路要掌握,常用函数会使用,提高学生逻辑思维能力和计算机操作技能之目的。
其次是教学方法的选择。
教师在讲解每一个问题的时候,应当教会学生如何解决问题的方法。
此讲解过程一定要详细,思路清晰,使学生最终理解这个问题原来可以通过这样的方法来解决。
教材上有的问题的解决方法,如果我们照着课本原封不动讲给学生,学生在理解的过程中可能会觉得枯燥无味,很快就失去继续听下去的耐心。
c语言程序设计课程设计论文一、课程目标知识目标:1. 理解C语言的基本语法和程序结构,掌握变量定义、数据类型、运算符、表达式等基本概念。
2. 学会使用C语言进行顺序结构、分支结构和循环结构的编程,并能运用到实际问题中。
3. 熟悉函数的定义、声明和调用,掌握模块化编程的方法。
4. 掌握数组和字符串的基本操作,理解指针的概念和使用方法。
5. 了解结构体和文件操作的基础知识,为后续课程打下基础。
技能目标:1. 培养学生运用C语言解决实际问题的编程能力,提高逻辑思维能力。
2. 培养学生阅读和分析C语言代码的能力,提高编程技巧。
3. 培养学生调试程序、查找并解决问题的能力。
4. 培养学生团队协作和沟通能力,通过分组讨论和实践,共同完成课程任务。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣和热情,培养探究精神和自主学习能力。
2. 培养学生面对困难时的坚持和毅力,树立克服编程难题的信心。
3. 强调编程规范和良好的编程习惯,培养学生的职业道德和责任感。
4. 培养学生分享知识和经验,乐于助人,形成团结协作的良好氛围。
课程性质:本课程为高年级学生的专业基础课,旨在使学生掌握C语言编程的基本知识和技能,为后续学习其他编程语言和计算机专业课程打下基础。
学生特点:学生已具备一定的计算机基础知识和逻辑思维能力,但对C语言编程尚处于入门阶段,需要系统学习和实践。
教学要求:结合课程目标和学生的实际情况,采用理论教学与实践教学相结合的方法,注重启发式教学,鼓励学生主动探索、实践和交流。
通过本课程的学习,使学生能够达到预定的知识、技能和情感态度价值观目标。
二、教学内容本课程教学内容分为以下五个部分,确保科学性和系统性:1. C语言基础- 变量定义、数据类型、常量与变量- 运算符、表达式和语句- 顺序结构程序设计2. 控制结构- 分支结构(if、switch)- 循环结构(for、while、do-while)3. 函数与模块化编程- 函数的定义、声明和调用- 递归函数- 模块化编程方法4. 数据结构与算法- 数组、字符串- 指针的概念、使用和数组操作- 排序算法(冒泡、选择、插入)5. 复合数据类型与文件操作- 结构体- 共用体、枚举- 文件操作基础(打开、关闭、读写)教学大纲安排如下:- 第1周:C语言概述、数据类型与变量- 第2周:运算符、表达式和语句- 第3周:顺序结构程序设计- 第4周:分支结构程序设计- 第5周:循环结构程序设计- 第6周:函数的定义与调用- 第7周:模块化编程、递归函数- 第8周:数组、字符串- 第9周:指针、排序算法- 第10周:结构体、共用体、枚举- 第11周:文件操作基础- 第12周:课程复习、实践与总结教学内容与教材章节紧密关联,注重理论与实践相结合,引导学生逐步掌握C 语言编程的基本方法和技巧。
c语言程序课程设计论文一、教学目标本课程的教学目标是使学生掌握C语言程序设计的基本概念、语法和编程技巧,培养学生具备基本的程序设计能力和算法思维,能够运用C语言解决一些实际问题。
1.理解C语言的基本语法和数据类型。
2.掌握C语言的运算符和表达式。
3.熟悉C语言的控制结构,包括条件语句、循环语句等。
4.了解C语言的函数和数组。
5.理解C语言的指针和引用。
6.能够使用C语言编写简单的程序,包括输入输出、计算、排序等。
7.能够阅读和理解C语言程序代码。
8.能够使用C语言进行基本的调试和优化。
情感态度价值观目标:1.培养学生的编程兴趣,提高学生对计算机科学的认知。
2.培养学生的问题解决能力和创新思维。
3.培养学生团队合作和自主学习的意识。
二、教学内容根据课程目标,教学内容主要包括C语言的基本语法、数据类型、运算符、表达式、控制结构、函数、数组、指针和引用等。
具体的教学大纲和教材章节如下:1.C语言的基本语法和数据类型(第1-2章)2.运算符和表达式(第3章)3.控制结构,包括条件语句、循环语句(第4-5章)4.函数和数组(第6-7章)5.指针和引用(第8-9章)三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过教师的讲解和演示,向学生传授C语言的基本概念和编程技巧。
2.讨论法:学生进行小组讨论,促进学生之间的交流和合作,培养学生的问题解决能力。
3.案例分析法:通过分析实际案例,让学生了解C语言在实际中的应用,提高学生的编程实践能力。
4.实验法:安排学生进行上机实验,让学生通过实际操作来巩固和加深对C语言的理解。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《C语言程序设计》2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境以上教学资源将帮助学生更好地学习和掌握C语言程序设计,提高学生的编程能力和算法思维。
C#程序设计论文每一个成功者都有一个开始。
勇于开始,才能找到成功的路。
目录第一章要求分析 (3)第二章总体分析 (3)第三章详细设计 (3)第四章具体实验方法 (4)第五章实验代码 (7)第六章总结 (12)第一章要求分析1.编程将一文本文件内容按照指定格式逐行解析并存入指定格式数据库此要求可以分拆为先将文本文件内容在C#中应用程序中打开,然后对其逐行分割,在指定位置进行分割,最后再连接并存到事先在SQL Server数据库中自己建的表格当中。
但是在这之前当然要确保电脑上有SQL Server数据库,没有的话就要先安装,然后再数据库中建表。
2.编程读取数据库中内容并生成文本文件,使前后两个文本文件内容完全一致此要求主要涉及数据库的读取。
3.编程比较前后两个文本文件内容原数据和从数据库中读取的数据进行对比。
第二章总体设计1.在windows Form中插入一个menuStrips,一个openFileDialog窗体和一个richTextBox,用于搜索所给的数据并将其显示在richTextBox中。
2.在windows Form 中再增加5个button,分别表示连接数据库、关闭数据库、插入数据、生成文本文件、对比。
3.在每个windows窗体下写上具体的代码,以实现其功能。
达到要求。
第三章详细设计Windows Form界面的设计如图所示3-1所示图3-1 windows Form界面设计第四章具体实验方法1.通过openFileDialog打开搜索所给的文本文件string fName = openFileDialog1.FileName;string ext = Path.GetExtension(fName);richTextBox1.Clear();然后再通过if判断文件格式,选择导入。
2.连接打开数据库mSqlConnection = new SqlConnection();mSqlConnection.ConnectionString"server=.;DataBase=c#Exam;uid=sa;pwd=920416" ;mSqlConnection.Open();if (mSqlConnection.State == ConnectionState.Open){MessageBox.Show(mSqlConnection.State.ToString());}3.关闭数据库时先要判断数据库是否已经打开,如果没有打开当然就不用关闭了,使用一个if语句即可实现。
c语言程序设计论文模板(10篇)1.1教学设计概述所谓教学设计,就是为了达到一定的教学目的,对教什么(课程、教学内容等)和怎么教(组织、方法、媒体的使用等)进行设计。
教学设计不等同于传统的备课写教案。
教学设计有利于教学工作的科学化,使教学活动纳入科学的轨道。
教学设计的意义就在于追求教学效果的最优化,不仅关心教师如何教,更关心学生如何学,注重将人类对教与学的研究结果和理论综合应用于教学实践。
教学设计主要包括确定教学目标、组织教学内容、分析教学对象、选择教学形式和方法及教学媒体、设计教学过程、教学质量评价设计等基本环节,其中,设计教学过程是课程教学设计的核心。
1.2该课程教学设计的内容2教学设计的实践及效果[2]李迎秋.C语言程序设计项目教程[M].大连:东软电子出版社,2023.1.引言2.教学中充分调动学生学习的积极性学生只有对C语言程序有浓厚的兴趣,才会积极和创造性地学习。
可从以下几个方面探讨:(1)强调学生学习C语言的重要性。
突出教学重点,使学生明确学习任务。
在首次课堂教学中,教师一定要向学生讲解清楚C语言课程的教学目标(为什么学习编程或程序设计)。
对于C语言程序设计课程的教学目标,可有如下三方面的讲解,学习基本的编程知识、培养求解问题的能力和具备一定的创新素质。
知识的传授和学习应融入问题求解中;问题求解能力是创新的基础。
(2)结合《C语言全国计算机等级考试》的试题库进行教学,学生学习起来更有动力。
试题库包括笔试试题库和上机试题库。
试题库按章节分类,题目类型以程序设计为主。
笔试题型有单项选择、程序分析、程序填空、程序改错和程序设计,上机题型有程序改错、程序填空和程序设计。
(3)利用Visual c++6.0工具进行C语言程序教学,培养学生的学习兴趣。
VC是一种基于Windows操作系统的可视化集成开发环境,是广泛使用的一种开发工具。
VC程序的两种模式是WINAPI方式和MFC方式。
应用这两种模式能够有效提高教学质量,激发学生的学习兴趣。
C语言程序设计论文 CKBOOD was revised in the early morning of December 17, 2020.C语言程序设计论文学校:天津电子信息职业技术学院系别:电子技术系专业:通信技术班级:通信S13-26学号:89757姓名:王磊C语言课程设计报告一、设计题目:计算器二、设计目标:进一步加深、巩固学生所学专业课程(《C语言》)的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。
掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能,充分发挥广大同学的潜力,使他们通过本次课程设计而得到全面的锻炼。
三、设计内容:1.设计系统的功能框图、流程图;2.编写计算器的源程序代码;3.上机调试;4.答辩;5.书写实习报告。
四、课程设计所用设备:每人一台计算机。
五、课程设计系统组成及模块功能:(1)主函数模块(2)设置系统进入图形模块(3)初始化图形系统模块(4)计算器计算函数模块(5)窗口函数模块(6)设计鼠标图形函数模块(7)获取特殊键函数模块六、软件环境:Visual c++6.0七、课程设计要求:在计算机上操作,通过Visual c++6.0,设计出“计算器”程序。
八、应提交的材料:实习报告一份,内容包含“计算器”程序代码。
设计报告:程序代码:#include <dos.h>#include <math.h>#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <stdarg.h>#include <graphics.h>#include <string.h>#include <ctype.h>#define UP 0x48#define DOWN 0x50#define LEFT 0x4b#define RIGHT 0x4d#define ENTER 0x0dvoid *rar;struct palettetype palette; int GraphDriver;int GraphMode;int ErrorCode;int MaxColors;int MaxX, MaxY;double AspectRatio;void drawboder(void);void initialize(void);void computer(void);void changetextstyle(int font, int direction, int charsize); void mwindow(char *header);int specialkey(void) ;int arrow();int main(){initialize();computer();closegraph();return(0);}void initialize(void){int xasp, yasp;GraphDriver = DETECT;initgraph( &GraphDriver, &GraphMode, "" ); ErrorCode = graphresult();if( ErrorCode != grOk ){printf("Graphics System Error: %s\n", grapherrormsg( ErrorCode ) );exit( 1 );}getpalette( &palette );MaxColors = getmaxcolor() + 1;MaxX = getmaxx();MaxY = getmaxy();getaspectratio( &xasp, &yasp );AspectRatio = (double)xasp/(double)yasp;}void computer(void){struct viewporttype vp;int color, height, width;int x, y,x0,y0, i, j,v,m,n,act,flag=1;float num1=0,num2=0,result;char cnum[5],str2[20]={""},c,temp[20]={""}; char str1[]="1230.456+-789*/Qc=^%";mwindow( "Calculator" );color = 7;getviewsettings( &vp );width=(vp.right+1)/10;height=(vp.bottom-10)/10 ;x = width /2;y = height/2;setfillstyle(SOLID_FILL, color+3);bar( x+width*2, y, x+7*width, y+height );setcolor( color+3 );rectangle( x+width*2, y, x+7*width, y+height ); setcolor(RED);outtextxy(x+3*width,y+height/2,"0.");x =2*width-width/2;y =2*height+height/2;for( j=0 ; j<4 ; ++j ){for( i=0 ; i<5 ; ++i ){setfillstyle(SOLID_FILL, color);setcolor(RED);bar( x, y, x+width, y+height );rectangle( x, y, x+width, y+height );sprintf(str2,"%c",str1[j*5+i]);outtextxy( x+(width/2), y+height/2, str2); x =x+width+ (width / 2) ;}y +=(height/2)*3;x =2*width-width/2;}x0=2*width;y0=3*height;x=x0;y=y0;gotoxy(x,y);arrow();putimage(x,y,rar,XOR_PUT);m=0;n=0;strcpy(str2,"");while((v=specialkey())!=45){while((v=specialkey())!=ENTER) {putimage(x,y,rar,XOR_PUT);if(v==RIGHT)if(x>=x0+6*width){x=x0;m=0;}else{x=x+width+width/2;m++;}if(v==LEFT)if(x<=x0){x=x0+6*width;m=4;}else{x=x-width-width/2;m--;}if(v==UP)if(y<=y0){y=y0+4*height+height/2;n=3;}else{y=y-height-height/2; n--;}if(v==DOWN)if(y>=7*height){y=y0;n=0;}else{y=y+height+height/2;n++;}putimage(x,y,rar,XOR_PUT); }c=str1[n*5+m];if(isdigit(c)||c=='.'){if(flag==-1){strcpy(str2,"-");flag=1;}sprintf(temp,"%c",c);strcat(str2,temp);setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,str2);}if(c=='+'){num1=atof(str2);strcpy(str2,"");act=1;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0.");{if(c=='-'){if(strcmp(str2,"")==0)flag=-1;else{num1=atof(str2);strcpy(str2,"");act=2;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);outtextxy(5*width,height,"0.");}}if(c=='*'){num1=atof(str2);strcpy(str2,"");act=3;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);outtextxy(5*width,height,"0.");}if(c=='/'){num1=atof(str2);strcpy(str2,"");act=4;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0.");}if(c=='^')num1=atof(str2);strcpy(str2,"");act=5;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0.");}if(c=='%'){num1=atof(str2);strcpy(str2,"");act=6;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0.");if(c=='='){num2=atof(str2);switch(act){case 1:result=num1+num2;break;case 2:result=num1-num2;break;case 3:result=num1*num2;break;case 4:result=num1/num2;break;case 5:result=pow(num1,num2);break;case 6:result=fmod(num1,num2);break;}setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); sprintf(temp,"%f",result);outtextxy(5*width,height,temp);}if(c=='c'){num1=0;num2=0;flag=1;strcpy(str2,"");setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0.");}if(c=='Q')exit(0);}putimage(x,y,rar,XOR_PUT);return;}void mwindow( char *header ){int height;cleardevice();setcolor( MaxColors - 1 );setviewport( 20, 20, MaxX/2, MaxY/2, 1 );height = textheight( "H" );settextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );settextjustify( CENTER_TEXT, TOP_TEXT );outtextxy( MaxX/4, 2, header );setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1 ); drawboder();}void drawboder(void){struct viewporttype vp;setcolor( MaxColors - 1 );setlinestyle( SOLID_LINE, 0, NORM_WIDTH );getviewsettings( &vp );rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top ); }int arrow(){int size;int raw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4};setfillstyle(SOLID_FILL,2);fillpoly(8,raw);size=imagesize(4,4,16,16);rar=malloc(size);getimage(4,4,16,16,rar);putimage(4,4,rar,XOR_PUT);return 0;}/int specialkey(void){int key;while(bioskey(1)==0);key=bioskey(0);key=key&0xff key&0xff:key>>8;return(key);}总结:1)实际操作过程中遇到的问题及解决方法:1.忘记加分号。
C语言程序设计课程设计(论文)-贪吃蛇------------ 大学C语言程序设计课程设计(论文)题目: 贪吃蛇院(系):专业班级:学号:学生姓名:指导教师:教师职称:起止时间:课程设计(报告)任务及评语院(系): 教研室:学号学生姓名专业班级程序设计(报告)贪吃蛇题目程序设计的任务与要求:(1)掌握C语言编程的基础知识。
(2)较熟练地编写C语言应用程序。
(3)了解C语言的常用标准函数、编程技巧、异常处理。
程序(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。
设(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能计)力都有一个很大的提高。
报告(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素) 质的提高起一个积极的推动作用。
任务课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。
正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。
指导教师评语及成绩成绩: 指导教师签字:2011年 1 月 4 日辽宁工业大学 C 语言课程设计说明书(论文)目录第1章 C语言课程设计的实训目的与要求 (1)1.1 C语言课程设计目的 (1)1.2 C语言课程设计的实验环境 (1)1.3 C语言课程设计的预备知识 (1)1.4 C语言课程设计要求 .................................................. 1 第2章 C语言课程设计内容 .. (2)2.1程序功能介绍 (2)2.2程序整体设计说明 (2)2.2.1设计思路 ......................................................22.2.2数据结构设计及用法说明 ........................................32.2.4各模块的功能及程序说明 ........................................72.2.5程序结果 ......................................................82.3程序源代码及注释 (10)第3章 C语言课程设计总结 .................................................. 17 参考资料.. .................................................................20辽宁工业大学 C 语言课程设计说明书(论文)第1章 C语言课程设计的目的与要求 1.1 C语言课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。
柳州职业技术学院毕业设计(论文)任务书题目:用C语言实现图形学设计院(系):电子电气工程系专业:电子与通信技术年级: 2003学生姓名:***学号:**********指导老师:职称:完成日期2005年12月10日一、设计所要达到的目的:通过设计C语言画图程序,使学生能对C语言有更进一步的了解,掌握基本程序的设计方法和简单的图形编程基础,提高编程能力,培养学生的逻辑能力和自学能力,为以后从事实际工作打下基础。
二、设计任务与要求:1、用TurboC编写画图程序。
2、实现用键盘或鼠标操作,有绘画点,直线等功能,并且能改变线条或点的颜色。
3、写出程序流程,并编写程序。
4、进行程序的调试。
5、写出设计说明书。
三、毕业设计说明书要求如下:1、说明书用16K或稿纸(15*20规格)单面制作。
2、装订顺序:(1)毕业设计(论文)任务书封面(2)摘要(3)目录(4)正文(5)参考文献资料(6)附图,附录(7)毕业设计(论文)任务书封底(评审意见)3、文字要求:字体工整、字迹清楚、语言流畅、无错别字4、图纸、图表要求:(1)图纸、图表布局合理,图画整洁,线条粗细均匀,尺寸标注规范,文字注释准确(2)图纸按国家规定标准绘制5、文字稿要求用电脑进行制作摘要C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能,而且简单易学的优点备受青睐。
本文利用C 语言实现计算机绘图设计,主要讲述了画图函数的应用。
程序用Turboc2.0集成开发环境进行编程与调试,Turboc2.0是美国Borland 公司的产品,Borland公司是一家专门从事软件开发、研制的大公司,该工具具有查错功能, 并可以在Tiny模式下直接生成.COM (数据、代码、堆栈处在同一64K 内存中) 文件。
还可对数学协处理器(支持8087/80287/80387等)进行仿真,工具界面简洁易懂,十分受到C语言编程者的厚爱。
本文提出了画图程序的设计方案,详细展述程序用到的各个图形函数的说明,以及图形模式下的初始化。
程序设计论文概述:程序设计是一门与计算机编程密切相关的学科,它研究的是如何将问题转化为计算机可执行的代码,并解决问题的方法和技巧。
本论文将讨论程序设计的基本概念、发展历程以及与其他学科的关联。
同时,将深入探讨程序设计中的算法、数据结构和编程语言等重要内容,并分析其在实际应用中的作用和影响。
一、程序设计的基本概念程序设计是指通过编写代码来实现特定功能的过程。
它基于计算机的指令集和编程语言,利用算法和数据结构等方法来解决问题。
程序设计的基本概念包括以下几个方面:1.1 算法算法是程序设计的核心,它是指解决问题的具体步骤和方法。
一个好的算法能够高效地解决问题,提高程序的执行速度和效率。
在程序设计中,选择合适的算法对于解决问题至关重要。
1.2 数据结构数据结构是程序设计中用于组织和存储数据的方式。
常见的数据结构包括数组、链表、栈、队列、树和图等。
选择合适的数据结构能够提高程序的运行效率和效果。
1.3 编程语言编程语言是程序设计中的工具,它提供了一种表达算法和操作数据的方式。
常见的编程语言包括C、Java、Python等。
不同的编程语言适用于不同的场景,选择合适的编程语言对于程序设计至关重要。
二、程序设计的发展历程程序设计是随着计算机技术的发展而逐步形成和发展起来的。
下面将简要介绍程序设计的发展历程。
2.1 机器语言与汇编语言时代早期的计算机只能通过机器语言来编程,编写程序需要直接操作计算机的指令。
后来,汇编语言的出现简化了程序设计的过程,提高了编程的效率。
2.2 高级编程语言的兴起随着计算机技术的发展,高级编程语言逐渐兴起。
高级编程语言通过更加简洁、易读的语法,使得程序设计更加方便和易于理解。
同时,高级编程语言还提供了更多的功能和库,使得程序开发更加高效。
2.3 面向对象编程的发展面向对象编程是计算机编程中的一种编程范式,它使得程序设计更加模块化和可重用。
面向对象编程中的核心概念包括封装、继承和多态,它们使得程序的设计更加灵活和易维护。
课程设计论文优秀4篇c语言课程设计优秀论文篇一摘要:一般在较大的程序设计当中,如果把汇编语言与高级语言程序结合起来使用,把两种语言的优点都发挥出来,充分利用两种的优势,进行混合编程,则可以很多的难以解决的难题。
在程序设计的实践当中,C语言和汇编语言可以相互调用,C语言可以调用汇编语言,汇编语言可以调用C语言,也可以把其中一种语言程序嵌入到另一种程序语言当中。
本文就是探讨把C语言与汇编语言两种语言进行混合编程,实现两者的最佳组合,从而解决一些实践难题。
关键词:汇编语言;C语言;混合编程汇编语言的优势就是速度快,占用存储空间不大,而且可以随时控制硬件,这些优点是其它的程序语言无法取代的。
汇编语言也有不足之处,就是在高级程序的编写与调试时存在着较大的困难,特别是在处理一些数据或者一些混合运算时显得更加困难。
C语言,它的优势就是在于功能全面,表达形式多样且灵活,开发使用效率很高,具有其它高级语言无法具有的优势。
通常在软件开发过程中,大部分程序采用高级语言编写,以提高程序的开发效率;但在要求执行速度快、占用空间少或要求直接控制硬件的场合,则利用汇编语言编写,以提高程序的运行效率。
1.汇编语言和C语言混合编程的方法C语言和汇编语言混合编程的具体方法有以下几种。
2.1参数传递汇编语言程序和C语言程序在调用时会涉及到参数传递,一般采用堆栈进行传递。
在汇编语言中将BP作为基址寄存器,调用程序先将来自于C语言程序中的参数依次压入堆栈中,然后当需要使用这些参数时,再用BP加上不同的偏移量依次对堆栈中的数据进行存取操作。
2.2调用关系的确定对于将要涉及到调用的过程或函数需要事先说明和建立调用与被调用关系。
被调用的过程或函数应预先说明为外部类型,以便被外部模块引用,而调用程序也需要在程序中说明将要引用的外部模块的名称。
在说明调用关系时还应根据不同的存储模式确定相应的汇编语言格式。
C程序小模式对应汇编程序的近类型过程,而C程序大模式则对应汇编程序的远类型过程。
互联网+模式下C语言程序设计探析-互联网论文-计算机论文——文章均为WORD文档,下载后可直接编辑使用亦可打印——1.C语言教学中存在的问题通过对高校学生进行采访,询问等方式,发现C语言在授课的过程中主要存在以下几方面的问题。
1.1讲授的知识过于陈旧,对学生能力的要求不具体作为计算机语言的一门基础课,许多老师在教学的刚开始没有很好的引导学生进行计算思维的建立和软件开发的步骤的实施。
在学习完课本上的程序之后,没有很针对性的找出具体现下比较成熟的软件程序帮助学生练习完成,没有对课本上的知识进行熟练,透彻的掌握。
1.2教学方法过于陈旧现下虽然有很多的学者对教学方法进行了不同层次的探讨,但是基于填鸭式教学模式的根深蒂固,真正能在实践中应用的少之又少(徐红云,徐成,基于网络课程的C++程序设计语言混合式教学改革实践:计算机教育,2018)。
并且C语言的学习需要良好的数学基础和逻辑分析能力,许多学生的理论基础相对薄弱,不善于思考,所以在个人教学法中引入了启发式教学和案例教学。
1.3课本的知识点相对来说比较孤立课本上的知识点都是由复杂的程序一点点提炼而出,形成的看似孤立的知识点。
而在学生学习的过程中,授课老师如果只是单单的讲授课本上的知识点,会让学生无法建立起整体程序设计的概念,形成眼高手低的习惯。
2.C语言教学方法的改革基于以上C语言课程当中的种种问题,改变教学的方法变得迫切且必须。
为了使研究的教学方法更具可行性,在本高校针对大一大二的学生进行问卷调查,总结出来C语言学习效果不佳的主要原因有以下几个:抽象的数学模型单纯靠多媒体课堂讲授,授课效果不够直观。
对于复杂的内容如函数,指针,学生难以学以致用。
学生在学习过程中,更多的关注于考试的内容,对于C语言程序的动手设计,自写自编操作能力欠缺。
针对以上问题,在教学过程中,要注意教学方法应该与教学手段相结合,应以项目为主导的思想组织教学。
课堂讲授坚持精讲多练,即学即用,适用为目标的综合性原则。
C++程序设计论文--通讯录管理系统一、题目要求:采用VC++实现通讯录管理,主要涉及的学生信息包括:学号、姓名、生日、性别、班级、电话、宿舍、地址等信息。
编写程序来完成如下功能:1、新建学生通讯录:采用头插入的方式建链表,并询问是否保存到文件。
2、向学生通讯录插入学生信息:采用头插入的方式把结点插进去。
3、在通讯录删除学生信息:删除结点(按学号、姓名删除),并询问是否从文件中删除。
4、在通讯录中查询学生信息:按姓名或学号的形式查找,然后显示学生信息。
5、在屏幕中输出全部学生信息:输出链表的每一个内容,按照一定格式进行显示。
6、修改学生信息:按学号、姓名修改查询到的位置对应的学生信息。
7、统计学生信息学生信息:按性别、班级统计查询到的位置对应的学生信息。
8、保存并退出:告知结束运行系统。
向文件写入学生通讯录信息,把链表中的结点都保存到文件中。
二、题目分析:1、总体思路如下:三、源代码:#include<iostream>#include<fstream>#include<string>#include<iomanip>using namespace std;struct DataType//定义所有信息{char number[20]; //学号char name[20]; //姓名char birthday[20]; //生日char sex[1]; //性别char class_num[20]; //班级char telephone[12]; //电话char dom[10]; //宿舍char address[20]; //地址};struct student //定义学生信息{DataType data;student *next;};class txl{private:student *head; //头指针student *currptr; //当前指针public:txl();~txl();void Creat();//新建学生通讯录void Insert();//向学生通讯录插入学生信息void Delete();//在通讯录删除学生信息void WriteFile();//从文件中读取通讯录的信息void ReadFile();//向文件写入学生通讯录信息void Search();//在通讯录中查询学生信息void Display();//在屏幕中输出全部学生信息void Revise();//修改通讯录中学生信息void Count();//在屏幕中按照统计输出学生信息void Exit(); //退出};txl::txl() //构造函数{head=currptr=NULL;};txl::~txl() //析构函数{student *temp=head;//释放空间while(temp){delete temp;}}//新建学生通讯录// 功能:采用头插入的方式建链表,并询问是否保存到文件// 参数:无//返回值:无void txl::Creat(){cout<<"你想要建立多少个学生的通讯录:";int i,n;char mf[1];cin>>n;cout<<"\n************录入工作开始**************\n"<<endl;for(i=1;i<=n;i++)//输入学生信息{currptr=new student;cout<<"请输入第"<<i<<"个学生的学号:";cin>>currptr->data.number;cout<<"请输入第"<<i<<"个学生的姓名:";cin>>currptr->;cout<<"请输入第"<<i<<"个学生的生日:";cin>>currptr->data.birthday;cout<<"请输入第"<<i<<"个学生的性别[m/f]:";cin>>*mf;while((*mf)!='m' && (*mf)!='f') //使输入为男女{cout<<"输入格式有误,请输入' m/f'。
"<<endl;cout<<"请输入第"<<i<<"个学生的性别:";cin>>*mf;}if((*mf)=='m'||(*mf)=='f')//保存{*(currptr->data.sex)=(*mf);}cout<<"请输入第"<<i<<"个学生的班级:";cin>>currptr->data.class_num;cout<<"请输入第"<<i<<"个学生的电话:";cin>>currptr->data.telephone;cout<<"请输入第"<<i<<"个学生的宿舍:";cin>>currptr->data.dom;cout<<"请输入第"<<i<<"个学生的地址:";cin>>currptr->data.address;cout<<"\n************华丽的分割线**************\n"<<endl;currptr->next=head;//头插入建链表head=currptr;}cout<<n<<"个学生的信息已全部输入完成!"<<endl<<endl;};//向学生通讯录插入学生信息// 功能:采用头插入的方式把结点插进去,并询问是否保存到文件// 参数:无//返回值:无void txl::Insert(){char mf[1];cout<<"你想要在哪个位置插入:";int k,n=0;//k记录插入位置,n记录链表长度cin>>k;student *p=head,*q=NULL,*t=hea d;while(t){t=t->next;n++;}if(k>n+1||k<1)//不存在此位置,不能存入{cout<<"此位置不合法";}else{currptr=new student;cout<<"请输入你要插入的学生的信息!"<<endl; //需插入的学生信息cout<<"请输入学生的学号:";cin>>currptr->data.number;cout<<"请输入学生的姓名:";cin>>currptr->;cout<<"请输入学生的生日:";cin>>currptr->data.birthday;cout<<"请输入学生的性别[m/ f]:";cin>>*mf;while((*mf)!='m' && (*mf)!='f ') //使输入为男女{cout<<"输入格式有误,请输入'm/f'。
"<<endl;cout<<"请输入学生的性别:";cin>>*mf;}if((*mf)=='m'||(*mf)=='f')//保存{*(currptr->data.sex)=(*mf);}cout<<"请输入学生的班级:";cin>>currptr->data.class_num;cout<<"请输入学生的电话:";cin>>currptr->data.telephone;cout<<"请输入学生的宿舍:";cin>>currptr->data.dom;cout<<"请输入学生的地址:";cin>>currptr->data.address;if(k==1)//建链表{currptr->next=head;head=currptr;}else{for(int i=1;i<k;i++){q=p;p=p->next;}q->next=currptr;currptr->next=p;}}}//在通讯录删除学生信息// 功能:删除结点,并询问是否从文件中删除(采用覆盖原有文件的形式)// 参数:无//返回值:无void txl::Delete(){if(head!=NULL)//链表存在时就做删除操作{int k,n=0;student *cu=head;student *p=head,*q=head->next, *t=head;cout<<"你可以通过以下方式删除:"<<endl;cout<<"1、按学号删除"<<endl;cout<<"2、按姓名删除"<<endl;cout<<"你想要按什么方式删除(1 或2):";char ch;cin>>ch;while(ch!='1'&&ch!='2'){cout<<endl;cout<<"操作错误,请重新输入:";cin>>ch;}//判断输入是否符合if(ch=='1'){char num[20];cout<<"请输入你要的学号:";cin>>num;while(cu!=NULL){n++;if(strcmp(cu->data.num ber,num)==0) //判断是否是所查学号{break;}cu=cu->next;}if(cu==NULL)cout<<"不存在这个学号!"<<endl;else{k=n;if(k==1)head=head->next;else{for(int i=1;i<k-1;i ++){p=q;q=q->next;}if(q==NULL)p=NULL;elsep->next=q->ne xt;}cout<<"删除成功!"<<endl;}}else{ int n=0;char nam[20];cout<<"请输入你要的姓名:";cin>>nam;while(cu!=NULL){n++;if(strcmp(cu->data.nam e,nam)==0) //判断是否是所查姓名{break;}cu=cu->next;}if(cu==NULL)cout<<"不存在这个姓名!未能成功删除!"<<endl;else{k=n;if(k==1)head=head->next;else{for(int i=1;i<k-1;i ++){p=q;q=q->next;}if(q==NULL)p=NULL;elsep->next=q->ne xt;}cout<<"删除成功!"<<endl;}}}}//向文件写入学生通讯录信息// 功能:把链表中的结点都保存到文件中// 参数:链表的一个结点//返回值:无void txl::WriteFile(){student *s=head;ofstream fop;fop.open("通讯录.dat",ios::binary|io s::trunc); //以二进制形式打开文件//覆盖原来的文件且重新保存删除后的内容if(!fop){cout<<"通讯录.dat 无法打开!"<<endl;abort();}char Y_N;cout<<"您需要保存更改到文件中吗?(Y/N):"; //询问是否保存到文件中cin>>Y_N;while(Y_N!='Y'&&Y_N!='y'&&Y_ N!='N'&&Y_N!='n') //使输入为yes 或no{cout<<"请输入'Y' 或'N':";cin>>Y_N;}if(Y_N=='Y'||Y_N=='y')//保存{while(s){while(fop.write((char *)& s->data,sizeof(s->data))){s=s->next;flush(cout);}}cout<<"保存成功!"<<endl;}fop.close();}//从文件中读取通讯录的信息// 功能:从文件中读取内容,并建链表// 参数:无//返回值:无void txl::ReadFile(){currptr=new student;ifstream fip("通讯录.dat",ios::in|io s::binary); //以二进制形式打开文件while(fip.read((char *)&currptr->d ata,sizeof(currptr->data))){currptr->next=head;head=currptr;currptr=new student;}fip.close();delete currptr;}//在通讯录中查询学生信息// 功能:按姓名或学号的形式查找// 参数:无//返回值:无void txl::Search(){cout<<"你可以通过以下方式查询:"<<endl;cout<<"1、按学号查询"<<endl;cout<<"2、按姓名查询"<<endl;cout<<"你想要按什么方式查询(1 或2):";char ch;cin>>ch;cout<<"你要查询的信息是:";while(ch!='1'&&ch!='2'){cout<<endl;cout<<"操作错误,请重新输入:";cin>>ch;}student *cu=head;if(ch=='1')//按学号查询{char num[20];cin>>num;while(cu!=NULL){if(strcmp(cu->data.number, num)==0) //判断是否是所查学号{cout<<"你要找的学生信息为:"<<endl;cout<<cu->data.numbe r<<" "<<cu-><<" "<<cu ->data.birthday<<" "<<cu->data.sex< <" "<<cu->data.class _num<<" "<<cu->data.telephone<<""<<cu->data.dom<<" "<<cu->data. address<<endl;break;}cu=cu->next;}if(cu==NULL)cout<<"不存在这个学生!"<<endl;}else//按姓名查询{char na[20];cin>>na;while(cu!=NULL){if(strcmp(cu->,na) ==0) //判断是否是所查姓名{cout<<"你要找的学生信息为:"<<endl;cout<<cu->data.numbe r<<" "<<cu-><<" "<<cu ->data.birthday<<" "<<cu->data.sex< <" "<<cu->data.class _num<<" "<<cu->data.telephone<<""<<cu->data.dom<<" "<<cu->data. address<<endl;break;}cu=cu->next;}if(cu==NULL) //查询不到cout<<"不存在这个学生!"<<endl;}}//在屏幕中输出全部学生信息// 功能:输出链表的每一个内容// 参数:无//返回值:无void txl::Display(){if(head==NULL)cout<<"通讯录里没有内容!\n\ n";else{student *k=head;cout<<setiosflags(ios::left)<<set w(10)<<"学号"<<setiosflags(ios::left)<< setw(10)<<"姓名"<<setiosflags(ios::left)<<setw (10)<<"生日"<<setiosflags(ios::left)<<se tw(6)<<"性别"<<setiosflags(ios::left)<<setw(1 0)<<"班级"<<setiosflags(ios::left)<<setw (15)<<"电话"<<setiosflags(ios::left)<<setw(6) <<"宿舍"<<setiosflags(ios::left)<<setw(1 0)<<"地址"<<endl;//设置左对齐输出while(k){cout<<setiosflags(ios::left)<<s etw(10)<<k->data.number<<setw(10)<<s etiosflags(ios::left)<<k-><<setw(10) <<setiosflags(ios::left)<<k->data.birthda y<<setw(6)<<setiosflags(ios::left)<<k ->data.sex<<setw(10)<<setiosflags(ios::l eft)<<k->data.class_num<<setw(15)<<setiosflags(ios::left)<<k ->data.telephone<<setw(6)<<setiosflags(i os::left)<<k->data.dom<<setw(10)<<setiosflags(io s::left)<<k->data.address<<endl;k=k->next;}cout<<endl;}}//修改学生信息// 功能:修改输入位置对应的学生信息// 参数:无//返回值:无void txl::Revise(){if(head!=NULL)//链表存在时就做删除操作{char mf[1];student *cu=head;student *p=head,*q=head->next, *t=head;cout<<"你可以通过以下方式修改:"<<endl;cout<<"1、按学号修改"<<endl;cout<<"2、按姓名修改"<<endl;cout<<"你想要按什么方式修改(1 或2):";char ch;cin>>ch;while(ch!='1'&&ch!='2'){cout<<endl;cout<<"操作错误,请重新输入:";cin>>ch;}//判断输入是否符合if(ch=='1'){char num[20];cout<<"请输入你要的学号:";cin>>num;while(cu!=NULL){if(strcmp(cu->data.num ber,num)==0) //判断是否是所查学号{break;}cu=cu->next;}if(cu==NULL)cout<<"不存在这个学号!"<<endl;else{cout<<"请输入你要更改的学生的信息!"<<endl;//需插入的学生信息cout<<"请输入学生的学号:";cin>>cu->data.number;cout<<"请输入学生的姓名:";cin>>cu->;cout<<"请输入学生的生日:";cin>>cu->data.birthda y;cout<<"请输入学生的性别[m/f]:";cin>>*mf;while((*mf)!='m' && (*mf)!='f') //使输入为男女{cout<<"输入格式有误,请输入'm/f'。