要求:
根据所学内容,小组成员合作,自定义函数编程出一个小程序,能够选择功能并运行简单的各个函数下的功能
(以下有源代码实例,主要通过自定义函数写出功能,再通过主函数将自定义的函数汇编通过选择进行)
#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; }
运行主菜单展示图: