最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

數(shù)據(jù)結(jié)構(gòu)實現(xiàn)學(xué)生信息管理系統(tǒng)功能

2023-07-19 15:27 作者:學(xué)習(xí)微站公眾號  | 我要投稿

學(xué)生信息管理系統(tǒng)

1、 學(xué)生信息錄入:主要是錄入學(xué)生班級信息和學(xué)生基本情況;
2、 學(xué)生信息查詢:按指定系檢索該系的學(xué)生信息,其中包括所有的學(xué)生信息;
3、 學(xué)生信息維護:維護學(xué)生、系別、課程、學(xué)生選課及成績等方面的基本信息,包括增加、刪除和修改;
4、 學(xué)生選課:為學(xué)生提供選課界面,包括所有課程信息。進入該界面前學(xué)生要輸入正確的學(xué)號和姓名。

具體代碼如下:(vc++6.0剛剛試過可以運行)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include <windows.h>
struct course	
{
	int num;
	char subject[10];
	int mark;
	int count;
}cour[5] = { {1,"數(shù)據(jù)結(jié)構(gòu)",3,0},{2,"java語言",3,0},
{3,"大學(xué)英語",5,0},{4,"軟件工程",4,0},{5,"線性代數(shù)",3,0} };
void Output_course(struct course *p)
{
	system("cls");
	printf("課程信息如下: ? \n");
	for (p = cour; p < cour + 5; p++)
		printf("課程號--%d ? 科目--%7s ? 學(xué)分--%d ? 已選人數(shù)--%d\n\n",
			p->num, p->subject, p->mark, p->count);
}
struct student	
{
	long num;
	char name[10];
	char order1[10];
	char order2[10];
}stu[8] = {	 ? {20170401,"小明","NULL","NULL"},
			 ? {20170402,"小紅","NULL","NULL"},
			 ? {20170403,"小張","NULL","NULL"},
			 ? {20170404,"小王","NULL","NULL"},
			 ? {20170405,"小花","NULL","NULL"},
			 ? {20170406,"小麗","NULL","NULL"},
			 ? {20170407,"小雨","NULL","NULL"},
			 ? {20170408,"小二","NULL","NULL"},
};
void Output_student(struct student *p)
{
	system("cls");
	printf("學(xué)生的選課情況如下:\n");
	for(p=stu;p<stu+8;p++)
	printf("學(xué)號--%d ?姓名--%3s ?課程1--%7s ?課程2--%7s\n\n",
		p->num, p->name, p->order1, p->order2);
}
void modify(struct student *p, struct course cour[5])

{
	int s;
	int g;
	char b;
	char k[10];
	char h;
	long n;
	long m;
	int i;
	int j;
	char name1[20];
	system("cls");
	printf("請輸入學(xué)號(20170401-20170408):");
	scanf("%d", &n);
	printf("請輸入學(xué)號對應(yīng)的姓名:");
	scanf("%d", &h);
	for (p = stu; p < stu + 8; p++)
	{
		if (n == p->num)	
		{
			system("cls");
			printf("\n\n\n 該學(xué)生信息如下\n\n\n");
			printf("學(xué)號--%d ?姓名--%s ?課程1--%s ?課程2--%s\n\n", 
				p->num, p->name, p->order1, p->order2);
			printf("\nA.修改 ?退出請按A,a外任意字母鍵\n");
			scanf("%s", &b);
			{ if (b == 'a' || b == 'A')
			{
				printf("\n1.修改學(xué)號 ? 2.修改姓名 ? 3.修改所選課程\n");
				scanf("%d", &s);
				{ if (s == 1)
				{
					printf("\n 學(xué)號修改為:\n"); 
					scanf("%d", &m);
					p->num = m;
					system("cls");
					printf("\n\n\n\n\n\n\n修改后如下:\n");
					printf("學(xué)號--%d ?姓名--%s ?課程1--%s ?課程2--%s\n\n",
						p->num, p->name, p->order1, p->order2);
				}
				if (s == 2)
				{
					printf("\n 姓名修改為:\n");
					scanf("%20s", name1);
					strcpy(p->name, name1);
					system("cls");
					printf("\n\n\n\n\n 修改后如下\n\n");
					printf("學(xué)號--%d ?姓名--%s ?課程1--%s ?課程2--%s\n\n", 
						p->num, p->name, p->order1, p->order2);
				}
				if (s == 3)
				{
					system("cls");
					printf("\n 輸入你想修改的課程:區(qū)分大小寫\n");
					scanf("%s", &k);
					{if (strcmp(p->order1, k) == 0)
					{
						system("cls");
						printf("\n1.數(shù)據(jù)結(jié)構(gòu) ?2.java語言 ? 3.大學(xué)英語 ? 4.軟件工程 ? 5.線性代數(shù)\n");
						printf("\n你想修改為(1-5):\n");
						scanf("%d", &g);
						for (i = 0; i < 5; i++)
						{
							if (g == i + 1)
							{
								if (cour[g - 1].count >= 3)
								{
									system("cls");
									printf("\n\n ?該課程已被選滿\n");
								}
								else {
									if (strcmp(p->order2, cour[g - 1].subject) == 0)
										printf("\n\n 你已選過這門課 ? \n\n");
									else {
										strcpy(p->order1, cour[g - 1].subject);
										cour[g - 1].count++;
										for (j = 0; j < 5; j++)
										{
											if (strcmp(cour[j].subject, k) == 0)

												cour[j].count--;
										}
										system("cls");
										printf("\n\n學(xué)生信息 \n\n");
										printf("學(xué)號--%d ?姓名--%s ?課程1--%s ?課程2--%s\n\n",
											p->num, p->name, p->order1, p->order2);
									}
								}
							}
						}
					}
					else
						if (strcmp(p->order2, k) == 0)
						{
							system("cls");
							printf("\n1.數(shù)據(jù)結(jié)構(gòu) ?2.java語言 ? 3.大學(xué)英語 ? 4.軟件工程 ? 5.線性代數(shù)\n");
							printf("\n你想修改為(1-5):\n");
							scanf("%d", &g);
							for (i = 0; i < 5; i++)
							{
								if (g == i + 1)
								{
									if (cour[g - 1].count >= 3)
									{
										printf("\n\n ? 該課程已被選滿\n");
									}
									else {
										if (strcmp(p->order1, cour[g - 1].subject) == 0)
											printf("\n\n 你已選過這門課 ? \n\n");
										else {
											strcpy(p->order2, cour[g - 1].subject);
											cour[g - 1].count++;
											for (j = 0; j < 5; j++)
											{
												if (strcmp(cour[j].subject, k) == 0)
													cour[j].count--;
											}
											system("cls");
											printf("\n\n學(xué)生信息 \n\n");
											printf("學(xué)號--%d ?姓名--%s ?課程1--%s ?課程2--%s\n\n",
												p->num, p->name, p->order1, p->order2);
										}
									}
								}
							}
						}
						else ?printf("\n\n 您還沒選這門課或拼寫錯誤\n\n");
					}
				}

				}
			}
			}
		}
	}
}

void xuanke(struct student *p,struct course cour[5])
{ long n;int a;int b;int t = 0;int u = 0;int i;
	system("cls");
	printf("請輸入學(xué)號(20170401-20170408):");
	scanf("%d", &n);

	for (p = stu;p < stu + 8;p++)
	{
		if (n == p->num)
		{
			system("cls");
			if (strcmp(p->order1,"NULL")!=0)	
				t = 1;
			else
			{
				system("cls");
				printf("\n\n\n\n\n\n請選您的第一門課 ? 提示:您最多只能選二門課\n\n");
				printf("\n1.數(shù)據(jù)結(jié)構(gòu) ?2.java語言 ? 3.大學(xué)英語 ? 4.軟件工程 ? 5.線性代數(shù)\n\n");
				printf("\n請選第一門課:不選請按1-5外任意數(shù)字鍵返回\n\n");
				scanf("%d", &a);
				for (i = 0; i < 5; i++)
				{
					if (a == i + 1)
					{
						if (cour[a - 1].count >= 3)
						{
							printf("\n\n該課程已被選滿\n");
						}
						else {
							if (strcmp(p->order2,cour[a - 1].subject)==0)
								printf("\n\n\n 你已選過這門課\n");
							else {
								strcpy(p->order1, cour[a - 1].subject);
								cour[a - 1].count++;
								system("cls");
								printf("\n\n\n\n\n\n ? 學(xué)生信息:\n");
								printf("學(xué)號--%d ?姓名--%s ?課程1--%s ?課程2--%s\n\n",
									p->num, p->name, p->order1, p->order2);
							}
						}
					}
				}
			}
			if (strcmp(p->order2, "NULL")!=0)
				u = 1;
			else {
				printf("\n\n\n\n\n\n請選您的第二門課 ? 提示:您最多只能選二門課\n\n");
				printf("\n1.數(shù)據(jù)結(jié)構(gòu) ?2.java語言 ? 3.大學(xué)英語 ? 4.軟件工程 ? 5.線性代數(shù)\n\n");
				printf("\n 請選第二門課:不選請按 1-5 外任意數(shù)字鍵返回\n\n");
				scanf("%d", &b);
				for (i = 0; i < 5; i++)
				{
					if (b == i + 1)
					{
						if (cour[b - 1].count >= 3)
						{
							printf("\n\n 該課程已被選滿 \n");
						}
						else {
							if (strcmp(p->order1, cour[b - 1].subject)==0)
								printf("\n\n\n ? 你已選過這門課 ? \n");
							else {
								strcpy(p->order2, cour[b - 1].subject);
								cour[b - 1].count++;
								system("cls");
								printf("\n\n\n\n\n\n ? 學(xué)生信息:\n");
								printf("學(xué)號--%d ?姓名--%s ?課程1--%s ?課程2--%s\n\n",
									p->num, p->name, p->order1, p->order2);
							}
						}
					}
				}
			}
			if (u==1&&t==1)
				printf("\n 您已選滿,若想修改請進入菜單 3\n");
		}
	}
}

void a()
{
	for (;;){
	int n;
	printf("\t\t************歡迎來到選課系統(tǒng)************\n\n");
	printf("\t\t**-------- 1 瀏覽課程信息 ------------**\n\n");
	printf("\t\t**-------- 2 瀏覽學(xué)生選課情況 --------**\n\n");
	printf("\t\t**-------- 3 學(xué)生信息查詢和修改 ------**\n\n");
	printf("\t\t**-------- 4 學(xué)生選課 ----------------**\n\n");
	printf("\t\t**-------- 5 退出 --------------------**\n\n");
	printf("請選擇(1-5):[ ]\b\b");
	scanf("%d", &n);
	switch (n)
	{
	case 1:Output_course(cour); break;
	case 2:Output_student(stu); break;
	case 3:modify(stu,cour); break;
	case 4:xuanke(stu,cour); break;
	case 5:exit(0);
	default:printf("請輸入正確數(shù)字!\n");
	}
	}
}


#define N 100
typedef struct stulink_node
{
	char sdepartment[10];
	char sclass[10];
	char scourse[10];
	char sno[14];
	char sname[10];
	char ssex[2];
	float psscore;
	float syscore;
	float qmscore;
	float zpscore;
	struct stulink_node *next;
}student;
typedef student *linklist;

student *head;

char sno[N][20]={{'a','b'}};
int count;
void display(); ? ? ? ? ? ? ? ? ?
int judge(char sno1[]) ? ? ? ? ? ? ? 
{
	int i;
	for(i=0;i<N;i++)
	{
		if(!strcmp(sno1,sno[i]))
			return 1;
	}
	return 0;
}

student *init() ? ? ? ? ? ?
{
	return NULL;
}
float average(student *stu) ? ? ? ? ?
{
	return (float)(0.4*stu->psscore+0.3*stu->syscore+0.3*stu->qmscore);
}
void luru() ? ? ? ? ? ? ? ?
{	
	linklist p,q;
	static int count=0;
	char flag='0';
	q=(linklist)malloc(sizeof(student));
	p=head=NULL;
	while(flag=='0')
		{
			printf("\n");
			printf("請輸入學(xué)生的學(xué)號: ");
			scanf("%s",&q->sno);
			while(judge(q->sno))
			{
			printf("學(xué)號重復(fù),請重新輸入:");
			scanf("%s",&q->sno);
			}
			strcpy(sno[count],q->sno);count++;
			printf("請輸入學(xué)生的系別: ");
			scanf("%s",&q->sdepartment);
			printf("請輸入學(xué)生的班級: ");
			scanf("%s",&q->sclass);
			printf("請輸入學(xué)生的課程: ");
			scanf("%s",&q->scourse);
			printf("請輸入學(xué)生的姓名: ");
			scanf("%s",&q->sname);
			printf("請輸入學(xué)生的性別: ");
		 ? ?scanf("%s",&q->ssex);
			printf("請輸入學(xué)生的平時成績: ");
		 ? ?scanf("%f",&q->psscore);
			printf("請輸入學(xué)生的實驗成績: ");
		 ? ?scanf("%f",&q->syscore);
			printf("請輸入學(xué)生的期末成績: ");
			scanf("%f",&q->qmscore);
			q->zpscore=average(q);
			setbuf(stdin,NULL);
			if(head==NULL) 
			{
				head=q;
				p=head;
			}
			else 
			{
				p->next=q;
				p=q;
			}
			q=(linklist)malloc(sizeof(student));
			printf("按0繼續(xù)輸入,否則退出\n");
			flag=getch();
			setbuf(stdin,NULL);
		}
	free(q);
	printf("輸入完畢!\n ");
	p->next=NULL;
}
void charu() ? ? ? ? ? ? ? ? ? ? ?
{
	int j=0,i;
	linklist p,q;
	p=head;
	printf("請輸入要插入的位置: ");
	scanf("%d",&i);
	if(i<0) printf("輸入位置不規(guī)范!\n");
	else 
	{
		while (p&&i!=j)
		{
			p=p->next;j++;
		}
		if(!p&&i!=0) ?printf("未找到該結(jié)點不能插入!");
		else
		{
			q=(linklist)malloc(sizeof(student));
			printf("請輸入學(xué)生的學(xué)號: ");
			scanf("%s",&q->sno);
			while(judge(q->sno))
			{
			printf("學(xué)號重復(fù),請重新輸入:");
			scanf("%s",&q->sno);
			}
			strcpy(sno[count],q->sno);count++;
			printf("請輸入學(xué)生的系別: ");
			scanf("%s",&q->sdepartment);
			printf("請輸入學(xué)生的班級: ");
			scanf("%s",&q->sclass);
			printf("請輸入學(xué)生的課程: ");
			scanf("%s",&q->scourse);
			printf("請輸入學(xué)生的姓名: ");
			scanf("%s",&q->sname);
			printf("請輸入學(xué)生的性別: ");
			scanf("%s",&q->ssex);
			printf("請輸入學(xué)生的平時成績: ");
			scanf("%f",&q->psscore);
			printf("請輸入學(xué)生的實驗成績: ");
			scanf("%f",&q->syscore);
			printf("請輸入學(xué)生的期末成績: ");
			scanf("%f",&q->qmscore);
			q->zpscore=average(q);
			if(i==0)
			{
				q->next=head;
				head=q;
			}
			else 
			{
				q->next=p->next;
				p->next=q;
			}
		}
	}

}
void xiugai() ? ? ? ? ? ? ? ? ? ? ? ? 
{
	linklist q;
	int m=0;
	char sno[15];
	q=head;
	printf("請輸入要修改的學(xué)生學(xué)號:");
	scanf("%s",&sno);
	if(!q) ?printf("修改失敗,沒有學(xué)生信息!\n");
	else 
	{
		while(q!=NULL)
		{
			if(strcmp(q->sno,sno)==0)
			{
				printf("請輸入學(xué)生的系別: ");
			 ? ?scanf("%s",&q->sdepartment);
			 ? ?printf("請輸入學(xué)生的班級: ");
			 ? ?scanf("%s",&q->sclass);
			 ? ?printf("請輸入學(xué)生的課程: ");
			 ? ?scanf("%s",&q->scourse);
				printf("請輸入學(xué)生的學(xué)號: ");
				scanf("%s",&q->sno);
				printf("請輸入學(xué)生的姓名: ");
				scanf("%s",&q->sname);
				printf("請輸入學(xué)生的性別: ");
				scanf("%s",&q->ssex);
				printf("請輸入學(xué)生的平時成績: ");
				scanf("%f",&q->psscore);
				printf("請輸入學(xué)生的實驗成績: ");
				scanf("%f",&q->syscore);
				printf("請輸入學(xué)生的期末成績: ");
				scanf("%f",&q->qmscore);
				q->zpscore=average(q);
				setbuf(stdin,NULL);
				m=1;
				printf("修改成功!\n\n");
				break;
			}
			else
				q=q->next;	
		}
		if(m==0) printf("修改失敗,沒有該學(xué)生信息!\n\n");
	}
}

void shanchu() ? ? ? ? ? ? ? ? ? ? ? 
{
	linklist pre,q;
	char sno[12];
	pre=head;
	q=head;
	printf("請輸入要刪除的學(xué)生學(xué)號:");
	scanf("%s",&sno);
	if(!q) printf("沒有學(xué)生信息,無法刪除!\n\n");
	else
	{
		while(q)
		{
			if(strcmp(q->sno,sno)==0) 
			{
				if(q==head)
				{
				head=q->next;
				free(q);
				}
				else 
				{
				pre->next=q->next;
				free(q);
				}
				printf("刪除成功!\n");
				break;
			}
			else
			{
				pre=q;
				q=q->next;
			}
		}
	}	
}

void chaxun() ? ? ? ? ? ? ? ? ? ? ? ? ? 
{
	linklist p;
	int m=0;
	char sno[15];
	p=head;
	printf("請輸入需查詢的學(xué)生學(xué)號:");
	scanf("%s",&sno);
	if(!p) printf("沒有學(xué)生信息,無法查詢!\n\n");
	else
	{
		while(p)
		{
			if(strcmp(p->sno,sno)==0) 
			{
				printf("系別:%s\n",p->sdepartment);
				printf("班級:%s\n",p->sclass);
				printf("課程:%s\n",p->scourse);
				printf("學(xué)號:%s\n",p->sno);
				printf("姓名:%s\n",p->sname);
				printf("性別:%s\n",p->ssex);
				printf("平時成績:%-.2f\n",p->psscore);
				printf("實驗成績:%-.2f\n",p->syscore);
				printf("期末成績:%-.2f\n",p->qmscore);
				printf("總評成績:%-.2f\n",p->zpscore);
				m=1;
				break;
			}
			else
				p=p->next;
		}
		if(m==0) printf("查詢失敗,沒有該生信息!\n");
	}
	
}
void paixu() ? ? ? ? ? ? ? ? ? ? ? 
{
	linklist p,q,r;
	student temp;
	r=head;
	if(r==NULL) printf("沒有學(xué)生成績,請先添加學(xué)生成績!\n");
	else
	{
	while(r)
	{
		p=r;
		q=r->next;
		while(q)
		{
			if(p->zpscore < q->zpscore)
			{
				strcpy(temp.sdepartment,p->sdepartment);
				strcpy(temp.sclass,p->sclass);
				strcpy(temp.scourse,p->scourse);
				strcpy(temp.sno,p->sno);
				strcpy(temp.sname,p->sname);
				strcpy(temp.ssex,p->ssex);
				temp.psscore=p->psscore;
				temp.syscore=p->syscore;
				temp.qmscore=p->qmscore;
				temp.zpscore=p->zpscore;

 ?				strcpy(p->sdepartment,q->sdepartment);
				strcpy(p->sclass,q->sclass);
				strcpy(p->scourse,q->scourse);
				strcpy(p->sno,q->sno);
				strcpy(p->sname,q->sname);
				strcpy(p->ssex,q->ssex);
				p->psscore=q->psscore;
				p->syscore=q->syscore;
				p->qmscore=q->qmscore;
				p->zpscore=q->zpscore;

				strcpy(q->sdepartment,temp.sdepartment);
				strcpy(q->sclass,temp.sclass);
				strcpy(q->scourse,temp.scourse);
				strcpy(q->sno,temp.sno);
				strcpy(q->sname,temp.sname);
				strcpy(q->ssex,temp.ssex);
				q->psscore=temp.psscore;
				q->syscore=temp.syscore;
				q->qmscore=temp.qmscore;
				q->zpscore=temp.zpscore;
			}
			q=q->next;
		}
		r=r->next;
	}
	printf("****排序完畢,按由大到小的總評成績!");
	display();
	}
	
}

void display() ? ? ? ? ? ? ? ? ? 
{
	student *p;
	p=head;
	if(!p) printf("暫無學(xué)生成績!\n");
	else
	{
		printf("各個學(xué)生成績?yōu)?\n");
		while(p)
		{
			
			 ? ?printf("系別:%s	",p->sdepartment);
				printf("班級:%s	",p->sclass);
				printf("課程:%s	",p->scourse);
				printf("學(xué)號:%s	",p->sno);
				printf("姓名:%s	",p->sname);
				printf("性別:%s	",p->ssex);
				printf("平時成績:%-.2f	",p->psscore);
				printf("實驗成績:%-.2f	",p->syscore);
				printf("期末成績:%-.2f	",p->qmscore);
				printf("總評成績:%-.2f\n",p->zpscore);
			p=p->next;
		}
	}
}
void menu()
{
	int choose;
	printf("**************學(xué)生信息管理系統(tǒng)*****************\n");
	printf("* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *\n");
	printf("*----------- 1.錄入學(xué)生成績 ------------------*\n");
	printf("*----------- 2.增加學(xué)生成績 ------------------*\n");
	printf("*----------- 3.修改學(xué)生成績 ------------------*\n");
	printf("*----------- 4.刪除學(xué)生成績 ------------------*\n");
	printf("*----------- 5.查詢學(xué)生成績 ------------------*\n");
	printf("*----------- 6.對學(xué)生成績進行排序 ------------*\n");
	printf("*----------- 7.輸出學(xué)生成績 ------------------*\n");
	printf("*----------- 8.進入選課系統(tǒng)-------------------*\n");
	printf("*----------- 9.退出系統(tǒng)-----------------------*\n");
	printf("***********************************************\n");
	printf("\n");
	printf("請輸入你的選擇:");
	scanf("%d",&choose);
	switch(choose)
	{
	case 1:luru();break;
	case 2:charu();break;
	case 3:xiugai();break;
	case 4:shanchu();break;
	case 5:chaxun();break;
	case 6:paixu();break;
	case 7:display();break;
	case 8:a();break;
	case 9:exit(0);break;
	default:printf("請輸入正確數(shù)字!\n");
	}
	menu();
}

int main()
{
	head=init();
	menu();
	return 0;
}

運行結(jié)果很多,我簡單的給個主菜單


歡迎您關(guān)注我的微信公眾號:學(xué)習(xí)微站(studysth)

最后,這是我的主頁鏈接:https://blog.csdn.net/weixin_43206161

本文使用 文章同步助手 同步

數(shù)據(jù)結(jié)構(gòu)實現(xiàn)學(xué)生信息管理系統(tǒng)功能的評論 (共 條)

分享到微博請遵守國家法律
波密县| 桂林市| 镇雄县| 沿河| 浪卡子县| 嘉善县| 梅河口市| 平山县| 新泰市| 集贤县| 永年县| 深水埗区| 沙坪坝区| 保山市| 兴和县| 玛曲县| 理塘县| 安义县| 松桃| 土默特左旗| 修水县| 唐海县| 盐边县| 砀山县| 宜君县| 漳平市| 巴青县| 准格尔旗| 金沙县| 神池县| 保康县| 横山县| 漠河县| 安平县| 诏安县| 邛崃市| 酒泉市| 左云县| 郴州市| 汶川县| 安宁市|