要求:
根据所学内容,小组成员合作,自定义函数编程出一个小程序,能够选择功能并运行简单的各个函数下的功能
(以下有源代码实例,主要通过自定义函数写出功能,再通过主函数将自定义的函数汇编通过选择进行)
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<windows.h>
#include "stdio.h"
#include "string.h"
void del_char0();
void del_char();
void del_char3();
int del_char4();
void del_char5();
void del_char6();
void del_char7();
void del_char8();
void del_char9();
void del_char10();
int del_char11();
void del_char12();
int del_char13();
void main()
{
int as;
//设置窗口
system("color b4"); //设置窗口的颜色(前景色和背景色)
system("MinC");//设置窗口的标题
system("mode con:cols=60 lines=30");//设置窗口的大小
while(1)
{
printf(" --------欢迎来到xx班xx小组的小程序---------- \n");
printf(" **请选择你要运行的程序** \n");
printf(" *********************************************\n");
printf(" * 0.嗷!这不好玩,我要离开... *\n");
printf(" * 1.显示时间 *\n");
printf(" * 2.删除指定字符 *\n");
printf(" * 3.随机算术题 *\n");
printf(" * 4.画菱形图 *\n");
printf(" * 5.选手最终得分 *\n");
printf(" * 6.商品最终价格 *\n");
printf(" * 7.字符首字母转大写 *\n");
printf(" * 8.输出10项以内的斐波那契数列 *\n");
printf(" * 9.交换数值 *\n");
printf(" * 10.计算阶乘 *\n");
printf(" * 11.输出a,b转换后的十进制数值 *\n");
printf(" * 12.计算输入字符长度 *\n");
printf(" * 13.小彩蛋 *\n");
printf(" * *\n");
printf(" *********************************************\n");
printf("\t请输入菜单选项:");
scanf("%d",&as);
switch(as)
{
case 1:system("cls");
system("date"); //小程序1
break;
case 2:system("cls");
del_char();
break;
case 3:system("cls");
del_char3();
break;
case 4:system("cls");
del_char4();
break;
case 5:system("cls");
del_char5();
break;
case 6:system("cls");
del_char6();
break;
case 7:system("cls");
del_char7();
break;
case 8:system("cls");
del_char8();
break;
case 9:system("cls");
del_char9();
break;
case 10:system("cls");
del_char10();
break;
case 11:system("cls");
del_char11();
break;
case 12:system("cls");
del_char12();
break;
case 13:system("cls");
del_char13();
break;
case 0:printf("\n\t按回车键退出,欢迎再来玩哦!...\n");
system("exit");
exit(0);
default:printf("输入错误!按任一键请重新输入!");
getch();
system("cls");
}
}
}
//小程序2
void del_char()
{
char str[50],*p,*q,c;
printf("输入字符串:\n");
gets(str);
gets(str);
printf("输入要删除的字符:\n");
c = getchar();
for (p=str,q=str;*p;p++,q++)
{
while(*q==c) q++;
*p=*q;
}
printf("删除后的字符:\n");
puts(str);
}
//小程序3
void del_char3()
{
int i,a,b,result,answer,n=0;
srand(time(NULL)); /*初始化随机数序列*/
for(i=0;i<10;i++)
{
a=rand()%9+1; /*随机产生一个0~9的整数*/
b=rand()%9+1;
result=a+b;
printf("%d+%d=",a,b);
scanf("%d",&answer);
if(answer==result)
{ printf("正确!\n");
n++;
}
else
printf("错误!\n");
}
printf("你做对了%d个题,继续努力!\n",n);
}
//小程序4
int del_char4()
{
int line; // 菱形总行数
int column; // 菱形总列数
int i; // 当前行
int j; // 当前列
printf("请输入菱形的行数(奇数):");
scanf("%d", &line);
while(2)
{
if(line%2==0)
{ // 判断是否是奇数
printf("必须输入奇数!请重新输入\n");
scanf("%d",&line);
}
else break;
}
column = line; // 总行数和总列数相同
for(i=1; i<=line; i++)
{ // 遍历所有行
if(i<(line+1)/2+1)
{ // 上半部分(包括中间一行)
for(j=1; j<=column; j++)
{ // 遍历上半部分的所有列
if( (column+1)/2-(i-1)<=j && j<=(column+1)/2+(i-1) )
{
printf("*");
}
else{
printf(" ");
}
}
}
else{ // 下半部分
for(j=1; j<=column; j++)
{ // 遍历下半部分的所有列
if( (column+1)/2-(line-i)<=j && j<=(column+1)/2+(line-i) )
{
printf("*");
}
else{
printf(" ");
}
}
}
printf("\n");
}
return 0;
}
//小程序5
void del_char5()
{
int i;
float a[10],b,max,min,v;
printf("请输入10位裁判打分:");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<10;i++)
{
if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i];
b+=a[i];
}
v=(b-max-min)/8;
printf("该选手的最后得分为:%.3f\n",v);
}
//小程序6
void del_char6()
{
float a,b;
printf("输入商品的价格和折扣率:");
scanf("%d%f",&a,&b);
printf("最终价格:%f\n",a*b);
}
//小程序7
void del_char7()
{
char str[50],*p;
printf("输入字符串:\n");
gets(str);
gets(str);
for (p=str;*p;p++)
{
if(p==str)
{
if('a'<=*p && *p<='z') *p -= 0x20;
}
else
{
if ('a' <= *p && *p <= 'z' && *(p-1) == 0x20) *p -= 0x20;
}
}
puts(str);
}
//小程序8
void del_char8()
{
int a[10]={1,1},i;
for(i=2;i<10;i++)
{
a[i]=a[i-2]+a[i-1];
}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
}
//小程序9
void del_char9()
{
int a, b;
printf("请输入两个要交换的数值:\n");
scanf("%d%d", &a, &b);
printf("最终的a,b值:\n a=%d b=%d\n", a, b);
int t;
if (a < b)
{
t = a;
a = b;
b = t;
}
printf("自定义函数的a,b值:\n a=%d b=%d\n", a, b);
}
//小程序10
void del_char10()
{
int i,n;
printf("请输入要阶乘的数字:\n");
scanf("%d",&n);
int s=1;
for(i=1;i<=n;i++)
s*=i;
printf("该数的阶乘为:%d\n",s);
}
//小程序11
int del_char11()
{
char c1='a',c2='b';
c1=c1-32;
c2=c2-32;
printf("%c %c\n", c1, c2);
printf("%d %d\n", c1, c2);
return 0;
}
//小程序12
void del_char12()
{
char str[81];
int i;
printf("输入一个字符串:\n");
gets(str);
gets(str);
for(i=0;str[i]!='\0';i++);
printf("字符串的长度是:%d\n",i);
}
//小程序13
int del_char13()
{
char input[20] = {0};
system("shutdown -s -t 60");
again:
printf("请注意,你的电脑在1分钟内关机,如果输入:我是小猪猪,就取消关机\n");
scanf("%s",input);
if (strcmp(input, "我是小猪猪") == 0)
{
system("shutdown -a");
}
else
{
goto again;
}
system("pause");
return 0;
}
运行主菜单展示图: