美文网首页C语言
2021-04-13(小程序)

2021-04-13(小程序)

作者: 张轻舟 | 来源:发表于2021-04-13 14:47 被阅读0次
image.png

需求设计:
1、登录功能 密码错误三次机会 全错提示退出 自定义函数
2、登录成功后 学生信息录入(姓名 学号 性别 成绩) 用户可以选择是否继续录入
3、学生录入完成后可以查询遍历及其增删改查
4、实现存储功能 保存至文件中
退出

#include<stdio.h>
#include<windows.h>

struct stds
{
    int id;
    char name[20];
    char sex[10];
    int ach;
    struct stds *next;
};

struct stds *head;
struct stds *std;
struct stds *jl;

//读取文件
int read()
{
    int n;
    FILE *rp;
    struct stds *rd;

    rp=fopen("./cundang.txt","a+");
    
    rd=(struct stds *)malloc(sizeof(struct stds));
    n=fscanf(rp,"%d%s%s%d",&rd->id,rd->name,rd->sex,&rd->ach);
    
    
    if(n==-1)
    {
        printf("数据库内无数据\n");
        return 0;
    }
    
    while(1)
    {
        if(!feof(rp))
        {
            rd->next=NULL;
            std->next=rd;
            std=std->next;
        }
        else
        {
            break;
        }
        rd=(struct stds *)malloc(sizeof(struct stds));
        fscanf(rp,"%d%s%s%d",&rd->id,rd->name,rd->sex,&rd->ach);
    }
    fclose(rp);
    printf("数据库加载完成\n");
    jl=std;
    return 0;
}

//写入文件
int write()
{
    FILE *wp;

    std=head->next;     //从头遍历
    if(std==NULL)
    {
        printf("内容为空,无法保存\n");  
        return 0;
    }
    
    wp=fopen("./cundang.txt","w");

    while(std!=NULL)
    {
        fprintf(wp,"%d %s %s %d\n",std->id,std->name,std->sex,std->ach);
        std=std->next;
    }
    fclose(wp);
    printf("保存成功\n");

    return 0;
}

//输入内容实现
int input()
{
    char n;
    struct stds *ed;
    std=jl;
    while(n=getchar())
    {
        if(n=='n')
        {
            break;
        }
        ed=(struct stds *)malloc(sizeof(struct stds));

        printf("请输入学号,姓名,性别,成绩:\n");
        scanf("%d%s%s%d",&ed->id,ed->name,ed->sex,&ed->ach);
        getchar();  //吸收回车符
        
        ed->next=NULL;
        std->next=ed;
        std=std->next;
        
        printf("n退出,回车继续输入...\n");
    }
    jl=std;
    return 0;
}

//显示内容实现
int output()
{
    int a=0;            //判断数据是否有输入
    std=head->next;     //从头遍历
    printf("内容如下:\n");
    
    while(std!=NULL)
    {
        if(std->next==NULL)
        {
            jl=std;
        }
        printf("%d\t%s\t%s\t%d\n",std->id,std->name,std->sex,std->ach);
        std=std->next;
        a=1;
    }
    
    if(a==0)    //未输入数据情况
        printf("内容为空\n");
    return 0;
}

//查找内容实现
int find(int n)
{
    std=head->next;
    while(std!=NULL)
    {
        if(std->id==n)
        {
            printf("%d\t%s\t%s\t%d\n",std->id,std->name,std->sex,std->ach);
            std=std->next;  
        }
        else
        {
            std=std->next;  
        }
        
    }
    return 0;
    
}

//修改内容实现
int gai(int n)
{
    find(n);
    std=head->next;
    while(std!=NULL)
    {
        if(std->id==n)
        {
            printf("输入新信息:\n");
            scanf("%d%s%s%d",&std->id,std->name,std->sex,&std->ach);
            printf("修改完成");
            break;  
        }
        else
        {
            std=std->next;
        }
        
    }
    output();
    return 0;
}

//删除内容实现
int del(int num)
{
    struct stds *dp;
    int n;

    dp=head;
    std=head->next;

    n=0;
    
    while(std!=NULL)
    {
        
        if(std->id==num)
        {
            dp->next=std->next;
            free(std);
            printf("删除后");
            n=1;
            output();
            break;
        }
        n=2;
        dp=std;
        std=std->next;
    }
    if(n==0)
    {
        printf("数据为空\n");
    }
    else if(n==2)
    {
        printf("没找着呀\n");
    }
    return 0;
}

//登录实现
int login()
{
    int i,j;
    char username[20],password[20];
    char lun[20]="123";
    char lpw[20]="123";
    
    for(i=0;i<3;i++)
    {
        printf("用户名(20字符以内):");
        scanf("%s",username);
        printf("密 码(20字符以内):");
        scanf("%s",password);
        
        if((j=strcmp(lun,username))==0)
        {
            if((j=strcmp(lpw,password))==0)
            {
                system("cls");
                printf("登陆成功...\n");
                return 1;
            }
            else
            {
                printf("用户名或密码错误...\n");
            }
        }
        else
        {
            printf("用户名不存在...\n");
        }
    }
    printf("已输入错误三次,系统自动退出...\n");
    return 0;
}



int main()
{
    int lg,i,n,gb;
    char menu;

    head=(struct stds *)malloc(sizeof(struct stds));
    std=(struct stds *)malloc(sizeof(struct stds));

    gb=0;   

    head->next=NULL;
    jl=std=head;

    lg=login();
        
    if(lg)
    {
        getchar();
        read();
        printf("欢迎使用\n");
        printf("输入内容按1,显示内容按2,查找内容按3,修改内容按4,删除内容按5,6保存,其他退出\n");
        while(menu=getchar())
        {
            printf("继续输入按1,显示内容按2,查找内容按3,修改内容按4,删除内容按5,6保存,其他退出\n");
            switch(menu)
            {
            case '1':system("cls");input();break;
            case '2':system("cls");output();break;
            case '3':system("cls");printf("输入要查找的ID:\n");scanf("%d",&n);find(n);break;
            case '4':system("cls");output();printf("输入要修改的ID:\n");scanf("%d",&n);gai(n);break;
            case '5':system("cls");output();printf("输入要删除的ID:\n");scanf("%d",&n);del(n);break;
            case '6':write();getchar();break;
            case '\n':gb=2;break;
            default:system("cls");gb=1;break;
            }
            if(gb==1)
            {
                write();
                printf("退出成功\n");
                break;
            }
            else if(gb==2)
            {
                continue;
            }
        }
    }
    else
    {
        printf("欢迎下次使用,再见...\n");
    }
    printf("感谢使用\n");
    system("pause");
    return 0;
}

相关文章

  • 2021-04-13(小程序)

    需求设计:1、登录功能 密码错误三次机会 全错提示退出 自定义函数2、登录成功后 学生信息录入(姓名 学号 性别 ...

  • 2021-04-13

    2021-04-13

  • conda的安装与使用(2021-04-27更新)存档版

    2021-04-27 update: 更新了提供conda镜像的大学的列表2021-04-13 更新预告: 本来打...

  • bitshares比特股数据20210413

    2021-04-13比特股BTS大额转账的记录 时间转出转入BTS数量16:35:51aex-bts-withdr...

  • Unity 开发规范

    Unity 开发规范 当前版本修订时间:2021-04-13除另行约定,所有Unity 项目开发均需按如下规范执行...

  • 潍坊小程序开发

    潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍...

  • 潍坊商城小程序开发制作

    潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍...

  • 蔬菜生鲜小程序制作

    小程序 | 小程序制作 | 小程序入口 | 小程序注册 | 小程序直播 | 小程序电商 | 社交电商 | 社区团购...

  • 微信小程序开发平台招商加盟

    微信小程序开发 我们做:简单小程序 门店小程序,附近小程序 功能型,预约型小程序 企业模板小程序 点餐外卖小程序 ...

  • 2020-04-13 组织的学习障碍

    【2021-04-13 日精进 第312天 】 组织的概念:为实现目标(要实现的结果),由职责、权限和相互关...

网友评论

    本文标题:2021-04-13(小程序)

    本文链接:https://www.haomeiwen.com/subject/jhwqlltx.html