C语言程序

C语言程序
C语言程序

《C语言程序设计》课程设计报告

题目:班级花名册维护

专业:

班级:

学号:

姓名:

同组人员:

目录

一、课程设计目的 (2)

二、课程设计的内容、要求 (2)

三、所采用的数据结构 (3)

四、主要模块(或函数)及其功能 (4)

五、主要模块(或函数)的算法思想和程序框图 (5)

六、任务分配表 (6)

七、程序清单 (7)

八、程序运行时的输入数据 (18)

九、总结 (22)

一、实践的目的和要求

加深对《C语言》课程所学知识的理解,进一步巩固C语言讲法规则。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力本课程设计是采用C语言,在VC平台下设计图书管理系统,该系统运行在MS-DOS命令行模式下。本课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。"C语言"课程设计主要是培养学生利用系统综合C语言进行程序设计的能力。

1.进一步巩固和复习C程序设计的基础知识。

2.培养学生结构化程序、模块化程序设计的方法和能力。

3.了解软件的编制过程及各环节的具体内容。

4.提高学生程序调试技巧、软件设计能力和代码规范化等素质。

5.提高学生分析问题、解决问题以及实际运用能力。

二、课程设计的内容、要求

内容:

1.系统的主要功能

要求能够增加、删除、修改学生的信息。程序能够读入一个班级花名册或是自建一个班级花名册。对一个班级的任何学生的修改操作最后都应该反映在保存在硬盘上的班级名册中。

2.题目分析

课程设计要求:

1.用C语言实现系统;

2.系统的各个功能模块要求用函数实现;

3.界面友好(良好的人机交互),程序加必要的注释;

4.课程设计实验报告要求。

三、所采用的数据结构

数据结构:

struct fbook[N]·························结构数组

头文件及宏定义:

#define N 50···························宏定义

#include ·····················控制台输入输出

#include·····················标准库函数

#include······················I/O函数

#include ····················字符串函数

函数调用:

void save(int n)·······················保存信息

void set_up()··························创建通讯录

void add_student()·····················添加新同学

void del_student()·····················删除同学信息

void show_all()························显示所有信息

void change()··························修改同学信息

void search()··························查询同学信息

void sort()····························学号排序

int count()····························计算已记录信息数void main_menu()·······················班级花名册管理菜单void change_xx(int i,int n) ···········修改信息选项

输入输出函数:

scanf()································输入函数

printf()·······························输出函数

fopen()································文件打开函数

fclose()·······························文件关闭函数

fread()································读取文件数据项

fwrite·································写入文件数据项

字符串函数:

strcmp()·······························字符串比较函数

其它处理函数:

FILE *fp·······························文件指针

exit(0)································结束程序函数

for()··································for循环

do-while·······························do-while循环

if()···································条件语句

if-else································分支结构

switch()·······························分支结构

四、主要模块(或函数)及其功能

创建:创建通讯录

输入第一个同学的信息。

添加:添加新同学

可连续添加同学信息,最多可添加50个同学的信息。

删除:删除同学信息

以姓名的方式查找该同学信息,若有相同姓名则以学号方式查找。将

查找到得同学信息输出,对照确认无误方可删除,否则取消并返回菜

单。

显示:显示所有信息

将已记录的信息项全部输出,首先逐个读取文件信息,然后逐个输出。

修改:修改同学信息

查找同学信息与删除操作的相同。有六种修改方式可供选择,如姓名

修改,学号修改等。修改后可显示新的信息。

查找:查询同学信息

以姓名方式查找,将所有符合要求的信息全部输出。

排序:进行学号排序

排序是以学号从小到大的方式排列。首先读取文件所有数据项,通过

学号比较,按从小到大的方式重新排序并保存。

保存:将信息保存到文件中输出

在系统中输入信息,打开文件,然后将信息写入文件保存。

计数:计算已保存信息数

打开文件,使用循环将文件中原有信息逐个读取,并计算个数项。

五、主要模块(或函数)的算法思想

和程序框图

开始

1创建通讯录2

4

5

6

7

8

册3

1

2

3

4

5

6

选择功能1至8

选择功能1至6

六、任务分配表

任务分配表

姓名任务编写及使用的程序完成情况

列主菜单

#include //控制台输入输出

#include //标准库函数

#include //I/O函数#include //字符串函数void save(int n); //保存信息void change(); //修改同学信息void sort(); //学号排序int count(); //计算已记录信息数struct book //结构体void main_menu(); //主菜单void change_xx(int i,int n);//修改选项完成任务

信息保存信息读取信息修改学号排序报告编写

删除同学信息void del_student(); //删除同学信息

int count(); //计算已记录信息数

struct book //结构体

void save(int n); //保存信息

void main_menu(); //主菜单完成任务

报告排版

创建通讯录void set_up(); //创建通讯录

void add_student(); //添加新同学

int count(); //计算已记录信息数

struct book //结构体

void save(int n); //保存信息

void main_menu(); //主菜单完成任务

添加新同学报告排版

查询同学信息void search(); //查询同学信息

int count(); //计算已记录信息数

struct book //结构体

void save(int n); //保存信息

void main_menu(); //主菜单

void show_all(); //显示所有信息

显示所有信息

七、程序清单

// 班级花名册维护。

// 能够增加、删除、修改学生的信息。

#include //控制台输入输出

#include //标准库函数

#include //I/O函数

#include //字符串函数

#define N 50 //宏定义

void save(int n); //保存信息

void main_menu(); //班级花名册管理选项

void set_up(); //创建通讯录

void add_student(); //添加新同学

void del_student(); //删除同学信息

void show_all(); //显示所有信息

void change(); //修改同学信息

void search(); //查询同学信息

void sort(); //学号排序

int count(); //计算已记录信息数

struct book //花名册结构体

{

char name[9]; //姓名

char xuehao[15]; //学号

char number[15]; //电话号码

char address[40]; //地址

char note[79]; //备注

}fbook[N];

//班级花名册管理菜单

void main_menu(){

int choice,w,j=0;

do

{

printf("\n");

printf("\t\t ★★★★★★★★★★★★★★★★★\n" );

printf("\t\t★↓↓↓↓↓★\n" );

printf("\t\t★班级花名册★\n" );

printf("\t\t★

★\n" );

printf("\t\t★ 1.创建通讯录. 2.添加新同学. ★\n" );

printf("\t\t★

★\n" );

printf("\t\t★ 3.删除同学信息. 4.显示所有信息. ★\n" );

printf("\t\t★

★\n" );

printf("\t\t★ 5.修改同学信息. 6.查询同学信息. ★\n" );

printf("\t\t★

★\n" );

printf("\t\t★7.进行学号排序. 8. 关闭花名册. ★\n" );

printf("\t\t★

★\n" );

printf("\t\t ★★★★★★★★★★★★★★★★★

\n" );printf("\t\t 温馨提示:若连续三次输入错误,系统将自动关

闭!!!\n");

printf("\n\t\t\t\t请选择 :");

scanf("%d",&choice);

if(choice<1||choice>8) //判断是否选择了错误的选项

{

w=1;

if(j==1)

printf("请注意,已连续两次输入错误,连续三次输入错误系统

将自动关闭!请确定后重新选择!\n\n");

if(j==2)

printf("已连续三次输入错误,系统自动关闭!\n");

if(j==0)

printf("输入有误,请从新选择!\n");

j++;

}

else

w=0;

if(j==3) //若连续三次输入错误,自动关闭系统

exit(0);

}while(w==1); //正确选择,退出循环

switch (choice)

{

case 1:

set_up(); //创建通讯录

break;

case 2:

add_student(); //添加新同学

break;

case 3:

del_student(); //删除同学信息

break;

case 4:

show_all(); //显示所有信息

break;

case 5:

change(); //修改同学信息

break;

case 6:

search(); //查询同学信息

break;

case 7:

sort(); //学号排序

break;

case 8:

printf("谢谢使用班级花名册,欢迎下次使用!\n" ); //关闭花名册

exit(0);

break;

}

}

//

void change_xx(int i,int n)

{

int c,j=0;

do

{

printf("请选择需要修改的选项:\n1.姓名 2.学号 3.电话号码 4.地址 5.备注 6.修改全部\n\n");

printf("请选择: ");

scanf("%d",&c);

if(c>6||c<1)

{

if(j==1)

printf("请注意,已连续两次输入错误,连续三次输入错误系

统将自动关闭!请确定后重新选择!\n\n");

if(j==2)

printf("已连续三次输入错误,系统自动关闭!\n");

if(j==0)

printf("输入有误,请从新选择!\n");

j++;

}

if(j==3) //若连续三次输入错误,自动关闭系统

exit(0);

}while(c>6||c<1);

printf("请根据提示输入新的信息:\n");

switch(c)

{

case 1:

printf("姓名: ");

scanf("%s",fbook[i].name);

break;

case 2:

printf("学号: ");

scanf("%s",fbook[i].xuehao);

break;

case 3:

printf("电话号码: ");

scanf("%s",fbook[i].number);

break;

case 4:

printf("地址: ");

scanf("%s",fbook[i].address);

break;

case 5:

printf("备注: ");

scanf("%s",fbook[i].note);

break;

case 6:

printf("姓名\t 学号\t\t电话号码\t地址\t\t备注\n");

scanf("%s%s%s%s%s",fbook[i].name,fbook[i].xuehao,fbook[i].number,fboo k[i].address,fbook[i].note);

}

}

//主函数

void main()

{

main_menu(); //调用主菜单函数

}

//创建通讯录

void set_up()

{

int n=1;

printf("请根据提示输入信息!\n");

printf("姓名\t 学号\t\t电话号码\t地址\t 备注\n");

scanf("%s%s%s%s%s",fbook[0].name,fbook[0].xuehao,fbook[0].number,f book[0].address,fbook[0].note);

save(n);

printf("通讯录创建成功!\n");

main_menu();

}

//添加新同学

void add_student()

{

int n,x;

n=count();

do

{

printf("请根据提示输入信息,按Enter结束!\n");

printf("姓名\t 学号\t\t电话号码\t地址\t 备注\n");

scanf("%s%s%s%s%s",fbook[n].name,fbook[n].xuehao,fbook[n].numb

er,fbook[n].address,fbook[n].note);

save(n+1);

printf("已保存!\n\n");

n++;

printf("是否继续添加? (1).是 (2).返回菜单 \n请选择: ");

scanf("%d",&x);

}while(x==1); //判断是否继续进行添加操作

main_menu(); //返回主菜单

}

//删除学生信息

void del_student()

{

struct book s;

int i,n,k=-1;

int j=0,d=0,d1,d2;

n=count();

do

{

do

{

printf("请输入要删除的同学姓名: ");

scanf("%s",https://www.360docs.net/doc/fc5631163.html,);

for(i=0;i

if(strcmp(https://www.360docs.net/doc/fc5631163.html,,fbook[i].name)==0) //查找所要删除同学信息的姓名

{

k=i;

s=fbook[i];

d++; //计算此姓名同学个数

}

if(d>1) //若存在相同姓名,则进一步查找

{

printf("姓名\t 学号\t\t电话号码\t地址\t 备注\n");

for(i=0;i

if(strcmp(https://www.360docs.net/doc/fc5631163.html,,fbook[i].name)==0)

printf("%s\t%s\t%s\t%s\t\t%s\n",fbook[i].name,fbook[i].xu

ehao,fbook[i].number,fbook[i].address,fbook[i].note);

printf("因有同学姓名相同,请输入要删除的同学学号: ");

scanf("%s",s.xuehao);

for(i=0;i

if(strcmp(s.xuehao,fbook[i].xuehao)==0)

{

k=i;

s=fbook[i];

}

}

if(k==-1) //判断是否输入错误

{

if(j==1)

printf("请注意,已连续两次输入错误,连续三次输入错误

系统将自动关闭!请确定后重新输入!\n\n");

if(j==2)

printf("已连续三次输入错误,系统自动关闭!\n");

if(j==0)

printf("没有此同学记录,请重新输入!\n\n");

j++; //计算连续输入错误次数

}

if(j==3) //若连续三次输入错误,自动关闭系统

exit(0);

}while(k==-1); //找到所要查找同学,退出循环

printf("姓名\t 学号\t\t电话号码\t地址\t 备注\n");

printf("%s\t%s\t%s\t%s\t%s\n",fbook[k].name,fbook[k].xuehao,fbook[k ].number,fbook[k].address,fbook[k].note);

printf("确定删除此同学信息? (1).是 (2).取消并返回菜单 \n请选择: ");·

scanf("%d",&d1);

if(d1==1) //删除同学信息并保存

{

fbook[k].name[0]='\0';

save(n);

}

else //取消删除命令并返回主菜单

break;

printf("已删除.\n\n");

printf("是否继续操作? (1).是 (2).否,返回菜单 \n请选择: ");

scanf("%d",&d2);

}while(d2==1); //判断是否继续进行删除操作

main_menu();

}

//显示所有信息

void show_all()

{

int n,i;

n=count();

printf("姓名\t 学号\t\t电话号码\t地址\t 备注\n");

for(i=0;i

printf("%s\t%s\t%s\t%s\t%s\n",fbook[i].name,fbook[i].xuehao,fbook[ i].number,fbook[i].address,fbook[i].note);

printf(" 共有%d 记录.\n",n);

printf("按任意键返回菜单!\n");

getch(); //任意键

main_menu();

}

//查询同学信息

void search()

{

struct book s;

int k,i,n;

int j=0,d1;

n=count();

do

{

k=-1;

do

{

printf("请输入要查询的同学姓名: ");

scanf("%s",https://www.360docs.net/doc/fc5631163.html,);

for(i=0;i

if(strcmp(https://www.360docs.net/doc/fc5631163.html,,fbook[i].name)==0) //输出所有符合要求的同学信息

{

k=i;

s=fbook[i];

printf("姓名\t 学号\t\t电话号码\t地址\t 备注\n");

printf("%s\t%s\t%s\t%s\t%s\n\n",fbook[k].name,fbook[k].xu

ehao,fbook[k].number,fbook[k].address,fbook[k].note);

}

if(k==-1) //判断是否输入错误

{

if(j==1)

printf("请注意,已连续两次输入错误,连续三次输入错误系统

将自动关闭!请确定后重新输入!\n\n");

if(j==2)

printf("已连续三次输入错误,系统自动关闭!\n");

if(j==0)

printf("没有此同学记录,请重新输入!\n\n");

j++; //计算连续输入错误次数

}

if(j==3) //若连续三次输入错误,自动关闭系统

exit(0);

}while(k==-1); //正确查找,输出信息并退出循环

printf("是否继续查询? (1).是 (2).否,返回菜单 \n请选择: ");

scanf("%d",&d1);

}while(d1==1); //判断是否继续进行查询操作

main_menu();

}

//修改同学信息

void change()

{

struct book x;

int n,i;

int d,d1,j=0,k,k1;

n=count();

do

{

d=0;

k=-1;

do

{

printf("请输入要修改的同学姓名: ");

scanf("%s",https://www.360docs.net/doc/fc5631163.html,);

for(i=0;i

if(strcmp(https://www.360docs.net/doc/fc5631163.html,,fbook[i].name)==0) //输出所有符合要求的同学信息

{

k=i;

x=fbook[i];

printf("姓名\t 学号\t\t电话号码\t地址\t 备注\n");

printf("%s\t%s\t%s\t%s\t%s\n\n",fbook[k].name,fbook[k].xueh

ao,fbook[k].number,fbook[k].address,fbook[k].note);

d++; //计算此名字个数

}

if(d>1) //若存在相同姓名,则进一步查找

{

k1=k;

printf("因有同学姓名相同,请输入要修改的同学学号: ");

scanf("%s",x.xuehao);

for(i=0;i

if(strcmp(x.xuehao,fbook[i].xuehao)==0) //输出进一步查找

的结果

{

k=i;

x=fbook[i];

printf("姓名\t 学号\t\t电话号码\t地址\t 备注\n");

printf("%s\t%s\t%s\t%s\t%s\n\n",fbook[k].name,fbook

[k].xuehao,fbook[k].number,fbook[k].address,fbook[k

].note);

}

}

if(k==-1) //判断是否输入错误

{

if(j==1)

printf("请注意,已连续两次输入错误,连续三次输入错误

系统将自动关闭!请确定后重新输入!\n\n");

if(j==2)

printf("已连续三次输入错误,系统自动关闭!\n");

if(j==0)

printf("没有此同学记录,请重新输入!\n\n");

j++; //计算连续输入错误次数

}

if(j==3) //若连续三次输入错误,自动关闭系统

exit(0);

}while(k==-1); //找到所要查找同学,退出循环

change_xx(k,n); //对同学信息进行修改并保存

save(n);

printf("\n修改成功! 修改后信息如下: \n");

printf("姓名\t 学号\t\t电话号码\t地址\t 备注\n");

printf("%s\t%s\t%s\t%s\t%s\n\n",fbook[k].name,fbook[k].xuehao,fbook[k ].number,fbook[k].address,fbook[k].note);

printf("是否继续修改信息? (1).是 (2).否,返回菜单 \n请选择: ");

scanf("%d",&d1);

}while(d1==1);

main_menu();

}

//学号排序

void sort()

{

FILE *fp;

struct book z;

int i,n,k;

n=count();

for(i=0;i

for(k=0;k

if(strcmp(fbook[k].xuehao,fbook[k+1].xuehao)>0)

{

z=fbook[k];

fbook[k]=fbook[k+1];

fbook[k+1]=z;

}

save(n); //保存排序后的结果

printf("学号排序完成,结果如下: \n");

printf("姓名\t 学号\t\t电话号码\t地址\t 备注\n");

if((fp=fopen("fbook.txt","r"))==NULL) //打开文件{

printf("\nCan not open the file!\n");

exit(0);

}

for(i=0;i

fread(&fbook[i],sizeof(struct book),1,fp);

printf("%s\t%s\t%s\t%s\t%s\n",fbook[i].name,fbook[i].xuehao,f

book[i].number,fbook[i].address,fbook[i].note);

}

printf(" 共有%d 记录.\n",n);

fclose(fp);

printf("按任意键返回菜单!\n");

getch();

main_menu();

}

//保存信息

void save(int n)

{

FILE *fp;

int i;

if((fp=fopen("fbook.txt","w"))==NULL) //打开文件

{

printf("\nCan not open file!\n");

exit(0);

}

for(i=0;i

if(fbook[i].name[0]!='\0')

{

if(fwrite(&fbook[i],sizeof(struct book),1,fp)!=1)

printf("File write error!\n");

}

fclose(fp);

}

//计算已记录信息数

int count()

{

int i;

FILE *fp;

if((fp=fopen("fbook.txt","r"))==NULL) //打开文件{

printf("\nCan not open the file!\n");

exit(0);

}

for(i=0;!feof(fp);i++) //读取文件信息

fread(&fbook[i],sizeof(struct book),1,fp);

fclose(fp);

return(i-1);

}

八、程序运行时的输入数据

输入1可创建通讯录,输入第一个同学信息。

输入2可持续添加新同学信息(通讯录可容纳50名同学的信息)

输入3可删除同学信息,可持续进行。先按姓名查找该同学,若有相同姓名的可进一步按学号查找。

输入4显示所有同学的信息,并显示记录的信息数量。

C语言程序设计习题答案(1-5章)

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 4. 求1×2×3×…×10的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

广工C语言编程题目

C语言编程题目 1.025 编写一个C程序,用函数printf(char *s)输出 以下3行信息: ******************** * Very Good! * ******************** 注意: (1)要求精确到每个字符、空格、字母及其大小写。 (2)可多次调用printf(char *s),每次仅一个字符串参数。 **********/ void print1() { printf("********************\n"); } void print2() { printf("* Very Good! *\n"); } void main() { print1(); print2(); print1(); } 1.055 编写一个程序,输入a、b、c三个值,输出其中最大值。 要求不改变下列给定的程序框架内容,填入合适语句,使其成 为满足题目要求的正确程序。 **********/ int max_a(int a,int b,int c) {int max=a; if(maxb?a:b; //max=max>c?max:c; //max=a; //if(max

C语言实用程序设计100例流程图

C语言实用程序100例 第一篇基础与提高 实例1利用库函数编写基本显示程序 实例2变量属性 实例3运算符与类型 实例4关于程序结构 实例5显示函数曲线图 实例6二分法选代的应用 实例7多变的立方体 实例8一维整型数组应用(1) 实例9一维整型数组应用(2) 实例10一维整型数组应用(3) 实例11一维整型数组应用(4) 实例12二维数组应用(1)——显示杨辉三角实例13二维数组应用(2)——魔方阵 实例14字符数组应用(1)——逻辑判断 实例15字符数组应用(2)——数据模拟 实例16二维数组应用——字符比较 实例17利用指针进行数据处理 实例18指针与字符串 实例19利用指针处理二维数组 实例20一级指针 实例21利用指针传递参数值 实例22结构体的应用 实例23链表的应用(1)

实例24链表的应用(2) 实例25链表的应用(3) 实例26共用体的应用 实例27枚举类型应用 实例28位运算 买例29义件加密 实例30文件的按记录随机读写 第二篇图形与多媒体 实例31改变文字背景色 实例32及本颜色设置 实例33制作表格 实例34制作多样的椭圆 实例35美丽的透视图形 实例36错位窗口 实例37能移动的矩形 实例38多变的填充矩形 实例39黄黑相间的矩形与圆 实例40六叶图案 实例41特殊图案 实例42国际象棋棋盘 实例43制作楼梯 实例44使用线类型函数设置多个汉字实例45彩色群点 实例46饼图 买例47产品折线图 实例48直方图 实例49变大变色的拒形与国

实例50多变的填充多边形 实例51流星球 实例52小球动态碰撞 买倒53多,曲线 实例54多变的圆与环 实例55优美的球体 实例56运动的小车 实例57统计动画消失次数 实例58运行的时钟 实例59直升飞机 实例60演绎“生命游戏” 实例61猜猜看 买例62艺术清屏 买倒63制作火焰 实例64动态绘制256条不同颜色的直线实例65红绿蓝三原色渐变 第三篇综合小程序 实例66两个矩阵相乘 实例67艺术钟 实例68家庭财务管理小程序 实例69用系统时间实现随机数 实例70闪动的多彩圆 实例71检查系统有无鼠标 实例72圆形光盘与矩形 实例73动态渐变图案 实例74往返两地间的小车 实例75飘扬的红旗

C语言程序设计框架.

说明:除了main(函数,其它函数和变量必须改名。 #include "stdio.h" #include "stdlib.h" #include "conio.h" void showmenu( { system("cls"; printf("********************************************************\n"; printf("* 欢迎进入C语言模块化案例系统 *\n"; printf("* *\n"; printf("* 制作人:XXXXXX *\n"; printf("* 日期:2011年5月23日--27日 *\n"; printf("********************************************************\n"; printf("\n"; printf("\t\t*************************\n"; printf("\t\t* C语言模块化案例系统 *\n"; printf("\t\t* 1. 选择结构 *\n"; printf("\t\t* 2. 循环结构 *\n"; printf("\t\t* 0. 退出系统 *\n"; printf("\t\t*************************\n"; printf("请选择相应模块的编号(0-2:"; } main( {

void showmenu(,select(,repeat(,submenu1(,submenu2(; void sel1(,sel2(,sel3(,sel4(,rep1(,rep2(,rep3(,rep4(; int choice; showmenu(; scanf("%d",&choice; while(choice!=0 { switch(choice { case 1: select(;break; case 2: repeat(;break; default:printf("输入数据有误!请重新输入。\n"; } showmenu(; scanf("%d",&choice; } printf("\n谢谢您使用本系统!\n"; } void select( { int ch1; submenu1(; scanf("%d",&ch1; while(ch1!=0 {

《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

C语言程序设计课程设计报告

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 掷骰子游戏 (5) 射击游戏 (7) 计算存款本息之和 (8) 肇事逃逸 (10) 礼炮 (12) 汽车加油 (14) 大优惠 (16) 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。 这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式

③必须上机调试通过 二、方案实现与调试 掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 调试过程及实验结果

经典c编程架构

1. 顺序执行法: 这种方法,这应用程序比较简单,实时性,并行性要求不太高的情况下是不错的方法,程序设计简单,思路比较清晰。但是当应用程序比较复杂的时候,如果没有一个完整的流程图,恐怕别人很难看懂程序的运行状态,而且随着程序功能的增加,编写应用程序的工程师的大脑也开始混乱。即不利于升级维护,也不利于代码优化。本人写个几个比较复杂一点的应用程序,刚开始就是使用此法,最终虽然能够实现功能,但是自己的思维一直处于混乱状态。导致程序一直不能让自己满意。 这种方法大多数人都会采用,而且我们接受的教育也基本都是使用此法。对于我们这些基本没有学习过数据结构,程序架构的单片机工程师来说,无疑很难在应用程序的设计上有一个很大的提高,也导致了不同工程师编写的应用程序很难相互利于和学习。 本人建议,如果喜欢使用此法的网友,如果编写比较复杂的应用程序,一定要先理清头脑,设计好完整的流程图再编写程序,否则后果很严重。当然应该程序本身很简单,此法还是一个非常必须的选择。 下面就写一个顺序执行的程序模型,方面和下面两种方法对比: 代码: /******************************************************************** ****************** * FunctionName : main() * Description : 主函数 * EntryParameter : None * ReturnValue : None

********************************************************************* *****************/ int main(void) { uint8 keyValue; InitSys(); // 初始化 while (1) { TaskDisplayClock(); keyValue = TaskKeySan(); switch (keyValue) { case x: TaskDispStatus(); break; ... default: break; } } } 2. 时间片轮询法 时间片轮询法,在很多书籍中有提到,而且有很多时候都是与操作系统一起出现,也就是说很多时候是操作系统中使用了这一方法。不过我们这里要说的这个时间片轮询法并不是挂在操作系统下,而是在前后台程序中使用此法。也是本贴要详细说明和介绍的方法。

c语言程序设计流程图详解

c语言程序设计流程图详解 介绍常见的流程图符号及流程图的例子。 本章例1-1的算法的流程图如图1-2所示。本章例1-2的算法的流程图如图1-3所示。 在流程图中,判断框左边的流程线表示判断条件为真时的流程,右边的流程线表示条件为假时的流程,有时就在其左、右流程线的上方分别标注“真”、“假”或“T、”“F或”“Y、”“N”注“真”、“假”或“T、”“F或”“Y、”“N”

另外还规定,流程线是从下往上或从右向左时,必须带箭头,除此以外,都不画箭头,流程线的走向总是从上向下或从左向右。 2.算法的结构化描述 早期的非结构化语言中都有goto语句,它允许程序从一个地方直接跳转到另一个地方去。 执行这样做的好处是程序设计十分方便灵活,减少了人工复杂度,但其缺点也是十分突出的,一大堆跳转语句使得程序的流程十分复杂紊乱,难以看懂也难以验证程序的正确性,如果有错,排起错来更是十分困难。这种转来转去的流程图所表达的混乱与复杂,正是软件危机中程序人员处境的一个生动写照。而结构化程序设计,就是要把这团乱麻理清。 经过研究,人们发现,任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构这三种基本结构组成,因此,我们构造一个算法的时候,也仅以这三种基本结构作为“建筑 单元”,遵守三种基本结构的规范,基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。正因为整个算法都是由三种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证,易于纠错,这种方法,就是结构化方法。遵循这种方法的程序设计,就是结构化程序设计。 相应地,只要规定好三种基本结构的流程图的画法,就可以画出任何算法的流程图。 (1)顺序结构 顺序结构是简单的线性结构,各框按顺序执行。其流程图的基本形态如图1-4所示,语句 的执行顺序为:A→B→C。 (2)选择(分支)结构 这种结构是对某个给定条件进行判断,条件为真或假时分别执行不同的框的内容。其基本形状有两种,如图1-5a)、b)所示。图1-5a)的执行序列为:当条件为真时执行A,否则执 行B;图1-5b)的执行序列为:当条件为真时执行A,否则什么也不做。 (3)循环结构 循环结构有两种基本形态:while型循环和do-while型循环。 a.while型循环 如图1-6所示。 其执行序列为:当条件为真时,反复执行A,一旦条件为假,跳出循环,执行循环紧后的语句。 b.do-while型循环 如图1-7所示。

单片机 c语言程序框架详解

/*单片机avr 流水灯源程序文件名:led.c */ #include void delay(uint time_c) //子函数,实现延时功能,void 表示此函数无返回值,delay 函数名,time_c 函数的参数-无符号的整形数值 { int i,j; //变量声明 while(time_c--) { for (j=0;j<1200;j++) {; }; //函数体内的语句以';'分号结尾,表示一条语句的结束,分号需要用英文标点输入 } } void main (void) //主函数 { //程序的初始化 DDRA=0xFF; //DDRA -PA口的方向寄存器,1为输出,0为输入,PA的8个I/O口全部设为输出。 PORTA=0xFF; //PORTA -PA口的输出控制寄存器,1为输出高电平,0为输出低电平,此处,PA口全部输出高电平。 while(1) // 死循环 { PORTA=0xFE; //PA口的第0位清0,点亮第一个灯 delay(500); // 延时 PORTA=0xFD; //点亮第二个灯 delay(500); PORTA=0xFB; //点亮第三个灯 delay(500); PORTA=0xF7; //点亮第四个灯 dealy(500); PORTA=0xEF; //点亮第五个灯 dealy(500); PORTA=0xDF; //点亮第六个灯 dealy(500);

PORTA=0xBF; //点亮第七个灯 delay(500); PORTA=0x7F; //点亮第八个灯 delay(500); } } /* 流水灯程序结束*/ ------------------------------------------------------------------------------------------------------------------------------- #include :#include c语言的文件包含指令,指的是在一个文件中包含另一个文件的全部内容,在这个源文件led.c中包含了头文件’iom16v.h'的全部内容,(c语言中源文件的扩展名'.c',头文件的扩展名为'.h'),此处iom16v.h 头文件定义了单片机ATmega16的内部寄存器参数,使用不同的单片机要用不同的头文件,例如:使用ATmega32 ,头文件需改为'iom32v.h' 。 中“<>"表示在系统默认的目录中搜索文件,若为"iom16v.h" 双引号表示在项目源文件所在的目录搜索文件。 void delay(unit time_c) { } ;为自定义的子函数,实现某一特定功能的函数,c语言函数的内容都放在{}中;delay(500)为子函数调用,实现延时功能,500为函数的实参,time_c 称为形式参数,单片机的运行速度非常快,如果不加延时,所有的灯看起来都是亮的,人眼无法分辨,可以增加,或减少延时的时间看看结果的变化。 void main(void) { .............. while(1) { .........}; } main 为主函数,是每一个c语言程序中必须有的,也必须只能有一个。它是单片机程序运行开始的入口处,在main函数中都有一个while(1)死循环,程序将在while所包含的语句中周而复始的运行。 /*单片机avr 流水灯源程序文件名:led.c */ 在c语言中在 '/* 和 '*/' 之间的内容为程序的注释,方便程序的阅读,可以对多行进行注释,'//':只能进行单行注释。 常量:在程序运行过程中数值不变的数据。 变量:在程序运行过程中,其值可以改变的数据 在书写变量说明时,应注意以下几点: 1.允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。 2.最后一个变量名之后必须以“;”号结尾。 3.变量说明必须放在变量使用之前。一般放在函数体的开头部分。

C语言程序设计课程标准

《C语言程序设计》课程标准 课程编码:03012208 课程模块:专业必修课 学时:90 课程类型:B类(理论+实践) 适用专业:计算机网络专业 1. 概述 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。 本课程旨在使学生掌握程序设计的基本方法及思维,形成程序设计基本思想,掌握程序调试的基本方法,使学生初步具备程序设计能力,为学生进一步学习其他专业课程和今后从事网络技术工作打下坚实的基础。 课程的性质 《C语言程序设计》是一门专业必修课,是学习其它工科课程的基础。掌握程序设计的前提是掌握程序设计语言,C语言以其灵活性和实用性受到了广大计算机应用人员的喜爱。一旦掌握了C语言,就可以较为轻松地学习后续的Java程序设计、数据库技术等程序设计语言。本课程以程序设计思想为主线,介绍C语言的基本概念和程序设计的思想和方法,培养学生运用C语言解决实际问题的能力。 前导课程:计算机文化基础等。 后继课程:Java程序设计、数据库技术、信息安全技术、网络操作系统等。 课程设计理念 通过对多家IT企业的走访,我们了解到自学能力、动手能力、团队协作能力是现代企业对人才的共同要求。因而我们也把培养具有这些能力的学生作为我们的课程目标,把对这些能力的培养融入到平常的授课过程中。对以计算机网络、汽车电子等专业为代表的学生,主要注重项目分析,流程图设计以及编程技巧和方法的培养,为进一步培养软件项目综合开发和应用能力作准备。 1、基于工作过程,以职业能力培养为重点,与行业企业合作进行的课程开发与设计。 在课程的讲授过程中,采用任务驱动的模式,以案例教学为主。在学生掌握了相应知识点后,再提出新的问题,要求学生通过修改已有的代码加以解决。在修改代码的过程中,既培养了学生的自学能力,又锻炼了学生的动手能力。

基于ARM的C语言程序设计简介

实验三基于ARM的C语言程序设计简介 一、实验目的 1.了解ARM C语言的基本框架,学会使用ARM的C语言编程 二、实验内容 1.用C语言编写一个简单的应用程序 三、实验设备 1.EL-ARM(DSP)-挂箱教学实验箱,PentiumII以上的PC机,仿真器。 2.PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境, 仿真器驱动程序 四、ARM C语言简介与使用规则 1.ARM使用C语言简介 在应用系统的程序设计中,若所有的编程任务均由汇编语言来完成,其工作量巨大, 并且不宜移植。由于ARM的程序执行速度较高,存储器的存储速度和存储量也很高, 因此,C语言的特点充分发挥,使得应用程序的开发时间大为缩短,代码的移植十 分方便,程序的重复使用率提高,程序架构清晰易懂,管理较为容易等等。因此, C语言的在ARM编程中具有重要地位。 2.ARM C语言程序的基本规则 在ARM程序的开发中,需要大量读写硬件寄存器,并且尽量缩短程序的执行时间的 代码一般使用汇编语言来编写,比如ARM的启动代码,ARM的操作系统的移植代码 等,除此之外,绝大多数代码可以使用C语言来完成。 C语言使用的是标准的C语言,ARM的开发环境实际上就是嵌入了一个C语言的集 成开发环境,只不过这个开发环境和ARM的硬件紧密相关。 在使用C语言时,要用到和汇编语言的混合编程。当汇编代码较为简洁,则可使用 直接内嵌汇编的方法,否则,使用将汇编文件以文件的形式加入项目当中,通过 ATPCS的规定与C程序相互调用与访问。 ATPCS,就是ARM、Thumb的过程调用标准(ARM/Thumb Procedure Call Standard),它规定了一些子程序间调用的基本规则。如寄存器的使用规则,堆栈的使用规则, 参数的传递规则等。 在C程序和ARM的汇编程序之间相互调用必须遵守ATPCS。而使用ADS的C语言编 译器编译的C语言子程序满足用户指定的ATPCS的规则。但是,对于汇编语言来说, 完全要依赖用户保证各个子程序遵循ATPCS的规则。具体来说,汇编语言的子程序 应满足下面3个条件:

《C语言程序设计》综合实习报告

课题一:用指针优化学生成绩排名 一、目的 1.熟悉变量的指针和指向变量的的指针变量的概念和使用 2.熟悉数组的指针和指向数组的的指针变量的概念和使用 3. 掌握冒泡法或选择法排序的算法 4. 掌握函数的定义、调用、声明,以及参数的两种传递方式 二、实习环境 个人计算机,Windows操作系统,Turbo C 2.0或 WinTC或Visual C++等编译开发环境 三、实习内容与步骤 1.定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现 2.将数组stu[10]的内容输出到屏幕上,要求用指针实现 3.将成绩数组按照从高到低进行排序,要求用指针实现 4.将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单 5.采用指针方法,输入字符串“student score ”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数) 6.在实习报告中画出程序流程图,说明程序设计的算法,附主要程序段运行结果(屏幕截图)。 7. 在实习报告中说明知识点。 8.在实习报告中说明程序设计过程中的难点、解决办法及编程小结或体会。 四、程序流程图、算法及运行结果 1.程序流程图:

2.算法: 先定义一个函数接收10个学生的成绩,利用指针将数据保存在数组中,再定义第二个函数输出所以学生的成绩,同样也是使用指针,最后定义一个函数用选择排序法对成绩进行由大到小的排序,将指针指向的是数组中的第一个地址,在主函数中依次调用这两个函数; 定义一个字符指针指向字符串,利用库函数中的strcpy 将student score 复制给字符指针,输出字符串 3.程序: #include"stdio.h" #include"string.h" struct student { int grade; int num; }stu[10]; void input(struct student *p) { int i; for(i=0;i<10;i++,p++) { printf("请输入第 %-2d 个学生的成绩:",i+1); scanf("%d%d",&p->num,&p->grade); } }

《C语言程序设计》复习 参考答案

第一章 【随堂练习1-2】 1.下面哪些标识符属于合法的用户自定义标识符: Main、void、_num、my$、a*、N4、3m、a-2 答:合法的用户自定义标识符是:Main、_num、N4 2.结合【例1.2】指出程序代码中所用到的标识符哪些是关键字,哪些是预定义标识符,哪些是用户自定义标识符。 答:关键字:void、int 预定义标识符:include、main、printf、scanf 用户自定义标识符:a、b、c 3.分析【例1.2】中函数的结构,包括函数首部(函数返回值类型、函数名、形式参数)、函数体语句(说明语句、可执行语句)。 答:函数首部:void main( ),其中函数返回值类型为void、函数名为main、形式参数无; 函数体语句:{}内的语句为函数体,其中:说明语句为int a,b,c;,其余为可执行语句。 3.标识符是用来标识程序中的某个对象名字的字符序列。C语言把标识符分为三类,即关键字、预定义标识符、用户自定义标识符。对于用户自定义标识符的命名C语言规定: (1)所有的用户标识符必须先定义后使用; (2)用户标识符由字母(A~Z,a~z)、数字(0~9)、下划线“_”组成,并且首字符不能是数字; (3)区分大小写; (4)不能用关键字作为用户自定义标识符,通常不使用预定义标识符作为用户自定义标识符。 4.理论上讲,程序开发过程分为四个步骤,分别为: (1)编辑源程序 (2)编译源程序,生成目标程序 (3)连接目标程序及其相关模块,生成可执行文件 (4)运行可执行文件

一.单元练习 一.选择题 1.构成C语言程序的基本单位是()。 A.框架B.预处理C.函数D.语句 2.在程序开发过程中,把文本文件格式源程序转化为二进制格式的目标程序的过程称之为()。 A.编辑B.编译C.连接D.运行 3.关于主函数,下列说法不正确的是()。 A.一个完整的C语言应用程序有唯一的主函数 B.主函数的名称只能是main C.主函数可以被其他自定义函数调用 D.C语言程序的运行从主函数开始,以主函数为核心展开 4.关于标识符,下列说法不正确的是()。 A.库函数名称为预定义标识符,不建议用作用户自定义标识符 B. 关键字不能作为用户自定义标识符 C.用户自定义标识符中不区分大小写字母 D.标识符中可以出现下划线,且可以出现在标识符的任意位置 5.以下可用作用户自定义标识符的一组是()。 A.void、return、if B.printf、include、fabs C.Max、_abc、Main D.2abc、pay$、sum-10 二.填空题 1.C语言程序一般由若干个函数构成,程序中应至少包含一个_________,其名称只能为_________。 2.C语言程序中每条语句必须以_________结束。 3.C语言程序的注释是以_________开头,以________结束的,在VC++6.0编程环境中,可使用_________作为注释的起始标识,注释对程序的执行不起任何作用。 4.最初编写的C语言程序称为_________,其扩展名为_________,编译后生成的文件为_________,其扩展名是_________,连接后生成的文件是_________,其扩展名是_________。5.C语言规定,标识符只能由_________、_________和_________三种字符组成,而且,首字符只能是_________或_________。

C语言实用程序设计100例流程图

.. ;. C语言实用程序100例 第一篇基础与提高 实例1利用库函数编写基本显示程序 实例2变量属性 实例3运算符与类型 实例4关于程序结构 实例5显示函数曲线图 实例6二分法选代的应用 实例7多变的立方体 实例8一维整型数组应用(1) 实例9一维整型数组应用(2) 实例10一维整型数组应用(3) 实例11一维整型数组应用(4) 实例12二维数组应用(1)——显示杨辉三角实例13二维数组应用(2)——魔方阵 实例14字符数组应用(1)——逻辑判断 实例15字符数组应用(2)——数据模拟 实例16二维数组应用——字符比较 实例17利用指针进行数据处理 实例18指针与字符串 实例19利用指针处理二维数组 实例20一级指针 实例21利用指针传递参数值 实例22结构体的应用 实例23链表的应用(1) 实例24链表的应用(2) 实例25链表的应用(3) 实例26共用体的应用 实例27枚举类型应用 实例28位运算 买例29义件加密 实例30文件的按记录随机读写 第二篇图形与多媒体 实例31改变文字背景色 实例32及本颜色设置 实例33制作表格 实例34制作多样的椭圆 实例35美丽的透视图形 实例36错位窗口 实例37能移动的矩形 实例38多变的填充矩形 实例39黄黑相间的矩形与圆实例40六叶图案

.. ;. 实例41特殊图案 实例42国际象棋棋盘 实例43制作楼梯 实例44使用线类型函数设置多个汉字实例45彩色群点 实例46饼图 买例47产品折线图 实例48直方图 实例49变大变色的拒形与国 实例50多变的填充多边形 实例51流星球 实例52小球动态碰撞 买倒53多,曲线 实例54多变的圆与环 实例55优美的球体 实例56运动的小车 实例57统计动画消失次数 实例58运行的时钟 实例59直升飞机 实例60演绎“生命游戏” 实例61猜猜看 买例62艺术清屏 买倒63制作火焰 实例64动态绘制256条不同颜色的直线实例65红绿蓝三原色渐变 第三篇综合小程序 实例66两个矩阵相乘 实例67艺术钟 实例68家庭财务管理小程序 实例69用系统时间实现随机数 实例70闪动的多彩圆 实例71检查系统有无鼠标 实例72圆形光盘与矩形 实例73动态渐变图案 实例74往返两地间的小车 实例75飘扬的红旗 实例76显示蓝天白云图形 实例77百叶窗 第四篇计算机等级考试上机试题(二级)第五篇计算机等级考试上机试题(三级)部分流程图 实例1

C语言程序设计实习报告

重庆城市管理职业学院 《C语言程序设计》实习报告 班级软件A1501 专业软件技术 学号 学生姓名 指导教师 评定成绩 信息工程学院 2016年06月 21 日

题目: 给小学生出加法考试题 编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程。 程序 1 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,程序结束。 程序 2 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,直到做对为止。 程序 3 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,最多给三次机会,如果三次仍未做对,则显示“Not correct! You have tried three times! Test over!”,程序结束。 程序4 连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题数。 程序5 通过计算机随机产生10道四则运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数。 实习目的: 1、进一步掌握和利用C语言进行程设计的能力。 2、进一步理解和运用结构化程设计的思想和方法。 3、初步掌握开发一个小型实用系统的基本方法。 4、学会调试一个较长程序的基本方法。 5、学会利用流程图或N-S图表示算法。 6、掌握书写程设计开发文档的能力(书写实习报告)。 实习要求: (1) 系统分析: 将系统计算的值与答案相比较,相等则输出‘right’,不相等则输出‘No correct!Try again!’。

C语言编程环境简介

C语言编程环境简介 第1部分计算机程序设计实验的一般步骤 1.1 计算机程序设计实验的目的 C语言程序设计是一门实践性很强的课程,该课程的学习有其自身的特点,学习者必须通过大量的编程训练,在实践中掌握程序设计语言,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法。具体的说,通过上机实践,应该达到以下几点要求: 1.使学习者能很好地掌握一种程序设计开发环境的基本操作方法(例如(Visual C++6.0),掌握应用程序开发的一般步骤。 2.在程序设计和调试程序的过程中,可以帮助学习者进一步理解教材中各章节的主要知识点,特别是一些语法规则的理解和运用,程序设计中的常用算法和构造及应用,也就是所谓“在编程中学习编程”。 3.通过上机实践,提高程序分析、程序设计和程序调试的能力。程序调试是一个程序员最基本的技能,不会调试程序的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。通过不断的积累经验,摸索各种比较常用的技巧,可以提高编程的效率和程序代码的质量。 下面介绍计算机程序设计实验的一般步骤: 1.2 计算机程序设计实验的准备 上机前需要做好如下准备工作,以提高上机编程的效率。 (1)在计算机上安装一种程序设计开发工具,并学会基本的操作方法。 (2)复习与本次实验相关的教学内容和主要知识点。 (3)准备好编程题程序流程图和全部源程序代码,并且先进行人工检查。 (4)对程序中有疑问的地方做出标记,充分估计程序运行中可能出现的问题,以便在程序调试过程中给予关注。 (5)准备好运行和调试程序所需的数据。 1.3 计算机程序设计实验的步骤 (1)运行程序设计开发工具,进入程序设计开发环境。 (2)新建一个文件,输入准备好的程序。 (3)不要立即进行编译和连接,应该首先仔细检查刚刚输入的程序,如有错误及时改正,保存文件后再进行编译和连接。 (4)如果在编译和连接的过程中发现错误,根据系统的提示找出出错语句的位置和原因,改正后再进行编译和连接。直到成功为止。 (5)运行程序,如果运行结果不正确,修改程序中的内容,直到结果正确为止。 (6)保存源程序和相关资源。 (7)实验后,应提交实验报告,主要内容应包括程序清单,调试数据和运行结果,还应该包括对运行结果的分析和评价等内容。

《C语言程序设计》课程教学大纲

《C语言程序设计》课程教学大纲 一、课程教学目的 本课程系统学习 C语言的基本知识和基本语法,较好地训练学生解决问题的逻辑思维能力以及编程思路和技巧,使学生具有较强的利用 C 语言编写软件的能力,为培养学生有较强软件开发能力打下良好基础。 二、课程教学要求 通过本课程的学习,应熟练掌握 C 语言中的基本知识、各种语句及程序控制结构,熟练掌握 C 语言的函数、数组、指针、结构体、链表等数据结构的基本算法;并能熟练地运用 C 语言进行结构化程序设计;具有较强的程序修改调试能力;具备较强的逻辑思维能力和独立思考能力。 三、课时分配 本学科计划学时为246学时,其中理论与实训课时比例为7:3。 四、课程教学重、难点 课程教学重点:掌握C语言变量类型及不同类型常量的表示;标准的输入输出函数的使用;运算符及常用数学函数的使用;控制流程、数组和指针的使用;结构体、链表的构造使用;函数结构、函数参数传递及递归等方面的知识;基本的文件操作。 难点:指针的使用、结构体链表的构造和使用及函数的参数传递。 五、课程教学方法(或手段) 本课程实践性较强,故采用讲授和上机操作相结合的方式进行教学。 六、课程教学内容 第一章 C语言概述 1.教学内容 (1) 编程历史的回顾、程序设计介绍(过程式,面向对象,函数式,逻辑式); (2) C语言的历史背景、特点; (3) C语言源程序的格式和程序结构; (4) C程序的上机步骤。 2.重、难点提示 (1)重点:掌握简单的 C程序格式,包括main()函数、数据说明、函数开始和结束标志等;

(2)难点:编程入门以及对语言的理解。 第二章算法 1.教学内容 (1) 算法的概念及特性;评价算法优劣的方法(时间和空间); (2) 简单算法举例; (3) 算法的表示(自然语言、流程图、N-S流程图); (4) 结构化程序设计的基本思想及基本步骤。 2.重、难点提示 (1)重点:算法流程图三种基本结构(以后各章学习中利用流程图强化对程序的理解); (2)难点:算法概念以及对结构化程序设计思想的理解。 第三章数据类型、运算符与表达式 1.教学内容 (1) 基本数据类型及其常量的表示法(字符和字符串常量),各种数制(八、十、十六进制)的整型数和长整型数,实型数( float和double); (2) 变量的类型说明、初始化及引用; (3) 运算符与表达式: 2.重、难点提示 (1)重点:掌握 C的几种基本数据类型,不同类型数据间的混合运算规则;不同运算符的使用特点,清楚每种运算符的优先级与结合性;各种表达式的含义与使用要点。 (1)难点:不同类型数据间的混合运算;运算符的优先级与结合性。 第四章最简单的 C 程序设计—顺序程序设计 1.教学内容 (1) C程序结构和语句的构成; (2) 顺序结构程序的设计:赋值语句的使用要点; (3) 数据的输入与输出: 2.重、难点提示 (1)重点:顺序结构程序的表达式语句形式;输入/输出函数的表示与调用方法;利用流程图加深对顺序结构程序的理解。 (2)难点:格式输入与输出表示中各种格式字符的表示含义。

相关文档
最新文档