高分悬赏一C语言程序设计题(简单行编辑)

高分悬赏一C语言程序设计题(简单行编辑),第1张

我有一个电话本程序似乎差不多喔,就差统计了。发给你看下,参考下吧。

#include <stdioh>

#include <conioh>

#define MAX 300

FILE book;

char number[20],name[10];

main()

{

if((book=fopen("cell phone booktxt","a+"))==NULL)

{

printf("此为第一次运行。\n");

}

else

printf("电话本己打开。\n");

start();

fclose(book);

}

start()

{

int c;

int n=1;

do

{

printf("1·查找电话。\n");

printf("2·加入新电话。\n");

printf("3·显示整个电话本。\n");

printf("4·删除电话。\n");

printf("5·退出。\n");

c=getch();

printf("您选择了%c\n",c);

switch (c)

{

case '1':search();

break;

case '2':adduser();

break;

case '3':print();

break;

case '4':del();

break;

case '5':n=0;

break;

default:

break;

}

}while(n!=0);

}

del()

{

char temp[30],name[10];

FILE tempbook;

int n,p=0;

tempbook=fopen("temptxt","w");

fclose(tempbook);

tempbook=fopen("temptxt","a");

book=fopen("cell phone booktxt","r");

printf("输入要删除的人名。\n");

scanf("%s",name);

while(fgets(temp,MAX,book)!=NULL)

{

for(n=0;n<10;n++)

{

if(temp[n]!=name[n])

{

p=1;

break;

}

if(temp[n]==NULL)

break;

}

if(p==1)

{

fwrite(temp,2,5,tempbook);

fwrite(&temp[10],1,12,tempbook);

fwrite("\n",1,1,tempbook);

}

p=0;

}

fclose(tempbook);

fclose(book);

book=fopen("cell phone booktxt","w");

fclose(book);

book=fopen("cell phone booktxt","a");

tempbook=fopen("temptxt","r");

while(fgets(temp,MAX,tempbook)!=NULL)

{

fwrite(temp,2,5,book);

fwrite(&temp[10],1,12,book);

fwrite("\n",1,1,book);

}

fclose(tempbook);

fclose(book);

}

search()

{

char tempbook[30],name[10],p=0;

int n=0;

book=fopen("cell phone booktxt","rt");

printf("输入要查找的姓名。\n");

scanf("%s",name);

while(fgets(tempbook,MAX,book)!=NULL)

{

if(tempbook[0]==name[0]&&tempbook[1]==name[1]&&tempbook[2]==name[2]&&tempbook[3]==name[3]&&tempbook[4]==name[4])

printf("%s%12s\n",tempbook,&tempbook[10]);

}

fclose(book);

}

adduser()

{

book=fopen("cell phone booktxt","a+");

printf("请输入姓名:\n");

scanf("%s",name);

printf("请输入电话号码:\n");

scanf("%s",number);

fwrite(name,2,5,book);

fwrite(number,1,12,book);

fwrite("\n",1,1,book);

fclose(book);

}

print()

{

char c;

book=fopen("cell phone booktxt","rt");

do

{

c=fgetc(book);

putchar(c);

}while(c!=EOF);

fclose(book);

}

43 函数的调用与参数

如果一个函数要使用参数,它就必须定义接受参数值的变量。

431 形式参数与实际参数

函数定义时填入的参数我们称之为形式参数,简称形参,它们同函数内部的局部变量作用相同。形参的定义是在函数名之后和函数开始的花括号之前。

调用时填入的参数,我们称之为实际参数,简称实参。

必须确认所定义的形参与调用函数的实际参数类型一致,同时还要保证在调用时形参与实参的个数出现的次序也要一一对应。如果不一致,将产生意料不到的结果。与许多其它高级语言不同,(是健壮的,它总要做一些甚至你不希望的事情,几乎没有运行时错误检查,完全没有范围检测。作为程序员,必须小心行事以保证不发生错误,安全运行。

432 赋值调用与引用调用

一般说来,有两种方法可以把参数传递给函数。第一种叫做“赋值调用”(call by value),这种方法是把参数的值复制到函数的形式参数中。这样,函数中的形式参数的任何变化不会影响到调用时所使用的变量。

把参数传递给函数的第二种方法是“引用调用”(call by reference)。这种方法是把参数的地址复制给形式参数,在函数中,这个地址用来访问调用中所使用的实际参数。这意味着,形式参数的变化会影响调用时所使用的那个变量(详细内容请参见后续章节)。

除少数情况外,C语言使用赋值调用来传递参数。这意味着,一般不能改变调用时所用变量的值。请看例4 - 9。

[例4 - 9]

main ( )

{

int t =10;

printf("%d %d ",sqr(t),t); / sqr(t)是函数调用,t是实参 /

}

int sqr(x) / 函数定义,x是形式参数 /

int x;

{

x = x x;

return (x);

}

在这个例子里,传递给函数sqr( )的参数值是复制给形式参数x的,当赋值语句x = x x执行时,仅修改局部变量x。用于调用sqr( )的变量t,仍然保持着值10。

执行程序:

100 10

切记,传给函数的只是参数值的复制品。所有发生在函数内部的变化均无法影响调用时使用的变量。

44 递归

C语言函数可以自我调用。如果函数内部一个语句调用了函数自己,则称这个函数是“递归”。递归是以自身定义的过程。也可称为“循环定义”。

递归的例子很多。例如定义整数的递归方法是用数字1,2,3,4,5,6,7,8,9加上或减去一个整数。例如,数字1 5是7 + 8;数字2 1是9 + 1 2; 数字1 2是9 + 3。

一种可递归的计算机语言,它的函数能够自己调用自己。一个简单的例子就是计算整数阶乘的函数factor( )数N的阶乘是1到N之间所有数字的乘积。例如3的阶乘是1×2×3,即是6。

factor( )和其等效函数fact( )如例4 - 1 0所示。

[例4 - 1 0 ]

factor(n) / 递归调用方法 /

int n;

{

int answer;

if (n==1)

return (1);

answer=factor(n-1) n; / 函数自身调用 /

return(answer);

}

[例4 - 11 ]

fact(n) / 非递归方法 /

int n;

{

int t,a n s w e r;

answer = 1;

for (t=1; t < = n; t ++)

answer = answer t;

return(answer);

}

非递归函数fact( )的执行应该是易于理解的。它应用一个从1开始到指定数值结束的循环。

在循环中,用“变化”的乘积依次去乘每个数。

factor( )的递归执行比fact( )稍复杂。当用参数1调用factor( )时,函数返回1;除此之外的其它值调用将返回factor(n-1) n这个乘积。为了求出这个表达式的值,用( n - 1)调用factor( )一直到n等于1,调用开始返回。

计算2的阶乘时对factor( )的首次调用引起了以参数1对factor( )的第二次调用。这次调用返回1,然后被2乘(n的初始值),答案是2(把printf( )语句插入到factor ( )中,察看各级调用及其中间答案,是很有趣的)。

#include<stdioh>

#define N 2//定义学生人数

/定义结构体/

struct student /标记为students/

{

char num[10]; /学生学号/

char name[10]; /学生姓名/

float cyy; /C语言成绩/

float computer; /计算机成绩/

float english; /英语成绩/

}students[N];

void qzpj(float zpj)

{

int i;

for(i=0;i<N;i++)

{

zpj[i]=(students[i]cyy+students[i]computer+students[i]english)/3;

printf("学号为%s的学生的平均成绩: %-2f\n",students[i]num ,zpj[i]);

}

}

void qgkpj(float gkpj)

{

int i;

for(i=0;i<N;i++)

{

gkpj[0]=gkpj[0]+students[i]cyy/N;

gkpj[1]=gkpj[1]+students[i]computer/N;

gkpj[2]=gkpj[2]+students[i]english/N;

}

printf("C语言课平均成绩%-2f\n",gkpj[0]);

printf("计算机课平均成绩%-2f\n",gkpj[1]);

printf("英语课平均成绩%-2f\n",gkpj[2]);

}

void main()

{

int i=0;

float zpj[N]={0},gkpj[N]={0};

printf(" 请输入学生信息 \n");

while(i<N)

{

printf("请输入学生学号: ");

scanf("%s",students[i]num);

printf("请输入学生姓名: ");

scanf("%s",students[i]name);

printf("请输入C语言成绩: ");

scanf("%f",&students[i]cyy);

printf("请输入计算机成绩: ");

scanf("%f",&students[i]computer);

printf("请输入英语成绩:");

scanf("%f",&students[i]english);

i++;

printf("\n");

}

qzpj(zpj);

qgkpj(gkpj);

}

#include "Stdioh"

void main()

{

char c,ch[100];

int i=0,j;

c=getchar();

while(c!='#')

{

ch[i]=c;

i++;

c=getchar();

}

for(j=0;j<i;j++)

{

if(ch[j]>=65 && ch[j]<=90)

printf("%c\n",ch[j]+32);

if(ch[j]>=97 && ch[j]<=122)

printf("%c\n",ch[j]-32);

}

}

文件输入结束后输入‘#’作为结束标志

比如 输入"aBcdEf"

应该这样输"aBcdEf#"

楼主不厚道 刚刚不是这个题目的

大家别回答了 回答好了之后楼主又会把题目换了

#include <windowsh>

#define APPNAME "HELLO_WIN"

char szAppName[] = APPNAME; // 应用程序的名称

char szTitle[]   = APPNAME; // 标题行显示的文字

const char pWindowText;

void CenterWindow(HWND hWnd);

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

    switch (message) {

        case WM_CREATE:

            CenterWindow(hwnd);

            break;

        case WM_DESTROY:

            PostQuitMessage(0);

            break;

        case WM_RBUTTONUP:

            DestroyWindow(hwnd);

            break;

        case WM_KEYDOWN:

            if (VK_ESCAPE == wParam)

                DestroyWindow(hwnd);

            break;

        case WM_PAINT:

        {

            PAINTSTRUCT ps;

            HDC         hdc;

            RECT        rc;

            hdc = BeginPaint(hwnd, &ps);

            GetClientRect(hwnd, &rc);

            SetTextColor(hdc, RGB(240,240,96));

            SetBkMode(hdc, TRANSPARENT);

            DrawText(hdc, pWindowText, -1, &rc, DT_CENTER|DT_SINGLELINE|DT_VCENTER);

            EndPaint(hwnd, &ps);

            break;

        }

        default:

            return DefWindowProc(hwnd, message, wParam, lParam);

    }

    return 0;

}

int APIENTRY WinMain(

        HINSTANCE hInstance,

        HINSTANCE hPrevInstance,

        LPSTR lpCmdLine,

        int nCmdShow

        )

{

    MSG msg;

    WNDCLASS wc;

    HWND hwnd;

    pWindowText = lpCmdLine[0]  lpCmdLine : "这是一个Windows窗体";

    ZeroMemory(&wc, sizeof wc);

    wchInstance     = hInstance;

    wclpszClassName = szAppName;

    wclpfnWndProc   = (WNDPROC)WndProc;

    wcstyle         = CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW;

    wchbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);

    wchIcon         = LoadIcon(NULL, IDI_APPLICATION);

    wchCursor       = LoadCursor(NULL, IDC_ARROW);

    if (FALSE == RegisterClass(&wc))

        return 0;

    hwnd = CreateWindow(

        szAppName,

        szTitle,

        WS_OVERLAPPEDWINDOW|WS_VISIBLE,

        CW_USEDEFAULT,

        CW_USEDEFAULT,

        360,//CW_USEDEFAULT,

        240,//CW_USEDEFAULT,

        0,

        0,

        hInstance,

        0);

    if (NULL == hwnd)

        return 0;

    while (GetMessage(&msg, NULL, 0, 0) > 0) {

        TranslateMessage(&msg);

        DispatchMessage(&msg);

    }

    return msgwParam;

}

void CenterWindow(HWND hwnd_self)

{

    HWND hwnd_parent;

    RECT rw_self, rc_parent, rw_parent;

    int xpos, ypos;

    hwnd_parent = GetParent(hwnd_self);

    if (NULL == hwnd_parent)

        hwnd_parent = GetDesktopWindow();

    GetWindowRect(hwnd_parent, &rw_parent);

    GetClientRect(hwnd_parent, &rc_parent);

    GetWindowRect(hwnd_self, &rw_self);

    xpos = rw_parentleft + (rc_parentright + rw_selfleft - rw_selfright) / 2;

    ypos = rw_parenttop + (rc_parentbottom + rw_selftop - rw_selfbottom) / 2;

    SetWindowPos(

        hwnd_self, NULL,

        xpos, ypos, 0, 0,

        SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE

        );

}

120行,不知道够不够。如果你加上一些注释,可以达到150行。

以上代码,只是显示一行 “这是一个Windows窗体” 的黑色底色的窗体,窗体的标题是“HELLO_WIN”。

以上就是关于高分悬赏一C语言程序设计题(简单行编辑)全部的内容,包括:高分悬赏一C语言程序设计题(简单行编辑)、C语言程序设计(第4章函数)3、c语言 设计一个程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9699894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存