在本人的已有C中添加或者修改

我想在这个程序中实现:将用户信息数据:如用户名,密码,账户金额引入txt文本,并在下一次实现功能时
,从txt中读取相关用户名,密码,金额。挂失数据暂不考虑,请避免用户名,密码,余额,不对应。txt文件名为data.txt

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int AccountCheck();   //用户名验证
int ReportLossVerification(int);   //挂失验证
int Code(int);     //密码函数
float Total=0;          //// 定义全局变量T,记录用户一天取款数的总和
void Withdrawal ();      //取款函数
void SaveMoney ();     //存款函数
void Inquire();      //查询函数
void SellingHousehodes();   //销户函数
void CreateNewAccount();       //开户函数
void Transfer();  //转账函数
void Loss();      //挂失函数
void Exit();      //退出函数
void CheckAllInfro();      //查询所有用户信息






char UserName[100][30];               //用户名
char CodeStr[100][30];               //密码
char LossName[100][30];                //挂失用户名


float RemainAmount[100];                 //存款余额
int UserNumber=0;                 //用户数
int LossNumber=0;                 //挂失用户数




void main()
{

    int order;          //命令


    while(order)
    {
        printf("******************************************************************\n");
        printf("||                    NM$L BANK ATM SYSTEM                      ||\n");
        printf("||                                                              ||\n");
        printf("||   1.Create new account. 4.Take money out.  8.Report Loss.    ||\n");
        printf("||   2.Save money.          5.Delete a current account.         ||\n");
        printf("||   3.Check current account. 6.Transfer money.   0.Exit.       ||\n");
        printf("||   7.Give all user information.                               ||\n");
        printf("||                                                              ||\n");
        printf(" ================================================================ \n");
        printf("Give your orders please:  ");
        scanf("%d",&order);
        printf("\n");
        switch(order)
        {
        case 1:                                        //开户
            CreateNewAccount ();
            break;
        case 2:                                        //存款
            SaveMoney();
            break;
        case 3:                                        //查询
            Inquire();
            break;
        case 4:                                        //取款
            Withdrawal();
            break;
        case 5:                                        //销户
            SellingHousehodes();
            break;
        case 6:                                        //转账
            Transfer();
            break;
        case 7:                                        //查询所有用户信息
            CheckAllInfro();
            break;
        case 8:                                        //挂失
            Loss();
            break;
        case 0:
             printf("欢迎您再次使用!\n");
             exit(0);
             break;
        }
    }


}




void Withdrawal()       //取款
{
    int i,m;
    float n;
    i=AccountCheck();
    m=ReportLossVerification(i);
    if(m==1)
        m=Code(i);
    while(m==1)
    {
        printf("How much do you want to take out: ");
        scanf("%f",&n);
        if(n>2000)
        {
            printf("Taken out less than 2000, per time!\n");
            Withdrawal();
                break;


        }
        Total=n+Total;
        if(Total>20000)
        {
            printf("Taken out per day should be less than 20000,Choose another day to take out.");
            break;
        }
        if(n<=RemainAmount[i])
        {
            printf("Take your money away.\n");
            RemainAmount[i]=RemainAmount[i]-n;
            break;
        }
        else
            printf("Remain is not enough,input another amount.\n");
    }
}




void SaveMoney()   //存款
{
    int i,m;
    float n;
    i=AccountCheck();
    m=ReportLossVerification(i);
    if(m==1)
        m=Code(i);
    while(m==1)
    {
        printf("How much doyou want to save: ");
        scanf("%f",&n);
        RemainAmount[i]=RemainAmount[i]+n;
        printf("Save successfully !");
        printf("Current remain is: %.2f\n",RemainAmount[i]);
        m=0;
    }
    m=1;
    main();
}




void Inquire()    //查询
{
    int i,m;
    i=AccountCheck();
    m=ReportLossVerification(i);
    if(m==1)
        m=Code(i);
}




void CreateNewAccount()   //开户
{
    int i,n=UserNumber,j=0;
    float m;
    char User[32],mima1[32],mima2[32];
    printf("Input your user name please: ");
    getchar();
    scanf("%s",User);
    for(i=0;i<n+1;i++)
    {
        if(strcmp(User,UserName[i])==0)
        {
            printf("Account already exit.\n");
            break;
        }
        else
        {
            strcpy(UserName[UserNumber],User);
            while(j!=1)
            {
                printf("Input code please: ");
                scanf("%s",mima1);
                printf("Now checking code again: ");
                scanf("%s",mima2);
                if(strcmp(mima1,mima2)==0)
                {
                    printf("Code successfully set.\n");
                    printf("Input your save amount : ");
                    scanf("%f",&m);
                    printf("OK,New account created.\n");
                    strcpy(CodeStr[UserNumber],mima1);
                    RemainAmount[UserNumber]=m;
                    j=1;
                }
                else
                    printf("Two different inputs, try again.\n ");
            }
            UserNumber++;
            break;
        }
    }
}




void SellingHousehodes()    //销户
{
    int i,n,m;
    i=AccountCheck();
    m=ReportLossVerification(i);
    if(m==1)
        m=Code(i);
    while(m==1)
    {
        printf("Make sure to delete ?\n   <1>Sure    <2>Not   \n");
        scanf("%d",&n);
        if(n==1)
        {
            for(;i<UserNumber;i++)
            {
                strcpy(UserName[i],UserName[i+1]);
                strcpy(CodeStr[i],CodeStr[i+1]);
                RemainAmount[i]=RemainAmount[i+1];
            }
        }
    UserNumber--;
    printf("Successfully deleted !\n");
    m=0;
    }
}


void Transfer()      //转账
{
    int i,n,j,s=1;
    float k;
    char User[32];
    i=AccountCheck();
    n=ReportLossVerification(i);
    if(n==1)
        n=Code(i);
    while(n==1)
    {
        printf("Input the target account :");
        scanf("%s",User);
        for(j=0;j<UserNumber;j++)
        {
            if(strcmp(UserName[j],User)==0)
            {
                n=2;
                break;
            }
        }
        if(j==UserNumber)
            printf("Target account not found ,input again:\n");
    }
    while(n==2)
    {
        printf("Input transfer amount:");
        scanf("%f",&k);
        if(k<=RemainAmount[i])
        {
            RemainAmount[i]=RemainAmount[i]-k;
            RemainAmount[j]=RemainAmount[j]+k;
            printf("Transfer successfully !\nCurrent remain amount is : %.2f\n",RemainAmount[i]);
            break;
        }
        else
            printf("Remain not enough,Input again:\n");
    }
}




void Loss()      //挂失
{
    int n,i,m;
    i=AccountCheck();
    m=ReportLossVerification(i);
    if(m==1)
        m=Code(i);
    if(m==1)
    {
        printf("Sure to report lost ?\n   <1>Sure   <2>Not   \n");
        scanf("%d",&n);
        if(n==1)
        {
            strcpy(LossName[LossNumber],UserName[i]);
            LossNumber++;
            printf("%s Reported successfully !\n",UserName[i]);
        }
    }
}




void Exit()
{


}


void CheckAllInfro()     //查询所有用户信息
{
    int i;
    for(i=0;i<UserNumber;i++)
        printf("Account name:%15s     Remain:%.2f\n",UserName[i],RemainAmount[i]);
}


int AccountCheck()     //用户名验证
{
    int m=1,i;
    char User[32];
    while(m==1)
    {
        printf("Input your Account name: ");
        scanf("%s",User);
        for(i=0;i<UserNumber;i++)
            if(strcmp(UserName[i],User)==0)
            {
                m=0;
                break;
            }
        if(i==UserNumber)
            printf("Account not found ,Make sure to try again: \n");
    }
    return i;
}


int ReportLossVerification(int i)             //挂失验证
{
    int j,n;
    for(j=0;j<LossNumber;j++)
    {
        if(strcmp(UserName[i],LossName[j])==0)
        {
            printf("This account already reported lost ,Delete lost report than try again!\n");
            n=0;
            break;
        }
    }
    if(j==LossNumber)
        n=1;
    return n;
}




int Code(int i)     //密码函数
{
    char mima[32];
    while(1)
    {
        printf("Input your passwords: ");
        scanf("%s",mima);
        if(strcmp(CodeStr[i],mima)==0)
        {
            printf("Log in successfully !\n");
            printf("Account :%s          Remain : %.2f \n",UserName[i],RemainAmount[i]);
            break;
        }
        else
            printf("Wrong code ,try again.\n");
    }
    return 1;
}

a81836620
a81836620 代码已写好,直接复制可用
8 个月之前 回复
phenix2009
白色一大坨 你直接用我写的openfile和savefile就可以了,通用性还挺不错的
8 个月之前 回复

2个回答

直接用吧,txt文件你建一个放在程序目录,改掉你循环判断条件为true,用order不合适


void openfile()
{
    FILE *fp;
    int len;
    char *ptr;
    char *p;
    if ((fp = fopen("data.txt", "r")) == NULL)
    {
        printf("cannot open infile\n");
    }

    char buf[256] = { 0 };
    int i = 0;
    while (fgets(buf, 1024, fp) != NULL)//读取数据
    {
        len = strlen(buf);
        buf[len - 1] = '\0';  /*去掉换行符*/
        ptr = strtok(buf, "\t");//拆分字符串
        strcpy(UserName[i], ptr);
        ptr = strtok(NULL, "\t");
        strcpy(CodeStr[i], ptr);
        ptr = strtok(NULL, "\t");
        RemainAmount[i] = atof(ptr);
        i++;
    }

     UserNumber = i;
    fclose(fp);
}

void savefile()
{
    FILE *fp;
    char buf[256] = { 0 };
    if ((fp = fopen("data.txt", "w")) == NULL)
    {
        printf("cannot open infile\n");
    }

    for (int i = 0; i < UserNumber;i++)
    {
        sprintf(buf, "%s\t%s\t%.2f\n", UserName[i], CodeStr[i], RemainAmount[i]);
        fputs(buf, fp);
    }
}


void main()
{

    int order = 0;          //命令

    openfile();
    while (true)
    {
        printf("******************************************************************\n");
        printf("||                    NM$L BANK ATM SYSTEM                      ||\n");
        printf("||                                                              ||\n");
        printf("||   1.Create new account. 4.Take money out.  8.Report Loss.    ||\n");
        printf("||   2.Save money.          5.Delete a current account.         ||\n");
        printf("||   3.Check current account. 6.Transfer money.   0.Exit.       ||\n");
        printf("||   7.Give all user information.                               ||\n");
        printf("||                                                              ||\n");
        printf(" ================================================================ \n");
        printf("Give your orders please:  ");
        scanf("%d", &order);
        printf("\n");
        switch (order)
        {
        case 1:                                        //开户
            CreateNewAccount();
            break;
        case 2:                                        //存款
            SaveMoney();
            break;
        case 3:                                        //查询
            Inquire();
            break;
        case 4:                                        //取款
            Withdrawal();
            break;
        case 5:                                        //销户
            SellingHousehodes();
            break;
        case 6:                                        //转账
            Transfer();
            break;
        case 7:                                        //查询所有用户信息
            CheckAllInfro();
            break;
        case 8:                                        //挂失
            Loss();
            break;
        case 0:
            printf("欢迎您再次使用!\n");
            savefile();
            exit(0);
            break;
        }
    }


}

在你的代码基础上加了两个函数,分别是程序开始是读取文本 的readFile 以及退出时的writeFile.读写已经格式对齐。考虑到显示问题,字符数组只显示了10个长度,金额 只显示了5个长度。有需要可以自己稍微改下

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int AccountCheck();   //用户名验证
int ReportLossVerification(int);   //挂失验证
int Code(int);     //密码函数
float Total=0;          //// 定义全局变量T,记录用户一天取款数的总和
void Withdrawal ();      //取款函数
void SaveMoney ();     //存款函数
void Inquire();      //查询函数
void SellingHousehodes();   //销户函数
void CreateNewAccount();       //开户函数
void Transfer();  //转账函数
void Loss();      //挂失函数
void Exit();      //退出函数
void CheckAllInfro();      //查询所有用户信息
void readFile();   // 从文本读入账户
void writeFile();  // 把账户写入文本


char UserName[100][30];               //用户名
char CodeStr[100][30];               //密码
char LossName[100][30];                //挂失用户名


float RemainAmount[100];                 //存款余额
int UserNumber=0;                 //用户数
int LossNumber=0;                 //挂失用户数




int main()
{

    int order;          //命令
    /*
    读入txt数据
    */
   readFile();


    while(order)
    {
        printf("******************************************************************\n");
        printf("||                    NM$L BANK ATM SYSTEM                      ||\n");
        printf("||                                                              ||\n");
        printf("||   1.Create new account. 4.Take money out.  8.Report Loss.    ||\n");
        printf("||   2.Save money.          5.Delete a current account.         ||\n");
        printf("||   3.Check current account. 6.Transfer money.   0.Exit.       ||\n");
        printf("||   7.Give all user information.                               ||\n");
        printf("||                                                              ||\n");
        printf(" ================================================================ \n");
        printf("Give your orders please:  ");
        scanf("%d",&order);
        printf("\n");
        switch(order)
        {
        case 1:                                        //开户
            CreateNewAccount ();
            break;
        case 2:                                        //存款
            SaveMoney();
            break;
        case 3:                                        //查询
            Inquire();
            break;
        case 4:                                        //取款
            Withdrawal();
            break;
        case 5:                                        //销户
            SellingHousehodes();
            break;
        case 6:                                        //转账
            Transfer();
            break;
        case 7:                                        //查询所有用户信息
            CheckAllInfro();
            break;
        case 8:                                        //挂失
            Loss();
            break;
        case 0:
            writeFile();
            printf("欢迎您再次使用!\n");
            exit(0);
            break;
        }
    }
    return 0;
}


void readFile(){  // 从文本读入账户
    int i;
    FILE *fpRead=fopen("data.txt","r"); 
    for(i=0;!feof(fpRead);i++)  
    {  
        fscanf(fpRead,"%s",UserName[i]);
        fscanf(fpRead,"%s",CodeStr[i]);
        fscanf(fpRead,"%f",&RemainAmount[i]);
        //fscanf(fpRead,"%f",&RemainAmount[i]);
        printf("%10s  %10s  %5f\n",UserName[i],CodeStr[i],RemainAmount[i]);  
    } 
    UserNumber = i;
    fclose(fpRead);
}   
void writeFile(){  // 把账户写入文本
    FILE *fpWrite=fopen("data.txt","w"); 
    printf("%d\n",UserNumber);
    for(int i=0;i<UserNumber;i++){
        printf("%10s %10s %5f\n",UserName[i],CodeStr[i],RemainAmount[i]);
        fprintf(fpWrite,"%10s%10s\n%5f",UserName[i],CodeStr[i],RemainAmount[i]);  
    }
    fclose(fpWrite);  
}



void Withdrawal()       //取款
{
    int i,m;
    float n;
    i=AccountCheck();
    m=ReportLossVerification(i);
    if(m==1)
        m=Code(i);
    while(m==1)
    {
        printf("How much do you want to take out: ");
        scanf("%f",&n);
        if(n>2000)
        {
            printf("Taken out less than 2000, per time!\n");
            Withdrawal();
                break;


        }
        Total=n+Total;
        if(Total>20000)
        {
            printf("Taken out per day should be less than 20000,Choose another day to take out.");
            break;
        }
        if(n<=RemainAmount[i])
        {
            printf("Take your money away.\n");
            RemainAmount[i]=RemainAmount[i]-n;
            break;
        }
        else
            printf("Remain is not enough,input another amount.\n");
    }
}




void SaveMoney()   //存款
{
    int i,m;
    float n;
    i=AccountCheck();
    m=ReportLossVerification(i);
    if(m==1)
        m=Code(i);
    while(m==1)
    {
        printf("How much doyou want to save: ");
        scanf("%f",&n);
        RemainAmount[i]=RemainAmount[i]+n;
        printf("Save successfully !");
        printf("Current remain is: %.2f\n",RemainAmount[i]);
        m=0;
    }
    m=1;
    main();
}




void Inquire()    //查询
{
    int i,m;
    i=AccountCheck();
    m=ReportLossVerification(i);
    if(m==1)
        m=Code(i);
}




void CreateNewAccount()   //开户
{
    int i,n=UserNumber,j=0;
    float m;
    char User[32],mima1[32],mima2[32];
    printf("Input your user name please: ");
    getchar();
    scanf("%s",User);
    for(i=0;i<n+1;i++)
    {
        if(strcmp(User,UserName[i])==0)
        {
            printf("Account already exit.\n");
            break;
        }
        else
        {
            strcpy(UserName[UserNumber],User);
            while(j!=1)
            {
                printf("Input code please: ");
                scanf("%s",mima1);
                printf("Now checking code again: ");
                scanf("%s",mima2);
                if(strcmp(mima1,mima2)==0)
                {
                    printf("Code successfully set.\n");
                    printf("Input your save amount : ");
                    scanf("%f",&m);
                    printf("OK,New account created.\n");
                    strcpy(CodeStr[UserNumber],mima1);
                    RemainAmount[UserNumber]=m;
                    j=1;
                }
                else
                    printf("Two different inputs, try again.\n ");
            }
            UserNumber++;
            break;
        }
    }
}




void SellingHousehodes()    //销户
{
    int i,n,m;
    i=AccountCheck();
    m=ReportLossVerification(i);
    if(m==1)
        m=Code(i);
    while(m==1)
    {
        printf("Make sure to delete ?\n   <1>Sure    <2>Not   \n");
        scanf("%d",&n);
        if(n==1)
        {
            for(;i<UserNumber;i++)
            {
                strcpy(UserName[i],UserName[i+1]);
                strcpy(CodeStr[i],CodeStr[i+1]);
                RemainAmount[i]=RemainAmount[i+1];
            }
        }
    UserNumber--;
    printf("Successfully deleted !\n");
    m=0;
    }
}


void Transfer()      //转账
{
    int i,n,j,s=1;
    float k;
    char User[32];
    i=AccountCheck();
    n=ReportLossVerification(i);
    if(n==1)
        n=Code(i);
    while(n==1)
    {
        printf("Input the target account :");
        scanf("%s",User);
        for(j=0;j<UserNumber;j++)
        {
            if(strcmp(UserName[j],User)==0)
            {
                n=2;
                break;
            }
        }
        if(j==UserNumber)
            printf("Target account not found ,input again:\n");
    }
    while(n==2)
    {
        printf("Input transfer amount:");
        scanf("%f",&k);
        if(k<=RemainAmount[i])
        {
            RemainAmount[i]=RemainAmount[i]-k;
            RemainAmount[j]=RemainAmount[j]+k;
            printf("Transfer successfully !\nCurrent remain amount is : %.2f\n",RemainAmount[i]);
            break;
        }
        else
            printf("Remain not enough,Input again:\n");
    }
}




void Loss()      //挂失
{
    int n,i,m;
    i=AccountCheck();
    m=ReportLossVerification(i);
    if(m==1)
        m=Code(i);
    if(m==1)
    {
        printf("Sure to report lost ?\n   <1>Sure   <2>Not   \n");
        scanf("%d",&n);
        if(n==1)
        {
            strcpy(LossName[LossNumber],UserName[i]);
            LossNumber++;
            printf("%s Reported successfully !\n",UserName[i]);
        }
    }
}




void Exit()
{


}


void CheckAllInfro()     //查询所有用户信息
{
    int i;
    for(i=0;i<UserNumber;i++)
        printf("Account name:%15s     Remain:%.2f\n",UserName[i],RemainAmount[i]);
}


int AccountCheck()     //用户名验证
{
    int m=1,i;
    char User[32];
    while(m==1)
    {
        printf("Input your Account name: ");
        scanf("%s",User);
        for(i=0;i<UserNumber;i++)
            if(strcmp(UserName[i],User)==0)
            {
                m=0;
                break;
            }
        if(i==UserNumber)
            printf("Account not found ,Make sure to try again: \n");
    }
    return i;
}


int ReportLossVerification(int i)             //挂失验证
{
    int j,n;
    for(j=0;j<LossNumber;j++)
    {
        if(strcmp(UserName[i],LossName[j])==0)
        {
            printf("This account already reported lost ,Delete lost report than try again!\n");
            n=0;
            break;
        }
    }
    if(j==LossNumber)
        n=1;
    return n;
}




int Code(int i)     //密码函数
{
    char mima[32];
    while(1)
    {
        printf("Input your passwords: ");
        scanf("%s",mima);
        if(strcmp(CodeStr[i],mima)==0)
        {
            printf("Log in successfully !\n");
            printf("Account :%s          Remain : %.2f \n",UserName[i],RemainAmount[i]);
            break;
        }
        else
            printf("Wrong code ,try again.\n");
    }
    return 1;
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
在listcontrol中添加动态按钮,然后点击添加的按钮,将打开的文件路径显示在按钮同一行。
-
Win10下安装Ubuntu为何检测不到已安装的Windows?
-
Head First C#第二版 在C#程序中添加一个.sdf项目
-
Java开发时如何使用已有C++工程中的自定义类型?
-
Tomcat可以用来作为C/S中的服务端吗?具体怎么用?
-
如何在爬虫中添加线程
-
javacv下面通过findContours查找轮廓,如何找到轮廓线上的所有点在图片上的坐标?
-
C++代码题 添加cpu类的构造函数:无参(输出“正在默认构造对象”)
-
springboot打包包含本地在开发的jar报无法找到jar中类的问题
-
本人新手 需要一个C++的RSA加解密的代码
-
c#怎么添加gif图为背景图
-
关于C#调用matlab生成的.dll文件时的问题
-
如何将C++中的数据发送到Arduino开发板?
-
PTA上遇到的问题:L1-010 比较大小
-
本人数据源为elasticsearch,如何让grafana实现加减乘除运算展现?
-
求大神用c++或c语言解答,本人速求,谢谢!
-
请问各位大神,在c#串口通讯中,怎么把接收到的数据保存在Excel表格中?
-
使用SSM用户管理要求修改和添加在同一个JSP页面
-
学会了这些技术,你离BAT大厂不远了
每一个程序员都有一个梦想,梦想着能够进入阿里、腾讯、字节跳动、百度等一线互联网公司,由于身边的环境等原因,不知道 BAT 等一线互联网公司使用哪些技术?或者该如何去学习这些技术?或者我该去哪些获取这些技术资料?没关系,平头哥一站式服务,上面统统不是问题。平头哥整理了 BAT 等一线大厂的必备技能,并且帮你准备了对应的资料。对于整理出来的技术,如果你掌握的不牢固,那就赶快巩固,如果你还没有涉及,现在...
程序员真是太太太太太有趣了!!!
网络上虽然已经有了很多关于程序员的话题,但大部分人对这个群体还是很陌生。我们在谈论程序员的时候,究竟该聊些什么呢?各位程序员大佬们,请让我听到你们的声音!不管你是前端开发...
史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
网上很多整合SSM博客文章并不能让初探ssm的同学思路完全的清晰,可以试着关掉整合教程,摇两下头骨,哈一大口气,就在万事具备的时候,开整,这个时候你可能思路全无 ~中招了咩~ ,还有一些同学依旧在使用eclipse或者Myeclipse开发,我想对这些朋友说IDEA 的编译速度很快,人生苦短,来不及解释了,直接上手idea吧。这篇文章每一步搭建过程都测试过了,应该不会有什么差错。本文章还有个比较优秀的特点,就是idea的使用,基本上关于idea的操作都算是比较详细的,所以不用太担心不会撸idea!最后,本文
1行Python代码制作动态二维码
目录 1、普通二维码 2、艺术二维码 3、动态二维码 在GitHub上发现了一个比较有意思的项目,只需要一行Python代码就可以快捷方便生成普通二维码、艺术二维码(黑白/彩色)和动态GIF二维码。 GitHub网站参见:https://github.com/sylnsfar/qrcode 用法比较简单,直接通过pip安装即可。 pip3 install myqr 安装过程如下所...
知乎上 40 个有趣回复,很精辟很提神
点击蓝色“五分钟学算法”关注我哟加个“星标”,天天中午 12:15,一起学算法作者 |佚名来源 |网络整理,版权归原作者所有,侵删。1交朋友的标准是什么?- Ques...
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
让程序员崩溃的瞬间(非程序员勿入)
今天给大家带来点快乐,程序员才能看懂。 来源:https://zhuanlan.zhihu.com/p/47066521 1. 公司实习生找 Bug 2.在调试时,将断点设置在错误的位置 3.当我有一个很棒的调试想法时 4.偶然间看到自己多年前写的代码 5.当我第一次启动我的单元测试时 ...
用Python分析2000款避孕套,得出这些有趣的结论
到现在为止,我们的淘宝教程已经写到了第四篇,前三篇分别是: 第一篇:Python模拟登录淘宝,详细讲解如何使用requests库登录淘宝pc端。 第二篇:淘宝自动登录2.0,新增Cookies序列化,教大家如何将cookies保存起来。 第三篇:Python爬取淘宝商品避孕套,教大家如何爬取淘宝pc端商品信息。 今天,我们来看看淘宝系列的第四篇 我们在上一篇的时候已经将淘宝数据爬取下来了,...
程序员必备几款软件(实用、开源)
目录 Notepad++ tiny c compiler(tcc编译器) Notepad++ 软件介绍 程序员必备的文本编辑器,软件小巧高效,支持27种编程语言,兼容C,C++ ,Java ,C#, XML, HTML, PHP,JS 等, Notepad++ 可完美地取代微软的记事本。 下载链接http://www.188soft.com/soft/906144.html 软件特点 这是 Win...
一个即将走向社会的软件技术专业学生的感想
不知道为什么,总是喜欢在晚上学习,好像晚上学习也更有效率,而且晚上我也比较喜欢瞎想。一望无垠的夜空,独自一个人站在阳台上,望着深邃的星空,便总会陷入沉思,或思索未来的生活,或怀念过往的人生。 我为什么会选择软件技术专业 对于为什么会选择软件技术专业呢?原因其实很简单,亲戚朋友们都说做这个赚钱,身边也不乏做IT行业的人,所以,可以说我是为了钱,可能有人会说我比较势利吧,但是谁能说自己不喜欢钱呢?再加...
分享靠写代码赚钱的一些门路
作者 mezod,译者 josephchang10如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。今天给大家分享一个精彩...
技术人员要拿百万年薪,必须要经历这9个段位
很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破。所以我结合我自己10多年的从业经验,总结了技术人员成长的9个段位,希望对大家的职...
为什么我不建议你在当前购买 5G 手机
首发于公众号:BaronTalk,欢迎关注 每年的八九月份都是各大厂商发布年自己旗舰机的时候,最近 vivo、oppo、小米、华为、苹果接连发布了自己的年度旗舰,这当中除了苹果,其它厂商均发布了 5G 版本手机。恰逢国庆,势必会迎来一波换机潮,而各大厂商发布的 5G 手机很可能会成为很多同学的首选,今天我要来给准备购买 5G 手机的同学泼泼冷水。 先抛出观点:**对于普通消费者,当前不适合购...
win10电脑工具整理 - 常用工具!
如题,本文主要为博主对电脑上安装的一些软件,所做的整理,当做备份用吧。 一、分类 系统工具 办公软件 编程开发 数据库相关 图片视频工具 网络及下载工具 解压缩工具 影音娱乐工具 二、软件工具 1.系统工具 1.1. 磁盘管理 PartAssist:一款好用的磁盘分区管理工具。 1.2. 修复、引导 EasyBCD:一款常用的系统引导和修复工具。 1.3. 虚拟机管理工具 win10...
第二弹!python爬虫批量下载高清大图
文章目录前言下载免费高清大图下载带水印的精选图代码与总结 前言 在上一篇写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!中,我们在未登录的情况下实现了图虫创意无水印高清小图的批量下载。虽然小图能够在一些移动端可能展示的还行,但是放到pc端展示图片太小效果真的是很一般!建议阅读本文查看上一篇文章,在具体实现不做太多介绍,只讲个分析思路。 当然,本文可能技术要求不是特别高,但可以...
面试官,不要再问我三次握手和四次挥手
三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了。 见过比较典型的面试场景是这样的: 面试官:请介绍下三次握手 求职者:第一次握手就是客户端给服务器端发送一个报文,第二次就是服务器收到报文之后,会应答一个报文给客户端,第三次握手就是客户端收到报文后再给服务器发送一个报文,三次握手就...
Java 爬虫遇到需要登录的网站,该怎么办?
这是 Java 网络爬虫系列博文的第二篇,在上一篇 Java 网络爬虫,就是这么的简单 中,我们简单的学习了一下如何利用 Java 进行网络爬虫。在这一篇中我们将简单的聊一聊在网络爬虫时,遇到需要登录的网站,我们该怎么办? 在做爬虫时,遇到需要登陆的问题也比较常见,比如写脚本抢票之类的,但凡需要个人信息的都需要登陆,对于这类问题主要有两种解决方式:一种方式是手动设置 cookie ,就是先在网站上...
div+css实现水平/垂直/水平垂直居中详解
单个元素 水平居中 1.margin:0 auto方法 wrapper相对屏幕居中 &lt;div class="wrapper"&gt;&lt;/div&gt; body{ width: 100%; } .wrapper{ margin: 0 auto; width: 120px; height: 120px; background-color: purple; } ...
为什么程序员在学习编程的时候什么都记不住?
在程序员的职业生涯中,记住所有你接触过的代码是一件不可能的事情!那么我们该如何解决这一问题?作者 |Dylan Mestyanek译者 | 弯月,责编 | 屠敏出品 |...
500行代码,教你用python写个微信飞机大战
这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / 右手有节奏有韵律的朝着同一个方向来回移动起来! 这是史诗级的发明,是浓墨重彩的一笔,是…… 在一阵抽搐后,我结束了游戏,瞬时觉得一切都索然无味,正在我进入贤者模式时,突然想到,如果我可以让更多人已不同的方式体会到这种美轮美奂的感觉岂不美哉? 所以我打开电脑,创建了一个 `plan_game.py`……
唐僧团队要裁员,你会裁谁?
提问: 西游记取经团为了节约成本,唐太宗需要在这个团队里裁掉一名队员,该裁掉哪一位呢,为什么? 为了完成西天取经任务,组成取经团队,成员有唐僧、孙悟空、猪八戒、沙和尚、白龙马。 高层领导: 观音 项目经理: 唐僧 技术核心: 孙悟空 普通团员: 猪八戒、沙和尚 司机: 白龙马 这是个很有意思的项目团队 项目经理:唐僧 得道高僧。 唐僧作为项目经理,有很坚韧的品性和极高的原则性,不达目的不罢...
唏嘘!2019榜单出炉:铁打的Python连续3年第一,它居然跌出前十?
IEEE Spectrum2019年度编程语言排行榜最近刚刚出炉,Python不出意外的又拿了个第一,但是意料之外的是,曾经大火的PHP,居然跌出了前十!PHP曾被大家称...
相关热词 c# mvc 上传 文件 c#扫描软件 c# 文字打印左右反转 c#byte转换成数字 c# 音量调节组件 c# wpf 界面 c# 读取证书文件的内容 c# 单例模式 工厂模式 c# dgv 树结构 c#继承 反序列化

相似问题

6
求大神修改c++代码。统计一篇英文文章中所有单词出现次数。
2
qt添加sdk的问题,求大神赐教
8
在VS2010里的asp.net中添加了一个button按钮如何实现点击这个按钮执行SQL语句
10
C语言中sprintf赋值问题
1
C++中如何只加载一次python脚本,然后可以调用python,只为减少时间
2
本人新手 需要一个C++的RSA加解密的代码
3
求助,本人小白;用C语言怎么用2种不同思路输出OXE3的二进制?
3
关于基于C++程序的界面开发方向问题
2
如何快速从C语言上手C++及QT?
1
本人C++小白,初学C++,QT,想向各位大神请教下QT调用C++的dll 问题
2
C语言中while循环带上scanf语句
2
c++怎么向python高效传递矩阵数据,有完整的demo或者相关资料吗?
0
C++如何通过ADO传递表值参数到SQL Sever存储过程?-- 【已解决】
0
一个关于Android studio中添加依赖项的小问题
5
本人C语言小白,自己尝试做了一个关于数组的输入输出的程序,却输不出来
3
请教一个关于c++DLL供C#调用的代码,是否会出现内存泄漏的问题
2
各位大佬跪求电影里春节十三响的C#程序代码或者思维导图
1
python使用循环把input输入的内容添加到文件时,为什么只添加了最后一次输入的内容
2
在springboot项目资源目录新建txt文件,来写入数据库查询的数据,本人小白,求详细点代码,谢谢!
1
关于c++类内成员赋值的问题(大一基础)