文档库 最新最全的文档下载
当前位置:文档库 › C 程序设计大作业(含源代码)

C 程序设计大作业(含源代码)

C  程序设计大作业(含源代码)
C  程序设计大作业(含源代码)

姓名:叶尔凯西

学院(系):计科系

班级:计科系07-1班

学号:027

设计本程序的目的:

关于一些并不太复杂的集体来说,一般需要管理集体中的每个人的基本信息的,本程序专门为一些在校学生的基本信息的管理而设计的,主要目的是通过本程序来实现简单的记录和查找学生的基本信息;

程序功能简介:

本程序是通过面向对象的最重要的特点“类”来设计出来的,其功能是实现简单的学生基本信息管理。包括一些要求用户从键盘输入(记录)学生的基本信息、输出学生的基本信息和用学生的学号来查找学生信息表中的某个学生的基本信息等功能;

程序功能的详细介绍:

本人设计程序时考虑到的很所内容,其中输入输出学生的基本信息是最基本的功能。下面来给大家介绍程序的核心类的构建:

①在程序中共建立了两种类,分别是person类和student类。person作为student

类的基类,其内部是如下设计的:

class person

{

public:

void SetPersonAddress(char *AddressFromMain);

void SetPersonSex(char *SexFromMain);

void ShowPersonSex();

void ShowPersonAddress();

private:

char Address[25];

char Sex[2];

};

可以看到,在上面分别声明了四个成员函数和两个数据成员。四个成员函数的作用是对私有数据成员进行访问(包括输入和输出)。所以当建立了一个person

类之后就可以通过它的对象来访问该类的数据成员。

下面分别说明每一个成员函数的具体定义:

(1)设置(输入)人地址的成员函数:

void person::SetPersonAddress(char *AddressFromMain)

{

strcpy(Address,AddressFromMain);

}

通过strcpy把字符指针的内容送入person类中的数据成员Address。

(2)设置(输入)人性别的成员函数:

void person::SetPersonSex(char *SexFromMain)

{

strcpy(Sex,SexFromMain);

}

通过strcpy把字符指针SexFromMain的内容作为地址的存储单元中的内容送入person类中Sex数据成员。

(3)输出地址成员函数:

void person::ShowPersonAddress()

{

cout<

}

输出person类中的Address数据成员的内容;

(4)输出性别的成员函数:

void person::ShowPersonSex()

{

cout<

}

输出person类中的Sex数据成员的内容;

②接下来就是person基类的派生类student类的内部设计如下:

class student: public person

{

public:

void SetStudentInformation(char*NameFromMain,char *StudentAddressFromMain,char *StudentSexFromMain,char *StudentNumberFromMain, int *score);

void ShowStudentInformation();

friend void FindStudentNumber(student *data);

friend void FindStudentName(student *data);

private:

int

MathResult,EnglishResult,CResult,CompilationLanguageResult,DigitalLogicResu lt,MarksismResult;

char StudentNumber[25];

char Name[25];

float Average;

int total;

};

当设计student派生类的时候,最主要的特点就是利用了“类”的一个特点继承。

所以说派生出来的student类也具有基类person的一些特点。在继承的方式上本人使用了共有继承方式(public),下面来给大家介绍student类的内部构造:

①成员函数共有设置(输入)学生信息、输出学生信息等两个。还有一个非成员函数的

一个函数,它为该student类的友元函数,其功能是实现查找。

除此之外还有从基类person类继承下来的一些成员函数;

②数据成员分别为整形变量的学生成绩(包括数学成绩、英语成绩、C++成绩、汇编

语言成绩、数字逻辑成绩、马克思哲学成绩等),字符数组的学生学号和学生姓名

以及整型变量的学生的总分和单精度变量的平均分;

下面介绍student派生类中的各个成员函数的定义部分:

设置(输入)学生信息的成员函数:

Void

student::SetStudentInformation(char*NameFromMain,char*StudentAddressFromMain, char* StudentSexFromMain,char *StudentNumberFromMain, int *score)

{

strcpy(Name,NameFromMain);

SetPersonAddress(StudentAddressFromMain);

SetPersonSex(StudentSexFromMain);

strcpy(StudentNumber ,StudentNumberFromMain);

for(int i=0; i<6; i++)

{

switch(i)

{

case 0:

MathResult=score[0];

case 1:

EnglishResult=score[1];

case 2:

CResult=score[2];

case 3:

CompilationLanguageResult=score[3];

case 4:

DigitalLogicResult=score[4];

case 5:

MarksismResult=score[5];

}

}

total=MathResult+EnglishResult+CResult+CompilationLanguageResult+Digita lLogicResult+MarksismResult;

Average=total/6.0;

}

可以看到在设计student类的输入成员函数时其内部同时调用了从基类继承下来的一些成员函数,这就是继承的特点。下面将会详细地介绍该成员函数的功能:首先是student类的两个字符数组变量学生姓名和学生学号的赋值通过strcpy来直接实现,也就是可通过该类的成员函数来给数据成员赋值。还有两个数据成员是不能够被继承下来的基类的两个字符数组学生性别和家庭地址,它们是通过student派生类的成员函数中调用从基类person中继承下来的成员函数,从而改变对不能被继承下来的基类的数据成员赋值。接着就是对student类中自己的数据成员学生成绩的赋值,它们是通过一个简单的switch case语句来实现的。

输出学生信息的成员函数:

void student::ShowStudentInformation()

{

cout<

cout<<"学生的基本信息如下: "<

cout<<"学生的姓名: "<

cout<<"学生的学号为: "<

cout<<"学生的家庭地址为: ";

ShowPersonAddress();

cout<

cout<<"学生的性别为: ";

ShowPersonSex();

cout<

cout<<"学生的考试课程成绩如下: "<

cout<<"学生的离散数学课程成绩为: "<

cout<<"学生的英语课程成绩为: "<

cout<<"学生的C++课程成绩为: "<

cout<<"学生的汇编语言课程成绩为: "<

cout<<"学生的数字逻辑课程成绩为: "<

cout<<"学生的马克思主义哲学课程成绩为: "<

cout<<"学生的总分为:"<

cout<<"学生的平均分为:"<

}

输出学生信息的成员函数的定义中不难发现输出时不仅会输出student派生类自己的数据成员的值还会同时输出不能被继承下来的基类person中的数据成员的值。这显然只能通过继承下来的成员函数来实现(如ShowPersonAddress()和ShowPersonSex())。

下面来介绍三个非成员函数,其中两个为student类的友元函数。它就是实现查找功能的(分别用学生学号和学生姓名来进行查找),另一个是一个单独的普通函数。其功能是当程序运行时保持一个用户界面的功能。

Student类共有两个友元函数,分别是friend void FindStudentNumber(student

*data)和friend void FindStudentName(student *data),它们两个都有查找功能,只是一个用学生的学号另一个用学生的姓名进行查找。

下面详细介绍student类的两个友元函数中的用学号查找的函数是如何的定义:void FindStudentNumber(student *data)

{

char findnum[25];

cout<<"请输入学号:";

cin>>findnum;

int i=0;

for(i;i

{

if(strcmp(data[i].StudentNumber,findnum)==0)

{

cout<<"在第"<

data[i].ShowStudentInformation();

}

if((strcmp(data[i].StudentNumber,findnum)<0)||(strcmp(data[i].StudentNumber ,findnum)>0))

cout<<"在编号"<

}

}

下面详细介绍student类的两个友元函数中的用姓名查找的函数是如何的定义:void FindStudentName(student *data)

{

char findname[25];

cout<<"请输入姓名:";

cin>>findname;

int i=0;

for(i;i

{

if(strcmp(data[i].Name,findname)==0)

{

cout<<"在第"<

data[i].ShowStudentInformation();

}

if((strcmp(data[i].Name,findname)<0)||(strcmp(data[i].Name,findname)>0)) cout<<"在编号"<

}

}

可以看出student类的两个友元函数即查找(分别用学号和姓名)函数的定义都很相似,主要是算法是一致。因为在student类中数据成员学生姓名和学生学号都是用字符数组来定

义的,所以上面的两个分别用学号和姓名来查找的函数的算法是基本一致的,只是一个是用

student类的一个对象中里面的name(姓名)去查找,另一个是用student类的一个对象中

里面的StudentNumber(学生姓名)去查找。在整个查找函数先是在函数的参数表中声明

student类的对象指针,在主函数main中当调用查找函数时把main函数中定义的student

类的数组的首地址传送给查找函数。在查找函数中先定义一个字符数组,再提示用户输入要

查找的学生的姓名或学号,当姓名或学号在相应的学生编号里的相应的name(姓名)和

StudentNumber(学生学号)相等时查找便成功并提示用户该学号或姓名为基本信息的学生

信息输出在屏幕上,当不相等时查找不成功并提示用户没有找到学生的记录。

下面介绍非成员函数即普通函数(程序运行时保持一个用户界面功能的函数):

void paint()

{

int i;

cout<<" 学生信息管理系统"<

for (i = 0; i<80; i++)

putchar('%');

cout<

cout<<"(1) 输入学生的信息 (3)用学号查找学生基本信息 "<

cout<

cout<<"(2) 输出学生信息 (4)用姓名查找学生基本信息 "<

cout<

cout<<"(0) 退出程序 "<

cout<<" 备注:如果您还没有输入任何信息,请先输入

信息再输出!"<

cout<

for (i = 0; i<80; i++)

putchar('%');

cout<

}

上面的普通函数只是一个简单的函数,其功能只是在屏幕上保持如下一个画面:

学生信息管理系统

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

(1) 输入学生的信息 (3)用学号查找学生基本信息

(2) 输出学生信息 (4)用姓名查找学生基本信息

(0) 退出程序

备注:如果您还没有输入任何信息,请先输入信息再输出!

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

接着给大家介绍主函数main的定义部分:

void main()

{

char StuSex[2],StuName[25] ,StuAddress[25],StuNumber[25];

int StuScore[6],ctrl;

int i=0,j;

student stu[StuNum];

paint();

cout<<"请选择一个序号 "<

cin>>ctrl;

while (ctrl != 0)

{

switch(ctrl)

{

case 1:

for(i; i

{

system("cls");

cout<<"请输入第"<

cout<<"请输入学生的姓名:";

cin>>StuName;

cout<

cout<<"请输入学生的性别: ";

cin>>StuSex;

cout<

cout<<"请输入学生的学号: ";

cin>>StuNumber;

cout<

cout<<"请输入学生的家庭地址: ";

cin>>StuAddress;

cout<

cout<<"请按顺序输入学生的考试成绩"<

cout<

cout<<"离散数学课程成绩: ";

cin>>StuScore[0];

cout<

cout<<"英语课程成绩: ";

cin>>StuScore[1];

cout<

cout<<"C++课程成绩: ";

cin>>StuScore[2];

cout<

cout<<"汇编语言课程成绩: ";

cin>>StuScore[3];

cout<

cout<<"数字逻辑课程成绩: ";

cin>>StuScore[4];

cout<

cout<<"马克思主义哲学课程成绩: ";

cin>>StuScore[5];

cout<

stu[i].SetStudentInformation(StuName,StuAddress,StuSex,StuNumber,StuScore);

}

break;

case 2:

cout<

system("cls");

for(j=0; j

stu[j].ShowStudentInformation();

system("pause");

break;

case 3:

cout<

system("cls");

FindStudentNumber(stu);

system("pause");

break;

case 4:

cout<

system("cls");

FindStudentName(stu);

system("pause");

break;

}

if (ctrl != '\n')

system("cls");

paint();

cout<<"请选择一个序号"<

cin>>ctrl;

}

}

main主函数的实现比较长,主要是因为在main函数中不仅仅定义了普通变量(基

本变量)用来暂时存放从键盘输入的学生基本信息,还定义了student类的对象数组,且使

用了while循环和switch case语句来不停地进行选择,case的每一个分句分别实现不同

的功能,case 1主要实现输入,用for循环来把student对象数组的每一个对象本别进行

赋值;case 2主要实现输出功能,输出时用for循环调用每一个student数组对象的ShowStudentInformation()函数(输出学生信息的成员函数);case 3和case 4主要就是

实现查找功能,只是因为查找函数不是student类的成员函数,所以可以直接调用函数,在

实参表里写了student对象数组的首地址,把student对象数组的首地址传递给查找函数;

程序源代码:

#include

#include

using namespace std;

const int StuNum=1;

class person

{

public:

void SetPersonAddress(char *AddressFromMain);

void SetPersonSex(char *SexFromMain);

void ShowPersonSex();

void ShowPersonAddress();

private:

char Address[25];

char Sex[2];

};

void person::SetPersonAddress(char *AddressFromMain)

{

strcpy(Address,AddressFromMain);

}

void person::SetPersonSex(char *SexFromMain)

{

strcpy(Sex,SexFromMain);

}

void person::ShowPersonAddress()

{

cout<

}

void person::ShowPersonSex()

{

cout<

}

class student: public person

{

public:

void SetStudentInformation(char *NameFromMain,char *StudentAddressFromMain,char *StudentSexFromMain,char *StudentNumberFromMain, int *score);

void ShowStudentInformation();

friend void FindStudentNumber(student *data);

friend void FindStudentName(student *data); private:

int

MathResult,EnglishResult,CResult,CompilationLanguageResult,DigitalLogicResult,M arksismResult;

char StudentNumber[25];

char Name[25];

float Average;

int total;

};

void student::SetStudentInformation(char *NameFromMain,char *StudentAddressFromMain,char* StudentSexFromMain,char *StudentNumberFromMain, int *score)

{

strcpy(Name,NameFromMain);

SetPersonAddress(StudentAddressFromMain);

SetPersonSex(StudentSexFromMain);

strcpy(StudentNumber ,StudentNumberFromMain);

for(int i=0; i<6; i++)

{

switch(i)

{

case 0:

MathResult=score[0];

case 1:

EnglishResult=score[1];

case 2:

CResult=score[2];

case 3:

CompilationLanguageResult=score[3];

case 4:

DigitalLogicResult=score[4];

case 5:

MarksismResult=score[5];

}

}

total=MathResult+EnglishResult+CResult+Compilat ionLanguageResult+DigitalLogicResult+MarksismResult;

Average=total/6.0;

}

void student::ShowStudentInformation()

{

cout<

cout<<"学生的基本信息如下: "<

cout<<"学生的姓名: "<

cout<<"学生的学号为: "<

cout<<"学生的家庭地址为: ";

ShowPersonAddress();

cout<

cout<<"学生的性别为: ";

ShowPersonSex();

cout<

cout<<"学生的考试课程成绩如下: "<

cout<<"学生的离散数学课程成绩为: "<

cout<<"学生的英语课程成绩为: "<

cout<<"学生的C++课程成绩为: "<

cout<<"学生的汇编语言课程成绩为: "<

cout<<"学生的数字逻辑课程成绩为:

"<

cout<<"学生的马克思主义哲学课程成绩为: "<

cout<<"学生的总分为:"<

cout<<"学生的平均分为:"<

}

void FindStudentNumber(student *data)

{

char findnum[25];

cout<<"请输入学号:";

cin>>findnum;

int i=0;

for(i;i

{

if(strcmp(data[i].StudentNumber,findnum)==0)

{

cout<<"在第"<

data[i].ShowStudentInformation();

}

if((strcmp(data[i].StudentNumber,findnum)<0)||( strcmp(data[i].StudentNumber,findnum)>0))

cout<<"在编号"<

}

}

void FindStudentName(student *data)

{

char findname[25];

cout<<"请输入姓名:";

cin>>findname;

int i=0;

for(i;i

{

if(strcmp(data[i].Name,findname)==0)

{

cout<<"在第"<

"<

data[i].ShowStudentInformation();

}

if((strcmp(data[i].Name,findname)<0)||(strcmp(d

ata[i].Name,findname)>0))

cout<<"在编号"<

录!!!"<

}

}

void paint()

{

int i;

cout<<" 学生信息管理系统"<

for (i = 0; i<80; i++)

putchar('%');

cout<

cout<<"(1) 输入学生的信息 (3)用学号查找学生基本信息 "<

cout<<"(2) 输出学生信息 (4)用姓名查找学生基本信息 "<

cout<

cout<<"(0) 退出程序 "<

cout<<" 备注:如果您还没有输入任何信息,请先输入信息

再输出!"<

cout<

for (i = 0; i<80; i++)

putchar('%');

cout<

}

void main()

{

char

StuSex[2],StuName[25] ,StuAddress[25],StuNumber[25];

int StuScore[6],ctrl;

int i=0,j;

student stu[StuNum];

paint();

cout<<"请选择一个序号 "<

cin>>ctrl;

while (ctrl != 0)

{

switch(ctrl)

{

case 1:

for(i; i

{

system("cls");

cout<<"请输入第"<

cout<<"请输入学生的姓名:";

cin>>StuName;

cout<

cout<<"请输入学生的性别: ";

cin>>StuSex;

cout<

cout<<"请输入学生的学号: ";

cin>>StuNumber;

cout<

cout<<"请输入学生的家庭地址: ";

cin>>StuAddress;

cout<

cout<<"请按顺序输入学生的考试成绩"<

cout<

cout<<"离散数学课程成绩: ";

cin>>StuScore[0];

cout<

cout<<"英语课程成绩: ";

cin>>StuScore[1];

cout<

cout<<"C++课程成绩: ";

cin>>StuScore[2];

cout<

cout<<"汇编语言课程成绩: ";

cin>>StuScore[3];

cout<

cout<<"数字逻辑课程成绩: ";

cin>>StuScore[4];

cout<

cout<<"马克思主义哲学课程成绩: ";

cin>>StuScore[5];

cout<

stu[i].SetStudentInformation(StuName,StuAddress ,StuSex,StuNumber,StuScore);

}

break;

case 2:

cout<

system("cls");

for(j=0; j

stu[j].ShowStudentInformation();

system("pause");

break;

case 3:

cout<

system("cls");

FindStudentNumber(stu);

system("pause");

break;

case 4:

cout<

system("cls");

FindStudentName(stu);

system("pause");

break;

}

if (ctrl != '\n')

system("cls");

paint();

cout<<"请选择一个序号"<

cin>>ctrl;

}

}

《C程序设计》作业内容

实验一C语言的运行环境的使用 一、目的与要求 1. 了解Windows系统下C语言的运行环境,熟悉C程序调试、运行的基本操作方法。 2. 熟练掌握编辑、编译、连接和运行C程序的方法。 3. 通过运行简单的C程序,初步了解C源程序的特点。 4. 初步理解C语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运 行结果的基本输出方法。 二、实验例题 在C语言运行环境下,按以下例题要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。 【例1】编程实现在屏幕上显示如下三行文字 Hello, world ! Wolcome to the C language world! Everyone has been waiting for. (1)输入如下程序: #include int main() { printf("Hello,World!\n"); printf("Wolcome to the C language world!\n"); printf("Everyone has been waiting for.\n"); return 0; } (2)将输入的程序以文件名example.c存盘。 (3)编译:通过“组建”(Build) 下拉菜单中的“编译”(compile)命令,编译example.c,若出现编译错误,则修改程序,重新编译,直至编译成功,系统自动生成目标文件example.obj。 (4)连接:通过“组建”(Build)下拉菜单中的“组建”(Build)命令,生成以.exe为扩展名的可执行文件example.exe。 (5)运行:通过“组建”菜单下的“执行”(Excute)命令运行程序并观察运行结果。 【例2】编写程序,将两个整数相加,并输出结果。 #include int main() { int a,b,sum; a=123;b=456; sum=a+b; printf(“sum is %d\n”,sum); return 0;}

C语言程序设计大作业报告模板

《C语言程序设计》大作业报告 1.目的 掌握所学C语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学C语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 2.作业内容

熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用等。 3.要求: 1.要求每个同学都要认真对待,积极参与。 2.独立完成,不能抄袭。 3.课程设计结束时每位同学必须完成《大作业报告册》,其中包含设计源 代码和设计思路。 4.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设 计中完全未参与的将作不及格处理。 5.统一格式,A4打印,按时提交。 4.题目:设计要求:编写一个程序,求3x4数组的转置矩阵。要求在main函数里面读数,在change函数里面把矩阵转置。 5.程序设计 设计思路: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循环的嵌套输出。 代码

C语言程序设计作业参考答案

《C语言程序设计》作业参考答案 作业一 C语言概述 一、选择题: 1-5 ACDCB 二、编程题: main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法 一、填空题: 1.确定性有效性有零个或多个输入有一个或多个输出 2.顺序结构选择结构循环结构 3.函数 作业三数据类型、运算符与表达式 一、选择题: 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构 一、选择题: 1-5 BCDDD 6-10 BDADD 二、填空题: 1.【31.415920,3.14159e+01】 2.【c=k】 3.【a=1,b=空格,c=2】 4.【a=12,b=345】 5.【c=A】 作业五选择结构 一、选择题:1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题: 1.【-1】 2.【3】 3.【4】 4.【11】 5.【97或'a'】 作业六循环结构 一、选择题: 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB

作业七数组 一、选择题: 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题: 1. LBLMNP 2. SW* 3. mo 4. a=2,b=1 作业八函数 一、选择题: 1-5 AAACA 二、填空题: 1.【编程中的main( )函数】 2.【函数说明部分】和【函数体】 3.【–125= –5*5*5】 4.【void add (float a, float b)】【float add (float a, float b)】 5.【i=7; j=6; x=7 i=2; j=7; x=5】 6.【111】 三、编程题: 1.参考代码 main() { int score,temp,log; char grade; log=1; while (log) { printf(“enter score:”); scanf(“%d”,&score); if ((score>100)||(score<0)) printf(“\n error,try again! \n”); else log=0; } if (score==100)temp=9; else temp=(score-score%10)/10; switch(temp) { case 0:case 1:case2: case 3:case 4:case 5:grade=’E’;break; case 6:grade=’D’;break; case 7:grade=’C’;break; case 8:grade=’B’;break; case 9:grade=’A’; } printf(“score=%d,grade=%c\n”,score,grade); } 2.解:设计以高度n为参数的函数trangle(int n),打印等边三角形。参考程序如下: #include

C语言大作业报告

目录 一、设计题目 二、目标和需求分析 三、开发工具 四、应用平台 五、程序模块 1、游戏盒子 2、2048 3、扫雷 4、贪吃蛇 六、开发日志 七、程序调试及运行 八、程序开发总结 总结:虽然做出来的东西真的没什么技术水平,但是我们尽量把这个东西的每个方方面面做完整。

目标和需求分析一个小的游戏盒子,可以用来启动其它游戏,当然,其它游戏也是我们大作业的编写内容,平时可以玩玩用来打发时间 用到的工具VS2005 Easyx图形库 Pthread线程库 Hge 分工 秦贤康 组织大家,编写主程序,及构思计划,技术指导 王尧 所有的文件处理,数据算法方面优化 王懿晨 合作2048模块 杨梓晗 图片资源加工,音乐裁剪,按钮制作 程维驰 合作扫雷模块 应用平台:WINDOWS X64

程序功能模块: 一、 安装包:(写入开始菜单快捷方式,桌面快捷方式,开机启动等)//pascal 脚本编写 #define MyAppName "C 大作业" #define MyAppVersion "2.0" #define MyAppPublisher "五人小组" #define MyAppExeName "1.exe" [Setup] AppId={{49DB1DB4-FAE9-4ACB-A4B9-E5C420C5F10B} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} DefaultDirName={pf}\{#MyAppName} DisableDirPage=yes DefaultGroupName={#MyAppName} DisableProgramGroupPage=yes (剩余代码未全部给出) 安装包 内嵌:C 语言报告 游戏盒子 开机启动,桌面快捷方式等 进入动画,左侧动画 启动模块 通知,和显示游戏信息 2048 扫雷 贪吃蛇 主界面信息显示 通知栏信息显示 意见箱

C程序设计作业样本

第一章作业 答案:一,59,14.4,28.e 二1小题,59 2,15 一、将数89、20.25、40.875用十六进制表达 二、填空 1.在C语言中,数值常量0x3b十进制值是。 2.字母f ASCII码为十进制数___________。 第三章作业 一、选取题: 1、下列变量名中, B 是非法。 A) Tom B) 3n C) little_boy D) c10 2、若有如下类型阐明 char a; int b; float c; double d;则表达式a*b+d-c成果类型是(A ) A)float B)char C)int D)double 3、若x为整型,则逗号表达式(x=4*5,x*5),x+25成果及x值分别是(C )对的答案是100,45 A)45 20 B)125 20 C)125 45 D)100 100 4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)值是 C 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2值为 C 。 A) 12 B) 11 C)不拟定值D) 10

6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标记符字符有( C ) A下划线 B % C数字 D字母 8、下面四个选项中,均是合法整型常量是(D ) A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5 9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A. int B. float C. double D. char 10.若a是int型变量,则表达式(a=4*5,a*2),a+4值为( C ) A. 20 B.22 C. 24 D. 44 第四章作业 一、选取题 1、若x为int型变量,则执行如下语句后x= C 。 x=5; x-=x-=x+x; A. -10 B. -5 C.0 D.10 2、在printf()函数格式阐明符中,字符型数输出格式阐明符是 D 。

C语言大作业设计-

CHANGZHOU INSTITUTE OF TECHNOLOGY C语言大作业 设计说明书 题目: 通讯录管理系统 二级学院(直属学部):计算机信息工程学院 专业: 软件工程(中英合作)班级: 12软件二: 学号: 2013年7月 目录

1 概述 (1) 1.2设计分析 (1) 1.3开发工具 (1) 1.4应用平台 (1) 2 系统设计 (2) 2.1功能模块设计 (2) 2.2数据结构设计 (4) 2.3函数功能设计 (4) 3 实现与测试 (7) 3.1关键技术实现 (7) 3.2测试运行结果 (8) 4 开发日志 (14) 5 设计总结 (14) 6 参考文献 (14)

1 概述 1.1 小组构成及分工 1.2 设计分析 本程序设计共包含六个函数模块,分别是添加记录、显示记录、删除记录、查询记录、修改记录、保存记录等信息模块,完成通讯录的功能。在主函数中可以以1、2、3、4、 5、6数字键分别可以执行某个功能模块。 1.3 开发工具 Visual C++ 6.0 和window32 1.4 应用平台 Windows XP 32位 2 系统设计 2.1功能模块设计

1.系统模块图 本系统包括6个模块,分别是添加模块、显示模块、删除模块、查询模块、修改模块、保存模块等,各模块的功能如图2.1所示。各个模块的功能描述如下: (1)添加模块:可以添加通讯录记录,依次输入、年龄、、地址、电子后,并会提示是否继续添加。 (2)显示模块:可以以表格形式输出所有通讯录里的记录。 (3)删除模块:输入欲删除的那个人的名字后,会自动删除他(她)的记录容。 (4)查询模块:可以选择用、、地址三种方式查询。 (5)修改模块:输入欲修改的那个人的名字后,再依次输入、年龄、、地址、电子完成修改。 (6)保存模块:输入文件名(带后缀名)后,即可将通讯录信息保 存到文件。 图2.1 系统模块图 2.任务执行流程图

C语言课程设计大作业62994

郑州大学 课程报告 课程名称:C语言程序设计 专业班级:(15)班 学生姓名:谢* 学号: 20127611*** 任课教师:赵** 学期: 2012-2013-2 课程报告任务书

开发一个通讯录管理系统,基本信息包括:编号、姓名、性别、出生年月、固定电话、手机号、电子邮件等基本信息(也可以根据自己情况进行扩充)。使之能提供以下基本功能: (1)通讯录等信息录入功能(注:数据等要求用文件保存)--输入 (2)通讯录信息的浏览功能--输出 (3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): ①按电话号码进行查询②按姓名查询等③按照年龄排序④按姓名排序等(4)通讯录条目的删除与修改等 扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理(2)报表打印功能(3)模糊查询,如姓张的人员等;或者给定电子邮件的部分进行查询等(4)给定指定年龄范围之内的查询等等。 总之,可以根据自己需求进行分析功能,成绩评定按照难度进行区分。 成绩评定教师:

一. 需求分析 1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 2,数据包括:人名、工作单位、电话号码和E-MAIL地址。 3,可对记录中的姓名和电话号码进行修改。 4,可增加和删除记录。 5,可显示所有的保存记录。 6,可按人名或电话号码进行查询。 分析 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 (1).程序的模块组成及各个函数的功能: 程序的模块组成: 主函数:main(); 输出数据函数:printf(); 读取数据函数:scanf(); 显示记录函数:Display(); 删除记录函数:shanchu(); 查找记录函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函数:getchar(); 修改数据函数:xiugai(); 保存数据函数:baocun(); 排序数据函数:paixu(); 各函数的主要功能:

c程序设计作业

1、分析下面程序: # include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n"c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (1)运行时会输出什么信息?为什么? (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出什么信息?为什么? (3)如果将程序第3行改为 int c1,c2; 运行时会输出什么信息?为什么? 答:(1)程序运行不了,因为程序存在错误。正确的程序为:#include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出: (3)如果将程序第3行改为 int c1,c2; 运行时会输出:

因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出 c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=98 2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。 问在键盘上如何输入? #include int main() { int a,b; float x,y; char c1,c2; scanf("a=%db=%d",&a,&b); scanf("%f%e",&a,&y); scanf("%c%c",&c1,&c2); return 0; } 答:输入如图: 输出如图: (此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容, 供参考,感谢您的配合和支持)

C语言大作业报告范文

学院XX学院

目录 1 摘要 (3) 1.1设计题目 (3) 1.2设计容 (3) 1.3开发工具 (3) 1.4应用平台 (3) 2 详细设计 (3) 2.1程序结构 (3) 2.2主要功能 (3) 2.3函数实现 (3) 2.4开发日志 (4) 3 程序调试及运行 (4) 3.1程序运行结果 (4) 3.2程序使用说明 (4) 3.3程序开发总结 (4) 4 附件(源程序) (4)

1 摘要 1.1 设计题目 (A)求最大数;(B)高次方数的尾数 1.2 设计容 (A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数1.3 开发工具 Visual C++ 6.0和Win32。 1.4 应用平台 Windows XP 32位 2 详细设计 2.1 程序结构 (A)求最大数

定义变量a、b、c,a从100至999递增,b为555555,用b除以a,判断是否可以整除,若可以,则把a的值赋给c,a自加1;若不可,a自加1。重复以上步骤,直到a>999,输出c。循环语句采用for 循环。 (B)高次方数的尾数

定义变量i、j,i从1至13递增,j初值为1。用j乘以13,用得到的乘积除以1000并取其余数,赋给j,i自加1。重复以上步骤,直到i>13,输出j。循环语句采用for循环。

2.2 主要功能 程序功能:(A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数。 原理和方法: (A)题目的原理和方法:因为要求的是三位数,就用555555从小到大依次除以100到999的所有数,并判断能否整除,最后一个可以整除555555的数即为所求。循环语句采用for循环。 (B)题目的原理和方法:乘积的最后三位数只与乘数和被乘数的后三位数有关,因此用1乘以13,再除以1000并取余数,用余数乘以13,再除以1000并取余数,依次进行下去,累乘13个13后除以1000取得的余数即为所求。循环语句采用for循环。 2.3 函数实现 (A)求最大数 int a,b=555555,c; /*定义变量,赋初值*/ for(a=100;a<=999;a++) /*FOR循环*/ { if(b%a==0) /*利用IF语句判断b是否可以被a整除*/ c=a; /*将555555的约数赋给c*/ } printf("%d\n",c); /*输出c*/ (B)高次方数的尾数 int i,j=1; /*定义变量,赋初值*/ for(i=1;i<=13;i++) /*FOR循环*/ { j=j*13%1000; /*将j乘以13的乘积的后三位数赋给j*/ } printf("%d\n",j); /*输出j*/ 2.4 开发日志 (A)选定这个题目后,我先分析此题用何种算法完成,确定了使用FOR循环并限定除数围,然后画出程序框图,再一步步编写源代码。调试过程很顺利,只有一个地方忘加了“;”。运行程序后,结果非常满意。 (B)这个题目不难,但是也不简便,我想到只取三位数的方法,并使用FOR循环,然后画出程序框图,再一步步编写源代码。调试过程发现对其中一个变量的初值是1还是13有待解决,分析程序后发现应该用1,然后进一步调试,运行,直至结果正确。

C语言程序设计-作业与答案

《C 语言程序设计》课程作业 适用层次:专升本 培养类型:理工科专业 专业班级: 姓名: 学号: 作业要求:题目可打印,答案要求手写,考试时交作业。 第1次: 1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。 2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。 3.输入一个整数,求它的各位数字之和。例如,123的各位数字之和为6,-63的各位数字之和为9。 4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6 。 +-+-=71 513114π …… 5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? 6.编写程序,键盘输入正整数n (0= 2 2. 编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。利用该函数找出100-200之间的所有素数。素数是只能被1和自身整除的正整数,2是最小的素数。 3.写一函数int strlength(char *s)求一个字符串的长度。主函数中输入一个字符串,调用函数strlength 求其长度并输出。

西北工业大学C语言大作业实验报告

学院*****************

目录 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:************************ "); /*电子邮件*/

C语言大作业学生信息管理系统

《程序设计综合课程设计》报告 学生姓名: ______ ______ ______ ______________________ 学生班级: ______________________ ____________ ____________ 学生学号: ____________ 指导教师: ______ 2014年6 月 22 日

目录 前言 (2) 第1章Visual C++6.0简介及其优点 (3) 第2章课程设计的目的和要求 (4) (4) 2.2课程设计的要求 (5) 第3章课程设计任务内容 (6) 3.1 需求分析 (6) 3.2可行性分析 (6) 第4章软件使用说明 (7) 第5章总结 .................................................. 错误!未指定书签。附录源程序 学生信息管理系统 前言 学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项 数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等 院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。 其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人 工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院 校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的 管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力 和物力。随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机应用的普及已进入 人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以 计算机为物质基础的信息管理方法所取代。 作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟 的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。 这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要 条件,更是各个高等院校与世界接轨的重要条件。

C程序设计作业

第一章作业 答案:一,59,14、4,28、e 二1小题,59 2,15 一、将数89、20、25、40、875用十六进制表示 二、填空 1、在C语言中,数值常量0x3b得十进制值就是。 2、字母f得ASCII码为十进制数___________。 第三章作业 一、选择题: 1、下列变量名中, B 就是非法得。 A) Tom B) 3n C) little_boy D) c10 2、若有以下类型说明 char a; int b; float c; double d;则表达式a*b+d-c得结果类型就是( A ) A)float B)char C)int D)double 3、若x为整型,则逗号表达式(x=4*5,x*5),x+25得结果及x得值分别就是(C )正确答案就是100,45 A)45 20 B)125 20 C)125 45 D)100 100 4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)得值就是 C 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2得值为 C 。 A) 12 B) 11 C)不确定得值D) 10 6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标识符得字符有( C ) A下划线 B % C数字 D字母 8、下面四个选项中,均就是合法整型常量得就是(D ) A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5 9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A、int B、float C、double D、char 10、若a就是int型变量,则表达式(a=4*5,a*2),a+4得值为( C ) A、20 B、22 C、24 D、 44 第四章作业 一、选择题

C语言程序设计课程作业

C语言程序设计课程作业_A 一、单选题 1. (4分)设有以下定义int k=7, x=12;,则能使值为3的表达式是() ? A. x%=(k%=5) ? B. x%=(k-k%5) ? C. x%=k ? D. (x%=k)-(k%=5) 答案D 解析C语言程序设计/数据类型与运算/整型算术表达式 2. (4分)以下程序的输出结果是? #include main() { int x=020,y=0x20,z=20; printf('%d,%d,%d ', x,y,z); } ? A. 20,20,20 ? B. 32,16,20 ? C. 16,32,20 ? D. 20,32,20 答案C 解析C语言程序设计/数据类型及运算 3. (4分)C语言中while和do while循环的主要区别是( ) ? A. do-while的循环至少无条件执行一次

? B. while循环控制条件比do-while的循环控制条件严格 ? C. do-while允许从外部转入到循环体内 ? D. do-while的循环体不能是复合语句 答案A 解析C语言程序设计/循环程序设计/while语句与do-while语句 4. (4分)执行语句scanf('%d,%d',&m,&n);使m和n的值分别为1和2,正确输入是( ) ? A. 1 ? B. 1 2 ? C. 1,2 ? D. 12,2 答案C 解析C语言程序设计/顺序程序设计/整型数据的格式输入 5. (4分)sizeof(float)是( ) ? A. 一个双精度型表达式 ? B. 一个整型表达式 ? C. 一种函数调用 ? D. 一个不合法的表达式 答案B 解析C语言程序设计/数据类型与运算/实型变量存储 6.

C程序设计与训练课程大作业2016

“C++程序设计与训练”课程大作业(2016) 作业题目: 简易铁路票务系统 作业描述: 同学们在平时出门旅行的过程中经常会选择使用铁路这一交通运输方式,对铁路票务系统应该也有所了解。本次作业希望同学们能够自己设计并实现一套简易的铁路票务系统。 主要功能: 旅客可以注册账号、登录系统并管理个人信息,在登录系统之后可以根据自己的需求订票。这里给出一个标准的订票流程用作参考: (可以不用完全按照这个流程来实现,只需要逻辑清晰、功能完善、用户界面友好即可) 1.旅客根据起始车站、到达车站、出行时间等条件查询符合的车次,车次信息 需要显示始达车站、始达时间、余票数量等等; 2.旅客根据查询结果选择自己满意的车次并进行订票; 3.系统确认旅客订票成功,并显示具体的票面信息; 4.旅客可以随时查看自己已经预订成功的车票相关信息。 要求: 1.列车发车前半小时关闭该趟车的订票功能 2.同一位旅客同一车次只能购买一张票 3.同一车次的每个座位只能卖给一位旅客,不能出现两人买到相同座位号车票 的现象 4.用数据库管理、维护车次、车票及旅客账号等信息

核心对象 1)车次: 座位布局: 火车通常有两种座位布局,坐铺车厢与卧铺车厢。为了简化实现,我们假定每一班列车仅有一节车厢,为坐铺车厢或者卧铺车厢中的一种。 坐铺列车一节车厢120个座位,座位号为1~120;卧铺列车一节车厢60个席位,座位号为1上/中/下~20上/中/下。 车次信息: 车次信息至少包括:车次编号、列车类别(特快(坐/卧),普快(坐/卧),高铁等)、始发车站、终点车站、发车时间、预计运行时间/预计到达时间、车票价格、余票数量 2)普通用户: 普通用户账户信息至少包括:账号(用户名)、姓名、性别、身份证号(或者其他有效证件及证件号码)、联系方式、附加信息(学生证等其他信息,可为空) 3)票务管理人员: 票务管理人员登录系统之后可以维护管理所有车次信息。 管理员登录需要的用户名、密码提前录入在数据库中。 扩展功能(选做): 1.车次信息增加途经车站信息(里程及到发时间),如有多个途经车站则根据里 程数分段计价。 2.添加“虚拟的”账户充值功能与支付功能,在用户确认订票之后需要扣除相 应的账户余额才能成功购票,否则提示用户充值;或者余额不足时可以通过在购票付款时选择“其他方式支付”来代替。 3.添加选座功能,旅客可以在图形界面上方便地看到当前车次每个座位票的售 卖情况,并可以选择自己想要的空闲座位。 4.普通用户增加其他旅客信息,可以帮助他人购票。 5.分开实现服务器端与客户端功能,客户端与服务器通过网络连接,经由服务 器端访问数据库。

C语言程序设计课后习题作业

第一章习题 1、对C语言来说,下列标示符中哪些是合法的,哪些是不合法的? Total, _debug, Large&Tall, Counter1, begin_ 答:合法的:_debug、Counter1、begin_。 不合法的:Total、Large&Tall。 2、改写1.4节中的流程图1.2,求1—100中能被6整除的所有整数的和。 3、改写1.4节中的程序,求1—100中能被6整除的所有整数的和,并在编程环境中验证该程序的运行结果。 答:程序为: #include int main(void)

{ int i,sum=0; for(i=1;i<=100;i++) if(i%6==0)sum=sum+i; printf("sum=%d\n",sum); return 0; } 4、对于给定的整数n(n>1),请设计一个流程图判别n是否为一个素数(只能被1和自己整除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构和循环结构。

第二章作业 1.编写程序,输入两个整数num和num2,计算并输出她们的和、差、积、商。 答:程序: #include void main() { int num1,num2,y1,y2,y3,y5; double y4; printf("请输入两个数:num1,num2\n"); scanf("%d%d",&num1,&num2); y1=num1+num2; y2=num1-num2; y3=num1*num2; y4=num1*1.0/num2; y5=num1%num2; printf("num1,num2和y1=%d\nnum1,num2差y2=%d\nnum1,num2积y3=%d\nnum1,num2商y4=%lf\nnum1,num2余y5=%d\n",y1,y2,y3,y4,y5); } 2.为了倡导居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时以内的,电价为0.53元/千瓦时;超出50千瓦时的用电量,电价上调0.05元/千瓦时。编写程序,输入用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)。 答:程序: #include void main() { double x,y; printf("请输入月用电量:x\n"); scanf("%lf",&x); if(x<=50){ y=0.53*x; printf("电费y=%lf\n",y); } else { y=0.58*x; printf("应支付电费y=%lf\n",y); } } 3.编写程序,输入实数x和正整数n,计算x n,,不允许调用pow()函数求幂。 答:程序:

C语言期末大作业

伊犁师范学院计算机科学系 实验训项目报告 一、小组成员及分工: 姓名:张雁 学号: 二、指导老师:王慧玲 三、说明程序编制要点,以及自己在项目制作中的难 点及解决办法: 编写的要点:编写N个函数分别用来求平均分;总分按降许序排列;按姓名查找学生的成绩;找出各科 最高分的学生姓名,学号等。编写主函数提供不 同的选择途径。 难点:函数之间的调用,姓名的比较和交换。 解决办法:通过参数的传递;用字符串处理函数。 四、说明项目中所涉及的知识点及难点: 知识点:基础知识,结构体,选择结构程序设计,循环结构程序设计,数组,字符数组,常用的字符串处理函数,函数的调用。 难点:函数的调用,循环程序设计。 五、附录源程序: 注:必须有一定的注释,说明函数功能以及主要语句所起的作用 #include "" #include "" #define m 5 void search(); /*声明按姓名查找学生的信息*/

void ave(); /*声明turn out average*/ void paixu(); /* 声明score pai mingci*/ void maxandmin(); /*声明maxandmin score student's number,name and every course score*/ struct student /*声明define a struct*/ { int num; /*student’s number */ char name[10]; int math,english,chinese; /*three course score*/ int no; /* student mingci*/ float sum; float ave; }stu[m]; main() { int i; int q=0,p; for(i=0;i

C程序设计作业

2009年春季学期《C程序设计》作业 作业提交格式要求:请同学们把答案集中单独写在一个.doc文档中,作为附件上传(不要把答案直接填写在题目的空中)。特规定格式如下: 一、选择题 1. C 2. A 3. B 4.C 5.A 二、填空题 1. 3.14 2.–5 三、程序填空题 1.(1)x,y (2)x 四、分析下列程序的输出结果。 1) a=7 2) 110,a 95,a …… 以上只是举例,不是正确的输出结果。请按上述规定书写和提交作业结果,不符合以上规定的作业将作为0分处理。 鼓励独立完成作业,严惩抄袭。 第一部分(一、三、四、五章) 一、选择题 1、若n 、a 、b 和c 都是int 型的变量,则执行表达式n=( a=1 ,b=12 ,c=24)后n 值为。 A. 12 B. 24 C. 1 D. 45 2、下列常量中,是十六进制表示的int型常量。 A. 78 B. 0x70 C. x56 D. 063 3、设ch 是char 型的变量,其值是…E?,则表达式ch= (ch>= ' A ' && ch<= ' Z ') ?(ch+32):ch 的值是。 A. ?e? B. ?A? C. ?F? D.?Z? 4、已知c2为字符型,则执行语句c2=?A?+?9?-…5?后,c2的值为。 A. …E? B. 此运算不合法 C.不确定的值 D. …D? 5、设a为整型变量,b为字符型变量,c为double型变量,则a*b+c为( )型 A. double B. float C. int D. char 6、在scanf()函数的格式说明符中,长整型数的输入格式符是。 A. %lf B. %ld C. %d D. %x 7、要使用putchar()函数必须在程序前加语句。 A. include "stdio.h" B. #include C. include

C 语言程序设计 大作业题目

哈尔滨工业大学(威海)2019 / 2020 学年 春 季学期

比赛结果,因而成为乒乓球比赛经常采用的方法。其不足之处在于相对来讲耗时较多,特别是在参赛人数多而比赛时间短的情况下不宜采用。乒乓球比赛一般多采用单循环和分级循环:1.1、单循环 参赛的人或队都要互相轮流比赛1次的方法。单循环比赛的轮数计算:当参赛人数或队数为单数时,轮数等于人(队)数;参赛人数为双数时,轮数等于人(队)数减1。单循环比赛的计算方法是:获胜次数多者名次列前,如有2个或2个以上的运动员获胜次数相同时,则依次由他们之间场数胜负比率、局数胜负比率、分数胜负比率的顺序来决定。 1.2、分组循环 这是将若干人(队)分成几个小组,在各小组内进行循环方法,其特点是要以节省时间,在参赛人数多且比赛时间短的情况下采用。分组循环一般用于团体赛,可将所有参赛队用蛇形方法分组,如12个队参赛可分成A、B两组: A组:1 4 5 89 12 B组:2 367 10 11 上列数字是各队的顺序号,它是按各队实力强弱排列的,序号小者实力强,反之实力弱。 2、淘汰制 淘汰制就是比赛中失败一次即退出比赛,获胜者继续比赛,直到决出冠亚军为止。这种竞赛方法的特点是节省时间,竞争性强,能使比赛越来越精彩,但也有偶然性。 2.1 单淘汰 所谓单淘汰是指将所有参赛选手编成一定的比赛顺序,由相近的两名选手进行比赛,胜者进

入下一轮,负者即遭淘汰。 2.2双淘汰 双败淘汰制与普通的淘汰制输掉一场即被淘汰不同,参赛者只有在输掉两场比赛后才丧失争夺冠军的可能。双败淘汰制的比赛一般分两个组进行,胜者组与负者组。在第一轮比赛后,获胜者编入胜者组,失败者编入负者组继续比赛。之后的每一轮,在负者组中的失败者将被淘汰;胜者组的情况也类似,只是失败者仅被淘汰出胜者组降入负者组,只有在负者组中再次失败(即总共有两次失败)后才会被淘汰出整个比赛。 每一轮败者组的比赛又分为两个阶段。第一个阶段,由当前败者组中的幸存者相互对阵,负者被淘汰,胜者进入第二个阶段;第二个阶段,由第一阶段中败者组的胜者对阵刚刚在本轮由胜者组中淘汰下来的选手。 以一个8名选手参加的双败淘汰制比赛为例: 第一轮比赛:四场比赛后,各自有4名选手依据结果编入胜者组或败者组 第二轮比赛:胜者组4名选手相互比赛,败者编入败者组,败者组选手在第一阶段先相互比赛,并淘汰掉2名选手,剩下的2名选手再进入第二阶段,与刚在胜者组淘汰到败者组的2名选手比赛,获胜的2名进入第三轮。 第三轮比赛(即败者组决赛):败者组剩下的这2名选手在第一阶段先淘汰掉1名(已累积二败绩),剩下1名进入第二阶段,对阵胜者组决赛中的失败者,败者组决赛中的胜者(到此仅败过1场)将与胜者组决赛中的胜者(到此从未败过),争夺最后的冠军。

相关文档