当前位置:文档之家› C++程序设计大作业(含源代码)[1]

C++程序设计大作业(含源代码)[1]

C++程序设计大作业(含源代码)[1]
C++程序设计大作业(含源代码)[1]

姓名:叶尔凯西

学院(系):计科系

班级:计科系07-1班

学号:08080605227

设计本程序的目的:

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

程序功能简介:

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

程序功能的详细介绍:

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

①在程序中共建立了两种类,分别是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语言程序大作业.doc

大连理工大学C程序设计(大作业)总结报告学生成绩录入处理系统 学生姓名:罗 专业班级: 学号: 联系电话: Email : 完成日期:2015年 5 月29日

一、设计任务 我的程序设计是一个学生成绩录入及处理的程序,该程序包括多种功能,能够满足大多数的学生成绩管理处理。主要能够实现的目的主要有: 第一.学生姓名学号既包括三门成绩等信息的录入,并保存到文件d://score.txt。 第二.对每个学生的成绩进行求平均分及按平均分排序的数字处理。 第三.对输入错误的学生信息加以修改重新排序保存。 第四.增加学生信息,重新排序,加以保存。 第五.按每个学生的平均分进行表格化和图形化处理。 第六.实现某位同学的信息查找,包括姓名,学号,每科成绩及平均分。 以上功能全都可以实现,但是注意录入信息的要求,下面会有注释。 二、程序设计与实现 1.结构框图 下图描述预期实现题目的设计方案或功能设计的组成结构。绘制成框图,如图所示是我设计的成绩信息管理程序设计的结构图示:

2.功能模块设计及其流程图 (1) 数据描述与存储 该学生信息统计系统设计一个全局结构体变量,将学生的姓名,学号,各科成绩及平均分保存在结构体,然后供设计各种程序调用,以完成修改,增加,排序和数据显示的功能。学生成绩数据以二进制存储在d://score.txt文件,可以利用程序随时进行增加和修改,同时它会自动排序。的描述题目所使用的核心数据,如;结构体类型定义及结构体成员含义说明。并说明所使用的数据存储方法,指定文件的路径和文件名,保存数据的格式和读数据的目的。 (2) 结构体定义及介绍 typedef struct rec /*定义一个结构体类型*/ { char name[20]; /*第一个元素为学生姓名,20个字节*/ short number; /*第一个元素为学生学号,2个字节(输入注意不要超出)*/ short score[M]; /*(M为全局3)依次定义三门科目分数:数,英,机*/ float average; /*定义浮点型平均数,保留2位小数,有函数计算赋值*/ }score; score stu[N]; /*(N为全局100)定义全局总数100个学生信息以录入*/ (3)对于该程序的一点说明 1.学号在0~32768之间,请录入前对学号做好数据处理。 2.该系统的成绩满分为一百分制,如有某科成绩不符合应提前处理。 3.录入退出后,同样的数据不需两次输入,可直接运行程序处理及查看。 4.保存退出后请勿删除文件,数据会丢失。 5.柱状图的分辨率在十位数。 (4) 主要函数功能基变量说明

《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:学生成绩统计管理 1、输入一个班级的学生的基本信息(包括学号,姓名,性别,5门课程成绩)。 2、按姓名或者学号查找、修改、删除和保存各个学生的信息。 3、计算每个学生各门功课总分和平均分,按学号或总分排序输出每个学生 的基本信息及总分、平均分和名次。 4、计算全班各门功课的平均分,显示每门课程中低于平均分的每一个学生 的学号,姓名,性别,科目,成绩。 5、显示每门科目中,成绩在90分以上的学生信息,以及每门科目中不及格 的学生信息。 6、用菜单进行管理 7、只有正确输入用户名密码才能使用此系统。 8、所有内容能够保存到文件中。下次进入系统是从文件中读取原有信息。 题目2:物业费管理系统 1、新住户信息的添加。(户主姓名、性别、身份证号、联系电话、楼号、 单元号、房号、平米数、每平米物业价格、应缴纳物业费,备注信息) 2、修改住户信息的功能。 3、删除住户信息的功能。 4、应缴物业费自动生成。每月1号,自动生成本月份的物业费。如果该住 户之前的物业费未交清,则本月物业费与之前拖欠费用进行累加,为该 用户应缴纳的物业费。 5、缴费功能。根据用户缴纳金额,修改“应缴纳物业费”。 6、统计功能。 1)能够按楼号分类统计所有未交清物业费的记录。 2)能够按拖欠款项多少,对所有用户信息进行从大到小排序。 7、用菜单进行管理 8、只有正确输入用户名密码才能使用此系统。 9、所有内容能够保存到文件中。下次进入系统是从文件中读取原有信息。 题目3:会员卡计费系统 设计一个会员卡计费管理系统。 1、新会员登记。(将会员个人信息及此会员的会员卡信息进行录入。) 2、会员信息修改。 3、会员续费。(会员出示会员卡后,管理人员根据卡号查找到该会员的信 息并显示。此时可以进行续费,续费后,提示成功,并显示更新后的信 息。) 4、会员消费结算。(会员出示会员卡后,管理人员根据卡号查找到该会员 的信息,结算本次费用。提示成功,并显示更新后的信息。)累计消费 满1000元,及自动升级为VIP会员。之后每次消费给予9折优惠。 5、会员退卡。(收回会员卡,并将余额退还,删除该会员信息。) 6、会员卡挂失。(为该会员补办新卡,并将旧卡余额转至新卡。) 7、用菜单进行管理 8、统计功能。

大学生计算机作业

“没有任何借口”是西点军校奉行的最重要的行为准则,它强化的是每一位学员想尽办法去完成任何一项任务,而不是为没有完成任务去找借口,哪怕看似合理的借口。 在西点,我作为新学生的第一课,是来自一位高年级学员冲着我大声训导。他告诉我不管什么时候遇到学长或者长官问话,只能有四种回答:“报告长官,是;报告长官,不是;报告长官;没有任何借口;报告长官,我不知道。”除此之外不能再多说一个字。 “没有任何借口”看起来似乎很绝对,很不公平,但是人生并不是永远公平。西点就是要让学员明白;无论遇到什么样的环境,都必须学会对自己的一切行为负责!学员在学校只是年轻的军校学生,但是日后肩负的却是和其他人的生死存亡乃至整个国家的安全。在生死关头,你还能到哪里去找借口哪怕最后找到了失败的教训又如何“没有任何借口”的训练,让西点学员养成了毫不畏惧的决心、坚强的毅力、完美的执行力及在限定的时间内把握每一分,没一秒去完成任何一项任务的信心和信念。 在我的前辈学员中,又很多人都是没有任何热借口的诠释者和执行者。伟大的罗文上校是这样,若果不是秉持着没有任何借口这一重要的行为准则,把信送给加西亚将军是不可能的。伟大的巴顿将军是这样的。1916年,作为美国墨西哥远征军总司令潘兴将军副官的巴顿,也有过一次类似

的送信经历,巴顿将军的日记中写道: “有一天,潘兴将军派我去给豪兹将军送信。但我们所了解的关于豪兹将军的情报只是说他已经通过普罗维登西区牧场。我要了两名士兵和三匹马,顺着这个连队的车辙前进,走了不多远,又遇到了第10骑兵团的一支侦查巡逻兵。他们告诉我们不要再往前走了,因为前面的树林里到处都是威利斯塔人。我没有听,沿着峡谷继续前进。遇到了费切特将军指挥着第7骑兵团的一支巡逻队。他们劝我们不要往前走了,因为峡谷里到处都是维利斯塔人。他们也不知道豪兹将军在哪里。但是我们继续前进,最后终于找到豪兹将军。” 我的同学莱瑞·杜瑞松上校也 是这样的。 莱瑞·杜瑞松在第一次奉派外地服役的时候,有一天连长派他到营部去,交代给他7件任务;要去见一些人,要请示上级一些事;还有些东西要申请,包括地图和醋酸盐。杜瑞松下定决心把7件任务都完成,虽然他并没有把握要怎么去做。果然事情并不顺利,问题就出在醋酸盐上。他滔滔不绝地向负责补给的中士说明理由,希望他能从仅有的存货中拨出一点。杜瑞松一直缠着他,到最后不知道是被杜瑞松说服了,相信醋酸盐确实有重要的用途,还是眼见没有其他办法能够摆脱杜瑞松,中士终于给了他一些醋酸盐。

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语言程序设计作业参考答案

《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语言课程设计题目

课 程 设 计 任 务 书 信息工程与自动化 学院 计算机科学与技术 专业 2011 年级 学生姓名: 课程设计题目: 程序设计语言课程设计 课程设计主要内容: 一、 基础程序设计: 本设计部分主要完成与链表操作相关的基本运算,其中包含:链表的建立、链表的输出、链表的插入、链表的删除等运算。. 二、 综合程序设计: 该部分主要是培养学生在程序编写方面综合能力的训练,学生选作其中的一至二题程序的编写与实施。 1、设计统计任意文本字数的程序(张力老师组必做): 要求包括:中英文文本的:中文字数、数字数目、英文字符数、英文单词数及其他符号。 2、车票订购统计系统(张力老师组必做): 下图是昆明——北京的沿途车站与票价: 请用C 语言为之开发一个售票程序,要求如下: (1)乘客购票时用菜单选择起点站和终到站。如果选择的起点站和终到站为同一个站则报错,程序退出。 (2)选好起点站和终到站之后,通过调用函数int BuyTicket() 为之计算票价和里程,并在屏幕上显示出来。 (3)用文件类型存储每一次售票记录,包括:售票流水号,起点站,终点站,里程,金额等数据,并统计所有存储记录的总售票金额及各站的旅客流量(进站流量+出站流量)。 3、万年历的设计: 要求: 模仿现实生活中的挂历,能够显示年历、月历、日历,并具备退出功能。 当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。 当系统日期变到下一月时,系统自动翻页到下一月。 4、通讯录管理系统:

制作一个通讯录程序,该程序具有查找、添加、修改、删除功能。通讯录包括:姓名,电话,街道,城市,省,邮编等。 模块设计参考: 第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 第二个模块——Menu()的功能是:显示英文提示选单。 第三个模块——Quit()的功能是:退出选单。 第四个模块——Create()的功能是:创建新的通讯录。 第五个模块——Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。 第六个模块——Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。 第七个模块——Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。 第八个模块——Delete()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。 第九个模块——List()的功能是:显示通讯录中的所有记录。 设计指导教师(签字): 教学基层组织负责人(签字): 年月日

完整word版,C语言期末大作业

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

五、附录源程序: 注:必须有一定的注释,说明函数功能以及主要语句所起的作用 #include "stdio.h" #include "string.h" #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;

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语言课程设计大作业

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

成绩评定教师:一. 需求分析

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

显示菜单函数:显示可供选择的主菜单; 显示记录函数:显示通讯录所有输入的信息; 删除记录函数:显示要删除的通讯录所有输入的信息; 查找记录函数:显示要查询的通讯录所有输入的信息; 自定义清屏函数:清除前面运行留下的信息; 自定义输入函数:输入通讯录的成员;; 字符输入函数:从终端输入一个字符,遇回车键返回; 修改数据函数:修改通讯录的成员信息; 保存数据函数:保存通讯录的成员信息; 排序数据函数:排序通讯录的成员信息; (2)程序中的抽象数据类型的定义: 用户的状态结构 用户 { 编号: 姓名: 电话; 年龄; 邮箱: 地址; (3)总体流程图 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 } 三. 详细设计

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; } 答:输入如图: 输出如图: (此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容, 供参考,感谢您的配合和支持)

2018c语言课程设计题目

C语言课程设计题目 一、实训要求 1)C语言课程设计要求 1.可自己选定一题目,限1人选的题目只能由1人单独完成,如限3人选的题目可由1-3人 完成。 2.模块化程序设计 3.锯齿型书写格式 4.必须上机调试通过 2)课程设计报告内容要求: 1.课程设计题目 2.总体设计(程序设计组成框图、流程图) 3.详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等) 4.调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解 决措施 5.源程序清单和执行结果:清单中应有足够的注释 6.具体格式另附说明。 3)检查要求: 1.每个人必须有程序运行结果; 2.每个人必须交《课程设计报告》打印稿---—注:各班班长将本班学生的课程设计报告电 子版用优盘拷贝(标上学号、姓名、班级)上交。 4)打分标准: 1.根据平时上机考勤;注重平时上机成绩,教师要不定期检查学生进度,学生不得以自己有 私人电脑为借口而不来上机。 2.根据程序运行结果; 3.根据《C语言课程设计报告》,学生能对自己的程序面对教师提问并能熟练地解释清楚 以上三项缺一不可,否则不能到得相应学分 二、课程设计题目: 1:职工信息管理系统设计(限最多3人完成) 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能: 系统以菜单方式工作 职工信息录入功能(职工信息可用文件保存)--输入 职工信息浏览功能--输出 查询和排序功能:(至少一种查询方式) --算法

按工资查询 按学历查询等 职工信息删除、修改功能(任选项) 2:图书信息管理系统设计(限最多3人完成) 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能: 系统以菜单方式工作 图书信息录入功能(图书信息用文件保存)--输入 图书信息浏览功能--输出 查询和排序功能:(至少一种查询方式)--算法 按书名查询 按作者名查询 图书信息的删除与修改(可选项) 3:学生信息管理系统设计(限最多3人完成) 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能: 系统以菜单方式工作 学生信息录入功能(学生信息用文件保存)---输入 学生信息浏览功能---输出 查询、排序功能---算法 按学号查询 按姓名查询 学生信息的删除与修改(可选项) 4:学生选修课程系统设计(限最多3人完成)

C语言课程设计题目汇总

目录 题目6:通讯录程序设计(限2人)........................................................................................................................................... 题目10:机房机位预定系统(限2人)..................................................................................................................................... 题目13:工资纳税系统............................................................................................................................................................. 题目41:条件编译.....................................................................................................................................................................

题目6:回文数的形成............................................................................................................................................................... 杨顺民题目 C语言程序课程设计题目 题目1:年历显示 功能要求: (1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。(2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 题目2:小学生测验 面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的; (3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案; (4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分; (5)总成绩90以上显示“SMART” ,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”

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)

C语言课程设计参考设计题目 1、学生信息管理 (1)问题描述 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能: ●系统以菜单方式工作 ●学生信息录入功能(学生信息用文件保存)---输入 ●学生信息浏览功能——输出 ●查询、排序功能——算法 1、按学号查询 2、按姓名查询 ●学生信息的删除与修改(可选项) (2)功能要求 ●界面简单明了; ●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新 输入; ●最好用链表的方式实现。 (3)算法分析 首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。 对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。 2、学生综合测评系统 每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。 A、学生信息处理 (1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。 提示:学生信息可先输入到数组中,排序后可写到文件中。 (2) 插入(修改)同学信息: 提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容, (3) 删除同学信息: 提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删

C语言课程设计报告-模板

C语言课程设计报告 班级:16 物联网 一、题目说明 (1)读取输入信息,能正确进行数字运算

(2)拥有记忆功能,可查询最近几次计算结果并继续进行数字运算。 二、基本功能实现 (1)能实现两个数之间的加减,乘,除,乘方,开方等运算。 (2)实现记忆功能,可保留近十位结果,可用#键查看。(3)*键作为清0键,清除当前屏幕上的值为0表示重新开三、设计流程(可以画流程图,可以直接写说明)

四、代码 #include #include #include #include double yunsuan(double a, char operate, double b); //处理数值之间的运算void PutRes(double array[], double res, int *i); //保存该次运算结果 int main() { char str[40]; double a = 0; double b = 0; double res = 0; double history[10] = {0,0,0}; char opt; int i = 0; printf("欢迎进入计算功能(eg: 1 \n+ 1 ; '#':查询历史结果; 'q':退出程序)·\n"); while(1){

fgets(str,40,stdin); //将从键盘的一整行标准输入保存在字符串str中 if(sscanf(str,"%lf", &a) == 1){ //将str以长浮点型的格式放入a中,如果返回值为1,说明输入的是数值, scanf("%c %lf", &opt, &b); //获取操作符的值和另外一个操作数的值 res = yunsuan(a,opt,b); //调用yunsuan()函数计算,并将结果给res printf("%lf %c %lf = %lf\n\n",a, opt, b, res); PutRes(history, res, &i); //调用函数PutRes()将本次结果保存到数组history中(i用引用传递) // printf("%d\n", i); }else if(sscanf(str,"%c",&opt) == 1){ //将str以字符型的格式放入opt中,如果返回值为1,说明输入的是字符 if(opt == '#'){ //如果opt为‘#’,则显示history 中的数值 int j = 0; for(j = 0; j < i; ++j){ //i为history中存放的数值个数 printf(" %lf ", history[j]); } printf("\n");

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语言课程设计题目

《程序设计基础》课程设计题目 一、设计实现一个模拟的小型教务管理系统 1 目的 通过小型教务管理系统的设计,培养学生综合利用C语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。 2 基本要求 该系统用于管理学生的基本信息、课程成绩及毕业资格审查。要求实现以下功能: ①通过此模块来管理课程信息,包括查询,添加,修改,删除等功能。在进行课程信息添加时,系统会自动监测所添加的信息是否已经存在,如果存在,会提示已经存在。在进行课程信息删除时,同样要求再次确定。 ②实现对学生信息、课程成绩及毕业资格审查的文件存取(分别存储在StudentInfo.txt、StudentScore.txt和GraduateCheck..txt文件中),实现对学生信息、课程成绩的记录增加、删除及修改; ③实现输入学生学号或姓名查询并显示学生的课程成绩; ④实现输入学生学号或姓名,根据该学生的课程成绩,显示毕业资格审查结果。 3、考核要求: 1)写出设计报告:包括实验题目与环境、设计思想、函数分解过程、算法描述以及相应的数据流程图、源程序清单、测试的数据以及程序运行的结果 2)如果程序未能够通过运行,分析可能出错的原因。 提示及说明 (1)学生记录、生日请用结构体完成存储,课程性质及专业请用枚举类型存储。

(2)学生信息、课程成绩、毕业资格审查的管理可用结构体数组或链表实现。 (3)请注意分配好时间,完成系统设计与实现,同时认真填写大作业报告!按时提交大作业报告、可运行的程序及代码,逾期不交,期末成绩以0分记。 《程序设计基础》课程设计题目 二、设计实现一个简单的产品管理系统 目的和要求 (1) 目的 通过产品管理系统的设计,培养学生综合利用C语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。 (2) 基本要求 某工厂有多种产品,每种产品包括:产品代码,产品名称,产品数量,销售量等,要求合理运用C语言的数组、指针、结构体及文件操作等,实现一个模拟的产品管理系统,能用于管理产品的基本信息及信息统计。具体要求如下: ①通过键盘或读取文件的方法读取产品的信息,对各类产品进行删除、插入、修改等操作,能进行产品统计和分析。 ②要求使用结构数组和结构指针,各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.c文件中,要求使用头文件。 ③要求使用选择法排序,折半查找法进行查找。 ④要求在程序中能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如do while、for、if-elseif等)。 ⑤创新要求。在基本要求达到后,进行创新设计。 考核要求: 1)写出设计报告:包括实验题目与环境、设计思想、函数分解过程、算法描述以及相应的数据流程图、源程序清单、测试的数据以及程序运行的结果 2)如果程序未能够通过运行,分析可能出错的原因。 提示及说明 (1) 产品的记录可用数组或结构体完成存储。 (2) 产品信息的管理可用结构体数组或链表实现。

相关主题
文本预览
相关文档 最新文档