源代码

合集下载

C#100例经典源代码

C#100例经典源代码

C#语言100例经典源代码程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:main(){inti,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for(k=1;k<5;k++){if(i!=k&&i!=j&&j!=k)/*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

2.程序源代码:main(){longinti;intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;elseif(i<=200000)bonus=bonus1+(i-100000)*0.075;bonus=bonus2+(i-200000)*0.05;elseif(i<=600000)bonus=bonus4+(i-400000)*0.03;elseif(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

C语言程序设计 入门源代码代码集合【精选文档】

C语言程序设计 入门源代码代码集合【精选文档】

#include 〈stdio.h〉void print_star(void){printf("*****************\n"); }void print_welcome(void){printf(”C language,welcome!\n");}void main(){print_star();print_welcome();print_star();getchar();}演示2#include "stdio。

h"int sum(int i,int j){return(i + j);}void main(){int n1,n2;printf("input 2 numbers:\n”);scanf("%d%d”,&n1,&n2);printf("the sum = %d\n",sum(n1,n2));getchar();}演示3#include "stdio。

h"int maxnum(int,int,int);main(){int a,b,c;printf("Please enter 3 numbers:\n");scanf(”%d,%d,%d”,&a,&b,&c);printf(”Maxnum is %d\n",maxnum(a,b,c));}int maxnum(int x,int y,int z){int max=x;if(y>max)max = y;if(z>max)max = z;return max;}演示4#include 〈stdio。

h〉int s1(int n){int j,s;s=0;for(j=1;j<=n;j++)s=s+j;return s;}int sum(int n){int i,s=0;for(i=1;i<=n;i++)s=s+s1(i);return s;}void main(){int n;printf(”n:”);scanf(”%d",&n);printf("s=%d\n”,sum(n));}演示5#include <stdio.h〉void func(int n){int i;for(i=n-1;i〉=1;i--)n=n+i;printf("n=%d\n",n);}void main(){int n;printf("Input n:");scanf("%d”,&n);func(n);printf(”n=%d\n",n);}演示6#include <stdio。

C++源代码[精彩]

C++源代码[精彩]

C++源代码#include <iostream>#include <fstream>#include <ctype.h>#include <cstring>using namespace std;//全局数据,对象double CSalary;double SSalary;double APSalary;int ID; //员工工号(要保证唯一)class Person //教师类{protected:int No; //编号char Name[20]; //姓名char Sex[10]; //性别char Tel[20]; //联系方式char Nation[30]; //国籍int Duty; //职位double Earning; //收入Person *next;public:Person(char ID,char *Name,int Duty) {this->Duty=Duty;strcpy(this->Name,Name);this->No=ID;}virtual void CalcSalary()=0;virtual void Output()=0;friend class College;};class Cservant:public Person //文员类{private:double Workload; //上个月完成工作量public:Cservant(char ID,char *Name,int Duty,double Workload):Person(ID,Name,Duty){this->Workload=Workload;}double GetWorkload(){return Workload;}void SetWorkload(double Amount){this->Workload=Amount;}void CalcSalary(){Earning=CSalary+(Workload-20)*20;}void Output(){CalcSalary();cout<<No<<"\t"<<Name<<"\t文员\t"<<"\t\t"<<Earning<<endl;}};class Salesman:public Person{private:double Workload;public:Salesman(char ID,char *Name,int Duty,double Workload):Person(ID,Name,Duty){this->Workload=Workload;}double GetWorkload(){return Workload;}void SetWorkload(double Amount){this->Workload=Amount;}void CalcSalary(){Earning=SSalary+(Workload-15)*20+150; //}void Output(){CalcSalary();cout<<No<<"\t"<<Name<<"\t教授\t"<<"\t\t"<<Earning<<endl;}};class ACman:public Person //助教类{private:double Workload; //上个月完成工作量public:ACman(char ID,char *Name,int Duty,doubleWorkload):Person(ID,Name,Duty){this->Workload=Workload;}double GetWorkload(){return Workload;}void SetWorkload(double s){Workload=s;}void CalcSalary(){Earning=250+APSalary+CSalary+(Workload-15)*20;}void Output(){CalcSalary();cout<<No<<"\t"<<Name<<"\t助教\t"<<Earning<<endl;}};class APman:public Person //副教授类{public:APman(char ID,char *Name,int Duty):Person(ID,Name,Duty){}void CalcSalary(){Earning=APSalary+250;//250为行政补贴}void Output(){CalcSalary();cout<<No<<"\t"<<Name<<"\t副教授\t\t"<<Earning<<endl;}};class CSman:public Person //讲师{private:double Workload;//public:CSman(char ID,char *Name,int Duty,doubleWorkload):Person(ID,Name,Duty){this->Workload=Workload;}double GetWorkload(){return Workload;}void SetWorkload(double Amount){this->Workload=Amount;}void CalcSalary(){Earning=(Workload-25)*20+CSalary+150+SSalary;}void Output(){CalcSalary();cout<<No<<"\t"<<Name<<"\t讲师\t"<<Earning<<endl;}};class College //{private:Person *Worker; //员工表void Clear(); //清除内存中数据public:College(){Worker=0;Load();}~College(){Person *p;p=Worker;while(p){p=p->next;delete Worker;Worker=p;}Worker=0;}void Find(char Name[20]);//按姓名查找void Find(int ID);//按编号查找void Add(); //增加人员void Delete(); //删除人员void Modify(); //修改人员void Query(); //查询人员void Set(); //基础数据设置void Save(); //数据存盘(包括基础数据,人员数据)void Load(); //数据装入(包括基础数据,人员数据)};void College::Clear() //清除内存中人员数据(内部使用) {Person* p=Worker;while(p){Worker=p->next;delete p;p=Worker;}}void College::Find(char Name[20]){}void College::Add(){Person *p; //新结点指针int Duty;char Name[20];char Sex[10]; //性别char Tel[20]; //联系方式char Nation[30]; //国籍double Workload;cout<<"\n** 新增员工 **\n";//输入员工信息cout<<"输入工号:"; cin>>ID;cout<<"输入职位(1-文员 2-助教 3-讲师 4-副教授 5-教授):"; cin>>Duty;cout<<"输入姓名:"; cin>>Name;cout<<"输入性别:"; cin>>Sex;cout<<"输入联系方式:"; cin>>Tel;cout<<"输入国籍:"; cin>>Nation;if(Duty!=4){cout<<"上个月完成工作量:"; cin>>Workload;}//创建新员工结点switch(Duty){case 1:p=new Cservant(ID,Name,Duty,Workload); break; case 2:p=new ACman(ID,Name,Duty,Workload); break; case 3:p=new CSman(ID,Name,Duty,Workload); break;case 4:p=new APman(ID,Name,Duty); break;case 5:p=new Salesman(ID,Name,Duty,Workload); break;}p->next=0;//员工结点加入链表if(Worker) //若已经存在结点{Person *p2;p2=Worker;while(p2->next) //查找尾结点{p2=p2->next;}p2->next=p; //连接}else //若不存在结点(表空){Worker=p; //连接}}void College::Delete() //删除人员{int No;cout<<"\n** 删除员工 **\n";cout<<"ID:"; cin>>No;//查找要删除的结点Person *p1,*p2; p1=Worker;while(p1){if(p1->No==No)break;else{p2=p1;p1=p1->next;}}//删除结点if(p1!=NULL)//若找到结点,则删除{if(p1==Worker) //若要删除的结点是第一个结点Worker=p1->next;delete p1;}else //若要删除的结点是后续结点{p2->next=p1->next;delete p1;}cout<<"找到并删除\n";}else //未找到结点cout<<"未找到!\n";}void College::Modify(){int No,Duty;char Name[20];double Workload;cout<<"\n** 修改员工 **\n"; cout<<"ID:"; cin>>No;//查找要修改的结点Person *p1,*p2; p1=Worker; while(p1){if(p1->No==No)break;elsep2=p1;p1=p1->next;}}//修改结点if(p1!=NULL)//若找到结点{p1->Output();cout<<"调整职位(1-文员 2-助教 3-讲师 4-副教授 5-教授):"; cin>>Duty;if(p1->Duty!=Duty) //若职位发生变动{//修改其它数据cout<<"输入姓名:"; cin>>Name;if(Duty!=4){cout<<"上个月完成工作量:"; cin>>Workload;}//创建新员工结点Person *p3;switch(Duty){case 1:p3=new Cservant(p1->No,Name,Duty,Workload); break; case 2:p3=new ACman(p1->No,Name,Duty,Workload); break;case 3:p3=new CSman(p1->No,Name,Duty,Workload); break;case 4:p3=new APman(p1->No,Name,Duty); break;case 5:p3=new Salesman(p1->No,Name,Duty,Workload); break;}//员工结点替换到链表p3->next=p1->next;if(p1==Worker) //若要替换的结点是第一个结点Worker=p3;else //若要删除的结点是后续结点p2->next=p3;//删除原来的员工结点delete p1;}else //若职位没有变动{cout<<"输入姓名:"; cin>>p1->Name;if(Duty==1){cout<<"上个月完成教学任务:"; cin>>Workload; ((Cservant *)p1)->SetWorkload(Workload);}else if(Duty==2){cout<<"上个月完成教学任务:"; cin>>Workload; ((ACman*)p1)->SetWorkload(Workload);}else if(Duty==3){cout<<"上个月完成教学任务:"; cin>>Workload; ((CSman*)p1)->SetWorkload(Workload);}else if (Duty==5){cout<<"上个月完成教学任务:"; cin>>Workload; ((Salesman *)p1)->SetWorkload(Workload);}}cout<<"修改成功!\n";}else //未找到结点cout<<"未找到!\n";}void College::Query(){int chet,count(0);cout<<"\n** 查询教职工信息以及本月教学任务 **\n";cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"职位"<<"\t\t\t"<<"工资(元/月)"<<endl;Person *p=Worker;double sum2=0; //工资总和while(p){p->Output();sum2+=p->Earning;p=p->next;}cout<<"本月实发工资总数:"<<sum2<<"元"<<endl;cout<<"请输入你要查询人员的编号:"; cin>>chet; Person *p4=Worker;while(p4){if(p4->No==chet){if(p4->Duty==1){((Cservant*)p4)->Output();count++;break;}else if(p4->Duty==2){((ACman*)p4)->Output();count++;break;}else if(p4->Duty==3){((CSman*)p4)->Output();count++;break;}else if(p4->Duty==4){((APman*)p4)->Output();count++;break;}else if(p4->Duty==5){((Salesman*)p4)->Output();count++;break;}}else{p4=p4->next;}}if(count==0) cout<<"未找到!"<<endl;}void College::Set(){cout<<"\n** 设置基础数据 **\n";cout<<"文员基本工资["<<CSalary<<"元]:"; cin>>CSalary;cout<<"副教授基本工资["<<APSalary<<"元]:"; cin>>APSalary; cout<<"教授基本工资["<<SSalary<<"]:"; cin>>SSalary;cout<<"员工工号[>="<<ID<<"]:"; cin>>ID;}void College::Save() //数据存盘(包括基础数据,人员数据),均采用文本文件{ofstream fPerson,fBase;char c;cout<<"\n保存人员和基础数据,是否继续?[Y/N]:"; cin>>c; if(toupper(c)!='Y')return;//保存人员编号、姓名、职位fPerson.open("person.txt",ios::out);Person *p=Worker;while(p){fPerson<<p->No<<"\t"<<p->Name<<"\t"<<p->Duty<<"\t";if(p->Duty==1)fPerson<<((Cservant*)p)->GetWorkload()<<"\t";else if (p->Duty==2)fPerson<<((ACman*)p)->GetWorkload()<<"\t";else if (p->Duty==3)fPerson<<((CSman*)p)->GetWorkload()<<"\t";else if (p->Duty==5)fPerson<<((Salesman*)p)->GetWorkload()<<"\t";fPerson<<endl;p=p->next;}fPerson.close();//保存基础数据fBase.open("base.txt",ios::out);fBase<<"文员基本工资\t"<<CSalary<<endl;fBase<<"副教授基本工资\t"<<APSalary<<endl;fBase<<"教授基本工资\t"<<SSalary<<endl;fBase<<"ID\t"<<ID<<endl;fPerson.close();cout<<"\n保存人员和基础数据已经完成...\n";}void College::Load() //数据装入(包括基础数据,人员数据){//基础数据装入ifstream fBase;char buf[80]; //buf用于保存数据文件中的注释字符串fBase.open("base.txt",ios::in);fBase>>buf>>CSalary; //文员基本工资fBase>>buf>>APSalary; //副教授基本工资fBase>>buf>>SSalary; //教授基本工资fBase>>buf>>ID; //工号fBase.close();//清除内存人员数据Clear();//人员数据数据装入ifstream fPerson;Person *p=Worker;int No; char Name[20]; int Duty;double Workload;fPerson.open("person.txt",ios::in);//读一条记录fPerson>>No>>Name>>Duty;if(Duty!=4)fPerson>>Workload;while(fPerson.good()){//创建员工结点switch(Duty){case 1:p=new Cservant(No,Name,Duty,Workload); break; case 2:p=new ACman(No,Name,Duty,Workload); break; case 3:p=new CSman(No,Name,Duty,Workload); break;case 4:p=new APman(No,Name,Duty); break;case 5:p=new Salesman(No,Name,Duty,Workload); break;}p->next=0;//员工结点加入链表if(Worker) //若已经存在结点{Person *p2;p2=Worker;while(p2->next) //查找尾结点{p2=p2->next;}p2->next=p; //连接}else //若不存在结点(表空){Worker=p; //连接}//读下一条记录fPerson>>No>>Name>>Duty;if(Duty!=4)fPerson>>Workload;}fPerson.close();cout<<"\n人员和基础数据已经装入...\n"; }void main(){char c;College a;do{cout<<"\n*** 教师信息管理系统 ***\n"; cout<<"1-增加人员\n";cout<<"2-删除人员\n";cout<<"3-修改人员\n";cout<<"4-查询职工信息\n";cout<<"5-基础数据设置\n";cout<<"6-数据存盘\n";cout<<"7-数据装入\n";cout<<"8-退出\t请选择(1-8):";cin>>c;switch(c){case '1': a.Add(); break; case '2': a.Delete();break; case '3': a.Modify();break; case '4': a.Query(); break; case '5': a.Set(); break; case '6': a.Save(); break; case '7': a.Load(); break; }}while(c!='8');}。

源代码是什么

源代码是什么

源代码是什么源代码(也称源程序),是指一系列人类可读的计算机语言指令。

在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。

计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。

代码组合源代码作为软件的特殊部分,可能被包含在一个或多个文件中。

一个程序不必用同一种格式的源代码书写。

例如,一个程序如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。

较为复杂的软件,一般需要数十种甚至上百种的源代码的参与。

为了降低种复杂度,必须引入一种可以描述各个源代码之间联系,并且如何正确编译的系统。

在这样的背景下,修订控制系统(RCS)诞生了,并成为研发者对代码修订的必备工具之一。

还有另外一种组合:源代码的编写和编译分别在不同的平台上实现,专业术语叫做软件移植。

质量对于计算机而言,并不存在真正意义上的“好”的源代码;然而作为一个人,好的书写习惯将决定源代码的好坏。

源代码是否具有可读性,成为好坏的重要标准。

软件文档则是表明可读性的关键。

作用源代码主要功用有如下2种作用:生成目标代码,即计算机可以识别的代码。

对软件进行说明,即对软件的编写进行说明。

为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。

但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。

因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。

计算机里面运行的所有东西都是用程序编出来的(包括操作系统,如Windows,还有Word等,网络游戏也一样),而编写程序要用到计算机语言,用计算机语言直接编出来的程序就叫源码,比如用VisualBasic编写的源码文件一般为.bas文件,而用C++编写的一般为.cpp文件,源代码不能直接在Windows下运行,必须编译后才能运行。

简单的源代码编写

简单的源代码编写

简单的源代码编写中文编程越来越受到人们的关注,这里我们来介绍一些简单的源代码编写。

首先,我们可以编写一个简单的“Hello,World!”程序,用来验证我们的开发环境是否正确配置:```encoding=utf-8print("Hello,World!")```该程序的输出结果就是“Hello,World!”,这也是经典的初学者示例。

接着,我们可以看看如何编写一个简单的计算器程序:```encoding=utf-8a=float(input("请输入第一个数:"))b=float(input("请输入第二个数:"))c=input("请选择你要进行的运算,例如:+、-、*、/:")if c=='+':print(a+b)elif c=='-':print(a-b)elif c=='*':print(a*b)elif c=='/':if b==0:print("被除数不能为零!")else:print(a/b)else:print("输入的运算符有误!")```该程序首先让用户输入两个数和要进行的运算符,然后根据用户输入进行相应的运算,最后输出结果。

在此,我们使用了if语句来判断不同的运算符,并计算出运算结果。

最后,我们可以尝试编写一个简单的猜数字游戏程序:```encoding=utf-8import randomanswer=random.randint(1,100)times=0while True:guess=int(input("请输入一个1~100之间的整数:"))times+=1if guess>answer:print("太大了,请重新输入!")elif guess<answer:print("太小了,请重新输入!")else:print("恭喜你,猜对了!你一共猜了%d次。

C#100例经典源代码

C#100例经典源代码

C#语言100例经典源代码程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

源代码是什么?

源代码是什么?

效率
虽然我们可以通过不同的语言来实现计算机的同一功能,但在执行效率上则存在不同。普遍规律是:越高级的语言,其执行效率越低。这也是为什么汇编语言生成的文件比用VB语言生成文件普遍要小的原因。
源代码,是指未编译的文本代码。是一系列人类可读的计算机语言指令。
在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。
版权
如果按照源代码类型区分软件,通常被分为两类:自由软件和非自由软件。自由软件一般是不仅可以免费得到,而且公开源代码;相对应地,非自由软件则是不公开源代码。所有一切通过非正常手段获得非自由软件源代码的行为都将被视为非法。
质量
对于计算机而言Байду номын сангаас并不存在真正意义上的“好”的源代码;然而作为一个人,好的书写习惯将决定源代码的好坏。源代码是否具有可读性,成为好坏的重要标准。软件文档则是表明可读性的关键。
较为复杂的软件,一般需要数十种甚至上百种的源代码的参与。为了降低种复杂度,必须引入一种可以描述各个源代码之间联系,并且如何正确编译的系统。在这样的背景下,修订控制系统(RCS)诞生了,并成为研发者对代码修订的必备工具之一。
还有另外一种组合:源代码的编写和编译分别在不同的平台上实现,专业术语叫做软件移植。
需要指出的是,源代码的修改不能改变已经生成的目标代码。如果需要目标代码做出相应的修改,必须重新编译。
代码组合
源代码作为软件的特殊部分,可能被包含在一个或多个文件中。一个程序不必用同一种格式的源代码书写。例如,一个程序如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。

经典C语言源代码

经典C语言源代码

经典C语言源代码1、(1)某年某月某日是星期几#include<stdio.h>intmain(){intyear,month,day;{if(month==1||month==2)//判断month是否为1或2{ year--;month+=12;}intc=year/100;inty=year-c*100;intweek=(c/4)-2*c+(y+y/4)+(13*(month+1)/5)+day-1;while(week<0){week+=7;}week%=7;switch(week){}}return0;}1、(2)某年某月某日是第几天(一维数组)voidmain(){inti,flag,year,month,day,dayth;intmonth_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};请输入年/月/日:dayth=day;flag=(year%400==0)||(year%4==0&&year%100!=0);if(flag)month_day[2]=29;for(i=1;i<month;i++)dayth=dayth+month_day[i];是第%4天}2、30个数中找最小的数及其位置#defineSIZE30voidmain(){inti;floatdata[SIZE];intmin;请输入%d个浮点数:for(i=0;i<SIZE;i++){data[i]=rand()%30+1;、}min=0;for(i=1;i<SIZE;i++){if(data[i]<data[min])min=i;最小值是%5.2f,位置是}3、30个数从小到大排序(1)#defineSIZE30voidmain(){inti,j;floatdata[SIZE],temp;intmin;请输入%d个整型数:for(i=0;i<SIZE;i++){}for(i=0;i<SIZE;i++){min=i;for(j=i+1;j<SIZE;j++)if(data[j]<data[min])temp=data[min];data[min]=data[i];data[i]=temp;}排序后的结果是:for(i=0;i<SIZE;i++)min=j;}(2)模块化程序(数组名作为函数参数)#defineSIZE5voidaccept_array(floata[],intsize);voidsort(floata[],intsize); voidshow_array(floata[],intsize);voidmain(){floatscore[SIZE];accept_array(score,SIZE);排序前:show_array(score,SIZE);sort(score,SIZE);排序后:show_array(score,SIZE);}voidaccept_array(floata[],intsize){inti;请输入%d个分数:for(i=0;i<size;i++)}voidshow_array(floata[],intsize){inti;for(i=0;i<size;i++)}voidsort(floata[],intsize){inti,min,j;floattemp;for(i=0;i<SIZE;i++){min=i;for(j=i+1;j<SIZE;j++)if(a[j]<a[min])min=j;}temp=a[min]; a[min]=a[i]; a[i]=temp;}}4、(1)指针加减:#defineSIZE10voidmain(){inta[SIZE]={1,2,3,4,5,6,7,8,9,10};int*pa,i;pa=&a[0];//pa=a;for(i=0;i<SIZE;i++){pa++;(2)指针比较:#defineSIZE10voidmain(){inta[SIZE]={1,2,3,4,5,6,7,8,9,10};int*pa,i;int*qa;pa=qa=&a[0];请输入%d整型数:for(;pa<qa+SIZE;pa++)for(pa--;qa<=pa;pa--)}5、两字符串相连:voidstr_cat(charstr1[],charstr2[]);voidmain(){inti,j;charstr1[160];charstr2[80];请输入第一个字符串:gets(str1);请输入第二个字符串:gets(str2);str_cat(str1,str2);puts(str1);}voidstr_cat(charstr1[],charstr2[]){ inti,j;i=0;i++;j=0;str1[i]=str2[j];i++;j++;}}6、二维数组(a,b转置)voidmain(){inti,j,b[2][3];inta[3][2]={{1,2},{3,4},{5,6}};for(i=0;i<2;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}for(i=0;i<3;i++){for(j=0;j<2;j++)}for(i=0;i<2;i++){for(j=0;j<3;j++)}7、输入一个二维数组并输出(指针)voidmain(){intx[2][3];inti,j;for(i=0;i<2;i++)for(j=0;j<3;j++)putchar('');for(i=0;i<2;i++){for(j=0;j<3;j++)putchar('');}}8、冒泡法排序一个数组#definesize10voidmaopao(inta[]);voidmain(){inta[10];inti;请输入10个整数:for(i=0;i<10;i++)maopao(a);}voidmaopao(inta[]){inti,j,temp;for(i=0;i<9;i++){//进行9轮排序for(j=0;j<9-i;j++)//每轮进行9-i次交换{if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];//大的沉底,小的上浮a[j+1]=temp;排序结果:for(i=0;i<10;i++)}}9、两数组A,B,要求A<B,如A :4,7,9B :1,3,5,8,9变换后A :1,3, 5B :4,7,8,9,9#include<stdio.h>voidReArranger(int*A,int*B,intm,intn)//A和B是各有m个和n个整数的非降序数组,本算法将B数组元素逐个插入到A中,使A中各元素均不大于B中各元素,且两数组仍保持非降序排列。

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

《源代码》影评
电影《源代码》是由著名导演邓肯·琼斯指导,杰克·吉伦哈尔/ 维拉·法米加/ 米歇尔·莫娜汉/ 杰弗里·怀特/ 拉塞尔·皮特斯/ 迈克尔·阿登等人主演。

主要内容是,在阿富汗执行任务的美国空军飞行员科特史蒂文斯上尉(杰克·吉伦哈尔饰)突然惊醒,发现自己在一辆高速行驶的列车上,而他的身边坐着一个素不相识的女子克里斯蒂安(米歇尔·莫娜汉饰)正在与自己讲话。

科尔不知自己为什么会在这辆车上,而且他发现自己居然是以另一个人的身份存在,正当他迷惑不解的时候,列车上忽然发生爆炸……
科特又一次惊醒,发现自己身处一个密闭的太空仓里,有一位女军官古德温(维拉·法米加饰)正在通过视频和自己对话,并要求自己报告列车上发生的事情。

一头雾水的科特还没搞明白是怎么回事时,他又一次被送上那辆列车。

这次之后,科特终于明白自己在执行一件任务,负责调察芝加哥火车爆炸案找到恐怖份子并查出他的下一个目标。

科特被一次又一次的送上那辆高速列车,每次只有八分钟的时间调察,调察过程中,科特发现自己已在两个月前去世,原来他正在参与是一项“脑波源代码”的秘密任务,这项任务通过已经死亡的科特尚未完全死亡的脑细胞影像来还原事件,调查事情的真相。

最终,科特顺利完成了任务,但是他却决定再一次返回列车,拯救列车上那些无辜的生命……
1.关于电影结构和设定
电影文化发展的今天,时光穿越的概念已不算新颖,而漫画英雄人体改造大行其道,星球科幻泛滥。

科幻片的架构似乎越来越缺乏新鲜感,而类似流水线上产出的剧情,更让目前许多的科幻大作沦为特效与音响的大比拼。

因而,《源代码》的诞生显得颇为异类,大场面与电脑特效自然必不可少,但是《源代码》对于科幻电影中早已成俗套手法的穿越进行了相同手法的另一种解读方式,虽说它还是一个穿越故事,但是却和《大话西游之月光宝盒》之类的电影不是一样的穿越,因为它所传达给观众的观念是不一样的,导演和编剧巧妙的把穿越和人类的记忆以及计算机技术结合了起来,虽然同样是关乎过去和未来,但它这样的设定的确让人眼前一亮。

《源代码》这部电影成功的原因大部分,是在于这种将新颖的科幻概念与复杂的故事结构相结合,在一个小的科幻概念中构造出另一个复杂的世界的手法。

在《源代码》中,导演构造了另一个平行世界,且现实与构造的世界的发生地具有很大局限性,从而限制了影片故事空间的可看性。

更重要的是,在构造的世界中,其发生的故事在一定程度上是重复的,重复的片段很容易引起观众的审美疲劳。

在这样的条件下,梳理好故事的脉络就要容易得多,但故事也更容易变得无趣。

因此,为了故事更加具备可看性,除了尽可能的拓展“构造世界”的空间外,导演通过悬念的层层揭开,动机的一步步铺垫与故事发展的柳暗花明又一村等方式,让整个故事精巧而好看起来。

2.电影剧情方面
在电影剧情方面,首先,《源代码》延续了美国科幻电影一直的宗旨——个人英雄主义。

这是美国电影中惯用的手法——在危机万分的环境中,主角经历万
分的艰险,与敌人经过殊死的搏斗,或者在牺牲自我的前提下,阻止了打的灾难,成功的拯救世界或者人类。

本剧中同样如此,主角科特被一次又一次的送上那辆高速列车,每次只有八分钟的时间调察,调察过程中,科特不停地罪犯斗智斗勇,一次次的经历令人恐惧的爆炸场面。

经过艰难险阻,重重危机,最终,科特顺利完成了任务,抓到企图引爆核弹的罪犯,阻止了核弹爆炸,拯救了芝加哥和无数的美国公民。

其次,内容方面的亮点还有就是悬念的层层揭开,这里的悬念包括了现实世界与构造世界两个世界里的悬念。

其中,现实世界中的悬念包含:源代码诞生的悬念、构造世界的悬念、主人公身世与命运的悬念等,随着剧情的不断发展得以不断的揭开。

而在构造世界里,一个精巧却不复杂的侦探故事填满了8分钟片段,也正是这个层层揭开的破案故事,使得这个不断重复的片段具备了娱乐可看性。

其实,倘若仅靠现实世界的悬念连接构造的世界,是有其合理性的,只需要将男主人公设置为愿意为国捐躯的爱国士兵即可,但倘若这样的设置,悬念的丰富性与复杂性与结局的出乎意料性会减少许多,从而使故事变得更单调。

所以,紧接着,影片用动机的不断铺陈充分将现实世界与构造世界连接起来,故事的发展也变得生动许多。

主人公进入构造世界的动机,每个阶段均有细微的变化,主要脉络是:无知—正义感—爱情的懵懂—亲情驱使—所有情感的爆发!更重要的是,这些动机,在影片的开篇均做了一定程度的交代,以至于剧情发展成熟时,此动机的产生并不显得自说自话,这些具有商业性与思想主流性的动机均使得整部影片的情感更丰满,更生动。

满足了以上两点,其实《源代码》已经可以说是一部好看又精巧的电影,但该片并不满足于此,最后,主人公的生死之谜、主人公与女主人公的情感脉络、构造世界之谜等出乎意料的桥段让电影除了好看与精巧之余,又多了一份惊喜。

3.电影带来的启发
男主角,一名可以算是已经死去的现役军人,活着的时候,他没有和父亲好好沟通,造成了和父亲的各种误会;而当他死后,穿越成另一个人,他一开始只关注自身的遭遇而忽视了周围存在及其对自己的感觉,所以他总在焦虑、抱怨、总是有太多的疑问。

然而当他真正得到真相,却发现以前的自己是多么的荒谬,忽视了那么多美好的所在。

电影里这个角色的心理转变实际上最有说服力,让观众明白,我们所处的世界中,有许多美好的事情被我们忽视,我们不能因为困境和自身的原因,忽视这些美好。

我们应该多与外界交流,去发现这些美好,去珍惜,去保护。

在各个方面《源代码》都有亮点,吸引观众的眼球。

另类的设定,扣人心弦的故事,层层的悬疑揭秘,都带给了观众惊喜。

可是这部电影也有着不足和缺憾。

诚然,《源代码》是一个好故事,一年之后当你忽然想起这电影,你依然会记得:火车、八分钟、爆炸、时空穿梭……通过这些情节你会在脑海中慢慢的把这个故事串起来。

但是在人物塑造方面这电影确实乏善可陈。

除了吉伦哈尔,观众几乎不会对任何一个角色有印象。

而且说实话,这一个多小时的电影中吉伦哈尔给观众留下的印象还不及他在《荒野求生》中跟随贝尔穿越冰岛时的形象鲜活。

当然,这本身可能不具备比较性,但是这却可以说明一点:在人物关系较为简单的电影中,导演应该通过镜头与细节去丰富人物的个性。

《源代码》这部电影,电影的
故事并不复杂,出场人物也相对较少,人物之间也不存在深层次的复杂关系。

应该说单纯靠故事,已经足以抓住观众的眼球。

也可能恰恰因为这一点,编剧和导演忽略了在人物塑造上该下的功夫,造成了人物的苍白,使影片的整体影响力下降不少。

这不能不说是一个遗憾。

不过,《源代码》这部影片,虽然有着一些瑕疵,可是还是亮点颇多,是一步值得观看的影片。

相关文档
最新文档