鱼C论坛

 找回密码
 立即注册
查看: 1827|回复: 5

麻烦各位鱼油能给小弟的管理系统添加一个文件的读写功能

[复制链接]
发表于 2022-12-24 14:08:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 yzxkk 于 2022-12-24 14:15 编辑

希望能在不影响原有功能的基础上,添加一个功能,把输入的数据保存到同一文件夹的TXT里面,并可以进行读写



高校学生学籍管理系统
代码如下:
#include<stdio.h>
#include<stdlib.h>
#define maxsize1 20
#define pr printf("%d %s %s %s %s %s\n",L->p[i].num,L->p[i].name,L->p[i].sex,L->p[i].csrq,L->p[i].zzmm,L->p[i].jtzz)
#define sc scanf("%d %s %s %s %s %s",&L->p[i].num,L->p[i].name,L->p[i].sex,L->p[i].csrq,L->p[i].zzmm,L->p[i].jtzz)


typedef char Elemtype;
typedef struct Student   
{
        int num;
        char name[maxsize1];
        char sex[maxsize1];
        char csrq[maxsize1];
        char zzmm[maxsize1];
        char jtzz[maxsize1];
}student;

typedef struct SqList
{
  student  *p;     
  int  length;      
}Node,*LinkList;

LinkList init();
void show(LinkList L);
int search(LinkList L);
void del(LinkList L);
void change(LinkList L);
void add(LinkList L);
void choose();
void order(LinkList L);

int main()
{
        LinkList L;
        L=init();
        order(L);
}

LinkList init()   
{
        LinkList L;
        int n,i=0;
        L=(LinkList)malloc(sizeof(Node));
        L->p=(student *)malloc(sizeof(student));
        L->length=0;
        printf("**************高校学生学籍管理系统**************\n");
        printf("初始化学籍登记表\n");
        printf("请输入初始登记表内学生个数\n");
        scanf("%d",&n);
        printf("开始添加学生基本信息\n");
        printf("学号 姓名 性别 出生日期 政治面貌 家庭住址\n");
        while(i<n)
        {
                sc;
                i++;
        }
        L->length=i;
        printf("\n信息录入结束\n");
        return L;
}

void show(LinkList L)          //输出函数
{
        int i=0;
        printf("\n开始输出登记表所有信息\n");
        printf("学号 姓名 性别 出生日期 政治面貌 家庭住址\n");
        while(i<L->length)
        {
                pr;
                i++;
        }
        printf("\n输出完成\n");
}

int search(LinkList L)        //查找函数
{
        int temp,i=0,f=0;
        printf("\n开始调用查找\n");
        printf("输入要操作的学号\n");
        scanf("%2d",&temp);
        while(i<L->length)
        {
                if(L->p[i].num==temp)
                        {
                                f=1;
                                printf("\n查找成功\n");
                                pr;
                                break;
                }
                else i++;
        }
        if(!f)
                {
                        printf("\n未找到该信息\n");
                        return -1;                                        //表示出错
        }
        return i;                                                 //返回目标的位置
}

void change(LinkList L)                                    
{
        int temp,i=0,f=0;
        printf("输入要修改同学的学号\n");
        scanf("%d",&temp);
        while(i<L->length)
        {
                if(L->p[i].num==temp)
                        {
                                f=1;
                                break;
                }
                else i++;
        }
        printf("请输入要修改同学的基本信息\n");
        printf("学号 姓名 性别 出生日期 政治面貌 家庭住址\n");
        sc;
        printf("\n修改成功\n");
}



void add(LinkList L)                             
{
        int i=L->length,temp=0;
        printf("\n开始插入\n");
        printf("请输入要插入的同学的基本信息\n");
        printf("学号 姓名 性别 出生日期 政治面貌 家庭住址\n");
        sc;
        L->length++;
        printf("插入完成\n");
}


void del(LinkList L)                              
{
        int temp,i=0,f=0,j;
        printf("\n开始删除\n");
        printf("请输入要删除同学的学号\n");
        scanf("%d",&temp);
        while(i<L->length)
        {
                if(L->p[i].num==temp)
                        {
                                f=1;
                                break;
                }
                else i++;
        }
        for(j=i;j<L->length;j++)
        {
                L->p[j]=L->p[j+1];
        }
        L->length--;
        printf("\n删除成功\n");
}


void choose()                             //功能选择
{
        printf("********************************************************************\n");
        printf("\n*         功能1:按学号查询学生信息                                *\n");
        printf("*         功能2:插入某位学生基本信息                              *\n");
        printf("*         功能3:按学号删除学生基本信息                            *\n");
        printf("*         功能4:修改学生基本信息                                  *\n");
        printf("*         功能5:输出所有学生基本信息                              *\n");
        printf("*         功能6:退出                                              *\n");
}

void order(LinkList L)                 {
        int n;
        choose();
        printf("请选择你要操作的功能\n");
        scanf("%d",&n);
        switch(n)
        {
        case 1: search(L);order(L);break;
        case 2: add(L);order(L);break;
        case 3: del(L);order(L);break;
        case 4: change(L);order(L);break;
        case 5: show(L);order(L);break;
        case 6: exit(0);
        default:order(L);
        }
}



谢谢鱼油了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-24 14:34:14 | 显示全部楼层

回帖奖励 +20 鱼币

感谢傻眼貓咪对我的帮助!奖励7鱼币!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-24 14:34:27 | 显示全部楼层

回帖奖励 +20 鱼币

感谢傻眼貓咪对我的帮助!奖励7鱼币!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-24 14:51:38 | 显示全部楼层

回帖奖励 +20 鱼币

对于我来说不改不可能,
把添加功能从init函数移动到choose函数里
然后init函数加入读取文件功能
在choose函数里的case 6:里加入写入文件功能
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-24 16:16:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-25 12:36:51 | 显示全部楼层
代码格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 16:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表