《C语言程序设计》大作业报告模板
- 格式:doc
- 大小:29.50 KB
- 文档页数:5
C语言程序设计实验报告范文实验名称计算出1000以内10个素数之和实验目的1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。
2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。
3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。
进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
实验内容计算并输出1000以内的10个素数以及它们的和。
要求:在程序内部加必要的注释。
由于偶数不是素数,可以不考虑对偶数的处理。
虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。
输出形式为:素数1+素数2+素数3+…+素数10=总和值。
算法描述流程图Main函数:判断素数:源程序#include#includeint sushu(int n)/* 判断素数的函数*/{int t,i;t=sqrt(n);for(i=2;i1;i-=2)/* x为奇数时,做函数计算*/{n=sushu(i); /* 做判断素数的函数调用*/( 励志天下 )if(n!=0)/* 对素数的处理*/{a[j]=n;/* 把素数由大至小存入数组a[ ]中*/j++;C语言程序设计-职工信息管理系统1C语言课程设计C语言课程设计任务书一、题目:职工信息管理系统二、目的和要求目的:要求熟练掌握C语言的基本知识和编辑技能;基本掌握结构化程序设计的基本思路和方法。
要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。
3、浏览功能:完成对全部职工信息的显示。
C语言程序设计实验实验报告7实验名称:链表实现学生信息管理系统实验目的:通过设计链表实现学生信息管理系统,掌握链表的操作方法及其应用。
实验内容:设计一个学生信息结构体,包括学号、姓名、性别、年龄和成绩五个成员变量,并选择链式结构存储这些数据。
实现以下功能:1. 添加学生信息:从键盘输入学号、姓名、性别、年龄和成绩等信息,添加到链表中。
2. 删除学生信息:从链表中删除指定学号的学生信息。
5. 按成绩排序:按学生的成绩从高到低排序,并输出所有学生的信息。
7. 退出程序:退出学生信息管理系统。
实验方法:1. 设计学生信息结构体,定义链表节点结构体,并编写初始化链表和销毁链表的函数。
2. 编写添加学生信息函数,新建链表节点并插入链表末尾。
3. 编写删除学生信息函数,根据学号查找需要删除的节点,先将该节点从链表中删除,再释放节点空间。
4. 编写修改学生信息函数,根据学号查找需要修改的节点,并修改其成员变量。
6. 编写按成绩排序函数,使用冒泡排序法对链表进行排序,并输出所有学生的信息。
7. 编写输出所有学生信息函数,遍历链表并输出每个节点的信息。
8. 完成学生信息管理系统的主函数,实现菜单及相应功能的选择。
实验结果:依次选择菜单中的各个功能,添加、修改、删除、查找、排序和输出学生信息都能实现。
经测试,程序稳定运行,功能正常,符合需求。
本次实验主要让我们掌握了链式结构的概念、链表节点的定义、链表的初始化、插入、查找、删除和销毁链表的操作方法,以及在实际应用中如何使用链表来实现数据管理。
虽然链表操作相对于数组稍微有些繁琐,但其可以灵活处理数据结构的长度变化,具有更高的可扩展性和更好的操作效率,可以更好的适应各种实际需求。
在实验中,还需要注意节点指针的正确使用、各个函数之间的调用关系和输入输出数据格式的合理选择等问题,以保证程序能够正常运行。
同时,还需要保持认真细致的态度,严格按照实验需求和要求来完成每个步骤,以达到更好的实验效果和运行效率。
c语言程序设计报告
c语言程序设计是基于函数式编程方法,包括高级语法结构、数据类型、目标编译、嵌入式开发等研究方面。
c语言程序设计基于模块化、规程化、可重用和可维护之原则,要求代码良好组织,易于阅读和理解,但代码的复杂度应避免过高。
首先,要确定模块的功能,并设计必要的函数。
确定数据结构,并根据实际应用确定同步、异步或分布式执行。
另外,还应注意代码可移植性,尽量以一种通用的语言编写代码,减少操作系统依赖度,可在多种平台上获得最佳性能。
最后,应按规范编写注释和文档,使他人能够比较方便地使用和维护代码。
针对c语言程序设计,在具体操作过程中需要严格遵循安全和错误处理机制,以保证程序在不受干扰的情况下能够正常完成处理。
要进行语法检查,保证变量命名规范,礼貌合法,结构清晰明了,排错功能正确,正确处理异常情况,避免无用的资源浪费。
此外,可以通过日志跟踪技术,以更高效的方式定位和解决问题。
综上所述,c语言程序设计是一项精细而复杂的工作,不仅要做到准确、高效,而且还要注重可维护性和稳定性。
通过高效的编程技巧,可以有效提高程序效率,提供更为准确的解决方案,从而更好地满足用户的需求。
学年学期:20xx - 20xx 学年 1 学期课程名称:C语言程序设计综合训练课程学分:2分考核形式:大作业任课教师:xx题目:学生成绩统计程序学院:xx学院__________________________________ 专业班级:xx_______________________________________ 学号:_______ 学生姓名:提交日期:目录目录 (2)引言 (3)1. 学生成绩管理系统 (4)1.1系统简介 (4)1.2相关代码及知识点介绍 (4)2. 添加学生成绩功能 (5)3. 查找学生成绩功能 (6)4. 排序学生成绩功能 (7)5. 展示学生成绩功能 (9)6. 删除学生成绩功能 (10)7. 附页代码 (11)引言C语言是一种比较常见的计算机语言,许多大型应用软件都是用C语言编写而成的。
其简洁紧凑,灵活方便,数据结构丰富。
在一定程度上,C语言比汇编语言更实用,具有结构化语句,实现了结构化编程,使程序编写变得更容易、更快捷,可以编写出各种类型的程序。
同时,C语言是一门实践性强的学科,在学习的过程中,利用所学知识,编写一些与生活、学习相关的应用程序来提高程序编写能力,增强学习兴趣。
本次使用C语言设计一个学生成绩管理系统,可以实现学生成绩的添加,查找,排序及展示。
在作业中使用的是函数的模块化设计,将四个程序使用四个函数来实现。
与此同时,增加用户界面的交互,可供用户选择想要的功能,实现增删查排等操作。
1. 学生成绩管理系统1.1系统简介该系统主要实现学生成绩的添加,查找,排序,展示和删除五个功能,添加学生成绩主要有6个输入值组成,其中包括学号,姓名,语文,数学,英语,政治等。
查找学生成绩主要通过学号查询。
对学生成绩进行排序,可以分别通过学号,语文,数学,英语,政治,平均分,总分等进行排序。
第四项功能是对学生成绩以表格的形式进行展示。
删除学生成绩是按照学号对表格中的数据进行删除。
学院*****************目录1 摘要 (3)1.1设计题目 (3)1.2设计内容 (3)1.3开发工具 (3)1.4应用平台 (4)2 详细设计 (4)2.1程序结构 (4)2.2主要功能 (10)2.3函数实现 (13)2.4开发日志 (18)3 程序调试及运行 (20)3.1程序运行结果 (20)3.2程序使用说明 (22)3.3程序开发总结 (22)4 附件(源程序) (22)1 摘要1.1 设计题目折半法查找演示程序1.2 设计内容本程序是一个演示折半查找算法的演示程序。
由用户输入查找的数据表列和查找的数据,系统在将数表排序后可以在屏幕上演示在排序后的表列中按折半查找法查找该数据的具体过程(通过每次查找的中间数据、下次查找表列等,具体效果见下图),支持多次演示、错误提醒,程序暂停演示功能。
1.3 开发工具Visual C++ 6.0和Win32。
1.4 应用平台Windows 2000/XP/Vista 32位2 详细设计2.1 程序结构程序功能模块:本程序主要由五大模块组成:程序说明模块、输入模块、排序模块、折半法查找及显示模块、进程选择模块。
各模块的主要功能如下:程序说明模块:给使用者营造一个较为友好的界面,同时提供程序开发人员的相关信息以及程序操作的相关说明信息。
此部分模块主函数源代码如下:int a[N];/*存储要查找的数表,用户输入*/int i,n,num,count;/*count为折半次数计数器,n为数表数据个数,num存储所查数据*/int top,bottom,mid;char c;/*存储选择函数中的输入的字符y或n*/int flag=1;/*折半法循环标志变量*/int loc=-1;/*存储所查找数据位置*/double k=0;p_s(76);puts("\n");/*引用p_s函数,打出一行'*'*/(p_s函数位于print_star.cpp文件中,参见下文)printf("****欢****迎****使****用****折****半****查****找****法****演****示****器****\n");puts("\n");/*程序欢迎语*/p_s(13);printf("制作者:***************** ");/*作者信息*/p_s(4);printf("Email:************************ ");/*电子邮件*/p_s(11);puts("\n");p_s(76);puts("\n");/*再次引用p_s函数,程序说明部分结束*/附:print_star.cpp文件源代码#include<stdio.h>void p_s(int k){int i;for(i=1;i<=k;i++)/*连续输出ka个'*'*/printf("*");}输入模块:引导使用者输入要在其中查找数据的数表的数据个数和数表数据。
青岛大学软件技术学院C语言程序设计实训报告姓名专业班级指导教师2011 年 7月14日目录一.实训目的和要求 (1)1. 实训目的 (1)2. 实训要求 (1)二.试训任务内容 (1)1.问题定义 (1)2.问题分析 (2)三. 总体设计 (2)1.设计思想 (2)2.实现方法 (2)3.主要模块 (2)4.模块关系 (3)5.详细设计 (3)四.软件使用说明 (7)五.实训心得与体会 (8)参考文献 (9)附录代码 (10)一.实训目的和要求1. 实训目的本实训是软件技术专业重要的实践性环节之一,是在学生学习完《C语言程序设计》课程后进行的一次全面的综合练习。
本实训的目的和任务:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力2. 实训要求1. 分析实训题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交实训报告二.试训任务内容1.问题定义汉诺塔问题(Towers of Hanoi)2.问题分析假设有三根木桩A、B和C。
在木桩A上放置了N个圆盘,由上到下编号为1,2,,…,N,编号越大的圆盘直径越大。
而我们必须将圆盘由木桩A通过木桩B全部搬到木桩C 。
在移动过程中,必须按照下述移动规则:1.直径较小的圆盘永远置于直径较大的圆盘上;2.圆盘可任意地由任何一个木桩移到其他的木桩上;3.每一次仅能移动一个圆盘。
三.总体设计1.设计思想如果盘子为1,则将这个盘子从塔座A移动到塔座C;如果不为1,则采用递归思想。
将塔座A的前n-1个盘子借助C盘(即目的盘)移到塔座B,移后,此时C为空座,那我们就可以将塔座A的第n个盘子移到塔座C了。
接下来就将塔座B的n-1个盘子借助A移到塔座C,从而完成盘子的移动。
C++大作业报告姓名:常皓学号:03101261班级:031013销售公司员工管理设计一个虚基类Staff(员工),包含编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff派生出销售员类Salesman,包含销售额保护数据成员以及相关的成员函数;再由Staff派生出经理类Manager;然后由Salesman和Manager 类派生出销售经理类SalesManager。
设计一个利用文件处理方式实现对公司人员(包括销售员、经理和销售经理)进行管理,具有增加数据、更新数据、查询数据、删除数据以及重组文件的功能。
(删除数据在记录中做删除标志,重组文件指在物理上删除有删除标志的记录。
)另外要求分别统计这三类员工的人数以及所有员工的总数。
编程思想:首先定义一个虚基类Staff类,然后通过虚拟继承生成Salesman类和Manager类,最后由Salesman和Manager派生出主任销售员类SalesManager。
这四个类中定义InputFromFile(istream &in)这一输入函数,另外每个类还定义输入信息和输出信息的成员函数,之后定义StaffChart、SalesmanChart、ManagerChart和SalesManagerChart四个类来,为实现增加、更新、查询、删除以及全部显示人员的功能定义addItem、modifyItem、find、removeItem 以及display函数。
最后在主函数定义Staff_Chart、Salesman_Chart、Manager_Chart和Salesmanager_Chart四个对象,通过循环执行并用switch函数选择功能,然后调用相关的函数来实现各种功能。
实验代码:#include"iostream"#include"fstream"using namespace std;class Staffprotected:char num[10];char name[10];int age;public:Staff * Next;void set_staff()cout<<"请输入编号:";cin>>num;cout<<"请输入姓名:";cin>>name;cout<<"请输入年龄:";cin>>age;void InputFromFile(istream &in)in>>num>>name>>age;void show()cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"年龄:"<<age<<endl;char *get_num()return num;char *get_name()return name;int get_age()return age;class Salesman:virtual public Staffprotected:char major[10];char t_title[10];public:Salesman * Next;void set_salesman()cout<<"请输入编号:";cin>>num;cout<<"请输入姓名:";cin>>name;cout<<"请输入年龄:";cin>>age;cout<<"请输入专业:";cin>>major;cout<<"请输入职称:";cin>>t_title;void InputFromFile(istream &in)in>>num>>name>>age>>major>>t_title;void show_salesman()cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"年龄:"<<age<<endl;cout<<"专业:"<<major<<endl;cout<<"职称:"<<t_title<<endl;char *get_major()return major;char *get_t_title()return t_title;class Manager:virtual public Staffprotected:char job[10];char dept[10];public:Manager * Next;void set_manager()cout<<"请输入编号:";cin>>num;cout<<"请输入姓名:";cin>>name;cout<<"请输入年龄:";cin>>age;cout<<"请输入职务:";cin>>job;cout<<"请输入部门:";cin>>dept;void InputFromFile(istream &in)in>>num>>name>>age>>job>>dept;void show_manager()cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"年龄:"<<age<<endl;cout<<"职务:"<<job<<endl;cout<<"部门:"<<dept<<endl;char *get_job()return job;char *get_dept()return dept;class SalesManager:public Salesman,public Managerpublic:SalesManager * Next;void set_salesmanager()cout<<"请输入编号:";cin>>num;cout<<"请输入姓名:";cin>>name;cout<<"请输入年龄:";cin>>age;cout<<"请输入专业:";cin>>major;cout<<"请输入职称:";cin>>t_title;cout<<"请输入职务:";cin>>job;cout<<"请输入部门:";cin>>dept;void InputFromFile(istream &in)in>>num>>name>>age>>major>>t_title>>job>>dept;void show_salesmanager()cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"年龄:"<<age<<endl;cout<<"专业:"<<major<<endl;cout<<"职称:"<<t_title<<endl;cout<<"职务:"<<job<<endl;cout<<"部门:"<<dept<<endl;class StaffChartpublic:StaffChart();~StaffChart();void find(); //输出单个条目void save(); //将信息输出到文件void modifyItem(); //修改Staff条目void removeItem(); //删除Staff条目void display() //输出全部条目Staff *p=Head->Next;for(p;p!=End;p=p->Next)p->show();cout<<endl;void addItem() //添加条目End->set_staff();End->Next=new Staff;End=End->Next;save();private:Staff * Head,* End;ifstream in; //文件输入ofstream out; //文件输出Staff * findItem(char * num)for(Staff * p=Head;p->Next!=End;p=p->Next)if(!strcmp(p->Next->get_num() ,num))return p;return NULL;StaffChart::StaffChart() //构造函数Head=new Staff;Head->Next=new Staff;End=Head->Next;in.open("StaffChart.txt");while(!in.eof())End->InputFromFile(in);if(End->get_num()[0]=='\0')break;End->Next=new Staff;End=End->Next;in.close();StaffChart::~StaffChart() //析构函数for(Staff * temp;Head->Next!=End;)temp=Head->Next;Head->Next=Head->Next->Next;delete temp;delete Head,End;void StaffChart::find() //查找条目char num[10];Staff * p=NULL;cout<<"请输入要查找员工的工号:";cin>>num;if(p=findItem(num))p->Next->show();elsecout<<"没有找到!!"<<endl<<endl;void StaffChart::modifyItem() //修改条目char num[10];Staff * p=NULL;cout<<"请输入要修改员工的工号:";cin>>num;if(p=findItem(num))p->Next->show();cout<<"请输入新的内容:"<<endl;p->Next->set_staff();elsecout<<"没有找到!!"<<endl<<endl;save();void StaffChart::removeItem() //删除条目char num[10];Staff *p=NULL,*temp=NULL;cout<<"请输入要删除员工的工号:";cin>>num;if(p=findItem(num))temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"删除成功!!"<<endl<<endl;elsecout<<"没有找到!!"<<endl<<endl;save();void StaffChart::save() //保存out.open("StaffChart.txt");for(Staff * p=Head->Next;p!=End;p=p->Next)out<<p->get_num()<<" "<<p->get_name()<<" "<<p->get_age()<<endl;out.close();class SalesmanChartpublic:SalesmanChart();~SalesmanChart();void find(); //输出单个条目void save(); //将信息输出到文件void modifyItem(); //修改Salesman条目void removeItem(); //删除Salesman条目void display() //输出全部条目for(Salesman *p=Head->Next;p!=End;p=p->Next)p->show_salesman();void addItem() //添加条目End->set_salesman();End->Next=new Salesman;End=End->Next;save();private:Salesman * Head,* End;ifstream in; //文件输入ofstream out; //文件输出Salesman * findItem(char * num)for(Salesman * p=Head;p->Next!=End;p=p->Next)if(!strcmp(p->Next->get_num() ,num))return p;return NULL;SalesmanChart::SalesmanChart() //构造函数Head=new Salesman;Head->Next=new Salesman;End=Head->Next;in.open("SalesmanChaart.txt");while(!in.eof())End->InputFromFile(in);if(End->get_num()[0]=='\0')break;End->Next=new Salesman;End=End->Next;in.close();SalesmanChart::~SalesmanChart() //析构函数for(Salesman * temp;Head->Next!=End;)temp=Head->Next;Head->Next=Head->Next->Next;delete temp;delete Head,End;void SalesmanChart::find() //查找条目char num[10];Salesman * p=NULL;cout<<"请输入要查找销售员的工号:";cin>>num;if(p=findItem(num))p->Next->show_salesman();elsecout<<"没有找到!!"<<endl<<endl;void SalesmanChart::modifyItem() //修改条目char num[10];Salesman * p=NULL;cout<<"请输入要修改销售员的工号:";cin>>num;if(p=findItem(num))p->Next->show_salesman();cout<<"请输入新的内容:"<<endl;p->Next->set_salesman();elsecout<<"没有找到!!"<<endl<<endl;save();void SalesmanChart::removeItem() //删除条目char num[10];Salesman *p=NULL,*temp=NULL;cout<<"请输入要删除销售员的工号:";cin>>num;if(p=findItem(num))temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"删除成功!!"<<endl<<endl;elsecout<<"没有找到!!"<<endl<<endl;save();void SalesmanChart::save() //保存out.open("SalesmanChart.txt");for(Salesman * p=Head->Next;p!=End;p=p->Next)out<<p->get_num()<<p->get_name()<<p->get_age()<<p->get_major()<<p->get_t_title()<<endl;out.close();class ManagerChartpublic:ManagerChart();~ManagerChart();void find(); //输出单个条目void save(); //将信息输出到文件void modifyItem(); //修改Manager条目void removeItem(); //删除Manager条目void display() //输出全部条目Manager *p=Head->Next;for(p;p!=End;p=p->Next)p->show_manager();void addItem() //添加条目End->set_manager();End->Next=new Manager;End=End->Next;save();private:Manager * Head,* End;ifstream in; //文件输入ofstream out; //文件输出Manager * findItem(char * num)for(Manager * p=Head;p->Next!=End;p=p->Next)if(!strcmp(p->Next->get_num() ,num))return p;return NULL;ManagerChart::ManagerChart() //构造函数Head=new Manager;Head->Next=new Manager;End=Head->Next;in.open("ManagerChaart.txt");while(!in.eof())End->InputFromFile(in);if(End->get_num()[0]=='\0')break;End->Next=new Manager;End=End->Next;in.close();ManagerChart::~ManagerChart() //析构函数for(Manager * temp;Head->Next!=End;)temp=Head->Next;Head->Next=Head->Next->Next;delete temp;delete Head,End;void ManagerChart::find() //查找条目char num[10];Manager * p=NULL;cout<<"请输入要查找经理的工号:";cin>>num;if(p=findItem(num))p->Next->show_manager();elsecout<<"没有找到!!"<<endl<<endl;void ManagerChart::modifyItem() //修改条目char num[10];Manager * p=NULL;cout<<"请输入要修改经理的工号:";cin>>num;if(p=findItem(num))p->Next->show_manager();cout<<"请输入新的内容:"<<endl;p->Next->set_manager();elsecout<<"没有找到!!"<<endl<<endl;save();void ManagerChart::removeItem() //删除条目char num[10];Manager *p=NULL,*temp=NULL;cout<<"请输入要删除经理的工号:";cin>>num;if(p=findItem(num))temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"删除成功!!"<<endl<<endl;elsecout<<"没有找到!!"<<endl<<endl;save();void ManagerChart::save() //保存out.open("ManagerChart.txt");for(Manager * p=Head->Next;p!=End;p=p->Next)out<<p->get_num()<<p->get_name()<<p->get_age()<<p->get_job()<<p->get_dept()<<endl;out.close();class SalesManagerChartpublic:SalesManagerChart();~SalesManagerChart();void find(); //输出单个条目void save(); //将信息输出到文件void modifyItem(); //修改Manager条目void removeItem(); //删除Manager条目void display() //输出全部条目SalesManager *p=Head->Next;for(;p!=End;p=p->Next)p->show_salesmanager();void addItem() //添加条目End->set_salesmanager();End->Next=new SalesManager;End=End->Next;save();private:SalesManager * Head,* End;ifstream in; //文件输入ofstream out; //文件输出SalesManager * findItem(char * num)for(SalesManager * p=Head;p->Next!=End;p=p->Next)if(!strcmp(p->Next->get_num() ,num))return p;return NULL;SalesManagerChart::SalesManagerChart() //构造函数Head=new SalesManager;Head->Next=new SalesManager;End=Head->Next;in.open("SalesManagerChaart.txt");while(!in.eof())End->InputFromFile(in);if(End->get_num()[0]=='\0')break;End->Next=new SalesManager;End=End->Next;in.close();SalesManagerChart::~SalesManagerChart() //析构函数for(SalesManager * temp;Head->Next!=End;)temp=Head->Next;Head->Next=Head->Next->Next;delete temp;delete Head,End;void SalesManagerChart::find() //查找条目char num[10];SalesManager * p=NULL;cout<<"请输入要查找经理的工号:";cin>>num;if(p=findItem(num))p->Next->show_salesmanager();elsecout<<"没有找到!!"<<endl<<endl;void SalesManagerChart::modifyItem() //修改条目char num[10];SalesManager * p=NULL;cout<<"请输入要修改经理的工号:";cin>>num;if(p=findItem(num))p->Next->show_salesmanager();cout<<"请输入新的内容:"<<endl;p->Next->set_salesmanager();elsecout<<"没有找到!!"<<endl<<endl;save();void SalesManagerChart::removeItem() //删除条目char num[10];SalesManager *p=NULL,*temp=NULL;cout<<"请输入要删除经理的工号:";cin>>num;if(p=findItem(num))temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"删除成功!!"<<endl<<endl;elsecout<<"没有找到!!"<<endl<<endl;save();void SalesManagerChart::save() //保存out.open("SalesManagerChart.txt");for(Manager * p=Head->Next;p!=End;p=p->Next)out<<p->get_num()<<p->get_name()<<p->get_age()<<p->get_job()<<p->get_dept()<<endl;out.close();int main()int x,y;StaffChart Staff_Chart;SalesmanChart Salesman_Chart;ManagerChart Manager_Chart;SalesManagerChart SalesManager_Chart;bool quit=false;while(!quit)cout<<"选择功能:\n1.增加数据\t2.更新数据\t3.查询数据\t4.删除数据\t5.列出全部人员\t6.退出"<<endl;cin>>x;switch(x)case 1:cout<<"选择增加的类型:\n1.员工\t2.销售员\t3.经理\t4.销售经理"<<endl;cin>>y;switch(y)case 1:Staff_Chart.addItem();break;case 2:Salesman_Chart.addItem();break;case 3:Manager_Chart.addItem();break;case 4:SalesManager_Chart.addItem();break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);break;case 2:cout<<"选择更新的类型:\n1.员工\t2.销售员\t3.经理\t4.销售经理"<<endl;cin>>y;switch(y)case 1:Staff_Chart.modifyItem();break;case 2:Salesman_Chart.modifyItem();break;case 3:Manager_Chart.modifyItem();break;case 4:SalesManager_Chart.modifyItem();break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);break;case 3:cout<<"选择查询的类型:\n1.员工\t2.销售员\t3.经理\t4.销售经理"<<endl;cin>>y;switch(y)case 1:Staff_Chart.find();break;case 2:Salesman_Chart.find();break;case 3:Manager_Chart.find();break;case 4:SalesManager_Chart.find();break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);;break;case 4:cout<<"选择删除的类型:\n1.员工\t2.销售员\t3.经理\t4.销售经理"<<endl;cin>>y;switch(y)case 1:Staff_Chart.removeItem();break;case 2:Salesman_Chart.removeItem();break;case 3:Manager_Chart.removeItem();break;case 4:SalesManager_Chart.removeItem();break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);break;case 5:cout<<"选择列出人员的类型:\n1.员工\t2.销售员\t3.经理\t4.销售经理"<<endl;cin>>y;switch(y)case 1:Staff_Chart.display();break;case 2:Salesman_Chart.display();break;case 3:Manager_Chart.display();break;case 4:SalesManager_Chart.display();break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);break;case 6:quit=true;break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);return 0;运行结果:运行空间有四个文件:增加两个员工:修改一个销售员信息:查询一个销售员信息:列出全部员工:删除一个员工:再次列出员工:个人总结:经过多天努力终于完成了老师布置的大作业,但是效果上自己还是不太满意,有很多地方都想让它更佳完整,更符合自己心目中的那种管理系统,课后依然会继续修改,让它达到自己心中理想的完善的程序。
C语言大作业
猜数字游戏
信安三班
孙麒88
戈丽萍66
分工
戈丽萍:A、B、Win函数,流程图孙麒:main、Guess函数、程序调试
一、游戏说明
1、系统随机产生一组不重复的4位数字
2、游戏者输入所猜的不重复数字,并按回车提交。
3、系统将提交的数与它自动产生的数进行比较,输出结果“*A*B”形式。
其
中A代表数字正确相应位置也正确,B代表数字正确但位置不正确。
如:1A3B 表示游戏者有1个数字的位置正确且数值也正确,除此以外,游戏者还猜对了3个数字,但位置不对,即游戏者已经猜出4位数据,但有3个数据位置不对!
4、游戏者有限定的8次的猜测机会,在规定次数内完成,则游戏成功,否则,
游戏失败。
5、游戏成功后,将根据游戏者猜测所需要的次数对其进行评价:第一次猜出为perfect,第二——第四次猜出为great
二、详细流程
1、main函数
、
2、win函数(判断输赢)
3、A函数(判断数字且位置正确的个数)
A (char m[4],char n[4])
B(char m[4],char n[4],in a)
4、B函数(判断数字对但是位置不对的个数)
5、主函数Guess(char right[4])
三、总结经验
在确定了设计的内容之后,经历了很长时间的思考想出了算法。
但是在设计中反复出现错误,特别是B函数,检查很多遍之后觉得算法并无问题。
就分块进行调试。
后来偶然发现原来是整个过程中的“==”都写成了赋值“=”,导致错误,今后一定要细心才可以。
实验二数据类型、运算符和表达式实验时间:2机时一、实验目的1. 掌握C语言数据类型,熟悉各种类型变量的定义和含义。
2. 掌握C语言标准输入、输出函数的使用方法3. 进一步熟悉C程序的上机过程,积累调试经验。
二、实验意义通过上机实验,巩固本章所学基本知识-C语言的数据类型、变量的定义和使用、结合数据类型更深入地理解标准输入函数scanf()和标准输出函数printf ()的格式控制符的意义和使用。
通过简单程序设计的练习加深对运算符优先级和结合方向的理解,并正确求解表达式的值,这些必要的基础知识是后面深入学习C语言所必须的知识储备。
三、实验重点1. 数据类型、变量的定义和使用;2. 运算符、表达式的求解3. 简单顺序结构的C程序设计四、实验难点数据类型的转换、自增自减运算五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。
六、实验内容(一).完善程序题1.用scanf函数输入数据,使得x=1.23,y=67.1234。
#include <math.h>#include <stdio.h>int main(){double x,y,z;scanf ("%lf%lf",&x,&y);z=2*x+y/sin(3.1415/4);printf("z=%6.2f",z);return 0;}输入1.23 67.1234输出z= 97.392. #include <stdio.h>int main(){int str;str=getchar();putchar(str);return 0;}输入a输出a3.根据下面的输出结果,完善程序s1=C,ASCII is 67x=655.35,y=765.43#include <stdio.h>int main(){double x=655.3524,y=765.4271;char s1='C';printf("s1=%c,ASCII is %d\nx=%6.2f,y=%6.2f",s1,s1,x,y);return 0;}输出s1=C,ASCII is 67x=655.35,y=765.434.用scanf函数输入数据,使得程序运行结果为a=2,b=’x’,c=’z’。
C语言实验报告C语言实验报告(精选9篇)在经济发展迅速的今天,我们都不可避免地要接触到报告,通常情况下,报告的内容含量大、篇幅较长。
写起报告来就毫无头绪?下面是小编帮大家整理的C语言实验报告,欢迎阅读与收藏。
C语言实验报告1在这个星期里,我们在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
个人认为课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c 语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。
c语言程序设计报告C语言程序设计报告C语言是一种广泛应用的程序设计语言,具有简单易学、高效快速的特点。
本报告主要介绍C语言程序设计的基本知识和技巧,帮助读者快速入门并掌握实际应用技能。
一、C语言程序结构C语言程序通常由头文件、全局变量、函数和主函数组成。
其中,头文件用于引入系统库和自定义库,全局变量是程序中可供多个函数共享的变量,函数是程序中的基本模块,主函数是程序入口。
二、数据类型和变量C语言中的数据类型包括整型、浮点型、字符型和指针型等。
变量是存储数据的基本单元,需要声明变量的类型和名称,并可赋初值。
三、运算符和表达式C语言中的运算符包括算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符等。
表达式由运算符和操作数组成,可用于求值和赋值等操作。
四、流程控制语句C语言中的流程控制语句包括分支语句和循环语句。
分支语句可根据条件执行不同的代码块,包括if语句和switch语句;循环语句可重复执行某段代码块,包括while语句、do-while语句和for语句。
五、数组和字符串C语言中的数组是一种存储相同类型数据的集合,需要声明数组的类型、名称和大小,并可对数组元素进行访问和操作。
字符串是一种字符数组,可用于存储和处理文本数据。
六、指针和动态内存分配C语言中的指针是一种变量类型,可存储内存地址并对内存进行操作。
动态内存分配是一种在程序运行时分配和释放内存的方法,包括malloc函数、calloc函数和realloc函数等。
七、文件操作和结构体C语言中的文件操作可用于读取和写入外部文件,包括fopen函数、fclose函数、fread函数和fwrite函数等。
结构体是一种自定义数据类型,可用于表示多个相关数据的集合。
八、应用实例C语言可用于开发各种类型的应用程序,包括控制台程序、桌面应用程序、嵌入式系统和游戏等。
例如,开发掷骰子游戏可使用随机数生成器和循环语句,开发计算器可使用算术运算符和分支语句。
《C语言程序设计》实验报告(实验1-12)《C语言程序设计》实验报告20XX~20XX学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 一、实验目的:1.了解在Visual C++ 环境下如何xx、编译、连接和运行一个C程序; 2.通过运行简单的C程序,初步了解C 源程序的特点。
二、预习内容:教材《C语言程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 环境下输入并运行下面的程序:#include int main( ) {printf("This is a C program.\\n"); return 0; }2. 在Visual C++ 环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include int main( ) {int a,b,sum a=3; b=4; sun=a+b;print(“%d+%d=%d\\n”,a,b,sum); return 0; }四、实验结果:1. 运行结果(或截图):This is a C program.Press any key to continue- 1 -2. (1) 改正后的源程序:#include int main( ) {int a,b,sum; a=3; b=4; sum=a+b;printf(\ return 0; }(2) 运行结果(或截图):3+4=7五、思考题:1. 一个C程序上机的步骤有哪些?答:上级输入与xx源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。
2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:一个函数包括两部分:分别为函数头或函数首部和函数体。
成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++ 一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。
《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:教材《C语言程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输入并运行下面的程序:#include <stdio.h>int main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include <stdio.h>int main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运行结果(或截图):2. (1) 改正后的源程序:(2) 运行结果(或截图):五、思考题:1. 一个C程序上机的步骤有哪些?答:2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。
二、预习内容:教材《C语言程序设计教程》第2章。
三、实验内容:1. 在Visual C++ 6.0环境下输入下面的程序,编译、连接、调试该程序。
c语言课程设计报告书3篇c语言课程设计报告书1我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理。
简单界面程序。
高级界面程序。
程序的添加修改。
用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的.语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
c语言实验报告模板一、实验目的二、实验环境三、实验内容1. 实验一:基本数据类型和运算符的使用a. 实验过程b. 实验结果与分析2. 实验二:条件语句和循环语句的使用a. 实验过程b. 实验结果与分析3. 实验三:函数的定义和调用a. 实验过程b. 实验结果与分析4. 实验四:指针的使用和数组的应用a. 实验过程b. 实验结果与分析四、实验总结一、实验目的:本次实验旨在通过C语言程序设计,深入了解C语言程序设计基础知识,掌握C语言程序设计方法,提高C语言程序设计能力。
二、实验环境:操作系统:Windows 10;编译器:Dev-C++;开发工具:Visual Studio Code。
三、实验内容:1. 实验一:基本数据类型和运算符的使用a. 实验过程:首先,我们需要在Dev-C++中新建一个源文件,然后编写代码。
代码如下:#include <stdio.h>int main() {int a = 10;float b = 3.14;char c = 'A';printf("a = %d\n", a);printf("b = %.2f\n", b);printf("c = %c\n", c);int sum = a + b;float sub = a - b;float mul = a * b;float div = a / b;printf("sum = %d\n", sum);printf("sub = %.2f\n", sub);printf("mul = %.2f\n", mul);printf("div = %.2f\n", div);return 0;}b. 实验结果与分析:运行程序后,我们可以得到以下输出结果:a = 10b = 3.14c = Asum = 13sub = 6.86mul = 31.40div = 3.18通过以上输出结果,我们可以看出C语言中基本数据类型和运算符的使用方法。
C语言程序设计实验报告(实验名称:函数)1实验目的(1)掌握函数的定义方法、调用方法、参数说明以及返回值;(2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式;(3)掌握函数的嵌套调用及递归调用的用的设计方法;(4)在编程过程中加深理解函数调用的程序设计思想。
2实验内容(1)编写一个函数primeNum(int x),功能是判别一个数是否为素数。
要求:①在主函数中输入一个整数x(直接赋值或从键盘输入);②函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是否为素数的信息,输出格式为“x is a prime number”或”x is not aprime number”;③分别输入一下数据:0,1,2,5,9,13,59,121,并运行程序,检查结果是否正确。
(2)编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。
如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。
要求:①在主函数中从键盘输入一对整型数据a和b;②调用函数后,根据返回值对a和b的关系进行说明。
例如,在主函数中输入:10,5,则输出“10 is a multiple of 5”;③分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6与4,20与4,37与9。
3算法描述流程图(1)primeNum(int x)(判别一个数是否是素数)函数流程图①主函数流程图:②判断素数函数流程图:(2)mulNum(int a,int b)(确定a和b是否是整数倍的关系)函数流程图①主函数流程图:②判断倍数流程图:4源程序(1)判断某个数是否是素数#include <stdio.h>int primNum(int x) /*编写函数判断某个数是否是素数*/ {int i;if (x==0||x==1) /*当x等于1或等于0时判断是否为素数*/return 0;for (i=2;i<x;i++) /* 当x大于2时判断不为素数的数*/{if (x%i==0)return 0;}if (x%i) /* 当x等于2或不满足上述条件时时判断出该数是素数*/ return 1;}void main(){int n ;printf("Please input an integer:"); /* 提示从键盘输入一个数x */scanf("%d",&n);if (primNum(n)==1) /* 调用定义的函数*/ printf("%d is a prime number\n",n); /* 由函数得出结论判断是否为素数*/ elseprintf("%d is not a prime number\n",n);}(2)个数是否是整数倍关系#include <stdio.h>int mulNum(int a,int b)/* 定义函数确定两个数是否有整数倍关系*/{if (a%b==0) /* 判断出a是b的整数*/return 1;else /* 判断出a不是b的整数*/return 0;}void main (){int m,n;printf ("please input tow integers:\n"); /*提示从键盘输入两个数*/scanf ("%d%d",&m,&n); /*从键盘输入两个数的值*/if(mulNum(m,n)==1) /*调用定义的函数并判断输出相应的结果*/printf("%d is a multiple of %d\n",m,n);elseprintf("%d is not a multiple of %d\n",m,n);}5测试数据(1)实验(1)测试数据为0,1,2,5,9,13,59,121 运行结果当测试数据0时当测试数据1时当测试数据2时当测试数据5时当测试数据9时当测试数据13时当测试数据59时当测试数据121时(2)实验2测试的数据1与5,5与5,6与2,6与4,20与4,37与9。
《C语言程序设计》大作业报告
1. 目的
掌握所学C语言程序设计的方法,熟悉 所学语言的开发环境及调试过程,
熟悉所学C语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对
理论课中知识的理解,提高学生对所学知识的综合运用能力。 通过综合设计要
求达到下列基本技能:
1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学
会自己分析、解决问题。
2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握
程序设计的方法, 能熟练调试程序。
2. 作业内容
熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数
组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);
程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即
函数的使用)等。进一步掌握各种函数的应用等。
3. 要求:
1. 要求每个同学都要认真对待,积极参与。
2. 独立完成,不能抄袭。
3. 课程设计结束时每位同学必须完成《大作业报告册》, 其中包含设计源
代码和设计思路。
4. 不符合要求的程序、设计报告、 抄袭的设计报告或源程序代码、 在设
计中完全未参与的将作不及格处理。
5. 统一格式,A4打印,按时提交。
4. 题目:设计要求:编写一个程序,求3x4数组的转置矩阵。
要求在main函数里面读数,在change函数里面把矩阵转置。
5. 程序设计
5.1 设计思路:1是先定义两个数组,一个是a[3][4],另
一个是b[4][3]。2是将随便输入的12个数输入到a[3][4]。
3是在change函数中将a[3][4]中值通过for循环的镶嵌
将数组a[3][4]的值赋值给数组b[4][3]。4在主函数中将
数组b[4][3]通过for循环的嵌套输出。
5.2 代码
# include
int change (int a[3][4],int b[4][3]);
main()
{ int a[3][4],b[4][3],i,j;
printf("please input some 12 numbers:");
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<=3;j++)
scanf ("%d",&a[i][j]);
}
change (a,b);
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
printf("%5d",b[i][j]);
printf("\n");
}
}
int change (int a[3][4],int b[4][3])
{
int m,n;
for(m=0;m<3;m++)
for(n=0;n<4;n++)
b[n][m]=a[m][n];
retrun 0;
}
5.3 结果
6. 心得体会
编写时注意for循环的嵌套,先理清逻辑关系在编写,在看
例题后,需要多敲代码,才能越来越熟练。