沈阳理工大学C语言课程设计DOC
c语言求三次方程的根程序设计
沈阳理工大学机械工程学院计算机程序训练任务书姓名崔晓光班级 08010131学号 18日期:2010/06/15目录一设计题目............................ . (3)二设计要求 (3)三技术要求 (3)(1)题目内容的描述 (3)(2)应用程序详细说明 (3)(3)输入数据类型、格式和内容限制 (4)(4)主要模块的算法描述 (4)(5) 结束语 (6)(6) 程序的源代码清单 (6)一设计题目求3次方程的根二设计要求已知有一方程ax3+bx2+cx+d=0,方程系数a,b,c,d由键盘输入(要求a,b,c,d都不能等于零,如果有零从新输入),求其3个根。
三技术要求1 按照给定题目,独自设计程序,上机调试通过。
2 设计报告(1)题目内容描述:设计一程序算出一元三次方程的根(2)应用程序功能详细说明#include<> : 把使用数学库函数时所需的信息包含进来;#include <> :控制台的输入输出;float a, b, c, d : 定义外部变量,是全局都可以使用;float f(float):定义f函数,以实现f(x)=ax^3+bx^2+cx+d ;float xpoint(float x1 ,float x2):定义xpoint函数,求出弦与x轴的交点;float root :定义roop函数,求近似根;do... While : 循环;void main():主函数;fabs:求绝对值的函数,对实数型求绝对值的标准函数;while(fabs(y)>= ) : 设定精度;if(): 判定所给定的条件是否满足根据判断的结果(真或假)决定执行给出两种操作之一;while() :用来实现“当型”循环结构;printf() :printf的一般形式为printf(格式控制,输出列表)例如:printf(“%d,%c\n”,i,c),括号内包括两部分:a格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:a:格式说明。
沈阳理工大学-c语言课课程设计
询问是否继续(y/n),若输入 y 则再投票,若输入 n 则退出投票。 设计菜单,通过选择菜单调用以上各个函数。系统启动时数据可有文件导入,录 入新的数据或修改数据后
No. 3
软件开发环境
Windows 7,TC2.0 或 Visual C++ 6.0
沈阳理工大学课程设计专用纸
成 绩 评 定 表
学生姓名 专 业 吴琼 通信工程 班级学号 课程设计题目 1203060128 C语言课程设计
评
语
组长签字:
成
绩 日期
20 年 月 日
沈阳理工大学课程设计专用纸
No. 2
课程设计任务书
学 院 信息科学与工程学院 吴琼 专 业 学 号 C 语言课程设计 通信工程 1203060128 学 生 姓 名 设 计 题 目
void input() { int i; printf("输入候选人信息:编号 姓名 年龄 性别(男 b 女 g) 电话号 地址:\n"); for(i=0;i<2;i++)
scanf("%d %s %d %c %s %s",&a[i].num,a[i].name,&a[i].age,&a[i].sex,a[i].tele phone,a[i].addr);
沈阳理工大学课程设计专用纸
No. 1
一、题目要求
题目:
复制字符串、删除字符串并输出删除后字符串、电子投票管理程序的设计
内容:
1.从键盘输入一个字符串,将此字符串逆置,然后用函数调用方法将此字符串转成 正序加逆序并输出。 2.请编写一个程序, 输入一组只含字母和 “*” 的字符串, 将字符串中前面连续的 “*” 全部删除,中间和后面的不删除,然后输出删除后的字符串。 3.电子投票管理程序的设计 设计结构体数组,结构中包含候选人数据为:编号、姓名、简历、票数。 其中“票数”由投票后统计得到:设计各个函数,分别实现以下功能: (1)输入候选人信息 (2)显示所有候选人记录 (3)投票功能实现,每次投票后,应
沈阳理工大学C语言课程设计DOC
一、题目要求题目名称:数字的组成及删除指定位置的字符,工资统计的设计内容:1、编程:用0—9之间不同的三个数字构成一个三位数,统计有多少个这样的三位数。
2、规定输出的字符串中只能包含字母和*号,编写函数fun(char*a,int n),其功能是:是字符串前边连续的*号不多于n个;若多于n个,则删除多于的*号,若小于或等于n个,则什么也不做。
例如:若输入字符串为******A*BC*DEF*G***,n的值为4,则删除后的字符串应是:****A*BC*DEF*G***3、工资统计程序设计设计结构体数组,结构中包含职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资有公式计算得到:实付工资=应付工资-保险-税金设计各个函数,分别实现以下功能:(4)输入职工数据,其中“实付工资”通过计算得到(5)显示全部职工数据(6)输入其部门值、显示该部门职工的数据,工资总额,平均工资设计菜单,通过选择菜单调用以上函数。
要求:使用C语言完成上述程序的设计、编程和调试,开发环境可采用Turbo C 2.0、WinTC或Visual C++ 6.0等。
3、3、工资统计程序设计设计结构体数组,结构中包含职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资有公式计算得到:实付工资=应付工资-保险-税金设计各个函数,分别实现以下功能:(7)输入职工数据,其中“实付工资”通过计算得到(8)显示全部职工数据(9)输入其部门值、显示该部门职工的数据,工资总额,平均工资设计菜单,通过选择菜单调用以上函数。
1、每个函数的功能:(1)void input();录入:输入职工数据,其中"实付工资"通过计算得到(2)void del();)删除:删除指定的职工信息(输入姓名,若找到则删除该信息(3)void mod();修改:允许对已经录入的数据重新进行编辑、修改(4)void show_all();显示:显示全体职工数据;(5)void show_name();查询:a. 输入职工姓名,显示该职工的全部数据b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。
沈阳理工大学828C语言程序设计2021年专业课初试考试大纲
沈阳理工大学硕士研究生入学考试自命题考试大纲科目代码:828 科目名称:C语言程序设计适用专业:085400电子信息(信息科学与工程学院)一、考试基本内容(一)C语言概述(1)C语言简介及C程序设计过程(2)简单C程序介绍及C程序的上机步骤(二)算法(1)算法的概念及算法的表示方法(2)算法的特点及算法设计的要求(三)基本数据类型及数据的输入输出(1)标识符、常量和变量(2)C语言基本数据类型(3)数据的输入与输出(四)运算符与表达式(1)C语言的各种运算符及其表达式的用法(五)C语句及其程序设计(1)选择结构程序设计(2)选择结构程序设计(3)循环结构程序设计(六)数组(1)一维、二维数组的应用(2)字符数组的应用(七)函数(1)函数的定义、调用和参数传递(2)函数的嵌套调用与递归调用(3)变量的作用域和变量的存储属性(八)编译预处理命令(1)宏定义命令(2)文件包含及条件编译命令(九)指针(1)指针与指针变量的概念、指针与函数(2)指针与数组(3)字符串与指针(十)结构体类型(1)结构体变量及结构体数组的使用(2)结构体指针及链表的操作(十一)共用体与枚举类型(1)共用体类型变量的定义及应用(2)枚举类型变量的定义及应用、用typedef定义类型(十二)文件(1)文件有关的基本概念、文件类型指针;(2)文件打开与关闭、文件读写,文件定位操作的实现。
二、考试要求(一)了解C语言程序的概貌,掌握C程序的上机步骤。
(二)了解算法的概念,掌握算法的设计方法,掌握计算机算法的自然语言表示法、流程图表示法和N-S图表示法。
(三)了解C标识符、常量和变量的概念,掌握C标识符的命名规则,掌握变量的定义和初始化方法;了解C语言的各种数据类型,掌握C语言的基本数据类型的表示方法,掌握C语言数据的输入与输出函数的使用方法;了解数据的输入与输出的概念,掌握C语言数据的各种输入与输出函数的使用方法。
(四)了解C运算符与表达式的概念,掌握各种C运算符及其表达式的使用,掌握各种运算符的优先级和结合性。
C语言程序设计实例教程课程设计
C语言程序设计实例教程课程设计一、引言C语言是一门十分受欢迎的计算机编程语言,其流行程度源于其简单性、可移植性和高效性等因素。
C语言的广泛使用范围包括嵌入式系统设计、操作系统编写、游戏开发以及各种应用程序的开发等。
因此,学习C语言程序设计对于计算机科学专业的学生来说至关重要。
本文档为C语言程序设计实例教程课程设计,旨在帮助学生更好地理解和掌握C语言的程序设计方法。
该课程设计将包括实例代码和详细的代码解释,通过这些实例,学生将学习到C语言的基本语法、程序结构、函数和指针等重要知识点,同时还能够提高自己的编程能力。
二、课程设计目标本课程设计以学习C语言的基本程序设计方法为核心,旨在实现以下目标:1.理解C语言的基本语法,包括变量类型、运算符、数据类型等;2.掌握C语言的程序结构,包括顺序结构、选择结构和循环结构等;3.熟悉C语言的函数和指针,能够编写复杂的程序;4.建立编程思维,提高编程能力;5.培养学生的团队合作意识。
三、教学内容3.1 C语言基础1.C语言简介2.C语言程序的基本结构3.C语言中的变量和运算符4.C语言中的数据类型5.C语言中的控制语句6.C语言中的函数3.2 C语言程序设计实例1.实例1:计算数组中元素的平均值2.实例2:冒泡排序3.实例3:字符串反转4.实例4:判断一个数是否为素数5.实例5:文件操作6.实例6:链表数据结构四、教学方法本课程设计采用讲解思路+实例案例的教学方法,以实现学生的基础和编程能力的提升。
具体方法如下:1.首先,老师将讲解课程内容的思路,并简单介绍应用场景;2.其次,老师将通过讲解实例案例的方式,详细阐述程序设计的各个细节,缺陷及处理方法;3.学生可以根据案例代码自行练习,以锻炼自己的编程能力;4.学生可以结合自己的理解,对老师的代码进行添加、修改和注释,以提升自己的编程水平;5.学生还可以通过团队合作的方式来完成课程设计,以培养团队协作能力。
五、教学评价本课程设计将根据以下方法进行评价:1.基于实例作业的评价方式,用于考核学生对于课程内容的理解和掌握程度;2.通过课堂练习和编程作业的评价方式,考核学生的实践能力和编程水平;3.通过学生团队合作的评价方式,考核学生的团队协作能力;4.进行期末考试,考核学生的知识掌握程度。
程序设计c语言课程设计
程序设计c语言课程设计一、教学目标本课程的教学目标是使学生掌握C语言程序设计的基本概念、语法和编程技巧,培养学生运用C语言解决实际问题的能力。
具体分解为以下三个方面的目标:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等概念。
2.技能目标:学生能够熟练使用C语言编写程序,解决简单的数学计算、数据处理和排序等问题。
3.情感态度价值观目标:培养学生对编程语言的兴趣,增强其自主学习和解决问题的能力,使其认识到程序设计在现代社会的重要性。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等。
具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点和基本语法。
2.第二章:数据类型和运算符,讲解整型、浮点型、字符型数据以及各类运算符的用法。
3.第三章:控制结构,学习顺序结构、分支结构和循环结构的使用。
4.第四章:函数,讲解函数的定义、声明和调用,以及常用的库函数。
5.第五章:数组和指针,学习一维、二维数组的操作以及指针的基本用法。
6.第六章:字符串和文件操作,了解字符串的表示方式、文件的基本操作。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式:1.讲授法:教师通过讲解、举例等方式,向学生传授C语言的基本概念和编程技巧。
2.案例分析法:教师通过分析实际案例,引导学生运用C语言解决具体问题。
3.实验法:学生动手编写程序,巩固所学知识,培养实际编程能力。
4.讨论法:学生分组讨论,共同解决问题,提高沟通和合作能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)2.参考书:《C Primer Plus》、《C语言入门教程》3.多媒体资料:教学PPT、视频教程、在线编程练习平台4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。
沈阳c语言课程设计
沈阳c语言课程设计一、课程目标知识目标:1. 学生能掌握C语言的基本语法,包括变量定义、数据类型、运算符和表达式。
2. 学生能理解并运用C语言的控制结构,如顺序结构、分支结构和循环结构。
3. 学生能运用数组、函数和指针等C语言特性进行程序设计。
技能目标:1. 学生能独立编写简单的C语言程序,具备初步的程序设计能力。
2. 学生能运用调试工具对程序进行调试,找出并修正错误,提高程序质量。
3. 学生能通过阅读和分析C语言代码,理解程序的执行过程和逻辑。
情感态度价值观目标:1. 培养学生严谨、细心的编程习惯,提高问题解决能力和逻辑思维能力。
2. 激发学生对计算机编程的兴趣,鼓励主动探索、创新和实践。
3. 培养学生的团队协作意识,学会与他人共同分析问题、解决问题。
课程性质:本课程为初中信息技术课程,旨在让学生掌握C语言编程基础,培养编程兴趣和基本技能。
学生特点:初中学生具有一定的逻辑思维能力和问题解决能力,对新鲜事物充满好奇心,但注意力容易分散,需要引导。
教学要求:结合学生特点,注重理论与实践相结合,采用任务驱动、案例分析等教学方法,引导学生主动参与,培养编程素养。
通过分解课程目标为具体学习成果,便于教学设计和评估。
二、教学内容1. C语言概述- 了解C语言的发展历程、特点和应用领域。
- 掌握C程序的组成、编译和执行过程。
2. 基本语法- 变量定义、数据类型、常量与变量。
- 运算符和表达式,包括算术、关系和逻辑运算符。
3. 控制结构- 顺序结构程序设计。
- 分支结构程序设计,包括if语句和switch语句。
- 循环结构程序设计,包括for循环、while循环和do-while循环。
4. 函数与数组- 自定义函数的定义、调用和返回值。
- 数组的定义、初始化和访问。
- 函数与数组的综合应用。
5. 指针- 指针的概念、定义和引用。
- 指针与数组的关系,指针数组、数组指针。
- 指针作为函数参数的应用。
6. 编程实践- 简单程序设计,如计算器、成绩管理系统等。
沈阳工程学院C语言课设
目录C语言课程设计成绩评定表 ............ 错误!未定义书签。
C语言课程设计任务书 (1)程序基本框架结构图 (2)程序设计说明书 (3)源代码清单 (4)课程设计总结 (10)C语言课程设计C语言课程设计任务书一、设计目的通过本次课程设计使学生进一步加深对C语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握C语言的编程方法和技巧,提高学生用C语言解决实际问题的能力。
二、设计要求1、认真查阅参考书、资料2、遵守课程设计时间安排3、按时上机,认真调试程序4、认真完成课程设计报告三、课设报告装订内容及顺序1、课程设计封皮2、目录3、课程设计成绩评定表4、课程设计任务书5、程序基本框架图6、程序设计说明书7、源代码清单8、课设总结与心得四、设计题目图书管理系统五、时间安排(一周:从 6 月 20 日到 6 月 24 日)1、查阅资料及程序设计(1天)2、程序编制及调试(3天)3、成绩评定(0.5天)3、打印报告(0.5天)六、参考文献1、《C语言程序设计》李淑华/李贞编大连理工大学出版社2、《C语言程序设计》孙连科/姚大鹏编辽海出版社3、《C++时尚编程百例》网冠科技编.机械工业出版社4、《TURBO C 实用大全》徐金梧等编. 机械工业出版社程序基本框架结构图程序设计说明书我们第二小组的课题是图书管理系统,这个系统是我们小组每个人的不懈努力和不断坚持的成果,最后将每个人的结果汇总,经过不断的调试,不断的修改,才成为现在的这个程序。
我们的程序分为4个部分:增加图书、删除图书、修改图书资料以及查询图书资料,我负责的部分是修改图书资料,我的设计思想是:在输入各个书本的信息之后,可以查询出来,并且用某种函数修改已经输入的内容,于是我用了2个指针函数,分别指向“book.txt”和“book1.txt”,之后定义函数,使用户输入书名后,用一个“for”循环语句进行筛选和对比,直到程序筛选到与用户输入的书名一样的书,停止循环,并将此书的所有信息显示,之后,我用了一个“switch”语句,选择用户所需要的修改项,并显示“修改序号”“修改书名”“修改作者”,选择序号为1-3,(如果不是1-3,则显示出错)之后进入修改的界面,根据修改内容,定义到原数据中,并修改原数据,最后,修改结束后,返回主界面。
C 课程设计2
.成绩评定表图1-1按任意键继续后进入主菜单,选择菜单号1,进入入栈模块,如图所示。
图1-2开始入栈,输入新的栈顶元素(整型),并输入Y或N选择是否继续,此过程中,输入错误有提示,如图所示,以1,3,5,7,9,2,4,6,8,入栈为例。
图1-3图1-4图1-5选择N,输入结束,然后回到主菜单,下面选择菜单号2,进入出栈模块。
图1-6按任意键继续后,回到主菜单,选择菜单号3,显示栈内剩余信息。
图1-7图1-8其间,每一次输出可按需要按任意键输出,并显示剩余信息。
图1-9图1-10汇报完毕后,即栈已空,按任意键返回到主函数,选择菜单号4 ,进入数制转换模块。
图1-11输入被转换的数字,被转换数字的数制及预期数制,并可按需求输入Y或N选择继续或退出。
图1-12图1-13退出后返回主菜单,选择0,即可退出程序。
图1-14图1-15四、题目二设计过程1、题目分析本题要求建立链表,以存储联系人信息,并设计出对其的建立,插入删除显示等基本操作即可。
2、算法描述首先定义一个链表结点结构体,指针域包括一个next指针,数据域包括个人姓名及联系方式。
欢迎界面后,进入主菜单,主菜单用switch设计,其中调用函数NUM,该函数可返回有效的菜单号,可屏蔽并提示错误信息及重新输入,菜单下调用了其他功能函数,菜单内除退出和初始化函数外所有的功能函数均存放在Fx.c.下。
下面仅具体阐述一下各功能模块的工作原理。
函数Build,首先判断该表是否已建立过,即表内是否有一个空结点(头结点),表未初始化时便建立一个空表,否则提示“表已存在,无需建立”。
提示后延时2s自动跳转到主菜单。
插入函数Insert,首先输入有效信息,然后利用头插法将其插入到头指针的下一个结点,再输出提示,提示用户选择N或Y,判断是否继续,若要继续,则递归本函数,否,直接返回主菜单。
void Welcome(){printf("\n\n\n\n\n\n\n\t\t欢迎您使用《通讯录管理系统》 !\n\n\n ");printf("\t\t\t\t设计者:马舒阳(1203070102)\n");getch();}4、运行结果首先是欢迎界面,如图2-1所示。
c语言课程设计电子词典
沈阳工程学院课程设计设计题目: 电子词典系别信息工程系班级计本083学生姓名学号24指导教师姜柳、吕海华职称讲师、讲师起止日期:2009年6月15日起——至2009年6月26日止ﻬ沈阳工程学院课程设计任务书课程设计题目:电子词典(第 1 组)系别信息工程系班级计本083学生姓名张余学号200指导教师姜柳、吕海华职称讲师、讲师课程设计进行地点:实训F任务下达时间:2009年6月15日起止日期:2009年6月15日起——至2009年6月26日止教研室主任姜柳2009年6月15日批准一、课程设计的原始资料及依据在计算机中建立有限规模的电子英汉词典,利用程序实现电子英汉词典的查找、增加、删除、修改等功能。
查阅有关资料,进一步理解程序设计模块化的思想,并利用此思想编写一个简单的电子词典。
通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。
二、课程设计主要内容及要求1.认真阅读资料,掌握程序设计模块化的思想。
2.要求在设计的过程中,建立清晰的层次结构。
3.画出主要的功能结构图和主要模块的流程图。
4.实现功能:⑴查找单词。
⑵增加单词。
⑶万年历⑷修改单词。
⑸显示单词。
⑹保存单词。
⑺返回⑻帮助⑼退出5. 要求操作简单,用户界面友好。
6. 运行程序,检查结果是否和理论值一致。
7. 环境使用Windows,Turbo C环境。
三、对课程设计说明书撰写内容、格式、字数的要求1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。
一般不应少于3000字。
2.在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。
最新C语言课程设计指导书汇总
C语言课程设计指导书C语言课程设计指导书雷鸣编沈阳理工大学理学院2007年4月一、设计性质与目的“C语言课程设计”是在学习“C语言程序设计基础”课程之后进行的一个实践教学环节,课程设计的目的是:1、进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;2、针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
3、掌握C语言的编程技巧和上机调试程序的方法。
4、掌握程序设计的常用算法。
为了使学生从课程设计中尽可能取得比较大的收获,对课程设计题目分成二类,一类为基础训练题目,学生从中学习到程序设计的常用算法。
另一类为综合题目。
学生从这两类型题目中各选择部分完成。
课程设计环境:利用TurboC编程。
二、设计的基本要求本课程设计的基本步骤与要求是:1、问题分析及解决方案框架确定充分地分析和理解问题本身,弄清要求做什么。
在确定解决方案框架过程中,考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。
2、详细设计和编码确定算法的主要流程,再此基础上进行代码设计,每个明确的功能模块程序一般不超过60行,否则要进一步划分。
3、上机前编写程序与检查上机前程序检查可有效提高调试效率,减少上机调试程序时的无谓错误。
程序检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。
把程序中的明显错误事先排除。
4、上机调试程序5、完成课程设计报告①问题描述:题目要解决的问题是什么。
②设计设计算法:主要算法思想,用流程图表示。
实现注释:各项功能的实现程度。
调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等。
③附录:源程序清单和结果。
如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。
沈阳大学c语言课程设计
沈阳大学c语言课程设计一、教学目标本课程旨在让学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备良好的编程习惯和问题解决能力。
通过本课程的学习,学生将能够:1.理解C语言的基本概念和语法规则,熟练使用C语言进行程序设计。
2.掌握常用的数据结构(如数组、链表、栈、队列等)和算法(如排序、查找等),并能够运用到实际问题中。
3.培养良好的编程习惯,掌握编程规范和技巧,提高代码质量和可维护性。
4.培养问题解决能力,能够独立分析和解决编程过程中遇到的问题。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程实践。
具体安排如下:1.C语言的基本语法:变量、数据类型、运算符、表达式、控制语句、函数等。
2.数据结构:数组、链表、栈、队列、排序、查找等。
3.算法:常用的排序算法(冒泡排序、选择排序、插入排序等)、查找算法(线性查找、二分查找等)等。
4.编程实践:通过实际项目案例,让学生运用所学知识和技能解决实际问题。
三、教学方法本课程采用多种教学方法相结合,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:教师讲解C语言的基本语法、数据结构和算法,引导学生理解和掌握相关知识。
2.讨论法:学生进行小组讨论,分享学习心得和解决问题的经验,培养学生的合作能力和沟通能力。
3.案例分析法:分析实际项目案例,让学生学会将理论知识运用到实际问题中。
4.实验法:安排实验课,让学生动手编写代码,培养学生的实际编程能力和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选用以下教学资源:1.教材:《C程序设计语言》(K&R著)或《C Primer Plus》(Stephen Prata著)。
2.参考书:《C语言编程思想》(E.B. Pattis著)、《C++ Primer》(Stanley B. Lippman著)。
3.多媒体资料:教学PPT、视频教程、在线编程练习平台等。
C语言课程设计指导书
C语言课程设计指导书雷鸣编沈阳理工大学理学院2007年4月一、设计性质与目的“C语言课程设计”是在学习“C语言程序设计基础”课程之后进行的一个实践教学环节,课程设计的目的是:1、进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;2、针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
3、掌握C语言的编程技巧和上机调试程序的方法。
4、掌握程序设计的常用算法。
为了使学生从课程设计中尽可能取得比较大的收获,对课程设计题目分成二类,一类为基础训练题目,学生从中学习到程序设计的常用算法。
另一类为综合题目。
学生从这两类型题目中各选择部分完成。
课程设计环境:利用TurboC编程。
二、设计的基本要求本课程设计的基本步骤与要求是:1、问题分析及解决方案框架确定充分地分析和理解问题本身,弄清要求做什么。
在确定解决方案框架过程中,考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。
2、详细设计和编码确定算法的主要流程,再此基础上进行代码设计,每个明确的功能模块程序一般不超过60行,否则要进一步划分。
3、上机前编写程序与检查上机前程序检查可有效提高调试效率,减少上机调试程序时的无谓错误。
程序检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。
把程序中的明显错误事先排除。
4、上机调试程序5、完成课程设计报告①问题描述:题目要解决的问题是什么。
②设计设计算法:主要算法思想,用流程图表示。
实现注释:各项功能的实现程度。
调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等。
③附录:源程序清单和结果。
如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。
三、设计任务(一)基本要求参考题目1、猜数游戏(掌握程序结构及随机函数应用)程序说明:游戏的开始由机器产生一个随机数(1~100之间,用库函数random(),用法见后面的说明),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示:Your answer is HIGH,try again. ,否则,程序提示:Your answer is LOW,try again.,直到猜对为止。
沈阳理工大学-C语言程序设计教学大纲
沈阳理工大学-C语言程序设计教学大纲《C语言程序设计》课程教学大纲课程代码:090131008课程英文名称:C programming language课程总学时:72 讲课: 52 实验:0 上机:20适用专业:信息与计算科学专业大纲编写(修订)时间:2010.7一、大纲使用说明(一)课程的地位及教学目标本课程是信息与计算科学专业的一门必修课,C语言是与UNIX操作系统一起发展起来的,其作为优秀的软件开发语言,随着微机的普及与发展,越来越多地受到广大软件开发人员的欢迎。
C语言作为一种与系统软件有密切联系的高级语言,服务设施众多,支持大型软件开发,所以很有必要开设这门课。
通过本课程的学习,使学生建立用计算机解题的思维,掌握算法知识,使学生在软件设计与开发方面有较大的提高,为以后学习其他的编程语言打下良好的基础。
(二)知识、能力及技能方面的基本要求1.基本知识:掌握算法的基本概念,C语言的各种数据类型,运算符,表达式,结构化程序设计语句等。
2.基本理论和方法:掌握算法的基本表示方法。
掌握数组的定义、引用、初始化的方法,函数的定义、调用的方法,指针变量的定义、使用方法,结构体、共用体的使用方法,文件的基本操作等。
3.基本技能:掌握算法设计的基本方法及软件开发的基本方法与技巧,培养学生较强的独立分析、设计、编程及调试能力。
(三)实施说明1.教学方法:课堂讲授中要重点对基本概念、基本方法和解题思路的讲解;采用启发式教学,培养学生思考问题、分析问题和解决问题的能力;引导和鼓励学生通过实践和自学获取知识,培养学生的自学能力;增加讨论课,调动学生学习的主观能动性;注意培养学生提高利用标准、规范及手册等技术资料的能力。
讲课要联系实际并注重培养学生的创新能力。
2.教学手段:在教学中采用电子教案及多媒体教学系统等先进教学手段,以确保在有限的学时内,全面、高质量地完成课程教学任务。
(四)对先修课的要求本课的先修课程要求是学生掌握计算机基础知识,具备计算机操作能力。
C语言期末课设 学生信息管理系统(绝对正确代码版本)
沈阳理工大学C语言课程设计题目名称学生信息管理系统课程名称C语言程序课程设计学生姓名学号系、专业指导教师目录2 需求分析 (2)2.1 要求 (2)2.2任务 (3)2.3 运行环境 (3)2.4 开发工具 (3)3概要设计与详细设计 (3)4 具体代码实现 (4)4.1程序代码 (4)5.2 课程设计总结......................... 错误!未定义书签。
1前言编写一个程序来处理同学个人信息。
通过一个结构体数组来存放输入的每一位同学的记录(包括姓名、电话号码、e_mail、地址),然后将其信息存入文件中。
输入一个姓名查询该同学的信息,并显示在屏幕上。
2 需求分析2.1 要求(1)用C语言实现程序设计;(2)利用结构体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交),程序要有注释。
2.2任务用C语言编写一个能够管理学生个人信息的管理系统。
程序运行时显示菜单,菜单内容包括:(1)录入个人信息:5个学生的个人信息,学生信息可以包括学号、姓名、性别、出生日期、联系电话、邮编和家庭住址等;(2)修改个人信息:用户可以修改个人信息,在输入某同学的编号后,进入修改信息的菜单至少包括:①修改学生姓名②修改学生联系电话(3)查询个人信息:可以按学号查询;(4)浏览所有信息:显示所有同学的信息;(5)删除个人信息:按学生姓名删除记录。
(6)退出系统。
其中,学生信息可以用二进制文件方式存储。
2.3 运行环境(1)windowsXP系统(2)VC++2.0编译环境2.4 开发工具C语言3概要设计与详细设计3、1系统流程图图3.1 系统流程图4 具体代码实现4.1程序代码#include "stdio.h"#include "stdlib.h"#include "string.h"# include "conio.h"# define N sizeof(struct stud) //测结构体变量的大小// typedef struct stud{char number[20];char name[20];char sex[20];char call[20];char QQ[20];char add[20];struct stud *next;}Elemsn; //为结构体命名//Elemsn *creatlink(void) //创建链表信息//{Elemsn *p1,*p2,*head; //p1为前驱,p2为后继//int i=1;char choice;head=p2=(Elemsn *)malloc(N);head->next=NULL;choice='y';for(i=1;choice=='y'||choice=='Y';i++){p1=(Elemsn *)malloc(N);printf("*************************************************************** ****************\n\n");printf("请输入第%d个学生的信息:\n",i);printf("学号:");scanf("%s",p1->number);printf("\n姓名:");scanf("%s",p1->name);printf("\n性别:");scanf("%s",p1->sex);printf("\n电话:");scanf("%s",p1->call);printf("\nQQ:");scanf("%s",p1->QQ);printf("\n宿舍号:");scanf("%s",p1->add);p2->next=p1;p2=p1;printf("\n是否继续?(Y/N):");choice=getche();printf("\n");}p2->next=NULL;return(head);}void savelink(Elemsn *h) //保存链表信息//{Elemsn *p;FILE *fp;char fliename[20];printf("\n请输入你要保存的文件名:");scanf("%s",fliename);if((fp=fopen(fliename,"wt"))==NULL){printf("写文件出错,按任意键退出!");getche();exit(1);}for(p=h->next;p!=NULL;p=p->next)fprintf(fp,"%s %s %s %s %s %s\n",p->number,p->name,p->sex,p->call,p->QQ,p->ad d); //向文件中写入数据//printf("文件已成功保存,按任意键返回!");getche();fclose(fp);}Elemsn *readlink(void) //读出已保存文件的信息//{Elemsn *head,*p,*q;FILE *fp;char filename[20];printf("\n请输入要打开的文件名:");scanf("%s",filename);if((fp=fopen(filename,"rt"))==NULL){printf("读文件出错,按任意键退出!");getche();exit(1);}head=q=(Elemsn *)malloc(N);head->next=NULL;while(!feof(fp)){p=(Elemsn *)malloc(N); //建立新链表,并从文件中读出数据//fscanf(fp,"%s %s %s %s %s %s\n",p->number,p->name,p->sex,p->call,p->QQ,p->ad d);q->next=p;q=p;}q->next=NULL;fclose(fp);printf("文件信息已正确读出,按任意键返回!");getch();return head;}Elemsn *insert(Elemsn *head) //插入信息//{Elemsn *p;p=(Elemsn *)malloc(N);printf("\n请输入要插入学生的信息:\n");printf("\n学号:");scanf("%s",p->number);printf("\n姓名:");scanf("%s",p->name);printf("\n性别:");scanf("%s",p->sex);printf("\n电话:");scanf("%s",p->call);printf("\nQQ:");scanf("%s",p->QQ);printf("\n宿舍号:");scanf("%s",p->add);if(head->next!=NULL){p->next=head->next; //插入数据操作代码//head->next=p;}printf("\n学生信息插入成功!按任意键继续!");getche();return head;}Elemsn *delet(Elemsn *p0) //删除信息//{char num[20];Elemsn *p;char choice;if(p0->next==NULL){printf("信息出错!按任意键退出!");getch();exit(1);}printf("\n请输入要删除学生的学号:");scanf("%s",num);for(p=p0->next;strcmp(p->number,num)!=0;p0=p,p=p->next) ; //找到要删除的学生的信息//printf("你要删除的信息如下,请确认是否删除:\n");printf("\n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%s\n\n",p->number,p->name,p->sex,p->call,p->QQ,p->add);printf("\n是Y,否N:"); //显示要删除的学生的信息//choice=getche();if(choice=='Y'||choice=='y'){p0->next=p->next;free(p);printf("\n文件删除成功!");}printf("\n按任意键结束!");getche();return p0;}Elemsn *modify(Elemsn *h) //修改信息//{char num[20];Elemsn *p;char choice;printf("\n请输入要修改学生信息的学号:");scanf("%s",num);for(p=h;strcmp(p->number,num)!=0;p=p->next) ; //找到要删除的学生的信息//while(1){printf("请输入修改后学生的信息:\n");printf("学号:");scanf("%s",p->number);printf("\n姓名:");scanf("%s",p->name);printf("\n性别:");scanf("%s",p->sex);printf("\n电话:");scanf("%s",p->call);printf("\nQQ:");scanf("%s",p->QQ);printf("\n宿舍号:");scanf("%s",p->add);printf("修改后学生信息如下:\n");printf("\n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%s\n\n",p->number,p->name,p->sex,p->call,p->QQ,p->add);printf("\n确认?是Y否N:");choice=getche();if(choice=='y'||choice=='Y') break;}printf("\n修改成功,按任意键继续!");getche();return h;}void find(Elemsn *h) //查询信息//{char num[20];Elemsn *p;printf("\n请输入你要查找的学生的学号:");scanf("%s",num);for(p=h;strcmp(p->number,num)!=0;p=p->next) ;printf("你查找的学生信息如下:\n");printf("\n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%s\n\n",p->number,p->name,p->sex,p->call,p->QQ,p->add);printf("按任意键继续!");getche();}void print(Elemsn *p) //显示全部信息//{p=p->next;while(p!=NULL){printf("\n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%s\n",p->number,p->name,p->sex,p->call,p->QQ,p->add);p=p->next;}printf("\n按任意键继续!");getche();}Elemsn *sort(Elemsn *head){Elemsn *q,*t,*p;p=head;t=NULL;while(t!=head->next){p=head;q=p->next;while(q->next!=t){if(strcmp(p->next->number,q->next->number)>0) /*前结点和后结点比较大小*/{p->next=q->next;q->next=q->next->next;p->next->next=q;}p=p->next;q=p->next;}t=q;}printf("学生信息排序完毕,按任意键继续!");getche();print(head);return(head); /*返回头指针*/}main(){int choice=1,i,ok=1; //choice用于选择对数据执行操作,i循环,ok主界面选择//Elemsn *head,*h;head=NULL;for(i=1;ok!=0;i++){system("cls");printf("\n欢迎来到学生信息管理系统主界面!\n\n\n");printf("\n\n\n 1.创建新文件.\n\n\n");printf(" 2.读取原文件,并执行相应操作.(原文件名为:jxx)");printf("\n\n\n 0.退出;");printf("\n\n\n\n\n请选择你要执行的操作:");scanf("%d",&ok);if(ok==1){system("cls");head=creatlink(); //创建新链表并保存文件//savelink(head);}if(ok==2){head=readlink(); //进入文件,对已知数据进行操作//for(i=1;choice!=0;i++){system("cls");printf("************欢迎来到学生信息管理系统************\n\n\n");printf(" 1. 添加学生信息;\n\n");printf(" 2. 删除学生信息;\n\n");printf(" 3. 修改学生信息;\n\n");printf(" 4. 查询学生信息;\n\n");printf(" 5. 显示全部信息;\n\n");printf(" 6. 排序全部信息;\n\n");printf(" 0. 退出;\n\n");printf("请输入你要执行的操作代码:");scanf("%d",&choice);switch(choice){case 1: h=insert(head);savelink(h);break; //执行增,删,改完毕后对新信息进行保存//case 2: h=delet(head);savelink(h);break;case 3: h=modify(head);savelink(h);break;case 4: find(head);break;case 5: print(head);break;case 6: h=sort(head);savelink(h);break;case 0: break;}}}}}4.2程序结果图1 主界面图2 输入学生信息操作图3 按学号查询学生信息操作图4 修改学生信息操作图5 删除学生信息操作5.2 课程设计总结从这次C语言课程设计,我不仅学会了怎样编出一个管理系统,而且还深深的体会到编好一个程序是一件非常有意义的事。
沈阳理工大学面向对象程序设计
面向对象程序设计》课程教案大纲课程代码:030631001 课程英文名称:Object Oriented Programming课程总学时:56讲课:48实验:8上机:0适用专业:通倍工程大纲编写(修订)时间^ 201&7一、大纲使用说明(一)课程的地位及教案目标木课程是信息科学与工程学院通信工程专业重要的专业基础课,它较详细地阐述了面向对象系统的基木理论与面向对象程序设计语言的基本知识。
通过木课程的学习,使学生了解和掌握使用面向对象程序设计语肓编程的基木理论和方法,是学生进一步学习通信工程专业课程的必备基础。
为本专业学生在今后从事IT行业的编程、管理、技术协作等提供必要的知识。
同时还承担着素质教育和工程教育的基本职资。
(二)知识、能力及技能方面的基本要求要求学生能够理解面向对象系统如何能够更好地完成对现实世界中的问题进行模拟与求解.如何能够将现实世界中问题的求解映射到基于面向对象软件系统的计算机求解,并能够熟练掌握一门面向对象程序设计语言。
面向对象程序设计语言应选择C+■语言,应侧重讲解语言的基础知识,在语言应用上可以结合比较流行的商用编译器进行讲解,例如可以选择微软公司的VISUAL C++乍为集成开发环境。
该课程的知识系统结构应围绕建设一个实际的面向对象应用程序所涉及的技术要点和技术难点的理解与掌握来展开。
知识的应用结构是由课堂讨论、习题、实践环节三大部分组成。
为此在知识方面应提供建造实际的面向对象应用程序所必须具备的基础知识及相关的理论知识及基木技能。
能力方面首先要有口学能力,在口学的基础上,市课堂讨论、习题、及实践环节增强分析能力及解决问题的能力。
应能掌握基木的应用软件编程。
(三)实施说明木课程对学生的动手能力要求较强,应配啓相应的课程设计。
使学生在编程的训练中,真止掌握面向对象程序设计的实现方法,进一步理解面向对象系统的理论,并能将面向对象程序设计思想应用到问题的求解过程中。
C语言课设绘制动态五角星
目录一.设计题目 (2)二.题目内容的描述 (2)三.应用程序功能的详细说明 (2)四.输入数据类型格式和内容限制 (8)五.主要模块的算法描述 (9)六.结束语 (11)七.程序的源代码清单 (11)附录A . 程序运行截图 (14)沈阳理工大学材料科学与工程学院计算机程序训练任务书姓名:xxxxxx 班级:xxxxxxxx 学号:xxx一.设计题目:在屏幕上绘制一个动态五角星具体内容(一)设计要求在屏幕上绘制一个五角星,每按一次键盘转九十度。
用循环程序计算五角星的顶点,画直线完成。
五角星显示的位置、大小和转动的方向由键盘输入,并将输入的数据送文件保存。
按回车键程序结束。
(功能延伸:改变数据文件的内容后,再根据数据文件里的数据绘制五角星)(二)技术要求1. 按照给定题目独立设计程序,上机调试通过。
2. 写出设计报告提交报告的内容如下:二.题目内容的描述在屏幕上绘制一个五角星,每按一次键盘转九十度。
用循环程序计算五角星的顶点,画直线完成。
五角星显示的位置、大小和转动的方向由键盘输入,并将输入的数据送文件保存。
按回车键程序结束。
(功能延伸:改变数据文件的内容后,再根据数据文件里的数据绘制五角星)三.应用程序功能的详细说明void set_pentagon(int *xr,int *yr,int *r)/*insert pengaton*/{FILE *fp;char filename[20],ch;printf("Input the file's name:");gets(filename);if((fp=fopen(filename,"w+"))==NULL){printf("file open error.\n");exit(0);}printf("please input the characters to the file:\n");while((ch=getchar())!='\n'){ fputc(ch,fp);putchar(ch);}fclose(fp);printf("\nplease set the xr yr and r for the pentagon you have typed in:\n");scanf("%d",xr);scanf("%d",yr);scanf("%d",r);}这一段是文件的输入与输出。
C语言程序课程设计报告(资管理)
课程设计任务书目录1.题目内容---------------------------------------------22.程序特点及功能------------------------------------33.总体思路---------------------------------------------34.详细设计---------------------------------------------45.程序清单---------------------------------------------56.运行结果与分析------------------------------------177.参考文献---------------------------------------------22课程设计名称:小型特殊计算器1.设计内容:实现一个特殊的计算器,可以实现复数、有理数、矩阵和集合的特殊计算。
程序可以实现复数、有理数的加、减、乘、除,可以实现矩阵的加法、减法和乘法运算,也可以实现集合的求交集、并集、子集的运算。
2.设计目的与要求:2.1设计目的达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的基本思路和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2.2设计要求要求利用面向对象的方法以及C++的编程思想来完成系统的设计;要求在设计的过程中,建立清晰的类层次;在系统的设计中,至少要用到面向对象的一种机制。
3.系统分析与设计3.1主要知识点运算符重载增加了C++语言的可扩充性。
运算符的重载实际上就是一种函数调用的形式,可以用成员函数重载运算符,就是将运算符重载定义为一个类的成员函数的形式;也可以用友元函数重载。
用友元重载运算符的友元函数是独立于类以外的一般函数。
3.2关键技术程序中每一种数据类型用一个类来实现,共设计了4个类。
复数类complex,矩阵类matrix,有理数类rational以及集合类set。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、题目要求题目名称:数字的组成及删除指定位置的字符,工资统计的设计内容:1、编程:用0—9之间不同的三个数字构成一个三位数,统计有多少个这样的三位数。
2、规定输出的字符串中只能包含字母和*号,编写函数fun(char*a,int n),其功能是:是字符串前边连续的*号不多于n个;若多于n个,则删除多于的*号,若小于或等于n个,则什么也不做。
例如:若输入字符串为******A*BC*DEF*G***,n的值为4,则删除后的字符串应是:****A*BC*DEF*G***3、工资统计程序设计设计结构体数组,结构中包含职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资有公式计算得到:实付工资=应付工资-保险-税金设计各个函数,分别实现以下功能:(4)输入职工数据,其中“实付工资”通过计算得到(5)显示全部职工数据(6)输入其部门值、显示该部门职工的数据,工资总额,平均工资设计菜单,通过选择菜单调用以上函数。
要求:使用C语言完成上述程序的设计、编程和调试,开发环境可采用Turbo C 2.0、WinTC或Visual C++ 6.0等。
3、3、工资统计程序设计设计结构体数组,结构中包含职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资有公式计算得到:实付工资=应付工资-保险-税金设计各个函数,分别实现以下功能:(7)输入职工数据,其中“实付工资”通过计算得到(8)显示全部职工数据(9)输入其部门值、显示该部门职工的数据,工资总额,平均工资设计菜单,通过选择菜单调用以上函数。
1、每个函数的功能:(1)void input();录入:输入职工数据,其中"实付工资"通过计算得到(2)void del();)删除:删除指定的职工信息(输入姓名,若找到则删除该信息(3)void mod();修改:允许对已经录入的数据重新进行编辑、修改(4)void show_all();显示:显示全体职工数据;(5)void show_name();查询:a. 输入职工姓名,显示该职工的全部数据b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。
(6)void show_dep();退出程序三、编程实现程序的具体C语言代码如下:第1题:}#include<stdio.h>void main(){int i,j,k,count=0;for (i=1;i<=9;i++){for (j=0;j<=9;j++){for(k=1;k<=9;k++){if(i!=j && j!=k && i!=k){printf("%3d%d%d",i,j,k);count++;}}}}printf("种数构成方法:");printf("%d",count);}第2题:#include <stdio.h>int fun(char*s,int n){int flag=1;for(int i=0;i<n;i++)//比较前n个字符是否为*if(s[i]!='*'){flag=0;break;}if(flag==0)return 0;else{int k=n;while(s[k]!='\0')//移动到非*字符{if(s[k]=='*')k++;elsebreak;}int j=0;while(s[k]!='\0')//向前复制{s[n+j]=s[k];k++;j++;}s[n+j]='\0';}return 1;}void main(){static char str[15];int m;printf("请输入一个只含*和字母的字符串:"); scanf("%s",str);printf("请输入n值:");scanf("%d",&m);fun(str,m);printf("%s",str);}第3题:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<cassert.h>/*编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资由公式计算得到:实付工资=应付工资- 保险- 税金*/struct employee{Sting m_num;//编号Sting m_name;//姓名Sting m_dep;//部门double m_salary;//应付工资double m_insurance;//保险double m_tax;//税金};/*(1)录入:输入职工数据,其中"实付工资"通过计算得到;(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)(3) 修改:允许对已经录入的数据重新进行编辑、修改;(4) 显示:显示全体职工数据;(5)查询:a. 输入职工姓名,显示该职工的全部数据;b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。
(6) 退出程序。
*/list employee emps;int main(int argc, char argv[]){void print(const employee &e);void input();void del();void mod();void show_all();void show_name();void show_dep();printf("请选择操作:1.录入2.删除3.修改4.查询5.显示所有员工6.退出:"); int choose=0;scanf("%d",&choose);assert(!cin.fail());while (choose!=6){if (choose==1) input();if (choose==2) del();if (choose==3) mod();if (choose==4){int choice=0;printf("请选择操作1.按姓名查询2.按部门查询3.退出:");scanf("%d",choice);if (choice==1) show_name();if (choice==2) show_dep();if (choice==3){printf("请选择操作:1.录入2.删除3.修改4.查询5.显示所有员工6.退出:");scanf("%d",&choose);assert(!cin.fail());continue;}}if (choose==5) show_all();printf("请选择操作:1.录入2.删除3.修改4.查询5.显示所有员工6.退出:");scanf("%d",&choose);assert(!cin.fail());}return 0;}void print(const employee &e){printf("编号:");printf("%s\n",e.m_num);printf("姓名:");printf("%s\n",e.m_name);printf("部门:");printf("%s\n",e.m_dep);printf("保险:");printf("%f\n",e.m_insurance);printf("税金:");printf("%f\n",e.m_tax);printf("应付工资:");printf("%f\n",e.m_salary);printf("实付工资:");printf("%f\n",e.m_salary-e.m_insurance-e.m_tax);void input(){string num,name,dep;double salary,ins,tax;printf("请输入员工编号:");scanf("%s",&num);printf("请输入员工姓名:");scanf("%s",&name);printf("请输入员工部门:");scanf("%s",&dep);printf("请输入员工保险");scanf("%f",&ins);assert(!cin.fail());printf("请输入员工税金");scanf("%f",&tax);assert(!cin.fail());printf("请输入员工应付工资:");scanf("%f",&salary);assert(!cin.fail());employee temp;temp.m_dep=dep;temp.m_insurance=ins;temp.m_name=name;temp.m_num=num;temp.m_salary=salary;temp.m_tax=tax;emps.push_back(temp);printf("员工录入操作完毕.");}void del(){if (emps.size()==0){printf("没有员工记录.");return;}char name;bool isfind=false;printf("请输入要删除的员工姓名:");scanf("%s",&name);list<employee>::iterator iter;for (iter=emps.begin();iter!=emps.end();iter++) {if (iter->m_name==name){isfind=true;emps.erase(iter);printf("姓名为");printf("%s",name);printf("的员工记录已删除");return ;}}if (!isfind){printf("没有找到姓名为");printf("%s",name) printf("的员工.");return;}}void mod(){if (emps.size()==0){printf("员工记录为空.");return;}bool isfind=false;string name;printf("请输入要修改的员工姓名:");scanf("%s",&name);list<employee>::iterator iter;for (iter=emps.begin();iter!=emps.end();iter++) {if (iter->m_name==name){isfind=true;printf("姓名为");printf("%s",name);printf("的员工记录已找到.\n");break;}}if (isfind){string num,name,dep;double tax,ins,salary;print(*iter);printf("请输入新的员工编号:\n");scanf("%s",&num);printf("请输入新的员工姓名:\n");scanf("%s",&name);printf("请输入新的员工部门:\n");scanf("%s",&dep);printf("请输入新的员工保险::\n");scanf("%f",&ins);assert(!cin.fail());printf("请输入新的员工税金:\n");scanf("%f",&tax);assert(!cin.fail());printf("请输入新的员工工资:\n");scanf("%f",&salary);assert(!cin.fail());iter->m_dep=dep;iter->m_insurance=ins;iter->m_name=name;iter->m_num=num;iter->m_salary=salary;iter->m_tax=tax;printf("1 员工记录被成功修改.\n"); }else{printf("没有找到姓名为");printf("%s",name);printf("的员工记录.\n");}void show_all(){if (emps.size()==0){printf("员工记录为空.\n"); return;}printf("显示全体员工数据:\n");printf("--------------------"\n");list<employee>::iterator iter;for(iter=emps.begin();iter!=emps.end();iter++) {printf("\n");print(*iter);printf("\n");}printf("--------------------"\n");}void show_name(){if (emps.size()==0){printf("员工记录为空."\n");return;}bool isfind=false;string name;printf("请输入要查询的员工姓名:"\n"); scanf("%s",&name);list<employee>::iterator iter;for(iter=emps.begin();iter!=emps.end();iter++) {if (iter->m_name==name){isfind=true;printf("姓名为");printf("%s",name);printf("的员工记录已找到.\n");print(*iter);break;}}if (!isfind){printf("没有找到姓名为");printf("%s",name);printf("的员工.\n");return;}}void show_dep(){if (emps.size()==0){printf("没有找到姓名为\n") return;}double isfind=0.00;double total_salary=0.00;string dep;printf("请输入要查询的部门名称:\n");scanf("%s",&dep);//cin>>dep;printf("部门["<<dep<<"]的员工信息:\n");printf("--------------------\n");list<employee>::iterator iter;for(iter=emps.begin();iter!=emps.end();iter++) {if (iter->m_dep==dep){isfind++;total_salary+=iter->m_salary;print(*iter);printf("\n");continue;}}printf("--------------------\n"); if (isfind==0){printf("没有找到名称为["<<dep<<"]的部门.\n"); }else{printf("部门["<<dep<<"]工资统计:\n");printf("工资总额:");printf("%f\n",total_salary);printf("平均工资:");printf("%f\n",total_salary/isfind);}}四、结果分析第1题:程序运行结果如图1:(可写包括对本题本程序的一些看法或总结)图1 程序运行结果1第2题:程序运行结果如图2:图2 程序运行结果2 第3题:程序运行结果如图3:图3 程序运行结果3五、参考文献[1]马秀丽,刘志妩,李筠.C语言程序设计.北京:清华大学出版社,2008[2]谭浩强.C程序设计(第2版).北京:清华大学出版社,2004[3] 袁志祥、秦锋主编数据结构(c语言版)例题详解与课程设计指导》第二版;中国科学技术大学出版社出版。