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

📄 manager.cpp

📁 1设计题目及要求 一、程序设计题目:学生成绩管理程序设计 二、 程序设计功能及要求: 1.显示学生各门成绩,总分,和平均分. 2.按总分由高到的进行排列. 3.要求输入一个学号.要求能找出一
💻 CPP
字号:
#include "stdafx.h"
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include "manager.h"


stu *head;

int main(int argc, char* argv[])
{
	stu *pr,*pr2;
	head=NULL;
	int c;//用来得到Menu的返回值
	int coursenumber,i,sum,num,score[COURSENUMBER]={0};
	//coursenumber 由来得到AddCourse函数的返回值即:共有多少科。i是用来循环累加的。
	FILE *fp;
	char subject[COURSENUMBER][15],name[20],pathname[30];
	//subject用来得到学科的名称,最多三十科,可通过改变COURSENUMBER宏来改变。
	printf("Please input the subjects:\n");
	coursenumber=AddCourse(subject);
	while(1)
	{
		c=menu();
		switch(c)
		{
		case 1://显示学生的信息
			DispStudent(head,coursenumber,subject);
			break;
		case 2://写入学生的信息
			printf("Please input the student's ID and name\n");
			scanf("%d%s",&num,name);
			printf("Plesae input the student's score!\n");
			for(i=0;i<coursenumber;i++)
			{
				printf("%s ",subject[i]);
			}
			printf("\n");
			for(i=0;i<coursenumber;i++)
				scanf("%d",&score[i]);
			sum=0;
			for(i=0;i<coursenumber;i++)
			{
				sum=sum+score[i];
			}
			if(head==NULL)
			{
				head=CreateStudent(num,name,score,sum,coursenumber);
				pr=head;
			}
			else
			{
				head=AddStudent(head,num,name,score,sum,coursenumber);
			}
			break;
		case 3://删除一个学生的信息
			printf("please enter which student you want to delete[Enter ID]\n");
			scanf("%d",&num);
			head=DelStudent(head,num);
			break;
		case 4://查找一个学生的信息
			printf("Please enter the student's ID and to search it\n");
			scanf("%d",&num);
			pr2=SearchStudent(head,num);
			if(pr2!=NULL)
				PrintStudent(pr2,subject,coursenumber);
			break;
		case 5://修改一个学生的信息
			printf("Please input the ID\n");
			scanf("%d",&num);
			ChangeStudent(head,num,subject,coursenumber);
			break;
		case 6://删除所有学生的信息。
			head=DelAllStudent(head);
			break;
		case 7://保存成绩
			printf("Please input the pathname:\n");
			scanf("%s",pathname);
			fp=fopen(pathname,"a+");
			if(fp==NULL)
			{
				printf("Can't open it");
				getch();
				break;
			}
			SaveFile(fp,head,coursenumber,subject);
			fclose(fp);
			break;
		case 8:
			exit(0);
		}
	}
}
//添加课程,参数学科数组,返回有多少学科.
int AddCourse(char subject[][15])
{
	int i=0;
	int coursenumber;
	char c;
	printf("press 'q' to quit,press any key to continue\n");
	c=getch();
	if(c=='q')
		exit(0);
	else
	{
		printf("Please input the subject\n");
		for(i=0;;i++)
		{
			coursenumber=i+1;
			scanf("%s",subject[i]);
			scanf("%c",&c);
			if(c=='\n')
				break;
		}
	}
	return coursenumber;
}
//菜单,返回选择的菜单项
int menu()
{
	int c;
	while(1)
	{
		printf("press '1' to display the score\n");//要判断是否存在着学生
		printf("press '2' to create and add students' information\n");
		printf("press '3' to delete students' information \n");//要判断是否存在着学生
		printf("press '4' to Search a students's information\n");//要判断是否存在着学生
		printf("press '5' to Chang a studnets' information\n");//要判断是否存在着学生
		printf("press '6' to delete all students' information\n");//要判断是否存在着学生
		printf("press '7' to save the table\n");
		printf("press '8' to exit\n");
		scanf("%d",&c);
		if(c==1 || c==2 || c==3 || c==4 || c==5 || c==6 || c==7 || c==8)
		{
			return c;
		}
		else
		{
			printf("Wrong!Plesase input again!\n");
			continue;
		}
	}
}
//打印某个学生的成绩
void PrintStudent(stu *pr2,char subject[][15],int coursenumber)
{
	int i;
	for(i=0;i<coursenumber;i++)
	{
		printf(" %s ",subject[i]);
	}
	printf("%s",str);
	printf("\n");
	for(i=0;i<coursenumber;i++)
		printf("%6d",pr2->score[i]);
	printf("%6d%8.2f%15d%20s",pr2->sum,pr2->average,pr2->num,pr2->name);
	printf("\n");
}

⌨️ 快捷键说明

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