当前位置:首页 » 编程语言 » c语言课程大型设计案例
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言课程大型设计案例

发布时间: 2022-05-12 07:44:25

A. c语言设计案例张传学P196编写结构体链表

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

typedefstructNode
{
charname[20];
charphone[20];
charcell[20];
charmail[50];
structNode*next;
}Node;

voidshow(Node*h)
{
Node*p;
for(p=h;p!=NULL;p=p->next)
{
printf("%s,%s,%s,%s ",p->name,p->phone,p->cell,p->mail);
}
}


Node*Insert(Node*h)
{
Node*p=(Node*)malloc(sizeof(Node));
scanf("%s%s%s%s",p->name,p->phone,p->cell,p->mail);
if(h==NULL)
{
p->next=NULL;
}
else
{
p->next=h;
}
returnp;
}

Node*find(Node*h,char*name)
{
Node*r=NULL;
while(h)
{
if(strcmp(h->name,name)==0)
{
r=h;
break;
}
h=h->next;
}

returnr;
}
voiddestroy(Node*h)
{
Node*p;
while(h)
{
p=h;
h=h->next;
free(p);
}
}
intmain()
{
Node*h=NULL;
intc=-1;

do
{
printf("chooseafunction: ");
printf("1:insertanewnode ");
printf("2:printallnodes ");
printf("3:findanode ");
printf("4:exit ");

scanf("%d",&c);
switch(c)
{
case1:
h=Insert(h);
break;
case2:
show(h);
break;
case3:
{
Node*r;
charname[20];
scanf("%s",name);
r=find(h,name);
if(r)
printf("%s,%s,%s,%s ",r->name,r->phone,r->cell,r->mail);
elseprintf("notfind ");
break;
}
case4:
break;
default:
printf("unknowcommand ");
break;
}
}while(c!=4);

destroy(h);
return0;
}

B. 请问C语言课程设计报告摘要怎么写,是指什么啊,举个例子吧

摘要:又称概要、内容提要。摘要是以提供文献内容梗概为目的,不加评论和补充解释,简明、确切地记述文献重要内容的短文。其基本要素包括研究目的、方法、结果和结论。具体地讲就是研究工作的主要对象和范围,采用的手段和方法,得出的结果和重要的结论,有时也包括具有情报价值的其它重要的信息。


C语言课程设计,应该主要根据你的设计内容,简要地提炼出设计的背景,功能,意义等。最后给出关键字。下面是正文。


例如:

摘要(标题居中)

近年来随着计算机在社会领域的不断发展,程序设计 。。。。。C语言。。。。(这里讲你做的东西的背景。)

本课程设计完成了什么。。。。(功能)

其意义是。。。。(意义)


关键词: C语言,其他


C. c语言程序综合课程设计一般案例有哪些急求……

如果有一定的基础的话,一楼的说的不错先学学“数据结构”的相关知识!算法在程序设计中有很“重要”的作用……其实学c主要是学编程的思想!你要是就一个个的死学案例,也只是会设计类似的东西!不会有创新,甚至有的地方会根本搞不明白。不知道你基础怎么样?如果不是很好,就复习《数据结构吧》清华出版社那本严蔚敏的数据结构(C语言版)。比较容易理解,最好还是要看些英文的原版数据结构的书。

当然如果你数据结构学得很好的话,比如你就是想通过一些案例的开发,来增强自己的实战能力,你可以深入学习你说的那本书,其实你只要仔细看一下就会发现,其实案例设计的教程中文版的根本没什么创新都停留在以下几个“经典问题”上,不同的版本也没什么太多的区别就是重印一下而已!这本书作为对编程基本功的训练不错!

案例一:贪吃蛇游戏

案例二:计算器

案例三:黑白棋游戏

案例四:迷宫问题

案例五:扫地雷游戏

案例六:速算24

案例七:数据结构CAI系统

案例八:进度调度

案例九:存储管理分区分配算法

案例十:通讯录

案例十一:学生成绩管理

案例十二:工资管理

案例十三:图书借阅管理

案例十四:教师工作量计算

相关下载地址:

D. C语言设计案例张传学P82编写如图123圣诞树

为了更方便的设计圣诞树的形状,我用的是设计递归函数的方法。程序如下:

#include <stdio.h>

#include <math.h>

void shu(int n)

{

int i;

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

{

printf(" ");

}

for (i = 1; i <= 2 * n - 1;i++)

{

printf("*");

}

printf(" ");

if (n != 6)

shu(n + 1);

}

void gen(int n)

{

int i;

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

{

printf(" ***** ");

}

}

void main()

{

shu(1);

shu(2);

gen(5);

}

仿真结果如图1。

E. c语言课程设计实例

#include<iostream.h>
void main()
{
char a[12][9]={{'j','a','n','u','a','r','y'},{'F','e','b','r','u','a','r','y'},{'m','a','r','c','h'},{'a','p','r','i','l'},{'m','a','y'},{'j','u','n','e'},{'j','u','l','y'},{'a','u','g','u','s','t'}, {'s','e','p','t','e','m','b','e','r'},{'o','c','t','o','b','e','r'},{'n','o','v','e','m','b','e','r'},{'D','e','c','e','m','b','e','r'}},(*p)[9]=a;
int b;
cout<<"输入月份:";
cin>>b;
cout<<"该月的英文单词是:"<<*(p+b-1)<<endl;
}

程序写到这分上,我都想自杀了.......用字符串应该会简单些,可是我没想好..只能这样了..

F. 与C语言课程设计案例精编的案例十一有类似的程序没

应你的要求改下
include<bios.h>
#include<dos.h> /*头文件*/
#include<conio.h>
#include<ctype.h>
#include<process.h>
#include<slib.h>
#include<sio.h>
#include<sing.h>

#define NULL 0
#define ESC 0x001b /* 退出 */
#define F1 0x3b00 /* 查看帮助信息,调用HelpMassage()函数 */
#define F2 0x3c00 /*输入学生成绩*/
#define F3 0x3d00 /*按学号查找*/
#define F4 0x3e00 /*按姓名查找*/
#define F5 0x3f00 /*列出所有学生成绩*/
#define F6 0x4000 /*统计*/

suct stuType /*定义结构体变量*/
{
char NO[11]; /*学号长度为10*/
char XM[10];
float CJ[4]; /*包含4门成绩*/
};

/*-------------2-------------*/
int JY_NO(char *stu_num,FILE *fp) /*检验学号的正确性*/
{ suct stuType stud;
int NO;
char *p=stu_num;
if(scmp(stu_num,"#")==0) return 1; /*若输入"#"返回真值,不再循环输入*/
while(*p!='\0') /*学号必须是数字,否则返回重新输入*/
{ NO=(int)*p;
if(NO<48||NO>57)
{ puts("\t\t\t非法学号!请重新输入!\n");
return 0;
}
else p ; /*指针加1*/
}
if(slen(stu_num)!=10) /*若学号长度不为10,则返回重新输入*/
{ puts("\t\t\t学号长度不对!\n");
return 0;
}
if(getchar()!='\n') /*若学号后面的字符不是回车符,则学号长度大于10*/
{ printf("\t\t\t学号长度大于10个!请重新输入!\n");
do{}while(getchar()!='\n'); /*用getchar接收多余的字符*/
return 0;
}

else
{
rewind(fp); /*使文件指针指向头*/
while(!feof(fp)) /*若文件指针未到结尾,就继续执行下面的循环,feof遇到文件结束符返回非零值,否则返回0*/
{ fread(&stud,sizeof(suct stuType),1,fp); /*读取一定长度的数据*/
if(scmp(stu_num,stud.NO)==0) /*学号的唯一性*/
{ printf("\t\t\t学号重复,请重新输入!\n");
printf("\t\t\t该学生成绩如下:\n");
printf("\t\t\t语文:%.1f\n",stud.CJ[0]);
printf("\t\t\t数学:%.1f\n",stud.CJ[1]);
printf("\t\t\t英语:%.1f\n",stud.CJ[2]);
printf("\t\t\t总评:%.1f\n",stud.CJ[3]);
return 0;
}
}
}
return 1;

}

/*-------------3-------------*/
int JY_NO2(char *stu_num) /*检验学号*/
{ int NO;
char *p=stu_num;
if(scmp(stu_num,"#")==0)return 1; /*若输入“#”,则返回真值结束*/
if(slen(stu_num)!=10) /*学号长度为10*/
{ puts("\t\t\t学号长度不对!\n");
return 0;
}
while(*p!='\0') /*学号必须用数字,若包含有字母,或其它字符则返回假值重新输入*/
{ NO=(int)*p;
if(NO<48||NO>57)
{ puts("\t\t\t非法学号!请重新输入!\n");
return 0;
}
else p ; /*指针加1*/
}
if(getchar()!='\n') /*检验学号长度是否大于10,并把多余的字符去掉*/
{ printf("\t\t\t学号长度大于10个!请重新输入!\n");
do{}while(getchar()!='\n');
return 0;
}
return 1;
}

/*-------------4-------------*/
int JY_XM(char *stu_XM) /*检验姓名*/
{ int PD;
char *p;
p=stu_XM;
while(*p!='\0') /*姓名只能用中文*/
{
PD=(int)*p;
if(PD>0)
{ puts("\t\t\t姓名只能用中文,请重新输入!\n");
return 0;
}
else p ; /*使指针加1,指向下一汉字*/
}
if(getchar()!='\n') /*姓名长度不得大于5个*/
{ printf("\t\t\t姓名长度大于5个!请重新输入!\n");
do{}while(getchar()!='\n');
return 0;
}
return 1; /*字符串全为汉字返回真*/

}

/*-------------5-------------*/
int JY_CJ(float stu_CJ) /*学生成绩只能在0~100之间*/
{
if(stu_CJ<0||stu_CJ>100)
{ printf("\t\t\t输入错误,成绩只能在0~100之间!\n");
return 0;
}
return 1;
}

/*-------------6-------------*/
void CreatFile() /*输入文件*/
{ FILE *fp;
suct stuType stu,stu0={"","",}; /*对stu0先赋值*/
fp=fopen("stu.dat","wb "); /*打开或创建一个二进制文件,打开时将原来的内容删除*/
if(fp==NULL)
{ printf("\t\t\t文件打开失败!\n\t\t\t按任意键返回...");
getch();
return;
}
else
{ while(1)
{ stu=stu0;
do{ printf("\n\t\t\t请输入学号:"); /*输入学号并检验其正确性*/
scanf("s",stu.NO);
}while(!JY_NO(stu.NO,fp));
if(scmp(stu.NO,"#")==0)break;
do{ printf("\n\t\t\t请输入姓名:"); /*输入姓名并检验其正确性*/
scanf("s",stu.XM);
}while(!JY_XM(stu.XM));
do{ printf("\n\t\t\t请输入语文成绩:"); /*输入成绩并检验其正确性*/
scanf("%f",&stu.CJ[0]);
}while(!JY_CJ(stu.CJ[0]));
do{ printf(
"\n\t\t\t请输入数学成绩:"); /*同上*/
scanf("%f",&stu.CJ[1]);
}while(!JY_CJ(stu.CJ[1]));
do{ printf("\n\t\t\t请输入英语成绩:");
scanf("%f",&stu.CJ[2]);
}while(!JY_CJ(stu.CJ[2]));
do{ printf("\n\t\t\t请输入总评成绩:");
scanf("%f",&stu.CJ[3]);
}while(!JY_CJ(stu.CJ[3]));
fwrite(&stu,sizeof(suct stuType),1,fp); /*写文件*/
}

}
fclose(fp); /*关闭文件*/

}

/*-------------7-------------*/
void Search_Xuehao() /*按学号查询*/
{ FILE *fp;
int flag;
suct stuType stu,stud;
fp=fopen("stu.dat","rb");
if(fp==NULL) /*若文件打不开则输出下面的信息*/
{ printf("\t\t\t文件打开失败!\n\t\t\t按任意键返回...");
getch();
return;
}
else
{ do{ puts("\n\t\t\t输入“#”结束查询");
do{ printf("\t\t\t请输入要查询的学号:");
scanf("s",stu.NO);
}while(!JY_NO2(stu.NO));
if(scmp(stu.NO,"#")==0)break; /*若输入“#”则结束循环*/
flag=0;
rewind(fp);
while(fread(&stud,sizeof(suct stuType),1,fp)) /*检查文件指针结束*/
{ if(scmp(stu.NO,stud.NO)==0) /*比较学号*/
{ puts("\t\t\t该学生成绩如下:");
printf("\t\t\t学号:%s\n",stud.NO);
printf("\t\t\t姓名:%s\n",stud.XM);
printf("\t\t\t语文:%.1f\n",stud.CJ[0]);
printf("\t\t\t数学:%.1f\n",stud.CJ[1]);
printf("\t\t\t英语:%.1f\n",stud.CJ[2]);
printf("\t\t\t总评:%.1f\n",stud.CJ[3]);
flag=1; /*记录学号是否查到*/
}
}
if(flag==0)puts("\t\t\t无此学号!");
}while(scmp(stu.NO,"#")!=0);

}
fclose(fp); /*关闭文件*/

}

/*-------------8-------------*/
void Search_Xingming() /*按姓名查找*/
{ FILE *fp;
int flag=0;
suct stuType stu,stud;
fp=fopen("stu.dat","rb");
if(fp==NULL)
{ printf("\t\t\t文件打开失败!\n\t\t\t按任意键返回...");
getch();
return;
}
else
{ do{
do{ printf("\t\t\t请输入要查询的学生姓名:");
scanf("s",stu.XM);
}while(!JY_XM(stu.XM));
rewind(fp); /*文件指针指向头*/
while(fread(&stud,sizeof(suct stuType),1,fp))
{ if(scmp(stu.XM,stud.XM)==0) /*比较姓名是否相同*/
{ puts("\t\t\t该学生姓名如下:");
printf("\t\t\t学号:%s\n",stud.NO);
printf("\t\t\t姓名:%s\n",stud.XM);
printf("\t\t\t语文:%.1f\n",stud.CJ[0]);
printf("\t\t\t数学:%.1f\n",stud.CJ[1]);
printf("\t\t\t英语:%.1f\n",stud.CJ[2]);
printf("\t\t\t总评:%.1f\n",stud.CJ[3]);
flag=1; /*记录姓名是否被查到*/
}
}
if(flag==0)puts("\n\t\t\t无此学生!");
puts("\t\t\t是否继续(y--继续,其他返回)?");
}while(getch()=='y');
}
fclose(fp);
/* puts("\t\t\t请按任意键继续...");*/
/* getch();*/

}

/*-------------9-------------*/
int ListFile(void) /*输出文件,列出所有学生成绩*/
{ FILE *fp;
int REC=0; /*记录学生人数*/
suct stuType stu;
fp=fopen("stu.dat","rb");
if(fp==NULL)
{ printf("\t\t\t文件打开失败!\n\t\t\t按任意键返回...");
getch();
return 1;
}
else{ printf("\t\t\t学生成绩如下:\n");
printf("\t\t\t学号\t\t姓名\t语文\t数学\t英语\t总评\n");
rewind(fp);
while(fread(&stu,sizeof(suct stuType),1,fp))
{ /*每读取一个长度的数据就输出*/
printf("\t\t\t%s",stu.NO);
printf("\t%s",stu.XM);
printf("\t%.1f",stu.CJ[0]);
printf("\t%.1f",stu.CJ[1]);
printf("\t%.1f",stu.CJ[2]);
printf("\t%.1f",stu.CJ[3]);
printf("\n");
REC ;
if(REC ==0) /*每输出20个学生成绩,停一下*/
{ printf("\t\t\t请按任意键继续...\n");
getch();
}
}
}
fclose(fp); /*关闭文件*/
printf("\t\t\t请按任意键继续...");
getch();

}

/*-------------10-------------*/
void Statistics() /*统计及格和优秀人数*/
{ FILE *fp;
int REC=0,pass[4]={0},good[4]={0}; /*REC--记录个数,即人数,pass--及格人数,good--优秀人数*/
float highest[4]={0},score[4]={0}; /*highest--最高分,score--总分*/
suct stuType stu;
fp=fopen("stu.dat","rb");
if(fp==NULL)
{ printf("\t\t\t文件打开失败!\n\t\t\t按任意键返回...");
getch();
return;
}
else { rewind(fp);
while(fread(&stu,sizeof(suct stuType),1,fp))
{ REC ;
score[0]=score[0] stu.CJ[0]; /*语文*/
if(stu.CJ[0]>=60)pass[0] ;
if(stu.CJ[0]>=80)good[0] ;
if(highest[0]<stu.CJ[0])highest[0]=stu.CJ[0];
score[1]=score[1] stu.CJ[1]; /*数学*/
if(stu.CJ[1]>=60)pass[1] ;
if(stu.CJ[1]>=80)good[1] ;
if(highest[1]<stu.CJ[1])highest[1]=stu.CJ[1];
score[2]=score[2] stu.CJ[2]; /*英语*/
if(stu.CJ[2]>=60)pass[2] ;
if(stu.CJ[2]>=80)good[2] ;
if(highest[2]<stu.CJ[2])highest[2]=stu.CJ[2];
score[3]=score[3] stu.CJ[3]; /*总评*/
if(stu.CJ[3]>=60)pass[3] ;
if(stu.CJ[3]>=80)good[3] ;
if(highest[3]<stu.CJ[3])highest[3]=stu.CJ[3];
}
if(REC==0) /*可以防止记录为0是REC作除数而造成的错误*/
{ printf("\t\t\t未输入学生记录!按任意键返回...");
getch();
return;
}
else{
printf("\t\t\t\t 语文\t 数学\t 英语\t 总评\n"); /*输出统计信息*/
printf("\t\t\t平均分: %.1f\t %.1f\t %.1f\t %.1f\n",score[0]/REC,score[1]/REC,score[2]/REC,score[3]/REC);
printf("\t\t\t最高分: %.1f\t %.1f\t %.1f\t %.1f\n",highest[0],highest[1],highest[2],highest[3]);
printf("\t\t\t优秀人数:%d\t %d\t %d\t %d\n",good[0],good[1],good[2],good[3]);
printf("\t\t\t及格人数:%d\t %d\t %d\t %d\n",pass[0],pass[1],pass[2],pass[3]);
}
}
fclose(fp);
printf("\n\t\t\t请按任意键继续...");
getch();

}

/*-------------11-------------*/
void HelpMessage()
{ clrscr();
printf("\n\n\n\n\n 此系统是应老师所布置的作业编制而成,该系统具有存贮学生数据,按学号、姓名查询,列出学生成绩和统计功能。\n \n 使用方法:系统输入数据后,将在当前目录中建立一个名为stu.dat文件,用于保存输入的数据。学号输入只能用数字输入,并且学号只能是10位。姓名输入符合中国人的姓名,只能用中文,且最长为5个汉字。\n 此程序在Turbo C2.0下运行通过\n\n 由于是初学者,水平有限此系统还有许多不够完整和严密性,敬请指正!");
getch();
}

/*-------------12-------------*/
int GetKey(void) /*此函数返回一个按键的数值*/
{ int key;
key=bioskey(0); /*bioskey为调用BIOS键盘接口*/
if(key<<8) /*位移*/
{
key=key&0x00ff;

}
return key; /*返回按键*/
}

/*-------------13-------------*/
void main()
{ int key;
suct date d; /*定义时间结构体*/
geate(&d); /*读取系统日期并把它放到结构体d中*/
clrscr(); /*清除屏幕*/
printf("\n\n\n\n\n");
printf("\t\t\t****************************\n"); /*版本信息*/
printf("\t\t\t 学生成绩管理系统1.0 \n");
printf("\t\t\t****************************\n");
printf("\t\t\t 制作群: 404 1工作室 \n");
printf("\t\t\t 指导老师:--- \n");
printf("\t\t\t 制作时间:2004年5月 \n");
printf("\t\t\t****************************\n");
printf("\t\t\t请按任意键继续...");
/*while(!kbhit());*/
getch(); /*从键盘读取一个字符,但不显示于屏幕*/
system("cls"); /*调用DOS的清屏函数,TC中可用clrscr代替*/
while(1) /*主菜单*/
{
printf("\n\n\n\n\n");
printf("\t\t\t************************************\n");
printf("\t\t\t**\tF1 --帮助 **\n");
printf("\t\t\t**\tF2 --输入数据并存入文件 **\n");
printf("\t\t\t**\tF3 --根据学号查询成绩 **\n");
printf("\t\t\t**\tF4 --根据姓名查询成绩 **\n");
printf("\t\t\t**\tF5 --输出文件内容 **\n");
printf("\t\t\t**\tF6 --统计及格和优秀人数 **\n");
printf("\t\t\t**\tESC--退出系统 **\n");
printf("\t\t\t************************************\n");
printf("\n\t\t\t请输入选项\t\t%d年%d月%d日\n\n",d.da_year,d.da_mon,d.da_day); /*提示信息,并显示当前系统日期*/
key=GetKey(); /*调用自定义函数,读取一个键*/
switch(key)
{
case F1: HelpMessage(); break;
case F2: CreatFile(); break;
case F3: Search_Xuehao(); break;
case F4: Search_Xingming();break;
case F5: ListFile(); break;
case F6: Statistics(); break;
case ESC:exit(1); break;
/*default: puts("\t\t\t输入错误选项!");
printf("\t\t\t按任意键返回...");
getch();*/
}
clrscr(); /*每执行完一项功能后,自动清屏*/
}

}

CJ[1]>=60)pass[1] ;
if(stu.CJ[1]>=80)good[1] ;
if(highest[1]<stu.CJ[1])highest[1]=stu.CJ[1];
score[2]=score[2] stu.CJ[2]; /*英语*/
if(stu.CJ[2]>=60)pass[2] ;
if(stu.CJ[2]>=80)good[2] ;
if(highest[2]<stu.CJ[2])highest[2]=stu.CJ[2];
score[3]=score[3] stu.CJ[3]; /*总评*/
if(stu.CJ[3]>=60)pass[3] ;
if(stu.CJ[3]>=80)good[3] ;
if(highest[3]<stu.CJ[3])highest[3]=stu.CJ[3];
}
if(REC==0) /*可以防止记录为0是REC作除数而造成的错误*/
{ printf("\t\t\t未输入学生记录!按任意键返回...");
getch();
return;
}
else{
printf("\t\t\t\t 语文\t 数学\t 英语\t 总评\n"); /*输出统计信息*/
printf("\t\t\t平均分: %.1f\t %.1f\t %.1f\t %.1f\n",score[0]/REC,score[1]/REC,score[2]/REC,score[3]/REC);
printf("\t\t\t最高分: %.1f\t %.1f\t %.1f\t %.1f\n",highest[0],highest[1],highest[2],highest[3]);
printf("\t\t\t优秀人数:%d\t %d\t %d\t %d\n",good[0],good[1],good[2],good[3]);
printf("\t\t\t及格人数:%d\t %d\t %d\t %d\n",pass[0],pass[1],pass[2],pass[3]);
}
}
fclose(fp);
printf("\n\t\t\t请按任意键继续...");
getch();

}

/*-------------11-------------*/
void HelpMessage()
{ clrscr();
printf("\n\n\n\n\n 此系统是应老师所布置的作业编制而成,该系统具有存贮学生数据,按学号、姓名查询,列出学生成绩和统计功能。\n \n 使用方法:系统输入数据后,将在当前目录中建立一个名为stu.dat文件,用于保存输入的数据。学号输入只能用数字输入,并且学号只能是10位。姓名输入符合中国人的姓名,只能用中文,且最长为5个汉字。\n 此程序在Turbo C2.0下运行通过\n\n 由于是初学者,水平有限此系统还有许多不够完整和严密性,敬请指正!");
getch();
}

/*-------------12-------------*/
int GetKey(void) /*此函数返回一个按键的数值*/
{ int key;
key=bioskey(0); /*bioskey为调用BIOS键盘接口*/
if(key<<8) /*位移*/
{
key=key&0x00ff;

}
return key; /*返回按键*/
}

/*-------------13-------------*/
void main()
{ int key;
suct date d; /*定义时间结构体*/
geate(&d); /*读取系统日期并把它放到结构体d中*/
clrscr(); /*清除屏幕*/
printf("\n\n\n\n\n");
printf("\t\t\t****************************\n"); /*版本信息*/
printf("\t\t\t 学生成绩管理系统1.0 \n");
printf("\t\t\t****************************\n");
printf("\t\t\t 制作群: 404 1工作室 \n");
printf("\t\t\t 指导老师:--- \n");
printf("\t\t\t 制作时间:2004年5月 \n");
printf("\t\t\t****************************\n");
printf("\t\t\t请按任意键继续...");
/*while(!kbhit());*/
getch(); /*从键盘读取一个字符,但不显示于屏幕*/
system("cls"); /*调用DOS的清屏函数,TC中可用clrscr代替*/
while(1) /*主菜单*/
{
printf("\n\n\n\n\n");
printf("\t\t\t************************************\n");
printf("\t\t\t**\tF1 --帮助 **\n");
printf("\t\t\t**\tF2 --输入数据并存入文件 **\n");
printf("\t\t\t**\tF3 --根据学号查询成绩 **\n");
printf("\t\t\t**\tF4 --根据姓名查询成绩 **\n");
printf("\t\t\t**\tF5 --输出文件内容 **\n");
printf("\t\t\t**\tF6 --统计及格和优秀人数 **\n");
printf("\t\t\t**\tESC--退出系统 **\n");
printf("\t\t\t************************************\n");
printf("\n\t\t\t请输入选项\t\t%d年%d月%d日\n\n",d.da_year,d.da_mon,d.da_day); /*提示信息,并显示当前系统日期*/
key=GetKey(); /*调用自定义函数,读取一个键*/
switch(key)
{
case F1: HelpMessage(); break;
case F2: CreatFile(); break;
case F3: Search_Xuehao(); break;
case F4: Search_Xingming();break;
case F5: ListFile(); break;
case F6: Statistics(); break;
case ESC:exit(1); break;
/*default: puts("\t\t\t输入错误选项!");
printf("\t\t\t按任意键返回...");
getch();*/
}
clrscr(); /*每执行完一项功能后,自动清屏*/
}

}

G. c程序课程设计实例

第一题:
#include <iostream>
using namespace std;
void main()
{ int i, j, k, count=0;
for( i=1; i<=9; i++)
for( j=0; j<=9; j++)
if ( i==j )
continue;
else
for( k=0; k<=9; k++)
if ( k!=i&&k!=j)
{count++;
cout<<i<<j<<k<<ends;
}
cout<<endl;
cout<<"所有这样的三位数个数有:"<<count<<" 个"<<endl;
}
第二题
#include <iostream>
using namespace std;
int fun(char*s,int n)
{
int flag=1;
for(int i=0;i<n;i++)//比较前n个字符是否为*
if(s[i]!='*')
{
flag=0;
break;
}

if(flag==0)
return 0;
else
{
int k=n;
while(s[k]!='\0')//移动到非*字符
{
if(s[k]=='*')
k++;
else
break;

}

int j=0;
while(s[k]!='\0')//向前复制
{
s[n+j]=s[k];
k++;
j++;
}
s[n+j]='\0';

}

return 1;
}
void main()
{
static char str[15];
int m;
cout<<"请输入一个只含*和字母的字符串:"<<endl;
cin>>str;
cout<<"请输入n值:"<<endl;
cin>>m;
fun(str,m);

cout<<str<<endl;
}
第三题
#include "iostream"
#include "string"
#include "list"
#include "cassert"
using namespace std;

/*
编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资由公式计算得到:实付工资=应付工资 - 保险- 税金
*/
struct employee{
string m_num;//编号
string m_name;//姓名
string m_dep;//部门
double m_salary;//应付工资
double m_insurance;//保险
double m_tax;//税金
};

/*
(1)录入:输入职工数据,其中“实付工资”通过计算得到;
(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)
(3) 修改:允许对已经录入的数据重新进行编辑、修改;
(4) 显示:显示全体职工数据;
(5)查询:
a. 输入职工姓名,显示该职工的全部数据;
b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。
(6) 退出程序。
*/

list<employee> emps;

int main(int argc, char argv[])
{
void print(const employee &e);
void input();
void del();
void mod();
void show_all();
void show_name();
void show_dep();
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"<<endl;
int choose=0;
cin>>choose;
assert(!cin.fail());
while (choose!=6)
{
if (choose==1) input();
if (choose==2) del();
if (choose==3) mod();
if (choose==4)
{
int choice=0;
cout<<"请选择操作 1.按姓名查询 2.按部门查询 3.退出:"<<endl;
cin>>choice;
if (choice==1) show_name();
if (choice==2) show_dep();
if (choice==3)
{
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"<<endl;
cin>>choose;
assert(!cin.fail());
continue;
}
}
if (choose==5) show_all();
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cin>>choose;
assert(!cin.fail());
}
return 0;
}

void print(const employee &e)
{
cout<<"编号:"<<e.m_num<<endl;
cout<<"姓名:"<<e.m_name<<endl;
cout<<"部门:"<<e.m_dep<<endl;
cout<<"保险:"<<e.m_insurance<<endl;
cout<<"税金:"<<e.m_tax<<endl;
cout<<"应付工资:"<<e.m_salary<<endl;
cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl;
}

void input()
{
string num,name,dep;
double salary,ins,tax;
cout<<"请输入员工编号:"<<endl;
cin>>num;
cout<<"请输入员工姓名:"<<endl;
cin>>name;
cout<<"请输入员工部门:"<<endl;
cin>>dep;
cout<<"请输入员工保险:"<<endl;
cin>>ins;
assert(!cin.fail());
cout<<"请输入员工税金:"<<endl;
cin>>tax;
assert(!cin.fail());
cout<<"请输入员工应付工资:"<<endl;
cin>>salary;
assert(!cin.fail());
employee temp;
temp.m_dep=dep;
temp.m_insurance=ins;
temp.m_name=name;
temp.m_num=num;
temp.m_salary=salary;
temp.m_tax=tax;
emps.push_back(temp);
cout<<"员工录入操作完毕."<<endl;
}

void del()
{
if (emps.size()==0)
{
cout<<"没有员工记录."<<endl;
return;
}
string name;
bool isfind=false;
cout<<"请输入要删除的员工姓名:"<<endl;
cin>>name;
list<employee>::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
emps.erase(iter);
cout<<"姓名为"<<name<<"的员工记录已删除."<<endl;
return;
}
}
if (!isfind)
{
cout<<"没有找到姓名为"<<name<<"的员工."<<endl;
return;
}
}

void mod()
{
if (emps.size()==0)
{
cout<<"员工记录为空."<<endl;
return;
}
bool isfind=false;
string name;
cout<<"请输入要修改的员工姓名:"<<endl;
cin>>name;
list<employee>::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
cout<<"姓名为"<<name<<"的员工记录已找到."<<endl;
break;
}
}
if (isfind)
{
string num,name,dep;
double tax,ins,salary;
print(*iter);
cout<<endl;
cout<<"请输入新的员工编号:"<<endl;
cin>>num;
cout<<"请输入新的员工姓名:"<<endl;
cin>>name;
cout<<"请输入新的员工部门:"<<endl;
cin>>dep;
cout<<"请输入新的员工保险:"<<endl;
cin>>ins;
assert(!cin.fail());
cout<<"请输入新的员工税金:"<<endl;
cin>>tax;
assert(!cin.fail());
cout<<"请输入新的员工工资:"<<endl;
cin>>salary;
assert(!cin.fail());
iter->m_dep=dep;
iter->m_insurance=ins;
iter->m_name=name;
iter->m_num=num;
iter->m_salary=salary;
iter->m_tax=tax;
cout<<"1 员工记录被成功修改."<<endl;
}
else
{
cout<<"没有找到姓名为"<<name<<"的员工记录."<<endl;
}
}

void show_all()
{
if (emps.size()==0)
{
cout<<"员工记录为空."<<endl;
return;
}
cout<<"显示全体员工数据:"<<endl;
cout<<"--------------------"<<endl;
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
cout<<endl;
print(*iter);
cout<<endl;
}
cout<<"--------------------"<<endl;
}

void show_name()
{
if (emps.size()==0)
{
cout<<"员工记录为空."<<endl;
return;
}
bool isfind=false;
string name;
cout<<"请输入要查询的员工姓名:"<<endl;
cin>>name;
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
cout<<"姓名为"<<name<<"的员工记录已找到."<<endl;
print(*iter);
break;
}
}
if (!isfind)
{
cout<<"没有找到姓名为"<<name<<"的员工."<<endl;
return;
}
}

void show_dep()
{
if (emps.size()==0)
{
cout<<"员工记录为空."<<endl;
return;
}
double isfind=0.00;
double total_salary=0.00;
string dep;
cout<<"请输入要查询的部门名称:"<<endl;
cin>>dep;
cout<<"部门["<<dep<<"]的员工信息:"<<endl;
cout<<"--------------------"<<endl;
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_dep==dep)
{
isfind++;
total_salary+=iter->m_salary;
print(*iter);
cout<<endl;
continue;
}
}
cout<<"--------------------"<<endl;
if (isfind==0)
{
cout<<"没有找到名称为["<<dep<<"]的部门."<<endl;
}
else
{
cout<<"部门["<<dep<<"]工资统计:"<<endl;
cout<<"工资总额:"<<total_salary<<endl;
cout<<"平均工资:"<<total_salary/isfind<<endl;
}
}
好了 我都运行过的

H. 大一c语言课程设计案例取石子游戏

你c语言课程设计案例其实自由性,这个可以按游戏的规则进行都就可以了。

I. 求C语言程序设计实例(200行)

时间函数举例程序分析
2.程序源代码:

#include "stdio.h"
#include "time.h"
void main()
{
time_t lt; /*define a longint time varible*/
lt=time(NULL);/*system time and date*/
printf(ctime(<)); /*english format output*/
printf(asctime(localtime(<)));/*tranfer to tm*/
printf(asctime(gmtime(<))); /*tranfer to Greenwich time*/
}
【程序92】

题目:时间函数举例2

1.程序分析:

2.程序源代码:

/*calculate time*/
#include "time.h"
#include "stdio.h"
main()
{
time_t start,end;
int i;
start=time(NULL);
for(i=0;i<3000;i++)
{
printf("\1\1\1\1\1\1\1\1\1\1\n");
}
end=time(NULL);
printf("\1: The different is %6.3f\n",difftime(end,start));
}
【程序93】

题目:时间函数举例3

1.程序分析:

2.程序源代码:

/*calculate time*/
#include "time.h"
#include "stdio.h"
main()
{
clock_t start,end;
int i;
double var;
start=clock();
for(i=0;i<10000;i++)
{
printf("\1\1\1\1\1\1\1\1\1\1\n");
}
end=clock();
printf("\1: The different is %6.3f\n",(double)(end-start));
}
【程序94】

题目:时间函数举例4,一个猜数游戏,判断一个人反应快慢。(版主初学时编的)

1.程序分析:

2.程序源代码:

#include "time.h"
#include "stdlib.h"
#include "stdio.h"
main()
{
char c;
clock_t start,end;
time_t a,b;
double var;
int i,guess;
srand(time(NULL));
printf("do you want to play it.('y' or 'n') \n");
loop:
while((c=getchar())=='y')
{
i=rand()%100;
printf("\nplease input number you guess:\n");
start=clock();
a=time(NULL);
scanf("%d",&guess);
while(guess!=i)
{
if(guess>i)
{
printf("please input a little smaller.\n");
scanf("%d",&guess);
}
else
{
printf("please input a little bigger.\n");
scanf("%d",&guess);
}
}
end=clock();
b=time(NULL);
printf("\1: It took you %6.3f seconds\n",var=(double)(end-start)/18.2);
printf("\1: it took you %6.3f seconds\n\n",difftime(b,a));
if(var<15)
printf("\1\1 You are very clever! \1\1\n\n");
else if(var<25)
printf("\1\1 you are normal! \1\1\n\n");
else
printf("\1\1 you are stupid! \1\1\n\n");
printf("\1\1 Congralations \1\1\n\n");
printf("The number you guess is %d",i);
}
printf("\ndo you want to try it again?(\"yy\".or.\"n\")\n");
if((c=getch())=='y')
goto loop;
}
【程序95】

题目:家庭财务管理小程序

1.程序分析:

2.程序源代码:

/*money management system*/
#include "stdio.h"
#include "dos.h"
main()
{
FILE *fp;
struct date d;
float sum,chm=0.0;
int len,i,j=0;
int c;
char ch[4]="",ch1[16]="",chtime[12]="",chshop[16],chmoney[8];
pp: clrscr();
sum=0.0;
gotoxy(1,1);printf("|----------------------------------------------------|");
gotoxy(1,2);printf("| money management system(C1.0) 2000.03 |");
gotoxy(1,3);printf("|----------------------------------------------------|");
gotoxy(1,4);printf("| -- money records -- | -- today cost list -- |");
gotoxy(1,5);printf("| ------------------------ |-----------------------------|");
gotoxy(1,6);printf("| date: -------------- | |");
gotoxy(1,7);printf("| | | | |");
gotoxy(1,8);printf("| -------------- | |");
gotoxy(1,9);printf("| thgs: ------------------ | |");
gotoxy(1,10);printf("| | | | |");
gotoxy(1,11);printf("| ------------------ | |");
gotoxy(1,12);printf("| cost: ---------- | |");
gotoxy(1,13);printf("| | | | |");
gotoxy(1,14);printf("| ---------- | |");
gotoxy(1,15);printf("| | |");
gotoxy(1,16);printf("| | |");
gotoxy(1,17);printf("| | |");
gotoxy(1,18);printf("| | |");
gotoxy(1,19);printf("| | |");
gotoxy(1,20);printf("| | |");
gotoxy(1,21);printf("| | |");
gotoxy(1,22);printf("| | |");
gotoxy(1,23);printf("|--------------------------------------------------|");
i=0;
getdate(&d);
sprintf(chtime,"%4d.%02d.%02d",d.da_year,d.da_mon,d.da_day);
for(;;)
{
gotoxy(3,24);printf(" Tab __browse cost list Esc __quit");
gotoxy(13,10);printf(" ");
gotoxy(13,13);printf(" ");
gotoxy(13,7);printf("%s",chtime);
j=18;
ch[0 ]=getch();
if(ch[0]==27)
break;
strcpy (chshop,"");
strcpy(chmoney,"");
if(ch[0]==9)
{
mm:i=0;
fp=fopen("home.dat","r+");
gotoxy(3,24);printf(" ");
gotoxy(6,4);printf(" list records ");
gotoxy(1,5);printf("|-------------------------------------|");
gotoxy(41,4);printf(" ");
gotoxy(41,5);printf(" |");
while(fscanf(fp,"%10s%14s%f\n",chtime,chshop,&chm)!=EOF)
{
if(i==36)
{
getch();
i=0;
}
if ((i%36)<17)
{
gotoxy(4,6+i);
printf(" ");
gotoxy(4,6+i);
}
else
if((i%36)>16)
{
gotoxy(41,4+i-17);
printf(" ");
gotoxy(42,4+i-17);
}
i++;
sum=sum+chm;
printf("%10s %-14s %6.1f\n",chtime,chshop,chm);}
gotoxy(1,23);printf("|----------------------------------------------|");
gotoxy(1,24);printf("| |");
gotoxy(1,25);printf("|----------------------------------------------|");
gotoxy(10,24);printf("total is %8.1f$",sum);
fclose(fp);
gotoxy(49,24);printf("press any key to.....");getch();goto pp;
}
else
{
while(ch[0]!='\r')
{
if(j<10)
{
strncat(chtime,ch,1);
j++;
}
if(ch[0]==8)
{
len=strlen(chtime)-1;
if(j>15)
{
len=len+1;
j=11;
}
strcpy(ch1,"");
j=j-2;
strncat(ch1,chtime,len);
strcpy(chtime,"");
strncat(chtime,ch1,len-1);
gotoxy(13,7);printf(" ");
}
gotoxy(13,7);printf("%s",chtime);ch[0]=getch();
if(ch[0]==9)
goto mm;
if(ch[0]==27)
exit(1);
}
gotoxy(3,24);printf(" ");
gotoxy(13,10);
j=0;
ch[0]=getch();
while(ch[0]!='\r')
{
if (j<14)
{
strncat(chshop,ch,1);
j++;
}
if(ch[0]==8)
{
len=strlen(chshop)-1;
strcpy(ch1,"");
j=j-2;
strncat(ch1,chshop,len);
strcpy(chshop,"");
strncat(chshop,ch1,len-1);
gotoxy(13,10);printf(" ");
}
gotoxy(13,10);printf("%s",chshop);ch[0]=getch();}
gotoxy(13,13);
j=0;
ch[0]=getch();
while(ch[0]!='\r')
{
if (j<6)
{
strncat(chmoney,ch,1);
j++;
}
if(ch[0]==8)
{
len=strlen(chmoney)-1;
strcpy(ch1,"");
j=j-2;
strncat(ch1,chmoney,len);
strcpy(chmoney,"");
strncat(chmoney,ch1,len-1);
gotoxy(13,13);printf(" ");
}
gotoxy(13,13);printf("%s",chmoney);ch[0]=getch();
}
if((strlen(chshop)==0)||(strlen(chmoney)==0))
continue;
if((fp=fopen("home.dat","a+"))!=NULL);
fprintf(fp,"%10s%14s%6s",chtime,chshop,chmoney);
fputc('\n',fp);
fclose(fp);
i++;
gotoxy(41,5+i);
printf("%10s %-14s %-6s",chtime,chshop,chmoney);
}
}
}

【程序96】

题目:计算字符串中子串出现的次数

1.程序分析:

2.程序源代码:

#include "string.h"
#include "stdio.h"
main()
{
char str1[20],str2[20],*p1,*p2;
int sum=0;
printf("please input two strings\n");
scanf("%s%s",str1,str2);
p1=str1;p2=str2;
while(*p1!='\0')
{
if(*p1==*p2)
{
while(*p1==*p2&&*p2!='\0')
{
p1++;
p2++;
}
}
else
p1++ ;
if(*p2=='\0')
sum++;
p2=str2;
}
printf("%d",sum);
getch();
}
【程序97】

题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。

1.程序分析:

2.程序源代码:

#include "stdio.h"
main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
ch=getchar();
ch=getchar();
while(ch!='#')
{
fputc(ch,fp);putchar(ch);
ch=getchar();
}
fclose(fp);
}

【程序98】

题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。输入的字符串以!结束。

1.程序分析:

2.程序源代码:

#include "stdio.h"
main()
{
FILE *fp;
char str[100],filename[10];
int i=0;
if((fp=fopen("test","w"))==NULL)
{
printf("cannot open the file\n");
exit(0);
}
printf("please input a string:\n");
gets(str);
while(str[i]!='!')
{
if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
fputc(str[i],fp);
i++;
}
fclose(fp);
fp=fopen("test","r");
fgets(str,strlen(str)+1,fp);
printf("%s\n",str);
fclose(fp);
}
【程序99】

题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),
输出到一个新文件C中。

1.程序分析:

2.程序源代码:

#include "stdio.h"
main()
{
FILE *fp;
int i,j,n,ni;
char c[160],t,ch;
if((fp=fopen("A","r"))==NULL)
{
printf("file A cannot be opened\n");
exit(0);
}
printf("\n A contents are :\n");
for(i=0;(ch=fgetc(fp))!=EOF;i++)
{
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
ni=i;
if((fp=fopen("B","r"))==NULL)
{
printf("file B cannot be opened\n");
exit(0);
}
printf("\n B contents are :\n");
for(i=0;(ch=fgetc(fp))!=EOF;i++)
{
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
n=i;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(c[i]>c[j])
{
t=c[i];c[i]=c[j];c[j]=t;
}
printf("\n C file is:\n");
fp=fopen("C","w");
for(i=0;i<n;i++)
{
putc(c[i],fp);
putchar(c[i]);
}
fclose(fp);
}
【程序100】

题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。

1.程序分析:

2.程序源代码:

#include "stdio.h"
struct student
{
char num[6];
char name[8];
int score[3];
float avr;
} stu[5];
main()
{
int i,j,sum;
FILE *fp;
/*input*/
for(i=0;i<5;i++)
{
printf("\n please input No. %d score:\n",i);
printf("stuNo:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{
printf("score %d.",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].avr=sum/3.0;
}
fp=fopen("stud","w");
for(i=0;i<5;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}

J. c语言程序设计实例

// 电话本Dlg.cpp : 实现文件
//

#include stdafx.h
#include 电话本.h
#include 电话本Dlg.h

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// C电话本Dlg 对话框

C电话本Dlg::C电话本Dlg(CWnd* pParent /*=NULL*/)
: CDialog(C电话本Dlg::IDD, pParent)
{
m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);
}

void C电话本Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(C电话本Dlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_EN_CHANGE(IDC_EDIT1, C电话本Dlg::OnName)
ON_EN_CHANGE(IDC_EDIT2, C电话本Dlg::OnPhoto)
ON_EN_CHANGE(IDC_EDIT3, C电话本Dlg::OnAddress)
ON_EN_CHANGE(IDC_EDIT4, C电话本Dlg::OnShow)
ON_BN_CLICKED(IDC_BUTTON1, C电话本Dlg::OnFill)
ON_BN_CLICKED(IDC_BUTTON2, C电话本Dlg::OnInsert)
ON_BN_CLICKED(IDC_BUTTON3, C电话本Dlg::OnFind)
ON_BN_CLICKED(IDC_BUTTON4, C电话本Dlg::OnDelete)
ON_BN_CLICKED(IDC_BUTTON5, C电话本Dlg::OnEdit)
ON_BN_CLICKED(IDC_BUTTON7, C电话本Dlg::OnSave)
END_MESSAGE_MAP()

// C电话本Dlg 消息处理程序

BOOL C电话本Dlg::OnInitDialog()
{
CDialog::OnInitDialog();

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标

// TODO: 在此添加额外的初始化代码
ifstream InFile(Wab.fsd,ios::in);
listWabList::iterator ItWab;
char Tmp1[8],Tmp2[16],Tmp3[32];
Wab.clear();
while(InFile Tmp1 Tmp2 Tmp3)
{
OutWab.Name=Tmp1;
OutWab.Photo=Tmp2;
OutWab.Address=Tmp3;
Wab.push_front(OutWab);
}
C电话本Dlg::OnFill();

return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}

// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。

void C电话本Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文

SendMessage(WM_ICONERASEBKGND, reinterpret_castWPARAM(dc.GetSafeHdc()), 0);

// 使图标在工作矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(rect);
int x = (rect.Width() - cxIcon 1) / 2;
int y = (rect.Height() - cyIcon 1) / 2;

// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}

//当用户拖动最小化窗口时系统调用此函数取得光标显示。
//
HCURSOR C电话本Dlg::OnQueryDragIcon()
{
return static_castHCURSOR(m_hIcon);
}

void C电话本Dlg::OnName()
{
CEdit *pMaxLen=(CEdit*)GetDlgItem(IDC_EDIT1);
pMaxLen-SetLimitText(6);
GetDlgItemText(IDC_EDIT1,InWab.Name);
}

void C电话本Dlg::OnPhoto()
{
CEdit *pMaxLen=(CEdit*)GetDlgItem(IDC_EDIT2);
pMaxLen-SetLimitText(11);
GetDlgItemText(IDC_EDIT2,InWab.Photo);
}

void C电话本Dlg::OnAddress()
{
CEdit *pMaxLen=(CEdit*)GetDlgItem(IDC_EDIT3);
pMaxLen-SetLimitText(30);
GetDlgItemText(IDC_EDIT3,InWab.Address);
}

void C电话本Dlg::OnShow()
{
// TODO: 如果该控件是 RICHEDIT 控件,则它将不会
// 发送该通知,除非重写 CDialog::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。

// TODO: 在此添加控件通知处理程序代码
}

void C电话本Dlg::OnFill()
{
CString OutAll,OutTemp,Space,Enter;
Space=_T( );
Enter=_T(\r\n);
listWabList::iterator ItWab;
for(ItWab=Wab.begin();ItWab!=Wab.end();ItWab )
{
OutWab=*ItWab;
OutTemp=OutWab.Name Space OutWab.Photo Space OutWab.Address;
OutAll=OutAll OutTemp Enter;
}
SetDlgItemText(IDC_EDIT4,OutAll);
}

void C电话本Dlg::OnInsert()
{
Wab.push_front(InWab);
C电话本Dlg::OnFill();
}

void C电话本Dlg::OnFind()
{
CString OutAll,OutTemp,Space,Enter;
Space=_T( );
Enter=_T(\r\n);
listWabList::iterator ItWab;
for(ItWab=Wab.begin();ItWab!=Wab.end();ItWab )
{
if(ItWab-Name==InWab.Name)
{
OutTemp=ItWab-Name Space ItWab-Photo Space ItWab-Address;
OutAll=OutAll OutTemp Enter;
}
}
SetDlgItemText(IDC_EDIT4,OutAll);
}

void C电话本Dlg::OnDelete()
{
CString OutAll,OutTemp,Space,Enter;
Space=_T( );
Enter=_T(\r\n);
listWabList::iterator ItWab;
for(ItWab=Wab.begin();ItWab!=Wab.end();ItWab )
{
if(ItWab-Name==InWab.Name)
{
OutTemp=ItWab-Name Space ItWab-Photo Space ItWab-Address;
OutAll=OutAll OutTemp Enter;
break;
}
}
SetDlgItemText(IDC_EDIT4,OutAll);
if(ItWab!=Wab.end()) Wab.erase(ItWab);
}

void C电话本Dlg::OnEdit()
{
CString OutAll,OutTemp,Space,Enter;
Space=_T( );
Enter=_T(\r\n);
listWabList::iterator ItWab;
for(ItWab=Wab.begin();ItWab!=Wab.end();ItWab )
{
if(ItWab-Name==InWab.Name)
{
OutTemp=ItWab-Name Space ItWab-Photo Space ItWab-Address;
OutAll=OutAll OutTemp Enter;
break;
}
}
SetDlgItemText(IDC_EDIT4,OutAll);
if(ItWab!=Wab.end())
{
Wab.erase(ItWab);
Wab.push_front(InWab);
}
}

void C电话本Dlg::OnSave()
{
CString Tmp1,Tmp2,Tmp3;
ofstream OutFile(Wab.fsd,ios::out);
listWabList::iterator ItWab;
for(ItWab=Wab.begin();ItWab!=Wab.end();ItWab )
{
Tmp1=ItWab-Name;
Tmp2=ItWab-Photo;
Tmp3=ItWab-Address;
OutFile Tmp1 ' ' Tmp2 ' ' Tmp3 endl;
}
}
只是个用C语言编写的电话本程序 很有实用意义