(C语言版幸运数字课程设计
中国计量学院
程序设计实践(报告)
题目:
二级学院 _ __
专业
班级 _ _
姓名
学 号 __ _
指导教师 _____
年 月 日
#include
#include
#include
#include
#define LEN sizeof(struct NODE)
//结构体
struct NODE
{
int no;
char name [13];
int luck_no;
char date [10];
struct NODE *next;
};
//全局变量
int n,t,xgh;
FILE *fp;
struct NODE *head,*p1,*p2;
struct NODE *p;
char c;
char dym[13];
//读取文件
struct NODE *creat (void )
{
n=0;
if
((fp=fopen("data.txt","r"))==NULL)
{
printf("can not open\n");
exit(0);
}
p1=p2=(struct NODE *) malloc (LEN);
fscanf(fp,"%d%s%d%s",&p1->no,&p1->name,&p1->luck_no,&p1->date );
head=NULL;
while(!feof(fp))
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(struct NODE*)malloc(LEN);
fscanf(fp,"%d%s%d%s",&p1->no,&p1->name,&p1->luck_no,&p1->date );
}
p2->next=NULL;
fclose(fp);
return(head);
}
//输出表函数
void print (struct NODE *head)
{
p=head;
if(head!=NULL)
do
{
printf("%d%s%d%s\n",p->no,p->name,p->luck_no,p->date);
p=p->next;
}while(p!=NULL);
}
//分析函数
void analyse (struct NODE *head)
{
int t;
p=head;
printf("\n幸运数字与出生日相同的人如下:\n");
while(p!=NULL)
{
t=(int)(p->date[8]-48)*10+(int)(p->date[9]-48);
if(t==p->luck_no)
printf("%d %s %d %s\n",p->no,p->name,p->luck_no,p->date);
p=p->next;
}
system("pause");}
//统计函数
void tongji (struct NODE *head)
{
int a[10]={0};
int i;
p=head;
while(p!=NULL)
{
a[p->luck_no]++;
p=p->next;
}
for(i=0;i<10;i++)
printf("拥有幸运数字%d的人数是:%d\n",i,a[i]);
printf("统计的总人数是:%d(人)\n",n+1);
system("pause");
}
//打印函数
void dayin (struct NODE *head)
{
int fleo=0;
p=head;
printf("输入您感兴趣的人的姓名:=>");
scanf("%s",dym);
if(head!=NULL)
do
{
if(strcmp(dym,p->name)==0)
{
printf("%d %s %d %s\n",p->no,p->