麻烦各位鱼油能给小弟的管理系统添加一个文件的读写功能
本帖最后由 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.num,L->p.name,L->p.sex,L->p.csrq,L->p.zzmm,L->p.jtzz)
#define sc scanf("%d %s %s %s %s %s",&L->p.num,L->p.name,L->p.sex,L->p.csrq,L->p.zzmm,L->p.jtzz)
typedef char Elemtype;
typedef struct Student
{
int num;
char name;
char sex;
char csrq;
char zzmm;
char jtzz;
}student;
typedef struct SqList
{
student*p;
intlength;
}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.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.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.num==temp)
{
f=1;
break;
}
else i++;
}
for(j=i;j<L->length;j++)
{
L->p=L->p;
}
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);
}
}
谢谢鱼油了!!!
感谢傻眼貓咪对我的帮助!奖励7鱼币! 感谢傻眼貓咪对我的帮助!奖励7鱼币! 对于我来说不改不可能,
把添加功能从init函数移动到choose函数里
然后init函数加入读取文件功能
在choose函数里的case 6:里加入写入文件功能
{:10_277:} 代码格式
页:
[1]