文档库 最新最全的文档下载
当前位置:文档库 › 西北工业大学C语言大作业实验报告

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

西北工业大学C语言大作业实验报告
西北工业大学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:************************ ");

/*电子邮件*/

p_s(11);puts("\n");

p_s(76);puts("\n");

/*再次引用p_s函数,程序说明部分结束*/

附:print_star.cpp文件源代码

#include

void p_s(int k)

{

int i;

for(i=1;i<=k;i++)

/*连续输出ka个'*'*/

printf("*");

}

输入模块:引导使用者输入要在其中查找数据的数表的数据个数和数表数据。并通过一个judge函数判断输入是否合法,若不合法提醒用户继续输入。

此部分模块主函数源代码如下:

printf("请输入你想要在其中查找数据的数据表列的数据个数(1--50):\n");//

scanf("%d",&n);

n=judge(n);

/*引用judge函数,判断n值是否合法*/ (judge函数位于judge.cpp文件,参见下文)printf("请输入你要在其中查找数据的数据表列(%d个数据用空格间隔大小排序不限):\n",n);

/*输入要查找的n 个数据*/

for(i=0;i<=n-1;i++)

scanf("%d",&a[i]);

/*将要查找的n个数据存入数组a*/

sort(a,n);

/*引用sort函数,将数表排序*/

printf("\n输出表列(从小到大排列)\n");

附:judge.cpp文件源代码

#include

int judge(int n2)

/*函数作用:判断n2的值是否在1—50范围内*/

{ int n3;

while(n2<1 || n2>50)

{

printf("你输入的数不正确,请重新输入。\n");

printf("请输入你想要在其中查找数据的数据表列的数据个数(1--50):\n");

/*不合法重新输入并传递给主函数*/

scanf("%d",&n3);

return n3;

}

return n2;

}

排序模块:将用户输入数表的按升序排列并输出,为接下来的折半法查找做准备。

此部分模块主要通过sort.cpp文件中的sort函数实现

此部分模块主函数源代码如下:

sort(a,n);

/*引用sort函数,将数表排序*/

printf("\n输出表列(从小到大排列)\n");

putout(a,0,n-1);

/*引用putout函数,输出排序后数表*/

附:sort.cpp 文件源代码

#include

void sort(int A[],int n1)

/*将数组A的元素按从下到大顺序排序*/

{

int x,y,z;

for(x=0;x

for(y=0;y

{

if(A[y]>A[y+1])

/*二重循环将n1个数据由小到大排序*/

{

z=A[y];

/*z暂时存储a[y]的值*/

A[y]=A[y+1];

A[y+1]=z;

}

}

}

折半法查找及显示模块:提醒用户输入要查找的数据并判断是否合法。若合法则进入折半法查找循环,在每次折半法查找过程中输出数表中间数据、查找数据与该数据的大小关系、下次再左还是右部分查找,并输出该次折半法后要查找的数表的,用来演示折半法的查找过程,并在每次折半过程中设定程序暂停一次,方便演示,最后输出该数据在排序后数表的位置,然后进入进程选择模块;若非法,则输出“这个数在表列中没有找到”,然后进入进程选择模块。

此部分模块主函数源代码如下:

r_s: printf("请你输入要查找的数:\n");

/*输出要查找的数据*/

scanf("%d",&num);

count=0;

/*折半次数计数器初值赋0*/

flag=1;

top=n-1;

bottom=0;

mid=(top+bottom)/2;

while(flag)

{

count++;

/*折半次数计数器自加1*/

if( (num>a[top]) || (num

/*查找数据非法,loc为1*/

{

loc=-1;

flag=0;

}

else if(a[mid]==num)

/*折半法查找到该数据*/

{

loc=mid;

printf("第%d次折半\n",count);

/*输出此次折半后中间数据*/

printf(" 中间数据为%d\n",a[mid]);

system("pause");

/*利用该语句暂停程序,便于演示,以下同理*/

printf("找到数%6d 排序后的位置%2d\n",num,loc+1);

/*输出结果*/

loc=1;

goto c_e;

/*转至选择语句c_e,判断是否继续查找*/

}

else if(a[mid]>num)

{

printf("第%d次折半\n",count);

/*利用折半次数计数器和循环显示每次折半查找后的表列*/

printf(" 中间数据为%d\n",a[mid]);

/*输出此次折半后中间数据*/

printf(" 因为%d<%d ",num,a[mid]);

/*说明下步折半查找原因*/

printf("所以在左半部分查找\n 折半后查找数表为:\n");

top=mid-1;

mid=(top+bottom)/2;

putout(a,bottom,top);

/*引用putout函数,输出该次折半后数表*/

system("pause");

}

else if(a[mid]

{

printf("第%d次折半\n",count);

/*利用折半次数计数器和循环显示每次折半查找后的表列*/

printf(" 中间数据为%d\n",a[mid]);

/*输出此次折半后中间数据*/

printf(" 因为%d>%d ",num,a[mid]);

/*说明下步折半查找原因*/

printf("所以在右半部分查找\n 折半后查找数表为:\n");

bottom=mid+1;

mid=(top+bottom)/2;

putout(a,bottom,top);

/*引用putout函数,输出该次折半后数表*/

system("pause");

}

}

if(loc==-1)

{

printf("%d 这个数在表列中没有找到。\n",num);

/*若查找数据非法,提示查找错误*/

printf("请重新输入要查找的数据\n");

goto r_s;

/*利用goto语句转职r_s语句重新查找*/

}

此段函数会用到putout函数,因上文已经提到,在此不做赘述。

进程选择模块:通过判断用户输入的字符决定程序下一步的走向,若为“y”则进入下一次折半法查找演示过程,若为“n”则进入程序退出模块。

此部分模块主函数源代码如下:

c_e:{ fflush(stdin);

/*利用fflush语句清除按键缓存*/

printf("请选择是否继续查找\n");

printf("是——y,否——n\n");

/*选择步骤操作说明*/

c=getchar();

if(c!='y'&&c!='n')

{

printf("选择错误!");

/*若选择错误,继续选择*/

goto c_e;

}

else

{

if(c=='y') goto r_s;

/*选择y,转至r_s语句继续查找*/

else goto end;

/*选择n,转至end语句结束程序*/

}

}

程序退出模块:与程序说明模块呼应,友好的退出程序。

此部分模块源代码如下:

end: printf("程序结束\n");

system("pause");

printf("谢谢使用,再见!\n");

for(k=0;k<1.9e8;k++)

/*延时程序*/

;

exit(0);

/*利用exit语句退出主函数*/

工程文件结构

本程序的工程含有6个文件,其中main.cpp、print_stars.cpp、judge.cpp、sort.cpp、putout.cpp5个cpp 文件和include.h1个头文件(参见下图),两者共同存在于工程“折半法查找演示程序”中。其中main.cpp 文件包含了程序的主体部分,程序说明模块、输入、排序、折半查找及显示、程序退出模块按线性排列,进程选择模块穿插于其中,根据用户操作决定进程执行。其中输入、排序模块一般执行一次,进程选择模块可调控程序多次执行折半查找及显示模块,也可以调控执行程序退出模块。

2.2 主要功能

本程序的主要功能是演示折半法在一组升序排列的数表中查找某个数据的查找过程,同时兼有数表排序、多次演示、错误提醒等功能。各功能的实现具体说明如下:

演示折半法查找功能:运用计数器的规律和选择、循环结构实现折半法的程序特点,在一般折半法的程序模块上加以改动,增加一个折半次数计数器(程序中用count变量表示),同时在每次折半的选择结构中加入一个for循环语句,输出此次折半后的查找数表,配上相关的printf语句、程序暂停语句并输出相关文字说明,就能很好的演示折半法的查找原理和过程。具体参见下图。

数表排序功能:通过一个简单的二重循环将无序的数表按升序排列,主要运用冒泡算法。运行效果如下图。

多次演示功能:通过提示用户做相应的操作,实现程序的多次演示或者退出,提高程序的实用性。程序中主要通过goto语句和若干标号的语句实现。此部分程序运行截图如下:

多次演示及程序结束的运行效果:

错误提醒功能:判断用户输入的数据及相关操作是否合法,如不合法提醒用户改正,增加了程序德使用性和操作便捷性。主要是通过while循环和输入输出函数实现。相关运行截图如下:n值输入错误的错误提醒及修正:

进程选择错误的错误提醒及修正:

程序暂停功能:主要运用system(pause)语句和一段延时小程序,增加程序演示时的可操作性和可讲解性。运行效果如下;

2.3 函数实现

本程序中含有一个主函数,四个子函数以及主函数中若干个起重要作用的函数语句,现将它们的功能、算法、数据结构等说明如下:

主函数:

参数:

主要思想为:

由用户自主输入n个数据,将其排序后,在传统折半法的基础上,增加一些必要的输入输出及控制语句,输出不同阶段循环控制变量所决定的数、特征值,伴以相关文字说明,延时折半法的原理过程。再嵌套一些进程控制的语句,达到多次使用的效果。

主函数代码及相关说明如下:

p_s(76);puts("\n");

printf("****欢****迎****使****用****折****半****查****找****法****演****示****器****\n");

puts("\n");

p_s(13);

printf("制作者:*************** ");

p_s(4);

printf("Email:********************* ");

p_s(11);puts("\n");

p_s(76);puts("\n");

以上为程序说明部分,主要通过程简单的输入输出函数序说明程序功能和操作信息。

printf("请输入你想要在其中查找数据的数据表列的数据个数(1--50):\n");//

scanf("%d",&n);

n=judge(n);

在此调用judge函数,将输入n值代入judge函数检验是否合法。

printf("请输入你要在其中查找数据的数据表列(%d个数据用空格间隔大小排序不限):\n",n); / for(i=0;i<=n-1;i++)

scanf("%d",&a[i]);

sort(a,n);

在此引用sort函数,将数组a[N],n代入sort函数,将数表排序。

printf("\n输出表列(从小到大排列)\n");

putout(a,0,n-1);

***** ——以“*****”标记的三处都引用了putout函数,输出一个一维数组r_s: printf("请你输入要查找的数:\n");

scanf("%d",&num);

count=0;

***************************************************************************

flag=1;

top=n-1;

bottom=0;

mid=(top+bottom)/2;

while(flag)

{

count++;

if( (num>a[top]) || (num

{

loc=-1;

flag=0;

}

else if(a[mid]==num)

{

loc=mid;

printf("第%d次折半\n",count);

printf(" 中间数据为%d\n",a[mid]);

system("pause");

利用该语句暂停程序,便于演示,以下同理

printf("找到数%6d 排序后的位置%2d\n",num,loc+1);

loc=1;

goto c_e;

}

else if(a[mid]>num)

{

printf("第%d次折半\n",count);

printf(" 中间数据为%d\n",a[mid]);

printf(" 因为%d<%d ",num,a[mid]);

printf("所以在左半部分查找\n 折半后查找数表为:\n");

top=mid-1;

mid=(top+bottom)/2;

putout(a,bottom,top);

*****

system("pause");

}

else if(a[mid]

{

printf("第%d次折半\n",count);

printf(" 中间数据为%d\n",a[mid]);

printf(" 因为%d>%d ",num,a[mid]);

printf("所以在右半部分查找\n 折半后查找数表为:\n");

bottom=mid+1;

mid=(top+bottom)/2;

putout(a,bottom,top);

*****

system("pause");

}

}

if(loc==-1)

{

printf("%d 这个数在表列中没有找到。\n",num);

printf("请重新输入要查找的数据\n");

goto r_s;

利用goto语句(文中绿色部分)和标记语句(文中黄色部分)和循环语句实现进程的控制

}

*********************************************************************************

end: printf("程序结束\n");

system("pause");

printf("谢谢使用,再见!\n");

for(k=0;k<1.9e8;k++)

延时程序,延时约二秒;

exit(0);

利用exit语句直接退出主函数

c_e:{ fflush(stdin);

fflush语句清除按键缓存,避免程序进程混乱printf("请选择是否继续查找\n");

printf("是——y,否——n\n");

c=getchar();

if(c!='y'&&c!='n')

{

printf("选择错误!");

goto c_e;

}

else

{

if(c=='y')

goto r_s;

else

goto end;

}

}

}

judge函数:

参数:n2 n3

数据交换:导入main函数n的值,导出n2或n3的值

函数代码及相关说明:

#include

int judge(int n2) 函数作用:判断n2的值是否在1—50范围内{ int n3;

while(n2<1 || n2>50)

{

printf("你输入的数不正确,请重新输入。\n");

printf("请输入你想要在其中查找数据的数据表列的数据个数(1--50):\n");

不合法重新输入并传递给主函数scanf("%d",&n3);

return n3;

}

return n2; 合法直接传回主函数

}

putout函数:

参数:B[], m1, m2

数据传递:B导入a[N的值,m1、m2视情况而定

函数代码及相关说明:

#include

void putout(int B[],int m1,int m2)

函数作用:将数组B的第m1到m2个元素在一行输出{

int x1;

for(x1=m1;x1<=m2-1;x1++)

printf("%6d",B[x1]);

printf("%6d\n",B[x1]);

}

sort函数:

参数:A[], n1;

数据传递:A[]导入a[N],然后导出,n1导入n的值

函数代码及相关说明:

#include

void sort(int A[],int n1)

将数组A的元素按从下到大顺序排序

{

int x,y,z;

for(x=0;x

for(y=0;y

{

if(A[y]>A[y+1])

{

z=A[y];

A[y]=A[y+1]; 冒泡算法

A[y+1]=z;

}

}

}

p_s函数:

参数:k

代码及相关说明:

#include

void p_s(int k)

{

int i;

for(i=1;i<=k;i++) 函数作用:连续输出k个'*'

printf("*");

}

2.4 开发日志

程序开发从构思到完成共历时二十天左右,基本过程如下:

6.1——6.4 开始基本构思,考虑大体的程序算法,并分段编写、调试部分程序。

6.5——6.7 编写主要程序,并且不断调试,直至达到了最基本的折半法演示功能。

图片如下:

6.8——6.10 完善演示功能,加入更多的描述性语句和控制语句,使程序基本达到了如今程序演示折半法的效果。如图示:

6.11——6.13 加入了程序说明模块和程序退出模块,完善了程序的引导性说明信息,完善程序的可操

作性。

6.14 接受同学的意见,加入了进程选择模块,使程序可以多次演示。加入system语句,使演示过程中可以暂停,使演示效果优化。

6.15 完善源代码,将部分程序从主函数剥离,写进子函数,将程序工程变为多文件工程,增加头文件,使程序更易维护。

6.16 总体调试检查程序。

6.17 完成开发报告。

3 程序调试及运行3.1 程序运行结果

程序开始运行:

排序模块结束:

多次执行折半查找及显示模块:

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语言程序设计大作业报告模板

《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语言大作业实验报告

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

目录 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语言程序大作业.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语言大作业设计-

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语言大作业报告范文

学院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语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

C语言大作业(仅供参考)

实验综合练习一 打印万年历 (1)已知公元1年1月1日是星期一,计算输入的年月日是星期几?编程如下: #include void main() { int i,year,month,day,day_of_year,day_of_month; long sumday=0; printf("请先输入年、月、日,中间以空格或换行符间隔:\n"); scanf("%ld%ld%ld",&year,&month,&day); for(i=1;i<=year-1;i++) { if(i%400==0||i%100!=0&&i%4==0) day_of_year=366; else day_of_year=365; sumday=sumday+day_of_year; } for(i=1;i<=month-1;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) day_of_month=31; else if(i==4||i==6||i==9||i==11) day_of_month=30; else if(i==2) { if(year%400==0||year%100!=0&&year%4==0) day_of_month=29; else day_of_month=28; } sumday=sumday+day_of_month; } sumday=sumday+day; i=sumday%7; if(i==0) i=7; printf("%ld年%ld月%ld日是星期%d\n",year,month,day,i); } 为了使输出的星期为大写且将星期7变成星期天,可作如下改动:#include void main()

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语言实验100题06

第六次CH1005 #include int main() { int i,a[500]={0},n,*p,j=0,k=0; scanf("%d",&n); for(i=0;i

{ int n; char a[500],b[500]={'\0'},*p1,*p2; gets(a); scanf("%d",&n); p1=a;p2=b; for(p1=p1+n;*p1!='\0';p1++,p2++) *p2=*p1; puts(b); return 0; } #include #include int main() { char str1[50],str2[20]; int m,length; gets(str1); scanf("%d",&m); if((strlen(str1)-m+1)>=20) { printf("ERROR\n"); }else { for(int i=m;str1[i]!='\0';i++) { str2[i-m]=str1[i]; } str2[i-m]='\0'; printf("%s\n",str2); } return 0; } CH1011 #include

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语言大作业(图书管理)

c语言图书管理系统 主要功能: 1. 新进图书基本信息的输入。 2. 显示全部记录 3. 按图书名称查询图书基本信息。 4. 根据图书名称对撤消的图书信息进行删除。 5. 按图书名称从小到大排序。 6. 统计某价格以上的图书数量。 7. 列出所有未借出去的图书信息。 基本信息:图书编号、图书名称、单价、作者、存在状态、借书人姓名、性别、学号等 #include #include #include #include typedef int BOOL; typedef struct bookinfo { char number[15];/*产品编号*/ char name[30];/*产品名称*/ float price;/*单价*/ char auther[20];/*作者*/ BOOL isExit;/*存在状态*/ char lendername[20];/*借书人姓名*/ char lendersex[2];/*借书人性别*/ char lendernum[15];/*借书人学号*/ }BOOKINFO; void menu() { printf("\n\n\n\n\n\n\n"); printf("\t\t\t图书管理系统\n"); printf("\t\t\t1:新进图书基本信息的输入\n"); printf("\t\t\t2:显示全部记录\n");

printf("\t\t\t3:根据图书名称查询图书基本信息\n"); printf("\t\t\t4:根据图书名称对撤销的图书信息进行删除\n"); printf("\t\t\t5:按照图书名称从小大到排序\n"); printf("\t\t\t6:统计某价格以上的图书数量\n"); printf("\t\t\t7:列出所有未借出去的图书信息\n"); printf("\t\t\t8:退出\n"); } void choice_1_input_new()/*输入新进的图书信息*/ { char choice; FILE *p; BOOKINFO newbook; system("cls"); while(1) { printf("输入图书编号:"); gets(newbook.number); printf("输入图书名称:"); gets(https://www.wendangku.net/doc/0e16821521.html,); printf("输入图书单价:"); scanf("%f",&newbook.price); while(getchar()!='\n'); printf("输入图书的作者:"); gets(newbook.auther); printf("输入借书人姓名:"); gets(newbook.lendername); printf("输入借书人性别:"); gets(newbook.lendersex); printf("输入借书人学号:"); gets(newbook.lendernum);

西工大C语言POJ作业

T051.合并字符串 #include #include #include int main() { char a[200],b[100]; gets(a); gets(b); strcat(a,b); puts(a); return 0; } T052.字符串排序

#include #include void sort(char s[10][11]) { int i,j; char t[11]; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(strcmp(s[j],s[j+1])>0) { strcpy(t,s[j+1]); strcpy(s[j+1],s[j]); strcpy(s[j],t); } } int main() { char a[10][11],i; for(i=0;i<10;i++) scanf("%s",a[i]); sort(a); for(i=0;i<10;i++) printf("%s ",a[i]);

printf("\n"); return 0; } T053.特殊要求字符串 #include #include int main() { char s[100],a[100],t; int len,l,i,j; gets(s); len=strlen(s); l=len/2; for(i=0;i

C语言大作业

学院

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

1 摘要 1.1 设计题目 A题算法型:折半查找算法演示程序 B题空间桁架结构节点位移求解 1.2 设计内容 A题: 本程序是一个演示折半查找算法的演示程序。当用户输入查找数据表列和要查找的数据时,程序会演示折半法查找该数的详细过程,并且支持多次查找、错误提示等功能。 B题: 空间桁架结构节点位移求解 1.3 开发工具 Code Blocks 12.11(内置MinGW) 1.4 应用平台 Windows 7 64位 2 详细设计 2.1 程序结构 A题: 程序功能模块: 本程序主要包含六大模块:程序说明模块、输入模块、排序模块、折半法查找模块、选择模块和程序

退出模块。 工程文件结构: 本程序的工程含有6个文件,其中main.cpp、print_stars.cpp、judge.cpp、sort.cpp、putout.cpp5个cpp 文件和include.h1个头文件(参见下图),两者共同存在于工程“折半法查找演示程序”中。其中main.cpp 文件包含了程序的主体部分,程序说明模块、输入、排序、折半查找、选择、程序退出模块按线性排列。其中输入、排序模块执行一次,这般查找、选择模块可多次执行,直到程序退出模块执行。 六大模块说明: (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文件中,参见下文)

2015年西工大C语言上机考试题库 全

1.1:2:3 2.一堆8 3.8的次数 4.A*B 5.N边形面积 6.参加竞赛 7.草坪喷水 8.插入排序 9.查找 10.车牌号 11.成绩转化 12.大数>> (见NOJ) 13.大写变小写 14.到底星期几 15.等比数列 16.找到正整数符合要求 17、韩信点兵 18.回文字符串 鸡的体重 计算数据整数部分 加密 阶乘 恐怖水母 卡片 快速排序 两人三足 逆序输出 偶数和 三角形面积 士兵移动 输出位数

数列 数字加密 数组元素和 水仙花数 提取字符串 添加行号 舞伴配对 相乘后位数相加 销售记录 星期几 星座 幸运数 学号 循环移位 月份天数 月份转换英语 运费 字符串替换 字符输出 总分最高 最大公约数 最大值最小值 最小公倍数 左下角

#include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } } } } } return 0; }

西北工业大学 程序设计大作业

学院××××学院班级××××××××学号××××××××姓名×××

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

1 摘要 1.1 设计题目 算法型大作业题目:编写七种排序算法的演示程序。 1.2 设计内容 编写快速排序、插入排序、选择排序、冒泡排序、堆排序、归并排序、基数排序函数,通过主函数调用以实现七种排序算法的演示。 1.3 开发工具 Visual C++ 6.0 1.4 应用平台 Windows 2000/XP/Vista 32位 2 详细设计 2.1 程序结构 程序的整体结构与流程见下图所示。 程序运行时在主菜单中输入序号选择排序方法或选择结束程序,当进行某种排序方法后,在主函数中输入待排数据个数和待排数据,通过调用对应的排序函数实现排序并输出。该排序结束后再次进入主函数,通过循环重复上述操作。其中,主函数中将数组地址和待排序数据个数传递给排序函数,在排序函数中实现排序功能。

2.2 主要功能 函数的功能为对快速排序、插入排序、选择排序、冒泡排序、堆排序、归并排序、基数排序算法的演示。 主函数:程序运行时,可使运行者根据提醒输入相关操作,从而进入不同的排序方法或者退出。 快速排序函数:根据快速排序的算法,最后输出 插入排序函数:根据插入排序的算法,最后输出 选择排序函数:根据选择排序的算法,最后输出 冒泡排序函数:根据冒泡排序的算法,最后输出 堆排序函数:根据堆排序的算法,最后输出 归并排序函数:根据归并排序的算法,最后输出 基数排序函数:根据基数排序的算法,最后输出

西工大C语言程序作业

第2季:循环第1题 1.完全数 #include int main() {int m,i,j,s;

for(m=6;m<1000;m++) {s=1; for(i=2;i

2.迭代求根 #include #include int main() { float x0,x1,a; scanf("%f",&a); x1=a/2; do { x0=x1;x1=(x0+a/x0)/2; } while(fabs(x0-x1)>=0.00001); printf("%.5f\n",x1); return 0; } 第3题

Time 1000MS Limit 10000KB Memory Limit Descripti 请编写程序,用二分法求下面方程在(-10,10)之间的根:on Input输入区间数据为实型、用空格隔开输出均。 Output输出根为实型,保留两位小数。 -10 10 Sample Input Sample 2.00 Output 3.二分求根 #include #include int main() { float x0,x1,x2,f0,f1,f2; printf("请输入x1,x2的值:"); scanf("%f%f",&x1,&x2); f1=2*x1*x1*x1-4*x1*x1+3*x1-6; f2=2*x2*x2*x2-4*x2*x2+3*x2-6; do

西北工业大学C语言第一套测试题

综合测试题1 一、选择题(单选2分×12,共24分) 1. 下列不合法的C语言常量是D。 A) ?\101? B) 123L C) 0x FF D) -e8 2. 若有定义:int a=123,b=456;long sum; 下列语句不能正确求解a、b之积的为C 。 A) sum=(long)(a)*(long)b; B) sum=(long)a*b; C) sum=(long)(a*b); D) sum=1.0*a*b; 3. 不能正确表示“a为奇数”的逻辑表达式为C。 A) a%2= =1 B) a%2 C) a%2= =0 D) !(a%2= =0) 4. 若有定义:int a=3,b=2,c=1,d;float x=2.3,y=1.0; 下列哪一组C表达式的值是不相同的C。 A) a%b B) (int)x>b C) d=c*2 D) 67-?A? a/b c/b a- =1 d=c++,c++ d=x—c d=a>b>c b&&c+1 --a 5.若有定义int m=12,n=4;float x=8,y=3;下列输出函数中存在格式符不匹配现象的是D。 A) printf(“%d%s%d\n”,m>n?m:n,“>”,m>n?n:m); B) printf(“%d,%e”,m/n,x/y); C) printf(“%f,%ld”,m/5.0,(long)(x/y)); D) printf(“%d,%d”,m*n,(int)x/y); 6. 若运行时输入:12345678↙,则下列程序运行结果为B。 main( ) ﹛int a,b; scanf(“%2d%*2d%3d”,&a,&b); printf(“%d\n”,a+b); ﹜ A) 46 B) 579 C) 5690 D) 出错 7. 循环语句for(i=0,j=8;i<=j;i++,j--)printf(“*”);的循环次数为B。 A) 4 B) 5 C) 9 D) 死循环 8. 若有定义:int c=0,i=0;char s[]= “How do you do”; 执行语句:while(s[i]){c+=s[i]>=97;i++;}后,变量C的值为 D 。 A)14 B)13 C)12 D)9

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语言大作业

C语言大作业题目 1电话簿管理程序 存储的数据包括:人名、工作单位、电话号码和E-mail地址等。程序要求具有如下功能: ①加入一个新电话号码; ②删除一个电话号码; ③显示保存的所有电话号码。 ④修改功能; ⑤排序功能,包括按照电话号码排序和按照姓名字母序排列; ⑥查询功能,包括按人名查询电话号码和按电话号码查询人名。 ⑦保存信息到文件。 ⑧从文件读取信息。 课程设计要求: 程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。用户选用哪条功能,就调用哪项功能。 2班级同学信息管理程序 存储的数据包括:姓名,学号,宿舍,QQ号码和电话号码等。程序要求具有以下功能: ①加入一个同学的记录; ②删除一个同学的记录; ③显示所有同学的记录。 ④排序功能,包括按照学号排序和按照姓名字母序排序显示所有同学的纪录。 ⑤查询功能,包括按学号查询同学的信息或者其他。 ⑥修改功能。 ⑦保存信息到文件。 ⑧从文件读取信息。 课程设计要求: 程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。用户选用哪条命令,就调用哪项功能。 3职工信息管理系统 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。提供以下功能: ①加入一个职工的记录; ②删除一个职工的记录; ③显示所有职工的记录。 ④排序功能,包括按照学号排序和按照姓名字母序排序显示所有职工的纪录。 ⑤查询功能,包括按工号或姓名查询职工的信息或者其他。 ⑥修改功能。 ⑦保存信息到文件。 ⑧从文件读取信息。 课程设计要求:

程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。用户选用哪条命令,就调用哪项功能。 4图书信息管理系统 图书信息包括:图书号、书名、作者名、分类号、出版单位、出版时间、价格等。 提供以下功能: ①加入一本图书; ②删除一本图书; ③显示所有图书。 ④排序功能,包括按照书名排序所有图书。 ⑤查询功能,包括按书名查询图书。 ⑥修改功能 ⑦保存信息到文件。 ⑧从文件读取信息。 课程设计要求: 程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。用户选用哪条命令,就调用哪项功能。 5图书借阅管理系统 图书信息包括:图书名称、图书编号、单价、作者、存在状态、借书证号、姓名、性别。提供以下功能: ①新进图书基本信息的输入。 ②显示所有图书信息。 ③对撤消图书信息的删除。 ④图书基本信息的查询。 ⑤办理借书手续。 ⑥办理还书手续 ⑦保存信息到文件。 ⑧从文件读取信息。 课程设计要求: 程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。用户选用哪条命令,就调用哪项功能。 6实验设备管理系统 设备信息包括:设备编号,设备名称,设备价格,设备所属实验室。 提供以下功能: ①加入一个设备; ②报废一个设备; ③显示所有设备。 ④排序功能,包括按照编号排序所有设备。

相关文档