工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1080|回复: 41

求助,增加功能。自己太菜了。。

  [复制链接]
发表于 2009-12-25 12:23 | 显示全部楼层 |阅读模式
求助,,我想增加下面几个功能,想请会c语言的帮忙。。

        建立一个某种信息的文件。对文件可以进行以下操作:
        1.添加记录。
        2.修改记录。
        3.删除记录。
        4.插入记录。
        5.查询记录。

部分简单的程序如下,深一点的都不会。。
/***********************************************************
******星座辨别系统:用于判别某一指定日期是处于什么星座
******创作人:
******创作日期:2009年12月  
************************************************************/
#include "stdlib.h"
#include "stdio.h"

void welcome();     /*定义函数*/
void year();
void month();
void dis1();
void dis2();
void dis3();      
void dis4();
void dis5();
void dis6();
void dis7();
void dis8();  
void dis9();  
void dis10();
void dis11();
void dis12();
int ye,mon,data,test,exi;


void welcome()  /*进入欢迎界面*/
{
  printf("*******************************************************************\n");
  printf("                         欢迎使用星座辨别系统\n                ");
  printf("专业班级:         学号:             制作人:              \n");
  printf("*******************************************************************\n");
  printf("请按任意键继续");
  getchar();
}

void year() /*判别是否为闰年,是的话将二月份限定为29日,否的话将二月份限定为28日*/
{
  printf("\n");       
  printf("请输入年份:");
  scanf("%d",&ye);
  getchar();
  if((ye%4==0&&ye%100!=0)||ye%400==0)
  {test=29;}
  else
  test=28;
  month();        
}


void month()   /*月份辨别*/
{
  printf("请输入月份:");
  while(1)
  {
   scanf("%d",&mon);
   getchar();
  if(mon>0&&mon<13)     /*如果输入的月份在1——12之间,则进入*/
  {
  if(mon==1) dis1();
  else if(mon==2) dis2();
  else if(mon==3) dis3();
  else if(mon==4) dis4();
  else if(mon==5) dis5();
  else if(mon==6) dis6();
  else if(mon==7) dis7();
  else if(mon==8) dis8();
  else if(mon==9) dis9();
  else if(mon==10) dis10();
  else if(mon==11) dis11();
  else if(mon==12) dis12();       
   }
  printf("请输入正确的月份:");
  }       
}

void dis1()     /*一月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=31)
   {
          if(data>0&&data<=20)
          {printf("%d年%d月%d日为魔羯座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为水瓶座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
          }
  printf("请输入正确的日期:");
  }
}

void dis2()     /*二月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=test)
   {
          if(data>0&&data<=19)
          {printf("%d年%d月%d日为水瓶座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为双鱼座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void dis3()     /*三月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=31)
   {
          if(data>0&&data<=20)
          {printf("%d年%d月%d日为双鱼座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为白羊座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void dis4()     /*四月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=30)
   {
          if(data>0&&data<=20)
          {printf("%d年%d月%d日为白羊座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为金牛座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void dis5()     /*五月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=31)
   {
          if(data>0&&data<=21)
          {printf("%d年%d月%d日为金牛座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为双子座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void dis6()     /*六月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=30)
   {
          if(data>0&&data<=21)
          {printf("%d年%d月%d日为双子座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为巨蟹座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void dis7()     /*七月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=31)
   {
          if(data>0&&data<=22)
          {printf("%d年%d月%d日为巨蟹座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为狮子座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void dis8()     /*八月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=31)
   {
          if(data>0&&data<=23)
          {printf("%d年%d月%d日为狮子座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为处女座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void dis9()     /*九月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=30)
   {
          if(data>0&&data<=23)
          {printf("%d年%d月%d日为处女座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为天秤座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void dis10()     /*十月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=31)
   {
          if(data>0&&data<=23)
          {printf("%d年%d月%d日为天秤座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为天蝎座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void dis11()     /*十一月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=30)
   {
          if(data>0&&data<=22)
          {printf("%d年%d月%d日为天蝎座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为射手座!\n",ye,mon,data);}
          printf("输入1返回输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void dis12()     /*十二月份的辨别*/
{
  printf("请输入日期:");
  while (1)
  {scanf("%d",&data);
  getchar();
  if(data>0&&data<=31)
   {
          if(data>0&&data<=21)
          {printf("%d年%d月%d日为射手座!\n",ye,mon,data);}
          else
          {printf("%d年%d月%d日为魔羯座!\n",ye,mon,data);}
          printf("输入1返回,输入2退出:");
          scanf("%d",&exi);
          getchar();
          if(exi==1)
          {year();}
          else if(exi==2)
          {exit(0);}
   }
  printf("请输入正确的日期:");
  }
}

void main()   /*主函数*/
{
  welcome();
  year();
}
 楼主| 发表于 2009-12-25 12:23 | 显示全部楼层
沙发。。。
回复

使用道具 举报

发表于 2009-12-25 12:26 | 显示全部楼层
俺连什么叫C语言都不知道啊~~
回复

使用道具 举报

发表于 2009-12-25 12:40 | 显示全部楼层
作业直接拿这个交上去可以吗
回复

使用道具 举报

发表于 2009-12-25 12:42 | 显示全部楼层
看不懂
回复

使用道具 举报

发表于 2009-12-25 12:42 | 显示全部楼层
什么来的啊?
回复

使用道具 举报

发表于 2009-12-25 12:43 | 显示全部楼层
如果还是大一,应该会
回复

使用道具 举报

发表于 2009-12-25 12:51 | 显示全部楼层
回复 7# 司机弟弟


我很不高兴啊~~
回复

使用道具 举报

 楼主| 发表于 2009-12-25 12:54 | 显示全部楼层
老师说太简单。要我回去把报告写好一点。。
求帮忙改功能强大一点。
回复

使用道具 举报

发表于 2009-12-25 13:06 | 显示全部楼层
LZ不够强不够大。
回复

使用道具 举报

发表于 2009-12-25 13:08 | 显示全部楼层
看到头先晕了
回复

使用道具 举报

发表于 2009-12-25 13:10 | 显示全部楼层
LZ不够强不够大。
灰机鬼 发表于 2009-12-25 13:06



    直接引用
回复

使用道具 举报

发表于 2009-12-25 13:38 | 显示全部楼层
为什么会有那么多disxx()
0号你嫌代码太短吗
回复

使用道具 举报

 楼主| 发表于 2009-12-25 13:40 | 显示全部楼层
1号,我严重不懂。乱来的。。就是需要求助
回复

使用道具 举报

发表于 2009-12-25 13:52 | 显示全部楼层
头晕了...
回复

使用道具 举报

发表于 2009-12-25 13:53 | 显示全部楼层
  鱼叔叔忧郁了。
回复

使用道具 举报

发表于 2009-12-25 13:55 | 显示全部楼层
数据添加, 修改, 删除, 插入, 查询, 这不是数据库吗
回复

使用道具 举报

发表于 2009-12-25 14:19 | 显示全部楼层
[i=s] 本帖最后由 不会游泳鱼 于 2009-12-25 14:29 编辑 [/i]

星座判断可以先定义好星座:
char *zodiac[] = {"白羊", "金牛", ... , "双鱼"};
以及12星座在一年中哪一天开始 (不用考虑闰年):
int zday[] = {第几天, 第几天, ..., 第几天};
然后定义每个月的最大天数 (不用考虑闰年):
int days[] = {31, 28, 31, ... , 31};
然后把月份转换为天数:
printf("请输入生日(m-d):");
scanf("%d-%d",&mon, &date);
int dayofy = 0; //day of year, 一年中的第几天
for (i = 0; i < mon; i++) {
dayofy += days[i];
}
然后把日期加上去..
dayofy += date;
然后判断dayofy在数组zday中的位置, 获得星座:
for (i = 0; i < 12; i++) {
if (dayofy >= zday[i]) break;
}
printf(zodiac[i]);
//以上代码未经调试....
回复

使用道具 举报

发表于 2009-12-25 14:20 | 显示全部楼层
  看不懂。
回复

使用道具 举报

发表于 2009-12-25 14:25 | 显示全部楼层
啱先google到一种更好的办法, 将月份乘以100加上日期, 彻底解除闰年烦恼.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-8-8 18:30

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表