精华内容
下载资源
问答
  • 用申请动态内存的方式实现C语言学生信息管理系统, 可以实现学生的增、删、改、查、列、保存、加载等功能的实现,最大的特点就是全部用指针实现功能,不必进行传参,节省了内存。
  • 文档是C语言编写的学生信息管理系统。我已经在vs2005上运行过,没有错误。大家可放心使用这个是用链表写的,功能应该比较全的,用链表可实现动态内存分配,方便存储人数不确定的信息#include#include#include#include...

    文档是C语言编写的学生信息管理系统。我已经在vs2005上运行过,没有错误。大家可放心使用

    这个是用链表写的,功能应该比较全的,用链表可实现动态内存分配,方便存储人数不确定的信息

    #include

    #include

    #include

    #include

    #define NULL 0

    struct student

    {

    char bianhao[10];

    char name[15];

    char xingbie[6];

    int nianling;

    int zongfen;

    char licence[20];

    char address[40];

    char beizhu[100];

    struct student *next;

    };

    struct student *creat()/创建链表

    {

    struct student *p,*head,*end;

    head=p=end=(struct student *)malloc(sizeof(struct student));//创建一个节点

    printf("====请输入学生信息====\n");

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

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

    while(strcmp(p->bianhao,"0")!=0)

    {

    end=p;

    printf("姓名:");

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

    printf("性别:");

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

    printf("年龄:");

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

    printf("总分:");

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

    printf("证件号:");

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

    printf("家庭住址:");

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

    printf("备注:");

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

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

    end->next=p;

    // end=p;

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

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

    }

    end->next=NULL;

    return head;

    }

    void save(struct student *head)//保存链表为磁盘文件

    {

    FILE *fp;

    struct student *p;

    char filename[20];

    int ch;

    printf("请输入要保存的文件名:");

    scanf("%s",filename);

    if((fp=fopen(filename,"r"))!=NULL)

    {

    printf("该文件已经存在,是否覆盖?\n");

    printf("1、覆盖. 2、不覆盖\n");

    scanf("%d",&ch);

    if(ch!=1)

    {

    printf("请重新输入要保存的文件名:");

    scanf("%s",filename);

    }

    }

    if((fp=fopen(filename,"w"))==NULL)

    {

    printf("创建文件失败!\n");

    return;//exit(0);正常退出,执行后显示press anykey to continue;

    }

    // getchar();

    p=head;

    while(p!=NULL)

    {

    fprintf(fp,"%s\n",p->bianhao);

    fprintf(fp,"%s\n",p->name);

    fprintf(fp,"%s\n",p->xingbie);

    fprintf(fp,"%d\n",p->nianling);

    fprintf(fp,"%d\n",p->zongfen);

    fprintf(fp,"%s\n",p->licence);

    fprintf(fp,"%s\n",p->address);

    fprintf(fp,"%s\n",p->beizhu);

    p=p->next;

    }

    fputs("over",fp);

    printf("文件保存成功!\n");//

    getchar();

    fclose(fp);

    }

    void output(struct student *head)//输出链表

    {

    struct student *p;

    p=head;

    if(p==NULL)

    {

    printf("未创建任何记录!\n");

    getchar();

    return; //head;

    }

    while(p!=NULL)//do

    {

    printf("编号: %s",p->bianhao);

    printf("\n姓名: %s",p->name);

    printf("\n性别: %s",p->xingbie);

    printf("\n年龄: %d",p->nianling);

    printf("\n总分: %d",p->zongfen);

    printf("\n证件号: %s",p->licence);

    printf("\n家庭地址: %s",p->address);

    printf("\n备注: %s\n",p->b

    eizhu);

    p=p->next;

    }//while(p!=NULL);

    getchar();

    }

    struct student *openfile()//打开文件,即新创建链表读取磁盘文件

    {

    struct student *head,*p,*f;

    FILE *

    展开全文
  • 这是我个人写的学生信息管理系统,非常适合你的期末课程设计。
  • C语言学生信息管理系统源代码

    千次阅读 多人点赞 2020-12-22 10:21:36
    大学C语言实训课学习到的一段源代码C语言学生信息管理系统。 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> struct stu_inf//学生信息结构体定义 { int...

    相关文章推荐:

    1、 C语言学生成绩管理系统源代码 ★★★★★

    2、 C语言学籍管理系统源代码 ★★

    3、C语言学生成绩管理系统设计 《C语言程序设计》实训报告 ★★★

    4、职工信息管理系统C++代码 ★★★

    扫描上方二维码,回复 999 直接获取作者之前收藏的学习资源,谢谢网友们的分享。

    更多管理系统更新中,请注意关注!

    大学C语言实训课学习到的一段源代码,C语言学生信息管理系统。

    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<string.h>
    struct stu_inf//学生信息结构体定义
    {
    	int age,year,month;
    	long int number;
    	char name[10],sex[4],tel[15],email[30],address[50];	
    	struct stu_inf *next;
    };
    #define LEN sizeof(struct stu_inf)
    int STU_SUM=0;//学生总数同时写入文件再次读取可防止读取空文本出现乱码的情况。
    int FLAG=0;//判断是否对学生信息进行了改动
    struct stu_inf *Stu_Create(struct stu_inf *head);//学生信息录入
    struct stu_inf *Stu_Delete(struct stu_inf *head);//学生信息删除
    struct stu_inf *Stu_Correct(struct stu_inf *head);//学生信息修改
    struct stu_inf *Stu_Search_Number(struct stu_inf *head,int number);//按学号查询学生信息
    struct stu_inf *Stu_Search_Name(struct stu_inf *head,char *name);//按姓名查询学生信息
    struct stu_inf *Stu_Insert(struct stu_inf *head,struct stu_inf *stu);//学生信息的插入
    void Stu_Print(struct stu_inf *head);//学生信息的输出
    void Stu_Search(struct stu_inf *head);//选择按何种方式查询学生信息
    void Write_Data(struct stu_inf *head);//学生信息写入到文件
    struct stu_inf *Read_Data();//学生信息读入到文件
    void main()
    {
    	char choice,choice2;
    	struct stu_inf *head=NULL;
    	head=Read_Data();
    	do
    	{
    		printf("\n\t\t------------------\n");
    		printf("\t\t学生信息管理系统\n");
    		printf("\t\t-*-*-*-*-*-*-*-*-*\n");
    		printf("\t\t(1)---录入学生信息\n");
    		printf("\t\t(2)---浏览学生信息\n");
    		printf("\t\t(3)---查询学生信息\n");
    		printf("\t\t(4)---删除学生信息\n");
    		printf("\t\t(5)---修改学生信息\n");
    		printf("\t\t(0)---退出系统\n");
    		printf("\t\t-*-*-*-*-*-*-*-*-*\n");
    		printf("\t\t请输入您的选择:");
    		choice=getche();
    		putchar('\n');
    		switch(choice)
    		{
    		case '1':
    			head=Stu_Create(head);
    			break;
    		case '2':
    			Stu_Print(head);
    			break;
    		case '3':
    			Stu_Search(head);
    			break;
    		case '4':
    			head=Stu_Delete(head);
    			break;
    		case '5':			
    			Stu_Correct(head);
    			break;
    		case '0':
    			if(FLAG==1)
    			{
    				printf("\n是否将改动保存到“学生信息.txt”?(y/n)\n");
    				do
    				{
    					choice2=getche();
    					switch(choice2)
    					{
    					case 'y':
    						Write_Data(head);
    						break;
    					case 'n':
    						break;
    					}
    				}while(choice2!='n'&&choice2!='y');
    			}	
    			break;
    		default:
    			printf("\n无效的选项。\n");
    			break;
    		}
    		printf("\n按任意键继续...");
    		getch();
    		putchar('\n');
    	}while(choice!='0');
    	exit(0);
    }
    
    stu_inf *Stu_Create(struct stu_inf *head)//学生信息录入
    {
    	struct stu_inf *p;
    	p=(struct stu_inf *)malloc(LEN);
    		printf("\n请输入学号:");
    		scanf("%d",&p->number);
    		printf("请输入姓名:");
    		scanf("%s",p->name);
    		printf("请输入年龄:");
    		scanf("%d",&p->age);
    		printf("请输入性别:");
    		scanf("%s",p->sex);
    		printf("请输入出生年月(年月之间用空格隔开):");
    		scanf("%d%d",&p->year,&p->month);
    		printf("请输入地址:");
    		scanf("%s",p->address);
    		printf("请输入电话号码:");
    		scanf("%s",p->tel);
    		printf("请输入E-mail:");
    		scanf("%s",p->email);
    		p->next=NULL;
    
    		head=Stu_Insert(head,p);
    		STU_SUM++;
    		FLAG=1;
    
    		printf("\n该学生的信息为:\n"); 
    		printf("-----------------------------------------------------------\n"); 
    		printf("学号\t姓名\t年龄\t性别\t出生年月\t\t地址\t电话\tE-mail\n"); 
    		printf("%d\t%s\t%d\t%s\t%d %d\t%s\t\t%s\t%s\n",
    			p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email);
    		return head;
    }
    struct stu_inf *Stu_Insert(struct stu_inf *head,struct stu_inf *stu)//学生信息插入
    {
    	struct stu_inf *phead=head,*pstu=stu,*previous;
    	if(head==NULL)
    		head=stu;
    	else
    	{
    		while(pstu->number  >  phead->number  &&  phead->next  !=  NULL)
    			previous=phead,phead=phead->next;
    		if(pstu->number  <=  phead->number)
    		{
    			if(phead==head)
    				head=pstu;
    			else
    				previous->next=pstu;
    			pstu->next=phead;
    		}
    		else
    			phead->next=pstu;
    	}
    	return head;	
    }
    void Stu_Search(struct stu_inf *head)//选择按何种方式查询学生信息
    {
    	if(head==NULL)
    	{
    		printf("\n无学生信息。\n\n");
    		return ;
    	}
    	int number;
    	char choice;
    	char *name=(char *)calloc(15,sizeof(char));
    	do
    	{
    		printf("\n\n\t学生信息查询\n");
    		printf("------------------------------\n");
    		printf("\t按学号查询 请按1\n");
    		printf("\t按姓名查询 请按2\n");
    		printf("\t取消       请按0\n");
    		printf("------------------------------\n");
    		printf("请输入您的选择:");
    		choice=getche();	
    		putchar('\n');
    		switch(choice)
    		{
    		case '0':
    			return;
    		case '1':
    			printf("\n请输入学号:");
    			scanf("%d",&number);
    			Stu_Search_Number(head,number);
    			break;
    		case '2':
    			printf("\n请输入姓名:");
    			scanf("%s",name);
    			Stu_Search_Name(head,name);
    			break;
    		default:
    			printf("\n无效的选项。\n");	
    			break;
    		}
    		printf("\n按任意键继续...");
    		getch();
    		putchar('\n');
    	}while(1);
    }
    struct stu_inf *Stu_Search_Number(struct stu_inf *head,int number)//按学号查询学生信息
    {
    	struct stu_inf *p=head;
    	if(head==NULL)
    		printf("\n无学生信息。\n\n");
    	else
    	{
    		while(p->number  !=  number  &&  p->next  !=  NULL)
    			p=p->next;
    		if(p->number==number)
    		{
    			printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");
    			printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",
    				p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email);
    		}
    		else
    			printf("\n无该学生的记录。\n\n");
    	}
    	return p;
    }
    struct stu_inf *Stu_Search_Name(struct stu_inf *head,char *name)//按姓名查询学生信息
    {
    	struct stu_inf *p=head;
    	if(head==NULL)
    		printf("\n无学生信息。\n\n");
    	else
    	{
    		while(strcmp(p->name,name)  !=  0  && p->next  !=  NULL)
    			p=p->next;
    		if(strcmp(p->name,name)==0)
    		{
    			printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");
    			printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",
    				p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email);
    		}
    		else
    			printf("\n无该学生的记录。\n\n");
    	}
    	return p;
    }
    void Stu_Print(struct stu_inf *head)//学生信息的输出
    {
    	struct stu_inf *p=head;
    	if(head==NULL)
    		printf("\n无学生信息。\n\n");
    	else
    	{
    		printf("\n学生总数:%d\n",STU_SUM);
    		printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");
    		while(p!=NULL)
    		{
    			printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",
    				p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email);
    			p=p->next;
    		}
    	}
    }
    struct stu_inf *Stu_Delete(struct stu_inf *head)//学生信息删除
    {
    	struct stu_inf *phead=head,*previous;
    	int number;
    	if(head==NULL)
    	{
    		printf("\n无学生信息。\n\n");
    		return NULL;
    	}
    	printf("\n请输入要删除的学生的学号:");
    	scanf("%d",&number);
    	while(phead->number  !=  number  &&  phead->next  !=  NULL)
    		previous=phead,phead=phead->next;
    	if(phead->number==number)
    	{
    		if(phead==head)
    			head=phead->next;
    		else
    			previous->next=phead->next;
    		printf("\n删除成功。\n\n");
    		STU_SUM--;
    		FLAG=1;
    	}
    	else
    		printf("\n无该学生的信息。\n\n");
    	return head;
    }
    struct stu_inf *Stu_Correct(struct stu_inf *head)//学生信息修改
    {
    	struct stu_inf *phead=head;
    	int number;
    	char choice;
    	if(head==NULL)
    	{
    		printf("\n无学生信息。\n\n");
    		return NULL;
    	}
    	else
    	{	
    		printf("\n请输入要修改的学生的学号:");
    		scanf("%d",&number);
    		while(phead->number  !=  number  &&  phead->next  !=  NULL)
    			phead=phead->next;
    		if(phead->number==number)
    		{
    			printf("\n该学生的信息:\n");
    			printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
    			printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");
    			printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",
    				phead->number,phead->name,phead->age,phead->sex,phead->year,phead->month,phead->address,phead->tel,phead->email);
    			printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n");
    			do
    			{
    				printf("---------------------\n");
    				printf("修改姓名      请按1\n");
    				printf("修改年龄      请按2\n");
    				printf("修改性别      请按3\n");
    				printf("修改出生年月  请按4\n");
    				printf("修改地址      请按5\n");
    				printf("修改电话号码  请按6\n");
    				printf("修改E-mail    请按7\n");
    				printf("取消          请按0\n");
    				printf("---------------------\n");
    				printf("请输入您的选择:");
    				choice=getche();
    				putchar('\n');
    				switch(choice)
    				{
    				case '0':
    					return head;
    				case '1':
    					printf("\n请输入新姓名:");
    					scanf("%s",phead->name);
    					FLAG=1;
    					break;
    				case '2':
    					printf("\n请输入新年龄:");
    					scanf("%d",&phead->age);
    					FLAG=1;
    					break;
    				case '3':
    					printf("\n请输入新性别:");
    					scanf("%s",phead->sex);
    					FLAG=1;
    					break;
    				case '4':
    					printf("\n请输入新的出生年月(年月之间用空格隔开):");
    					scanf("%d%d",&phead->year,&phead->month);
    					FLAG=1;
    					break;
    				case '5':
    					printf("\n请输入新的地址:");
    					scanf("%s",phead->address);
    					FLAG=1;
    					break;
    				case '6':
    					printf("\n请输入新的电话号码:");
    					scanf("%s",phead->tel);
    					FLAG=1;
    					break;
    				case '7':
    					printf("\n请输入新的E-mail:");
    					scanf("%s",phead->email);
    					FLAG=1;
    					break;
    				default:		
    					printf("\n无效的选项。\n\n");
    					break;				
    				}
    				printf("\n按任意键继续...");
    				getch();
    				putchar('\n');
    			}while(choice!='0');
    		}
    		else
    			printf("\n无该学生的信息。\n\n");
    	}
    	return head;
    }
    void Write_Data(struct stu_inf *head)//学生信息写入到文件
    {
    	FILE *fp;
    	struct stu_inf *p;
    	if((fp=fopen("学生信息.txt","w"))==NULL)
    	{
    		printf("\n*************\n");
    		printf("文件创建失败。\n\n");
    		printf("*************\n");
    		return;
    	}
    	fprintf(fp,"学生总数:%d\n",STU_SUM);
    	if(STU_SUM!=0)
    		fprintf(fp,"\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");
    	for(p=head;p!=NULL;p=p->next)
    		fprintf(fp,"%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",
    			p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email);
    	fclose(fp);/*
    	printf("\n*************\n");
    	printf("文件写入成功。\n");
    	printf("*************\n");*/
    }
    
    struct stu_inf *Read_Data()//从文件读入学生信息
    {
    	FILE *fp;
    	struct stu_inf *p,*phead,*head;	
    	if((fp=fopen("学生信息.txt","r"))==NULL)
    	{/*
    		printf("\n*************\n");
    		printf("文件读取失败。\n");
    		printf("*************\n");*/
    		return NULL;
    	}/*
    	printf("\n*************\n");
    	printf("文件读取成功。\n");
    	printf("*************\n");*/
    	fscanf(fp,"学生总数:%d\n",&STU_SUM);
    	if(STU_SUM==0)
    		return NULL;
    	fscanf(fp,"\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");
    	head=phead=p=(struct stu_inf *)malloc(LEN);
    	fscanf(fp,"%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",
    			&p->number,p->name,&p->age,p->sex,&p->year,&p->month,p->address,p->tel,p->email);
    	while(!feof(fp))
    	{
    		p=(struct stu_inf *)malloc(LEN);
    		fscanf(fp,"%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",
    			&p->number,p->name,&p->age,p->sex,&p->year,&p->month,p->address,p->tel,p->email);
    		phead->next=p;
    		phead=phead->next;		
    	}
    	phead->next=NULL;
    	fclose(fp);
    	return head;
    }

    也希望能帮到正在做实训报告的你,欢迎留言区讨论。

    分享:C语言学生成绩管理系统设计 《C语言程序设计》实训报告

    扫描下方公众号,发送 成绩系统 4个字,获取下载实训源码

    扫描上方二维码,回复 999 直接获取作者之前收藏的学习资源,谢谢网友们的分享。

    回复 系统大全,即可获得关于C语言管理系统比较全面的文章内容,覆盖全网(有点夸张,随时更新,没获取到的朋友直接留言告诉一声)

    展开全文
  • 主要为大家详细介绍了C语言实现学生信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 3 文件描述: 链表 + 文件 简易的学生信息管理系统 4 编译环境: Windows 7.0 _ VC6.0 或者 DEV 5.9.2 5 最后修改: 年06月16日><新增统计功能><***> 6 功 能: 查找 显示 修改 删除 存档 学生信息 7 说 明: ...
  • 学生信息管理系统c语言代码

    千次阅读 2021-05-20 03:33:53
    } /*定义查找学生信息的函数*/ void CHAZHAO() { char c; FILE *fp; fp=fopen("G://123.txt","r"); if(fp==NULL) { printf("\n 打开文件失败! \n");return; } printf("\n 按学号查找( 1 ),还是按姓名查找( 2 )? ");...

    满意答案

    #include

    #include

    #include

    #include

    #include #define N 100

    struct student

    {char XUEHAO[20];

    char XINGMING[10];

    char XINGBIE[4];

    char SHENGRI[10];

    char JIGUAN[10];

    char ZHUANYE[10];

    char BANJI[6];

    char XUEYUAN[20];

    }student;void CAIDAN();

    void ZHUCE();

    void XIUGAI();

    void SHANCHU();

    void del_XUEHAO(FILE *fp);

    void del_XINGMING(FILE *fp);

    void CHAZHAO();

    void sch_XUEHAO(FILE *fp);

    void sch_XINGMING(FILE *fp);

    void TONGJI();

    void XIANSHI();

    void TIANJIA();

    void save( struct student student[]);main()

    { char choose,yes_no;

    do

    { CAIDAN();

    printf("\n 请输入序号: (1~8) ");

    choose=getch();

    system("cls");

    switch(choose)

    {

    case'1': printf(" %c",choose);ZHUCE();break;

    case'2': printf(" %c",choose);XIUGAI();break;

    case'3': printf(" %c",choose);SHANCHU();break;

    case'4': printf(" %c",choose);TIANJIA();break;

    case'5': printf(" %c",choose);CHAZHAO();break;

    case'6': printf(" %c",choose);TONGJI();break;

    case'7': printf(" %c",choose);XIANSHI();break;

    case'8': break;

    default:printf("\n %c 序号不对!\n",choose);

    }

    if(choose=='8')break;

    printf("\n 要继续选择吗 ? (Y/N) \n");

    do

    { yes_no=getch(); printf(" %c",yes_no);}

    while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

    }while(yes_no=='Y'||yes_no=='y');

    }

    void CAIDAN()

    {

    system("cls");

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

    printf(" * ——请选择相应的功能—— * \n ");

    printf(" * 1-----注册 * \n ");

    printf(" * 2-----修改学生信息 * \n ");

    printf(" * 3-----删除学生信息 * \n ");

    printf(" * 4-----添加学生信息 * \n ");

    printf(" * 5-----查找学生信息 * \n ");

    printf(" * 6-----统计学生信息 * \n ");

    printf(" * 7-----显示学生信息 * \n ");

    printf(" * 8-----退出系统 * \n ");

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

    }/*定义学生信息注册的函数*/

    void ZHUCE()

    { int i=1;

    struct student temp;

    FILE *fp;

    fp=fopen("G://123.txt","w");

    if(fp==NULL){ printf("\n 打开文件失败! \n");return; }

    printf("\n 请输入第1个学生信息:\n");

    printf(" 学号(用#结束输入): ");

    do

    { gets(temp.XUEHAO);}

    while(strcmp(temp.XUEHAO," ")==0);

    printf(" 姓名(用#结束输入): ");gets(temp.XINGMING);

    printf(" 性别(用#结束输入): ");gets(temp.XINGBIE);

    printf(" 生日(用#结束输入): ");gets(temp.SHENGRI);

    printf(" 籍贯(用#结束输入): ");gets(temp.JIGUAN);

    printf(" 专业(用#结束输入): ");gets(temp.ZHUANYE);

    printf(" 班级(用#结束输入): ");gets(temp.BANJI);

    printf(" 学院(用#结束输入): ");gets(temp.XUEYUAN);

    while(temp.XUEHAO[0]!='#'&&temp.XINGMING[0]!='#'&&temp.XINGBIE[0]!='#'&&temp.SHENGRI[0]!='#'&&temp.JIGUAN[0]!='#'&&temp.ZHUANYE[0]!='#'&&temp.BANJI[0]!='#'&&temp.XUEYUAN[0]!='#')

    { fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XUEYUAN,temp);

    i++;

    printf("\n 请输入第 %d 个学生信息:\n ",i);

    printf(" 学号(用#结束输入): ");

    do

    { gets(temp.XUEHAO);}

    while(strcmp(temp.XUEHAO," ")==0);

    printf(" 姓名(用#结束输入): ");gets(temp.XINGMING);

    printf(" 性别(用#结束输入): ");gets(temp.XINGBIE);

    printf(" 生日(用#结束输入): ");gets(temp.SHENGRI);

    printf(" 籍贯(用#结束输入): ");gets(temp.JIGUAN);

    printf(" 专业(用#结束输入): ");gets(temp.ZHUANYE);

    printf(" 班级(用#结束输入): ");gets(temp.BANJI);

    printf(" 学院(用#结束输入): ");gets(temp.XUEYUAN);

    }

    student=temp;

    save(&temp);

    fclose(fp);

    }/*定义保存函数*/

    void save( struct student student[])

    {

    FILE *fp=NULL;

    fp=fopen("G://123.txt","ab+");

    fwrite(student,sizeof(struct student),1,fp);

    fclose(fp);

    }

    /*定义查找学生信息的函数*/

    void CHAZHAO()

    { char c;

    FILE *fp;

    fp=fopen("G://123.txt","r");

    if(fp==NULL)

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

    printf("\n 按学号查找( 1 ),还是按姓名查找( 2 )? ");

    c=getch();

    putch(c);

    if(c=='1') sch_XUEHAO(fp);

    else if(c=='2') sch_XINGMING(fp);

    else printf("\n 非法字符!\n");

    fclose(fp);

    }

    /*定义按学号查找学生信息的函数*/

    void sch_XUEHAO(FILE *fp)

    { int flag=0,n=0;

    char tempXUEHAO[20];

    struct student temp;

    printf("\n 请输入要查找学生信息的学号: ");

    gets(tempXUEHAO);

    while(feof(fp)==0)

    { fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",&temp.XUEHAO,&temp.XINGMING,&temp.XINGBIE,&temp.SHENGRI,&temp.JIGUAN,&temp.ZHUANYE,&temp.BANJI,&temp.XUEYUAN);

    if(strcmp(tempXUEHAO,temp.XUEHAO)==0)

    { if(flag==0)

    printf(" 学号 姓名 性别 生日 籍贯 专业 班级 学院\n");

    printf("%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XUEYUAN);

    flag=1;

    }

    n++;

    }

    if(n==0) printf("\n 文件中无此信息!\n");

    else if(flag==0) printf("\n 文件中无此人!\n");

    }

    /*定义按姓名查找学生信息的函数*/

    void sch_XINGMING(FILE *fp)

    { int flag=0,n=0;

    char tempXINGMING[10];

    struct student temp;

    printf("\n 请输入要查找学生信息的姓名: ");

    gets(tempXINGMING);

    while(feof(fp)==0)

    { fscanf(fp, "%5s%10s%10s%10s%10s%10s%10s%10s\n",&temp.XUEHAO,&temp.XINGMING,&temp.XINGBIE,&temp.SHENGRI,&temp.JIGUAN,&temp.ZHUANYE,&temp.BANJI,&temp.XUEYUAN);

    if(strcmp(tempXINGMING,temp.XINGMING)==0)

    { if(flag==0) printf(" 学号 姓名 性别 生日 籍贯 专业 班级 学院\n");

    printf("%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XUEYUAN);

    flag=1;

    }

    n++;

    }

    if(n==0) printf("\n 文件中无此信息!\n");

    else if(flag==0) printf("\n 文件中无此人!\n");

    }

    /*定义删除学生信息的函数*/

    void SHANCHU()

    { char c;

    FILE *fp;

    fp=fopen("G://123.txt","r");

    if(fp==NULL)

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

    printf("\n 按学号删除( 1 ),还是按姓名删除( 2 )? ");

    c=getch();

    putch(c);

    if(c=='1') del_XUEHAO(fp);

    else if(c=='2') del_XINGMING(fp);

    else printf("\n 非法字符!\n");

    }/*定义按学号删除学生信息的函数*/

    void del_XUEHAO(FILE *fp)

    { char tempXUEHAO[20];

    int n=0,i=0,k;

    struct student stu[N];

    while(feof(fp)==0)

    { fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i]. XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].ZHUANYE,stu[i].BANJI,stu[i].XUEYUAN);i++;n++;}

    fclose(fp);

    printf("\n 请输入要删除的学生信息的学号:");

    scanf("%s",tempXUEHAO);

    printf(" 删除成功! ");

    for(i=0;i

    if(strcmp(tempXUEHAO,stu[i].XUEHAO)==0)break;

    if(i

    for(k=i;k

    stu[k]=stu[k+1];

    else printf("\n 无此人!\n");

    fp=fopen("G://123.txt","w");

    if(fp==NULL)

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

    for(i=0;i

    fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].ZHUANYE,stu[i].BANJI,stu[i].XUEYUAN);

    }追问: 程序能不能保存?

    1316分享举报

    展开全文
  • C语言-学生信息管理系统(代码) 作者 日期 2 个人收集整理勿做商业用途 学X 师 范 大 X 验 报 告实 C语言课程设计 课 程 任课老师 学 号 姓 名 系 院 _年_月至_年_月 3 个人收集整理勿做商业用途 注意事项 1....
  • 学生信息管理系统C语言源代码学生信息管理系统C语言源代码学生信息管理系统C语言源代码学生信息管理系统C语言源代码
  • 主要为大家详细介绍了C语言数组实现学生信息管理系统设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 学生信息管理系统包含实验报告,描述了设计思路,以及操作过程。
  • #include#include#include#includestruct stu_type{char num[15];...int c;int math;int en;int sum;float ave;};struct stu_type stu[100];int stu_num=0;void add();int display(char str[]);v...

    #include

    #include

    #include

    #include

    struct stu_type{

    char num[15];

    char name[10];

    int age;

    int c;

    int math;

    int en;

    int sum;

    float ave;

    };

    struct stu_type stu[100];

    int stu_num=0;

    void add();

    int display(char str[]);

    void modify();

    void del();

    void find();

    void compute();

    void sort();

    void save_txt();

    void load_txt();

    void save_bin();

    void load_bin();

    void main()

    {

    while(1)

    {

    int choice;

    printf("\n欢迎使用学生信息管理系统\n");

    printf("-----------------------------------------\n");

    printf("1.添加学生信息2.显示学生信息\n");

    printf("3.修改学生信息4.删除学生信息\n");

    printf("5.查找学生信息6.统计不及格人数、最高分和平均分\n");

    printf("7.按总分排序 8.保存至文件(文本方式)\n");

    printf("9.从文件读入10.保存至文件(二进制方式)\n");

    printf("11.从文件读入(二进制方式)12.退出程序\n");

    printf("-----------------------------------------\n");

    printf("请选择功能模块,输入数字1-12");

    while(1)

    {

    scanf("%d",&choice);

    if(choice>=1 && choice<=12)

    break;

    else

    printf("输入数字不正确,请重输入1-12:");

    }

    switch(choice)

    {

    case 1:add();break;

    case 2:display("");break;

    case 3: modify();break;

    case 4: del();break;

    case 5: find();break;

    case 6:compute();break;

    case 7:sort();break;

    case 8:save_txt();break;

    case 9:load_txt();break;

    case 10:save_bin();break;

    case 11:load_bin(); break;

    case 12:exit(0);

    }

    }

    }

    void add()

    {

    int i=stu_num;

    printf("说明:依次输入学生信息,当输入的学号为0时表示输入结束\n");

    while(1)

    {

    printf("请输入第%d个学生的信息\n",i+1);

    printf("请输入学号:");

    scanf("%s",stu[i].num);

    if(strcmp(stu[i].num,"0") == 0)

    break;

    printf("请输入姓名:");

    scanf("%s",stu[i].name);

    printf("请输入年龄:");

    scanf("%d",&stu[i].age);

    printf("请输入c语言成绩:");

    scanf("%d",&stu[i].c);

    printf("请输入数学成绩:");

    scanf("%d",&stu[i].math);

    printf("请输入英语成绩:");

    scanf("%d",&stu[i].en);

    stu[i].sum = stu[i].c + stu[i].math + stu[i].en;

    stu[i].ave = (float)stu[i].sum/3;

    i++;

    }

    stu_num = i;

    printf("总共已输入%d个学生的信息\n",stu_num);

    }

    void compute()

    {

    int i, n=0, max=0, sum=0;

    for(i=0; i

    {

    if(stu[i].c<60)

    n++;

    if(max

    max=stu[i].c;

    sum = sum + stu[i].c;

    }

    printf("C语言统计结果如下:\n");

    printf("不及格人数\t最高分\t平均分\n");

    printf("%d\t%d\t%5.2f\n",n,max,(float)sum/stu_num);

    }

    void del()

    {

    char str[15], m;

    int i, j;

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

    scanf("%s",str);

    i = display(str);

    if(i!=-1)

    {

    printf("确认要删除该学生的信息吗?(y/n)");

    m = getche();

    if(m=='y' || m=='Y')

    {

    stu_num--;

    for(j=i; j

    stu[j] = stu[j+1];

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

    }

    }

    }

    int display(char str[])

    {

    int i, k=-1;

    if(strlen(str) == 0)

    {

    if(stu_num>0)

    {

    printf("学生学号\t姓名\t年龄\tC语言\t数学\t英语\t总分\t平均分\n");

    for(i=0; i

    printf("%-16s%s\t%d\t%d\t%d\t%d\t%d\t%5.1f\n",stu[i].num,stu[i].name,

    stu[i].age, stu[i].c, stu[i].math, stu[i].en, stu[i].sum, stu[i].ave);

    }

    else

    printf("学生信息为空!");

    }

    else

    {

    for(i=0; i

    {

    if(strcmp(str,stu[i].num) == 0)

    {

    printf("学生学号\t姓名\t年龄\tC语言\t数学\t英语\t总分\t平均分\n");

    printf("%-16s%s\t%d\t%d\t%d\t%d\t%d\t%5.1f\n",stu[i].num,stu[i].name,

    stu[i].age, stu[i].c, stu[i].math, stu[i].en, stu[i].sum, stu[i].ave);

    k = i;

    }

    }

    if(k==-1)

    printf("没有找到符合条件的学生\n");

    }

    return k;

    }

    void find()

    {

    char str[15];

    printf("请输入要查找的学生学号:");

    scanf("%s",str);

    display(str);

    }

    void load_bin()

    {

    FILE * fp;

    char fname[20];

    int i=0, flag;

    printf("请输入文件名(如:stu.dat):");

    scanf("%s",fname);

    if((fp=fopen(fname,"rb"))==NULL)

    {

    printf("不能打开文件,文件读取失败!\n");

    return;

    }

    while(1)

    {

    flag = fread(&stu[i], sizeof(struct stu_type), 1, fp);

    if(flag == 0)

    break;

    i++;

    }

    stu_num = i;

    printf("从文件中成功读取%d条记录!\n",i);

    fclose(fp);

    }

    void load_txt()

    {

    FILE * fp;

    char fname[20];

    int i=0, flag;

    printf("请输入文件名(如:stu.txt):");

    scanf("%s",fname);

    if((fp=fopen(fname,"r"))==NULL)

    {

    printf("不能打开文件,文件读取失败!\n");

    return;

    }

    while(1)

    {

    flag=fscanf(fp, "%s %s %d %d %d %d %d %f",stu[i].num,

    stu[i].name, &stu[i].age, &stu[i].c, &stu[i].math, &stu[i].en,

    &stu[i].sum, &stu[i].ave);

    if(flag == EOF)

    break;

    i++;

    }

    stu_num = i;

    printf("从文件中成功读取%d条记录!\n",i);

    fclose(fp);

    }

    void modify()

    {

    char str[15], m;

    int i;

    printf("请输入要修改的学生学号:");

    scanf("%s",str);

    i = display(str);

    if(i!=-1)

    {

    printf("\n确认修改该学生的信息吗?(y/n)\n");

    m = getche();

    if(m=='y' || m=='Y')

    {

    printf("\n请重新输入该学生的信息\n");

    printf("\n请输入学号:");

    scanf("%s",stu[i].num);

    printf("请输入姓名:");

    scanf("%s",stu[i].name);

    printf("请输入年龄:");

    scanf("%d",&stu[i].age);

    printf("请输入C语言成绩:");

    scanf("%d",&stu[i].c);

    printf("请输入数学成绩:");

    scanf("%d",&stu[i].math);

    printf("请输入英语成绩:");

    scanf("%d",&stu[i].en);

    stu[i].sum = stu[i].c + stu[i].math + stu[i].en;

    stu[i].ave = (float)stu[i].sum/3;

    }

    }

    }

    void save_txt()

    {

    FILE * fp;

    char fname[20];

    int i;

    printf("请输入文件名(如:stu.txt):");

    scanf("%s",fname);

    if((fp=fopen(fname,"w"))==NULL)

    {

    printf("不能打开文件,文件保存失败!\n");

    return;

    }

    for(i=0; i

    fprintf(fp, "%s %s %d %d %d %d %d %5.2f\n",stu[i].num, stu[i].name,

    stu[i].age, stu[i].c, stu[i].math, stu[i].en, stu[i].sum, stu[i].ave);

    printf("文件保存成功!\n");

    fclose(fp);

    }

    void sort()

    {

    int i,j;

    struct stu_type temp;

    for(i=1; i<=stu_num; i++)

    for(j=0; j

    if(stu[j].sum

    {

    temp = stu[j];

    stu[j] = stu[j+1];

    stu[j+1] = temp;

    }

    printf("排序结果如下:\n");

    printf("名次\t学生学号\t姓名\t年龄\tC语言\t数学\t英语\t总分\t平均分\n");

    for(i=0; i

    printf("%d\t%-16s%s\t%d\t%d\t%d\t%d\t%d\t%5.1f\n",i+1,stu[i].num,

    stu[i].name, stu[i].age, stu[i].c, stu[i].math, stu[i].en,

    stu[i].sum, stu[i].ave);

    }

    void save_bin()

    {

    FILE * fp;

    char fname[20];

    printf("请输入文件名(如:stu.dat):");

    scanf("%s",fname);

    if((fp=fopen(fname,"wb"))==NULL)

    {

    printf("不能打开文件,文件保存失败!\n");

    return;

    }

    fwrite(stu,sizeof(struct stu_type), stu_num,fp);

    printf("文件保存成功!\n");

    fclose(fp);

    }

    展开全文
  • C&C++——班级学生档案管理系统源代码: 实现功能: 一、管理系统 1、输入学生信息;2、显示学生信息;3、修改学生信息;4、追加一个学生信息;5、删除一个学生信息;0、返回; 二、查询系统 根据输入要查询人的...
  • 使用 C 语言代码已在 vs 中运行过可以运行主要功能都能实现 2. 需求分析前期设计都没写请同学们自己完成 3. 附带有 student.txt 文件将其移动至 F:\stu 文件夹中运行程序时可直接 选 6 号指令从中读取学生
  • 自己编写的一个学生信息管理系统,控制台程序,可以用文件读入信息
  • c语言课程设计--学生信息管理系统 对学生信息进行增删改查等
  • 大一写的结课作业,代码用到了指针、文件、数组、结构体、函数,包括增删改查、保存信息到文件和成绩排名等功能,欢迎大家下载使用。
  • 学习【数据结构课程】中线性表知识,自己动手做的【学生信息 管理 系统】。 目的:重在功能实现,思考探索。 编程语言:C IDE:VC++6.0 基础功能:增、删、查、改。 【扩展功能: 1.数据的保存、读取; 2.账号的...
  • 学生信息管理系统,压缩包有源码,程序,报告。声明:本人只是用来学习。
  • 老师布置的假期作业,我感觉我写的还算很好的,没日没夜的写了一周左右吧。 第一次上传资源(不知道一积分算不算多),欢迎下载。
  • C语言实现简单的学生信息管理,包括增删查找等基本功能
  • #include #include#include#define LEN sizeof(struct Student)struct Student{int nNum;float fScore;struct Student *next; //保存一个 Student类型结构的地址};struct Student *addStu (struct Student *);...
  • 主要为大家详细介绍了C语言数据结构之学生信息管理系统课程设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 实验内容:程序一:学生信息管理系统编写程序,实现学生信息的管理(包括学生信息的建立、增加、删除、修改、查找),要求:小组分工情况小组分工情况统计表班级信息工程学院 计算机科学与技术专业 2012级 软件工程...
  • 很简单的代码,没用链表~ ,并且保存到文件。
  • C语言数组编写学生管理系统#include#include#include #includestatic int i=0;struct grade{float math;float C;float English;float sum;float ave;};struct student{int num;char name[20];char sex[5];char ...
  • 一个精心设计的C语言程序,非常适合初学者进阶或课程设计参考,本程序功能强大,界面友好,代码层次清晰,注释明确,可以说含金量很高
  • C语言编写的一个简单的学生信息管理系统课程设计,利用链表和文件。
  • 学生信息管理系统C语言代码92992.doc

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,014
精华内容 21,205
关键字:

学生信息管理系统c代码