c语言课程设计新生入学注册系统设计,c语言课程设计,学生信息管理系统

C语言课程设计(上)

学生信息管理系统

题目:

新生入学,需要管理学生信息,要求如下:

能够通过键盘进行输入学生的信息,比如:学生姓名,学号,性别,班级,专业,入学成绩;

能够通过键盘输入要录入的学生的个数;

能够增加学生;

能够删除某一个或多个学生的所有信息;

能够进行查找某个学生的所有信息;

能够进行修改学生的信息;

能够将学生的信息保存到文件中,并且可以将文件中的学生信息读出;

能够实现注册账号,密码,并且能够实现登录…

代码如下;

#include

#include

#include

#include

#include

#include

struct student//先定义一个结构体数组

{

int num;

char name[20];

int score;

int banji;

char xibie[20];

struct student *next;//一个结构体指针

};

void insert(struct student *head)//输入学生信息

{

FILE *fp;//将学生信息直接写到文件中

int n;

fp=fopen("D:\\wenjian.txt","w");

struct student *l=head;

struct student *p=head->next;//使用链表## 标题

printf("请输入你要输入的学生的个数:");

scanf("%d",&n);

printf("\n");

for(int i=1;i<=n;i++)

{

{

struct student *p=(struct student *)malloc(sizeof(struct student));

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

scanf("%d",&p->num);

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

scanf("%s",p->name);

printf("请输入该生的成绩:");

scanf("%d",&p->score);

printf("请输入该生的班级:");

scanf("%d",&p->banji);

printf("请输入该生的系别:");

scanf("%s",p->xibie);

printf("\n\n");

p->next=NULL;

l->next=p;

l=l->next;

}

p=head->next;//返回头

{

fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",l->num,l->name,l->score,l->banji,l->xibie);

fputs("\n",fp);

}

}

fclose(fp);

system("cls");

printf(" 输入完成!\n\n");

}

void add(struct student *head)//添加学生信息

{

FILE *fp;

int n;

fp=fopen("D:\\wenjian.txt","a+");

struct student *l=head;

while(l->next)

l=l->next;

printf("请输入你要添加的学生的个数:");

scanf("%d",&n);

printf("\n");

for(int i=1;i<=n;i++)

{

struct student *p=(struct student *)malloc(sizeof(struct student));

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

scanf("%d",&p->num);

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

scanf("%s",p->name);

printf("请输入该生的成绩:");

scanf("%d",&p->score);

printf("请输入该生的班级:");

scanf("%d",&p->banji);

printf("请输入该生的系别:");

scanf("%s",p->xibie);

printf("\n\n");

p->next=NULL;

l->next=p;

l=l->next;

}

l=head->next;

fclose(fp);

fp=fopen("D:\\wenjian.txt","w");

while(l!=NULL)

{

fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",l->num,l->name,l->score,l->banji,l->xibie);

fputs("\n",fp);

l=l->next;

}

fclose(fp);

system("cls");

printf(" 添加完成!\n\n");

}

void daoru(struct student *head)//将文件导入链表

{

struct student *p=head;

FILE *fp;

int n;

if((fp=fopen("D:\\wenjian.txt","r"))==NULL)

{

printf("文件打开失败!\n");

exit(0);

}

else

{

for(n=0;!feof(fp);n++)

{

struct student *q=(struct student *)malloc(sizeof(struct student));

fscanf(fp,"%d\t%s\t%d\t%d\t%s\n",&q->num,q->name,&q->score,&q->banji,q->xibie);

q->next=NULL;

p->next=q;

p=p->next;

}

}

fclose(fp);

system("cls");

}

void xianshi(struct student *head)//显示学生信息

{

struct student *p=head;

printf("************************************************************************************************************\n");

printf("************************************************************************************************************\n");

printf("************************ 学号 *** 姓名 *** 成绩 *** 班级 *** 系别 ************\n");

while(p->next!=NULL)

{

printf("************************ %d *** %s *** %d *** %d *** %s ************\n",p->next->num,p->next->name,p->next->score,p->next->banji,p->next->xibie);

p=p->next;

}

printf("************************************************************************************************************\n");

printf("************************************************************************************************************\n\n\n");

}

void delet_num(struct student *head)//通过学号进行删除

{

struct student *p=head;

FILE *fp;

int ch;

if((fp=fopen("D:\\wenjian.txt","r"))==NULL)

{

printf("文件打开失败!\n");

exit(0);

}

else

{

int num2;

int n=0;

printf("请输入你要删除的学号:");

scanf("%d",&num2);

while(p->next!=NULL)

{

if(p->next->num==num2)

{

struct student *q;

q=p->next;

p->next=q->next;

free(q);

printf("删除成功!\n\n");

n++;

}

p=p->next;

}

if(n==0)

{

printf("没有找到该学号!\n\n");

}

}

fclose(fp);

fp=fopen("D:\\wenjian.txt","w");

p=head->next;

while(p!=NULL)

{

fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",p->num,p->name,p->score,p->banji,p->xibie);

fputs("\n",fp);

p=p->next;

}

fclose(fp);

printf("\n");

}

本代码未写完,请看下一篇…

谢谢!!!

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值