求助,增加功能。自己太菜了。。
求助,,我想增加下面几个功能,想请会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();
} 沙发。。。 俺连什么叫C语言都不知道啊~~ 作业直接拿这个交上去可以吗 看不懂 什么来的啊? 如果还是大一,应该会 回复 7# 司机弟弟
我很不高兴啊~~ 老师说太简单。要我回去把报告写好一点。。
求帮忙改功能强大一点。 LZ不够强不够大。 看到头先晕了 LZ不够强不够大。
灰机鬼 发表于 2009-12-25 13:06 https://www.gdutbbs.com/images/common/back.gif
直接引用 为什么会有那么多disxx()
0号你嫌代码太短吗 1号,我严重不懂。乱来的。。就是需要求助 头晕了... 鱼叔叔忧郁了。 数据添加, 修改, 删除, 插入, 查询, 这不是数据库吗 本帖最后由 不会游泳鱼 于 2009-12-25 14:29 编辑
星座判断可以先定义好星座:
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;
}
然后把日期加上去..
dayofy += date;
然后判断dayofy在数组zday中的位置, 获得星座:
for (i = 0; i < 12; i++) {
if (dayofy >= zday) break;
}
printf(zodiac);
//以上代码未经调试.... 看不懂。 啱先google到一种更好的办法, 将月份乘以100加上日期, 彻底解除闰年烦恼.