永发信息网

请给个C语言的500行左右的源代码

答案:5  悬赏:0  手机版
解决时间 2021-04-03 23:38
请给个C语言的500行左右的源代码
最佳答案
下面是我初学时的一个列子,是计算时间的。。
可以进行时间相加减```
由于我是在linux下运行的,再转到window上所以格式会有点乱```谅解!!!
代码也没有进行优化处理的```
#include
#include

typedef struct time
{
int year;
int month;
int day;
int hour;
int minute;
int sec;
} ST_TIME;
ST_TIME date;

void add_sec(int secs);
void add_minute(int minutes);
void add_hour(int hours);
void add_day(int days);
int maxday(int leap, int month);
void add_month(int months);
void add_year(int years);
void sub_sec(int secs);
void sub_minute(int minutes);
void sub_hour(int hours);
void sub_day(int days);
void sub_month(int months);
void sub_year(int years);
void sum(void);
void sub(void);
void init_system(void);

int add_number;

int main(int argc, char *argv[])
{
char array[20];
char emblem;

init_system();

printf("Press the '+' or '-' to control.\n");
scanf("%c",&emblem);

switch (emblem)
{
case '+':
{
sum();
break;
}

case '-':
{
sub();
break;
}

}

sprintf(array,"%d-%02d-%02d %02d:%02d:%02d",date.year,date.month,
date.day,date.hour,date.minute,date.sec);
printf("%s\n",array);

return 0;
}

void init_system(void)
{
char str[20];
char *p;
p = str;

printf("Enter the date:\n");
printf("Be sure your inputs like that:2008 12 12 12 12 12\n");
gets(str);

date.year = atoi(p);
date.month = atoi(p+5);
date.day = atoi(p+8);
date.hour = atoi(p+11);
date.minute = atoi(p+14);
date.sec = atoi(p+17);
}

void sum(void)
{
int lab;

printf("please choose the option:\n");
printf("1: add the secs;\n");
printf("2: add the minutes;\n");
printf("3: add the hours;\n");
printf("4: add the days;\n");
printf("5: add the months;\n");
printf("6: add the years;\n");

while (getchar() != '\n');

scanf("%d",&lab);

switch (lab)
{
case 1 :
{
printf("enter the increased secs:");
scanf("%d",&add_number);

add_sec(add_number);

break;
}

case 2:
{
printf("enter the increased minutes:");
scanf("%d",&add_number);

add_minute(add_number);

break;
}

case 3:
{
printf("enter the increased hours:");
scanf("%d",&add_number);

add_hour(add_number);

break;
}

case 4:
{
printf("enter the increased days:");
scanf("%d",&add_number);

add_day(add_number);

break;
}

case 5:
{
printf("enter the increased months:");
scanf("%d",&add_number);

add_month(add_number);

break;
}

case 6:
{
printf("enter the increased years:");
scanf("%d",&add_number);

add_year(add_number);

break;
}
}
}

void sub(void)
{
int lab;

printf("please choose the option:\n");
printf("1: reduce the secs;\n");
printf("2: reduce the minutes;\n");
printf("3: reduce the hours;\n");
printf("4: reduce the days;\n");
printf("5: reduce the months;\n");
printf("6: reduce the years;\n");

scanf("%d",&lab);

switch (lab)
{
case 1 :
{
printf("enter the reduced secs:");
scanf("%d",&add_number);

sub_sec(add_number);

break;
}

case 2:
{
printf("enter the reduced minutes:");
scanf("%d",&add_number);

sub_minute(add_number);

break;
}

case 3:
{
printf("enter the reduced hours:");
scanf("%d",&add_number);

sub_hour(add_number);

break;
}

case 4:
{
printf("enter the reduced days:");
scanf("%d",&add_number);

sub_day(add_number);

break;
}

case 5:
{
printf("enter the reduced months:");
scanf("%d",&add_number);

sub_month(add_number);

break;
}

case 6:
{
printf("enter the increased years:");
scanf("%d",&add_number);

sub_year(add_number);

break;
}
}

}

void add_sec(int secs)
{
date.sec = date.sec + secs;

while (date.sec >= 60)
{
add_minute(1);
date.sec = date.sec - 60;
}

}

void add_minute(int minutes)
{
date.minute = date.minute + minutes;

while (date.minute >= 60)
{
add_hour(1);
date.minute = date.minute - 60;
}

}

void add_hour(int hours)
{
date.hour = date.hour + hours;

while (date.hour >= 24)
{
add_day(1);
date.hour = date.hour - 24;
}

}

void add_day(int days)
{
int leap;
date.day = days + date.day;


if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}

while (date.day > maxday(leap,date.month))
{
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}

date.day = date.day - maxday(leap,date.month);
add_month(1);
}

}

void add_month(int months)
{
int leap;

date.month = date.month + months;

while (date.month > 12)
{

date.month = date.month - 12;
add_year(1);
}

if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}

if (leap==1 && date.month==2 && date.day>=29)
{
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.day = 28;
}
}

void add_year(int years)
{
int leap;

date.year = date.year + years;

if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}

if (leap==1 && date.month==2 && date.day>=29)
{
date.month = 2;
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.month = 2;
date.day = 28;
}
}

void sub_sec(int secs)
{
date.sec = date.sec - secs;

while (0 > date.sec)
{
sub_minute(1);
date.sec = date.sec + 60;
}

}

void sub_minute(int minutes)
{
date.minute = date.minute - minutes;

while (0 > date.minute)
{
sub_hour(1);
date.minute = date.minute + 60;
}

}

void sub_hour(int hours)
{
date.hour = date.hour - hours;

while (0 > date.hour)
{
sub_day(1);
date.hour = date.hour + 24;
}

}

void sub_day(int days)
{
int leap;
date.day = date.day - days;


if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}

while (0 >= date.day)
{
if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}

date.day = date.day + maxday(leap,date.month-1);
sub_month(1);
}

}

void sub_month(int months)
{
int leap;

date.month = date.month - months;

while (0 >= date.month)
{

date.month = date.month + 12;
sub_year(1);
}

if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}

if (leap==1 && date.month==2 && date.day>=29)
{
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.day = 28;
}
}

void sub_year(int years)
{
int leap;

date.year = date.year - years;

if ((date.year%4 == 0 && date.year%100 != 0) || (date.year%400 == 0))
{
leap = 1;
}
else
{
leap = 0;
}

if (leap==1 && date.month==2 && date.day>=29)
{
date.month = 2;
date.day = 29;
}
else if (leap==0 && date.month==2 && date.day>=28)
{
date.month = 2;
date.day = 28;
}
}

int maxday(int leap, int month)
{
int max_day;

switch (month)
{
case 4:
{
max_day = 30;
break;
}
case 6:
{
max_day = 30;
break;
}
case 9:
{
max_day = 30;
break;
}
case 11:
{
max_day = 30;
break;
}
case 2:
{
if (leap == 1)
{
max_day = 29;
break;
}
else
{
max_day = 28;
break;
}
}
default: max_day = 31;
}

return max_day;

我这里还有很多的,如果要的话,就联系我121779988````
只不过我也是个菜鸟级的``
全部回答
那么多的行就给0分啊?
朋友,你走进了一个误区!
建议你用子函数的形式 实现各种功能 然后在主函数里面选择想执行的功能 这样代码自然就多了 !
简单,定义一个数组
struct M a[500][128]=
{
...
{122,"中国移动","中国"},
{10,"中国石化","中国"},
...
};
呵呵,初始化就能达到500行,然后提供简单的查询,编辑功能
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
张建建拼音怎么写
2014年和字纪念币有哪些防伪特征,现在什么价
求一首我会报复的诗
有谁知道周口新火车站有开通到哪的车没有啊
沈阳祥音声乐培训中心教的怎么样
求助,设立食品仓库的要求是什么
野钓应该怎样选择钓位
白菜烧冷冻的丸子怎么做
全世界是谁最先拥有黑卡
水泥搅拌桩带水下钻为什么对桩体有影响
美容里的sticker指什么产品
女性做煤炭化验,对身体有危害吗
三星a9100用的双面玻璃容易碎吗
艺术的自律与他律
为什么行星边际2这样的游戏火不起来
推荐资讯
高考作文结构相同算不算抄袭?
七色有什么颜色
晒晒今年汕头大学设计艺术学的考研成绩!绝版
170多度近视,白天不用镜子,晚上开车配个啥
眉山在我国的哪个省,为中国四大,什么名山之一
五星级古贝春一箱多少钱
一汽大众订车时间为什么那么长
想买价值高的瓷器应该去哪儿买?
单选题近亲结婚的主要危害是后代A.体重下降B.
从深州火车站到汕尾市陆丰镇该怎么走
用腹部九分法描绘图注明乙状结肠,回盲部的解
我爷爷今年八十八岁了,昨天晚上钻了被窝以后
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?