| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 251 人关注过本帖
标题:问一下,输出就无法返回了?
只看楼主 加入收藏
huat107
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2012-11-18
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:2 
问一下,输出就无法返回了?
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include <stdlib.h>
#include<conio.h>
#define LEN sizeof(STUDENT)
#define  N  30

typedef struct{
    int year;
    int month;
    int day;
}DATE;



typedef struct node{
     
 char xueh[20];
 char name[20];
 char xib[20];
 char cla[20];
 char age[10];
 char sex[10];
 DATE date;
 float yx;
 float sx;
 struct  node *next;  
}STUDENT;
//将日期字符串转换为日期型数据
DATE strToDate(char strDate[])
{
    DATE date;

    date.year=atoi(&strDate[0]);
    date.month=atoi(&strDate[5]);
    date.day=atoi(&strDate[8]);

    return date;
}

//检查日期是否合法
int checkDate(char strDate[])
{
    DATE date;

    if(strlen(strDate)!=10||strDate[4]!='-'||strDate[7]!='-')
        return 0;

    date=strToDate(strDate);

    if(date.month<1||date.month>12)
        return 0;

    if((date.year%4==0&&date.year%100!=0)||(date.year%400==0))
    {
        if(date.month==2&&date.day>29)
            return 0;
    }
    else
    {
        if(date.month==2&&date.day>28)
            return 0;
    }

    switch(date.month)
    {
    case 1:case 3:case 5:case 7:case 8:case 10:case 12:if(date.day>31) return 0;
    case 4:case 6:case 9:case 11:if(date.day>30) return 0;
    }

    return 1;
}

STUDENT *head=NULL;  
int len=0;
int flag=0;
  
 
void create();

void display();

 
int main(void)
{   
 int menuchoice;
 char ch[20];
  system("color 0f");
     /*设置默认的控制台前景和背景颜色。
     COLOR [attr],attr指定控制台输出的颜色属性。
     颜色属性由两个十六进制数字指定。第一个为背景,第二个为前景。
     0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色
     8=灰色 9=淡蓝色 a=淡绿色 b=淡浅绿色 c=淡红色 d=淡紫色 e=淡黄色 f=亮白色
     */
 
 do
 {
 printf("\n\n\n\n");
 printf("\t\t\t  学生成绩管理基本功能菜单 \n");
 printf("\t\t\t       作者:* * *   \n");
 printf("\t\t\t  =======================  \n");
 printf("\t\t\t  1.键盘输入新建学生记录    \n");
 printf("\t\t\t  3.显示所有学生记录   \n");
 printf("\t\t\t  =======================  \n");
   
 
 printf("\t\t\t请输入您的选择:  \n");   
 scanf("%d",&menuchoice);
 switch(menuchoice)   
 {
 case 1:
  if(flag==0)
  {
   create();
   flag=1;
  }
  else
   printf("数据已建立!");
  system("pause");
  system("cls");
  break;
  

 case 3:
   if(flag==0)
   printf("数据库为空.\n");
  else
  display();
  system("pause");
  system("cls");
  break;
 
  
 default:
   printf("\n对不起,您输入的功能编号有错!请重新输入!!!\n");
   system("pause");
   system("cls");
   break;
  }
 }while(1);
}
  

void create()
{

    STUDENT *p1,*p2,*p3;
    char strDate[20],str[10];  char num[20];
     while(1)
     {
        printf("请输入学生学号,输(0)退出!\n");
        scanf("%s",num);
        if(strcmp(num,"0")==0)
            break;
     
     p1=p2=p3=(struct node*)malloc(sizeof(struct node));
     strcpy(p1->xueh,num);
     printf("请输入姓名:");
     scanf("%s",p1->name);
     printf("系别");
     scanf("%s",p1->xib);
     printf("班级");
     scanf("%s",p1->cla);
     printf("年龄");
     scanf("%s",p1->age);
     printf("性别");
     scanf("%s",p1->sex);
    do
    {
        printf("输入乘坐日期:");
        scanf("%s",strDate);

        if(checkDate(strDate)==1)
            break;

        printf("日期格式错误!");
    }while(1);
    p1->date=strToDate(strDate);

     printf("每学期要求完成的学业学分,已完成的学业学分\n");
     scanf("%f%f",&p1->yx,&p1->sx);
     }
   
     getchar();                                      //吸收回车符                                             
    len=len+1;                                          //录入的人数加1
     if(len==1)
         head=p1;
     else
     {
         p2->next=p1;
         p2=p1;                                      //存储此次录入的数据
     }
     p1=(struct node*)malloc(sizeof(struct node));  //开辟一个新的存储单元
 }
   


void display()
{    STUDENT  *p1;

    for(p1=head;p1!=NULL;p1=p1->next)
    {
     printf ("%姓名s",p1->name);
     printf("系别%s",p1->xib);
     printf("班级%s",p1->cla);
           
   
    }
}



时间格式xxxx-xx-xx
搜索更多相关主题的帖子: next include 字符串 
2013-01-13 18:11
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:20 
代码好长啊 精神上支持你、、、
2013-01-13 18:12
huat107
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2012-11-18
收藏
得分:0 
,求教啊。。。
2013-01-13 18:15
快速回复:问一下,输出就无法返回了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022385 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved