学生信息管理系统(C语言)

  • 系统开发背景

随着我国教育产业的飞速发展,社会对教育水平和教学管理软硬件的要求日益提高,尤其是对一个学校能够具有一套完善的教学管理软件提出了更多的要求。为了适应这种形式,教育系统尤其是大学不仅首先要有坚实的硬件基础,还要有一套完善的教学管理软件管理系统。而要实现这一功能,就要要求学校管理者配备一套高效的教育管理网络系统,以便在学校里实施良好的一套完善的管理且以最快的速度响应教师和学生的需求,及时为他们提供服务,为他们提供一个高效、便捷的环境。学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平。

  • 系统需求

学生信息包括:学号,姓名,年龄,性别,出生年月,政治面貌,籍贯,家庭住址,
电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)学生信息录入功能(学生信息用文件保存)
(3)学生信息浏览功能
(4)学生信息排序、查询功能
对信息进行排序,可以按学号,按姓名,按性别,按出生年月日,按籍贯进行查询
(5)信息统计
a)可以按性别,按出生年,按籍贯统计学生人数
b)可以按班级统计学生人数
c)可以按政治面貌统计学生人数
按班级统计学生党员人数,团员人数,以及所占比例,设计并输出统计报表。
(6)学生信息的删除与修改
设计要求:
*界面比较美观;
*有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重
新输入;
*最好用链表的方式实现。

  • 系统总体设计

 

  • 系统详细设计

系统中的每个功能模块流程图,伪代码

 

 

 

 

 

 

 

 

 

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct DATE {//学生生日年月日的结构体
	int year;
	int month;
	int day;
}date;
typedef struct stu {//学生信息结构体
	char num[20];
	char name[20];
	int old;
	char sex[10];
	date birthday;
	char politic[20];
	char native[20];
	char address[200];
	char phone[15];
	char mail[50];
}STUDENT;
typedef struct stus {//存储学生信息的单链表
	STUDENT students;
	struct stus* next;
}stus;
int sum=0;//记录学生总数的全局变量
stus* enter(stus *head);//录入
int skim(stus* head);//浏览
int sort(stus* head);//学号排序
int query(stus* head);//查询
int statistics(stus* head);//统计
int delet(stus* head);//删除
int insert(stus* head);//插入

int input(stus *head) {//输入到文件的函数
	FILE* fp;
	int i;
	if ((fp = fopen("text.xls", "a")) == NULL) {
		printf("\t\033[5;31m 打开失败!!! \033[0m "); 
		return 0;
	}//打开文件
	stus* pu;
	pu = head->next;
	while (pu != NULL) {
		fprintf(fp, "\n");
		fprintf(fp, "%s\t", pu->students.num);
		fprintf(fp, "%s\t", pu->students.name);
		fprintf(fp, "%d\t", pu->students.old);
		fprintf(fp, "%s\t", pu->students.sex);
		fprintf(fp, "%d-%d-%d\t", pu->students.birthday.year, pu->students.birthday.month, pu->students.birthday.day);
		fprintf(fp, "%s\t", pu->students.politic);
		fprintf(fp, "%s\t", pu->students.native);
		fprintf(fp, "%s\t", pu->students.address);
		fprintf(fp, "%s\t", pu->students.phone);
		fprintf(fp, "%s\t", pu->students.mail);
		pu = pu->next;
	}
}

void menu(stus *head)//菜单函数
{
	stus* rear; 
	rear = head;
	int key;
	do
	{
		printf("\t\033[33;5m *************************** \033[0m \n");
		printf("\t\033[40;33m  _________________________ \033[0m \n");
		printf("\t\033[40;33m |_____学生信息管理系统____| \033[0m \n");
		printf("\t\033[40;33m |_________________________| \033[0m \n");
		printf("\t\033[40;33m |_____1.录入学生信息______| \033[0m \n");
		printf("\t\033[40;33m |_____2.学生信息浏览______| \033[0m \n");
		printf("\t\033[40;33m |_____3.学生信息排序______| \033[0m \n");
		printf("\t\033[40;33m |_____4.学生信息查询______| \033[0m \n");
		printf("\t\033[40;33m |_____5.学生信息统计______| \033[0m \n");
		printf("\t\033[40;33m |_____6.学生信息删除______| \033[0m \n");
		printf("\t\033[40;33m |_____7.学生信息插入______| \033[0m \n");
		printf("\t\033[40;33m |_____8.退出信息系统______| \033[0m \n");
		printf("\t\033[40;33m |_________________________| \033[0m \n");
		printf("\t\033[40;33m |_______选择你的操作______| \033[0m \n");
		printf("\t\033[40;33m |_________________________| \033[0m \n");
		printf("\t\033[33;5m *************************** \033[0m \n");
		printf("\t\033[33;32m 你的选择是= \033[0m "); scanf("%d", &key);
		switch (key)
		{
		case 1: {rear = enter(rear); }break;
		case 2: {skim(head); }break;
		case 3: {sort(head); }break;
		case 4: {query(head); }break;
		case 5: {statistics(head); }break;
		case 6: {delet(head); }break;
		case 7: {insert(head); }break;
		}
	} while (key!=8); 
	input(head);
}

stus* enter(stus *rear) {//输入信息单链表中的函数
	int i, x;
	int input(stus * head, int x);
	printf("\t\033[33;32m 录入学生个数= \033[0m ");
	scanf("%d", &x);
	for (i = 0; i < x; i++) {
		stus* student = (stus*)malloc(sizeof(stus));
		student->next = NULL;
		printf("\t\033[33;32m 学生学号: \033[0m "); 
		scanf("%s", student->students.num);
		printf("\t\033[33;32m 学生姓名: \033[0m "); 
		scanf("%s", student->students.name);
		printf("\t\033[33;32m 学生年龄(大于零): \033[0m "); 
		scanf("%d", &student->students.old);
		if (student->students.old < 0) 
		{ 
			printf("\t\033[5;31m 输入错误!!! \n\033[0m "); 
			break;
		}
		printf("\t\033[33;32m 学生性别(中文): \033[0m "); 
		scanf("%s", student->students.sex);
		if (strcmp(student->students.sex, "男") != 0 && strcmp(student->students.sex, "女") != 0 && strcmp(student->students.sex, "f") != 0 &&  strcmp(student->students.sex,"F")!=0) 
		{ 
			printf("\t\033[5;31m 输入错误!!! \n\033[0m "); 
			break;
		};
		printf("\t\033[33;32m 出生年月: \033[0m "); 
		scanf("%d %d %d", &student->students.birthday.year, &student->students.birthday.month, &student->students.birthday.day);
		if (student->students.birthday.year < 1500|| student->students.birthday.year > 2021 ||student->students.birthday.month < 0|| student->students.birthday.month >12|| student->students.birthday.day< 0|| student->students.birthday.day>31) 
		{
			printf("\t\033[5;31m 输入错误!!! \n\033[0m "); 
			break; 
		}
		printf("\t\033[33;32m 政治面貌(党员或共青团员): \033[0m "); 
		scanf("%s", student->students.politic);
		printf("\t\033[33;32m 学生籍贯: \033[0m "); 
		scanf("%s", student->students.native);
		printf("\t\033[33;32m 家庭住址: \033[0m "); 
		scanf("%s", student->students.address);
		printf("\t\033[33;32m 学生电话: \033[0m "); 
		scanf("%s", student->students.phone);
		printf("\t\033[33;32m E-mail : \033[0m "); 
		scanf("%s", student->students.mail);
		printf("\n");
		rear->next = student;
		rear = student;
		sum++; 
	} return rear;
}

int skim(stus* head) {//输出函数
	int i;
	if (head->next == NULL) 
	{ 
		printf("\t\033[5;31m 未输入信息!!! \n\033[0m "); 
		return(0); 
	}
	stus* q;
	char title[10][20] = { {"学号"},{"姓名"}, {"年龄"},{"性别"}, {"出生年月"}, {"政治面貌"}, {"籍贯"} ,{"家庭住址"}, {"电话"} ,{"E-mail"} };
	for (i = 0; i < 10; i++)
	{
		printf("%s\t", title[i]);
	}
	printf("\n");
	q = head->next;
	while (q!= NULL){
		printf( " %s\t", q->students.num);
		printf( " %s\t", q->students.name);
		printf( " %d\t", q->students.old);
		printf( " %s\t", q->students.sex);
		printf( " %d-%-d-%-d\t", q->students.birthday.year, q->students.birthday.month, q->students.birthday.day);
		printf( " %s\t", q->students.politic);
		printf( " %s\t", q->students.native);
		printf( " %s\t", q->students.address);
		printf( "%s\t", q->students.phone);
		printf( " %s\t", q->students.mail);
		printf("\n");
		q = q->next;
	}
}

int sort(stus* head) {//排序函数
	if (head->next == NULL)
	{
		printf("\t\033[5;31m 未输入信息!!! \n\033[0m ");
		return 0;
	}
	stus* temp = (stus*)malloc(sizeof(stus));
	stus* p1 = head->next; 
	if (p1->next == NULL)
	{
		printf("\t\033[5;31m 只有一个人!!! \n\033[0m ");
		return 0;
	}
	stus* p2 = p1->next;
	p1 = head->next;
	while (p1 != NULL)
	{
		p2 = p1->next;
		while (p2 != NULL) {
			if (strcmp(p1->students.num, p2->students.num) > 0)
			{
				temp->students = p2->students; p2->students = p1->students; p1->students = temp->students;
			}
			p2 = p2->next;
		}
		p1 = p1->next;
	}
}

int query(stus* head) {//查询函数
	int key;
	do
	{
		printf("\t\033[33;5m *************************** \033[0m \n");
		printf("\t\033[40;33m  _________________________ \033[0m \n");
		printf("\t\033[40;33m |_______学生信息查询______| \033[0m \n");
		printf("\t\033[40;33m |________________________| \033[0m \n");
		printf("\t\033[40;33m |_____1.学生学号查询______| \033[0m \n");
		printf("\t\033[40;33m |_____2.学生姓名查询______| \033[0m \n");
		printf("\t\033[40;33m |_____3.退出信息系统______| \033[0m \n");
		printf("\t\033[40;33m |_________________________| \033[0m \n");
		printf("\t\033[40;33m |_______选择你的操作______| \033[0m \n");
		printf("\t\033[40;33m |_________________________| \033[0m \n");
		printf("\t\033[33;5m *************************** \033[0m \n");
		printf("\t\033[33;32m 你的选择是= \033[0m "); scanf("%d", &key);
		switch (key)
		{
		case 1: {
			char str[20];
			int k = 0;
			printf("\t\033[33;34m 学生学号= \033[0m ");
			scanf("%s", str);
			stus* n = (stus*)malloc(sizeof(stus));
			n = head->next;
			while (n != NULL && k!=1) {
				if(strcmp(str,n->students.num)==0){ 
					k = 1;
					printf(" 学号:%-s\t", n->students.num);
					printf(" 姓名:%s\t", n->students.name);
					printf(" 年龄:%d\t", n->students.old);
					printf(" 性别:%s\t", n->students.sex);
					printf(" 出生年月:%d-%-d-%-d\t", n->students.birthday.year, n->students.birthday.month, n->students.birthday.day);
					printf(" 政治面貌:%s\t", n->students.politic);
					printf(" 籍贯:%s\t", n->students.native);
					printf(" 家庭住址:%s\t", n->students.address);
					printf(" 电话:%s\t", n->students.phone);
					printf(" E-mail:%s\t", n->students.mail);
					printf("\n");	
				}
				n = n->next;
			}if (k != 1)printf("\t\033[5;31m 未输入信息!!! \n\033[0m ");
				}break;
		case 2: {
			int k = 0;
			char str[20];
			printf("\t\033[33;34m 学生姓名= \033[0m "); 
			scanf("%s", str);
			stus* n = (stus*)malloc(sizeof(stus));
			n = head->next;
			while (n != NULL && k != 1) {
				if (strcmp(str, n->students.name) == 0) {
					k = 1;
					printf("\t\033[33;34m 已找到!\n\033[0m ");
					printf(" 学号:%s\t", n->students.num);
					printf(" 姓名:%s\t", n->students.name);
					printf(" 年龄:%d\t", n->students.old);
					printf(" 性别:%s\t", n->students.sex);
					printf(" 出生年月:%d-%-d-%-d\t", n->students.birthday.year, n->students.birthday.month, n->students.birthday.day);
					printf(" 政治面貌:%s\t", n->students.politic);
					printf(" 籍贯:%s\t", n->students.native);
					printf(" 家庭住址:%s\t", n->students.address);
					printf(" 电话:%s\t", n->students.phone);
					printf(" E-mail:%s\t", n->students.mail);
					printf("\n");
				}
				n = n->next;
			}if (k != 1)printf("\t\033[5;31m 未输入信息!!! \n\033[0m ");
		}break;
		}
	} while (key != 3); return 0;
}

int delet(stus* head) {//删除函数
	int e;
	if (sum==0) 
	{ 
		printf("\t\033[5;31m 未输入内容!!! \n\033[0m "); 
	return 0;
	}
	printf("\t\033[33;32m 删除位置= \033[0m ");
	scanf("%d", &e);
	if (e > sum+1||e<1) 
	{ 
		printf("\t\033[5;31m 位置错误!!! \n\033[0m ");
		return 0;
	}
	stus* p; p = head;
	stus* p2; p2 =p->next;
	for (int i = 1; i < e; i++) 
	{ 
		p = p->next; 
		p2 = p->next;
	}
	p->next = p2->next; 
	sum--;
}

int insert(stus* head) {//插入函数
	int e;
	stus* student = (stus*)malloc(sizeof(stus));
	student->next = NULL;
	printf("\t\033[33;32m 学生学号: \033[0m ");
	scanf("%s", student->students.num);
	printf("\t\033[33;32m 学生姓名: \033[0m "); 
	scanf("%s", student->students.name);
	printf("\t\033[33;32m 学生年龄(大于零): \033[0m "); 
	scanf("%d", &student->students.old);
	if (student->students.old < 0) 
	{
		printf("\t\033[5;31m 输入错误!!! \n\033[0m ");
		return 0;
	}
	printf("\t\033[33;32m 学生性别(中文): \033[0m "); 
	scanf("%s", student->students.sex);
	if (strcmp(student->students.sex, "男") != 0 && strcmp(student->students.sex, "女") != 0 && strcmp(student->students.sex, "f") != 0 && strcmp(student->students.sex, "F") != 0)
	{ 
		printf("\t\033[5;31m 输入错误!!! \n\033[0m ");
		return 0; 
	};
	printf("\t\033[33;32m 出生年月: \033[0m "); 
	scanf("%d %d %d", &student->students.birthday.year, &student->students.birthday.month, &student->students.birthday.day);
	if (student->students.birthday.year < 1500 || student->students.birthday.year > 2021 || student->students.birthday.month < 0 || student->students.birthday.month >12 || student->students.birthday.day < 0 || student->students.birthday.day>31) 
	{ 
		printf("\t\033[5;31m 输入错误!!! \n\033[0m "); 
		return 0; 
	}
	printf("\t\033[33;32m 政治面貌(党员或共青团员): \033[0m "); 
	scanf("%s", student->students.politic);
	printf("\t\033[33;32m 学生籍贯: \033[0m ");
	scanf("%s", student->students.native);
	printf("\t\033[33;32m 家庭住址: \033[0m ");
	scanf("%s", student->students.address);
	printf("\t\033[33;32m 学生电话: \033[0m "); 
	scanf("%s", student->students.phone);
	printf("\t\033[33;32m E-mail : \033[0m ");
	scanf("%s", student->students.mail);
	printf("\n");
	printf("\t\033[33;32m 插入位置= \033[0m ");
	scanf("%d", &e);
	if (e > sum+1||e<0) 
	{ 
		printf("\t\033[5;31m 位置错误!!! \n\033[0m "); 
		return 0; 
	}
	stus* p; 
	p = head;
	for (int i = 1; i < e; i++) 
	{ 
		p = p->next; 
	}
	student->next = p->next;
	p->next = student; 
	sum++;
}

int statistics(stus* head) {//统计函数
	int key;
	do
	{
		printf("\t\033[33;5m *************************** \033[0m \n");
		printf("\t\033[40;33m  _________________________ \033[0m \n");
		printf("\t\033[40;33m |_______学生信息统计______| \033[0m \n");
		printf("\t\033[40;33m |________________________| \033[0m \n");
		printf("\t\033[40;33m |_____1.学生性别统计______| \033[0m \n");
		printf("\t\033[40;33m |_____2.党员人数统计______| \033[0m \n");
		printf("\t\033[40;33m |_____3.退出信息系统______| \033[0m \n");
		printf("\t\033[40;33m |_________________________| \033[0m \n");
		printf("\t\033[40;33m |_______选择你的操作______| \033[0m \n");
		printf("\t\033[40;33m |_________________________| \033[0m \n");
		printf("\t\033[33;5m *************************** \033[0m \n");
		printf("\t\033[33;32m 你的选择是= \033[0m "); scanf("%d", &key);
		switch (key)
		{
		case 1: {
			int M=0; 
			char str[20];
			if (head->next == NULL)
			{
				printf("\t\033[5;31m 未输入信息!!! \n\033[0m ");
				return 0;
			}
			stus* sex = (stus*)malloc(sizeof(stus));
			sex = head->next;
			while (sex != NULL) {
				if (strcmp(sex->students.sex, "男") == 0 || strcmp(sex->students.sex, "m") == 0 ||  strcmp(sex->students.sex,"M")==0)
				{
					M++; 
				}sex = sex->next;
			}printf("\n\t\033[33;34m 一共有%d名学生,女生%d名,男生%d名 \n\033[0m ", sum, sum - M, M);
		}break;
		case 2: {
			int D=0;
			if (head->next == NULL)
			{
				printf("\t\033[5;31m 未输入信息!!! \n\033[0m ");
				return 0;
			}
			stus* d = (stus*)malloc(sizeof(stus));
			d = head->next;
			while (d != NULL) {
				if (strcmp(d->students.politic, "党员") == 0)
				{
					D++;
				} d = d->next;
			}printf("\n\t\033[33;34m 一共有%d名学生,团员%d名,党员%d名\n\033[0m ", sum, sum - D,D);
		}break;
		}
	} while (key != 3); return 0;
}

int main() {//主函数
	stus* head = (stus*)malloc(sizeof(stus));
	head->next = NULL;
	FILE* fp;
	int i=0;
	if ((fp = fopen("text.xls", "w")) == NULL) {
		printf("\t\033[5;31m 打开失败!!! \033[0m "); 
		return 0;
	}
	char title[10][20] = { {"学号"},{"姓名"}, {"年龄"},{"性别"}, {"出生年月"}, {"政治面貌"}, {"籍贯"} ,{"家庭住址"}, {"电话"} ,{"E-mail"} };//xls表头数组
	for (i = 0; i < 10; i++) {
		fprintf(fp, "%s\t", title[i]);
	}建立数组
	menu(head);

	return 0;
}


  • 23
    点赞
  • 182
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
#include <stdio.h> #include <stdlib.h> #include <string.h> #include<ctype.h> #define M 3 struct student {long num; char name[20]; char sex; int score[5]; int ave; }stu[M]; void init() { printf("\t\t********************************\n\n"); printf("\t\tStudent score management systerm \n"); printf("\n"); printf("\t\t Make by Maggiehe \n"); printf("\n"); printf("\t\t Student number is 3206***** \n\n"); printf("\t\t********************************\n\n"); } void input() { int i,j; printf("\nInput the student number name sex math English PE maolun majing:\n"); for(i=0;i<M;i++) {scanf("%ld,%s,%c",&stu[i].num,stu[i].name,&stu[i].sex); for(j=0;j<5;j++) scanf("%d",&stu[i].score[j]); scanf("%d",&stu[i].ave); save(); } } void list() { int i,j; clrscr(); printf("\t**********************student****************************\n"); printf("num name sex math English PE maolun majing:\n"); for(i=0;i<M;i++) { printf("%ld %s %c",stu[i].num,stu[i].name,stu[i].sex); for(j=0;j<5;j++) printf("%d",stu[i].score[j]); printf("%d",stu[i].ave); } if((i+1)%10==0) { printf("\npress any key continue.......\n"); getch(); } printf("\t*************************end*********************************\n"); } void average() { int i,j; float sum[M]; for(i=0;i<M;i++) for(j=0;j<5;j++) sum[i]+=stu[i].score[j]; stu[i].ave=sum[i]/5.0; } void search_num() { long num; int i,j; printf("\nplease enter number which you want to search:"); scanf("%ld",&num); printf("\n"); for(i=0;i<M;i++) if(stu[i].num!=num) printf("The number is not exist\n"); else { printf("number name sex math English PE maolun majing average\n"); printf("%ld %s %c",stu[i].num,stu[i].name,stu[i].sex); for(j=0;j<5;j++) printf("%d",stu[i].score[j]); printf("%d",stu[i].ave); } } void search_nam() { int i,j; char name[20]; printf("\nplease enter name which you want to search:"); scanf("%s",&name); printf("\n"); for(i=0;i<M;i++) if(strcmp(stu[i].name,name)==0) { printf("number name sex math English PE maolun majing average:\n"); printf("%ld%s%c",stu[i].num,stu[i].name,stu[i].sex); for(j=0;j<5;j++) printf("%d",stu[i].score[j]); printf("%d",stu[i].ave); } else printf("\nThe name is not exist!!!\n"); } void search_ave() { int i,j,a=0; float k; printf("please enter average score which you want to search:"); scanf("%f",&k); printf("\n"); for(i=0;i<M;i++) if(stu[i].ave!=k) printf("The average score is not exist!!!\n"); else for(i=0;i<M;i++) { if(stu[i].ave<=k) printf("number name sex math English PE maolun majing average\n"); printf("%ld %s %c",stu[i].num,stu[i].name,stu[i].sex); for(j=0;j<5;j++) printf("%d",stu[i].score[j]); printf("%d",stu[i].ave); a++; } } void sort() { int i,j; struct student temp; for(i=0;i<M;i++) for(j=i+i;j<M;j++) if(stu[i].ave<stu[j].ave) {temp=stu[i]; stu[i]=stu[j]; stu[j]=temp; } } void save() { int i; FILE *fp; if((fp=fopen("student.dat","wb"))==NULL) {printf("cannot open file\n"); return; } for(i=0;i<M;i++) if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf("file write error\n"); fclose(fp); } void delect() { int i,t; long num; printf("please enter number which you want to delect:"); scanf("%ld",&num); printf("\n"); for(i=0;i<M;i++) { if(stu[i].num!=num) printf("The number is not exist!!!\n"); if(stu[i].num==num) t=i; } for(i=t;i<M;i++) stu[i]=stu[i+1]; save(); } void insert() {FILE *fp; int i,n,t; struct student s; printf("please input record\n"); printf("number name sex math English PE maolun majing average\n"); scanf("%ld,%s,%c,%d%d%d%d%d%d",&s.num,s.name,&s.sex,&s.score[0],&s.score[1],&s.score[2],&s.score[3],&s.score[4],&s.ave); s.ave=(s.score[0]+s.score[1]+s.score[2]+s.score[3]+s.score[4])/3.0; if((fp=fopen("student.dat","wb"))==NULL) {printf("cannot open file\n"); return; } i=M; for(t=0;stu[i].ave>s.ave&&t<M;t++) if(fwrite(&s,sizeof(struct student),1,fp)!=1) printf("file write error\n"); fclose(fp); } void MainMenu() {clrscr(); printf("\t********************************************************************\n \n); Printf(“\n”); printf("\t choose one of following:\n"); printf("\t 1. search record\n"); printf("\t 2. sort record\n"); printf("\t 3. insert record\n"); printf("\t 4. delect record\n"); printf("\t please enter your choice:"); printf(“\n”); printf("\t********************************************************************\n"); } void menu_select() {clrscr(); printf("\t******************************************************************\n\n"); printf(“\n”); printf("\t choose one of following:\n"); printf("\t 1.1 search by number\n"); printf("\t 1.2 search by name\n"); printf("\t 1.3 search by average score\n"); printf("\t please enter your choice:"); printf(“\n”); printf("\t******************************************************************\n"); } void search() { char ch; clrscr(); menu_select(); ch=getch(); switch(ch) { case '1':search_num();break; case '2':search_nam();break; case '3':search_ave();break; } } main() { char ch; clrscr(); init(); input(); list(); average(); save(); MainMenu(); ch=getch(); switch(ch) { case '1':search();break; case '2':sort();break; case '3':insert();break; case '4':delect();break; } search_num(); search_nam(); search_ave(); sort(); delect(); insert; }
### 回答1: 这个学生信息管理系统可以使用C++类和文件来设计。首先,我们可以创建一个名为“Student”的类,该类包含学生的姓名、学号、年龄、性别、成绩等信息。然后,我们可以使用文件来存储学生信息,例如使用文本文件或二进制文件。在程序中,我们可以使用文件输入输出流来读取和写入学生信息。此外,我们还可以添加一些功能,例如添加学生信息、删除学生信息、修改学生信息、查询学生信息等。通过这些功能,我们可以方便地管理学生信息。 ### 回答2: 学生信息管理系统是一种用于管理学生基本信息和相关数据的软件系统。它能够方便地记录、查询、修改、删除和统计学生信息,提供了有力的支持和帮助,提高了学生管理效率和准确性。 在设计学生信息管理系统时,首先需要定义学生信息的数据结构,包括学生姓名、学号、年龄、性别、出生日期、所在班级等。然后根据这些数据,设计相应的数据表,并进行数据库的建立。 系统需要提供一个用户界面,让用户可以方便地操作系统。在界面的设计中,可以分为不同模块,如学生信息录入模块、学生信息查询模块、学生信息修改模块和学生信息统计模块等。用户可以根据需要选择相应模块进行操作。 在学生信息录入模块中,系统可以提供一个表格供用户输入学生信息,并支持信息的实时保存。在信息查询模块中,可以通过学号、姓名等关键字进行查询,并展示查询结果。在修改模块中,用户可以根据需求修改学生的某些信息。在统计模块中,可以根据班级、年龄等进行数据统计,并生成报表。 此外,系统还可以提供一些辅助功能,如自动生成学号、检查学生信息的合法性等。同时,可以加入权限管理,限制不同用户对系统的访问和操作权限,保护学生信息的安全。 总之,设计学生信息管理系统需要考虑到用户的需求和操作习惯,确定好系统功能和界面设计,合理安排数据结构和数据库建立,并加入相应的辅助功能和安全措施,以最大程度地提高学生信息管理的效率和准确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值