⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7_1.c

📁 简单的学籍管理系统
💻 C
字号:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

struct student{
	int Number;
	char Name[20];
	char SClass[5];
	char CNumber[2];
	int score;
	struct student *next;
};

struct student *ptrthis,*ptrhead;//全局变量

void instructions()
{
	printf("输入1时表示输入新的记录\n");
	printf("输入2时表示将所有学生数据输出\n");
	printf("输入3时表示根据学号查询学生信息\n");
	printf("输入0时则程序终止\n");
}

//插入新的学生信息
void newrecord()
{
	int num;
	struct student *p,*ptrnew;
    ptrnew=(struct student*)malloc(sizeof(struct student));/*创建一个新的结点*/
	printf("input the information(number is 0 means input is end).\n");
    printf("number:");
    scanf("%d",&num);
	 
     p=ptrhead;
	 while(p!=NULL)
	 {
		if(p->Number==num)
		{
			printf("error!please input again!\n");
            scanf("%d",&num);
		}
		p=p->next;
	 }//判断新输入的号码是否和已经存在的号码冲突

	ptrnew->Number=num;
    printf("name:");
    scanf("%s",ptrnew->Name);
    ptrnew->Name[19]='\0';
    printf("s_class:");
    scanf("%s",ptrnew->SClass);
    ptrnew->SClass[4]='\0';
    printf("course_number:");
    scanf("%s",ptrnew->CNumber);
    ptrnew->CNumber[1]='\0';
	printf("score:");
    scanf("%d",&ptrnew->score);
	ptrnew->next=NULL;
	if(ptrhead==NULL)
		ptrthis=ptrhead=ptrnew;
	else
		ptrthis->next=ptrnew;	
	ptrthis=ptrnew;  
}

//输出所有学生信息
void listall()
{
  struct student *p;
  p=ptrhead;
  printf("\nNumber\t\tName\t\tSClass\t\tCNumber\t\tscore\n");
  while(p!=NULL)
  {
   printf("%d\t\t%s\t\t%s\t\t%s\t\t%d\n",p->Number,p->Name,p->SClass,p->CNumber,p->score);
   p=p->next;
  }
}

//根据学号查询学生信息
void query()
{
	int num;
	struct student *p;
	int flag=0;//标记是否找到需要查找的学号
	printf("please enter hte student number:");
	scanf("%d",&num);
	p=ptrhead;
	while(p!=NULL)
	{
		if(p->Number==num)
		{
			flag=1;
			printf("\n%d\t\t%s\t\t%d\t\t%d\t\t%d\n",p->Number,p->Name,p->SClass,p->CNumber,p->score);
			break;
		}
		p=p->next;
	}
	if(flag==0)
	{
		printf("error!\n");
		getch();
		exit(1);
	}
}

main()
{
	int a;
	ptrthis=ptrhead=NULL;
    instructions();
	while(1)
	{
	printf("enter a number(1 or 2 or 3)\n:");
	scanf("%d",&a);
	if(a==0)
		exit(1);
	switch(a)
	{
	case 1:
		newrecord();
		break;
	case 2:
		listall();
	    break;
    case 3:
		query();
	    break;
	default:
		printf("error!\n");
	}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -