C语言学生信息管理系统

这是我在学完C语言后对所学知识的整体运用,记录如下,代码已经过验证,不必怀疑其正确性。读者若有疑问,可以私信我。废话不多说,直接上代码。

#include	
#include	
#include      
#define len 15		    /* 学号和姓名最大字符数*/
#define N 50		    /* 最大学生人数*/
#define MAX_LINE 1024   /* 最大打开文件行数*/

struct Student 	        /*学生信息结构体*/
{
	int q;
	char code[len+1];	/* 学号*/
	char name[len+1];	/* 姓名*/
	int age;			/* 年龄*/
	char sex;			/* 性别*/
	char object[len+1]; /* 专业*/
	char room[len+1];   /* 班级*/
	float score[4];     /* 4门课程成绩*/
	float sum;          /* 总分*/
	float average;      /* 平均分*/
} stu[N];				/*定义结构体数组*/

int k=1,n=0, m=0;       /* 定义全局变量,n代表当前记录的学生人数,m为新增加的学生人数*/

/*函数声明*/
void seek();		//查找信息
void modify();		//修改信息
void insert();		//插入信息
void del();			//删除信息
void display();		//显示信息
void menu(); 		//显示菜单
void save();		//保存信息
void refresh();		//刷新信息
void help();		//帮助
void open();        //调取学生成绩文档


/*主函数*/
int main() 
{ 
	while(k) menu();
	system("pause");
	return 0;
}

void help() /*帮助*/
{ 
	printf("\n0.欢迎使用系统帮助!\n");
	printf("\n1.初次进入系统后,请先从文件读入信息,再执行其他操作;若文件不存在或者没有内容,请选择增加学生信息;\n");
	printf("\n2.按照菜单提示键入数字代号;\n");
	printf("\n3.增加学生信息后,切记保存;\n");
	printf("\n4.谢谢您的使用!\n");
}

void seek() /*查找*/
{ 
	int i,item,flag;		/*item代表选择查询的子菜单编号,flag代表是否查找成功*/
	char s1[21];			/* 以姓名和学号最长长度+1为准*/
	printf("------------------\n");
	printf("-----1.按学号查询-----\n");
	printf("-----2.按姓名查询-----\n");
	printf("-----3.退出本菜单-----\n");
	printf("------------------\n");
	while(1) 
	{
		printf("请选择子菜单编号:");
		scanf("%d",&item);
		flag=0;
		switch(item)
		{
			case 1:
				printf("请输入要查询的学生的学号:\n");
				scanf("%s",s1);
				for(i=0; ii; j--)				//冒泡法排序
			if(strcmp(stu[j-1].code,stu[j].code)>0)
			{
				strcpy(temp,stu[j-1].code); // strcpy函数
				strcpy(stu[j-1].code,stu[j].code);
				strcpy(stu[j].code,temp);
				strcpy(temp,stu[j-1].name);
				strcpy(stu[j-1].name,stu[j].name);
				strcpy(stu[j].name,temp);
				ctemp=stu[j-1].sex;
				stu[j-1].sex=stu[j].sex;
				stu[j].sex=ctemp;
				p=&stu[j-1].age;
				q=&stu[j].age;
				s=*q;
				*q=*p;
				*p=s;
				for(k=0; k<4; k++)
				{
					ftemp=stu[j-1].score[k];
					stu[j-1].score[k]=stu[j].score[k];
					stu[j].score[k]=ftemp;
				}
			}
	}
}

void insert()/*插入函数*/
 { 
	int i=n,j,flag;				//n为现有学生人数
	printf("请输入待增加的学生数:\n");
	scanf("%d",&m);
	if(m>0) 
	{
		do 
		{
			flag=1;
			while(flag) 
			{
				flag=0;
				//printf("请输入第%d位学生的学号:\n",i+1);
				//scanf("%s",&stu[i].code);
				for(j=0; j

你可能感兴趣的:(c语言进阶,c语言,算法,开发语言)