【C语言课程设计项目】——学生综合管理系统

一.头文件部分

#include <stdio.h>
#include <stdlib.h>
#include <string.h> 
#include <conio.h>
#include <windows.h>

二.结构体 

typedef struct student
{
	char id[20];//学号
	char name[10];//姓名
	char sex[10];//性别
	char bothdate[20];//出生年月
	char jor[20];//专业
	char like[50];//爱好
	int yuwen; // 语文 
	int shuxue;// 数学 
	int waiyu; // 外语 
	int sore;//个人总成绩
	float money;//消费记录
}student;

三. 函数声明 

1.	void SorePrintf(student p) // 查询学生信息时的输出内容

2.	void MoneyPrintf(student p) // 查询学生消费时的输出内容

3.	void read()//读文件数据

4.	void SaveScore()//保存数据

5.	void SaveMoney()//保存数据

6.	void AddScore()  //录入学生信息函数

7.	void AddMoney()  //录入学生消费信息

8.	void FindScore()//(1)查询学生成绩信息

9.	void FindMoney()//查询学生消费信息

10.	void FindMoney()//查询学生消费信息

11.	void FixScore() //(1)修改学生成绩信息

12.	void FixMoney()//(2)修改学生消费信息

13.	void DeleScore()//(1)删除成绩信息模块中学生信息

14.	void DeleMoney()//(2)删除消费信息模块中学生信息

15.	void SortScore()  //学生成绩排名模块

16.	void ShowScore()  //展示学生信息

17.	void ShowMoney()    //计算总消费

18.	void ScoreMenu()   //学生成绩模块菜单

19.	void MoneyMenu()  //学生消费管理模块菜单

20.	void Menu()  //主菜单

五. 主函数 

int main()
{		
	read(); //读取部分 
	Menu(); //菜单部分 
	while(1);
}

六. 代码实现 

/*

一:项目名称:《学生综合管理系统》 

二:项目需求 :1. 学生信息管理系统:   (1)学生成绩排名模块  √ 
									(2)修改学生信息模块  √ 
									(3)删除学生信息模块  √ 
									(4)查询学生信息模块  √ 
									(5)录入学生信息模块  √ 
									(6)显示所有学生信息  √ 
							
							
			   2. 学生消费管理信息系统:  (1) 录入学生消费信息模块 √ 
			                            (2) 查询学生消费信息模块 √ 
										(3) 删除学生消费信息模块 √ 
										(4) 显示学生消费信息模块 √ 
										(5) 修改学生消费信息模块 √ 

*/ 

#include <stdio.h>
#include <stdlib.h>
#include <string.h> 
#include <conio.h>
//#include <dos.h>
#include <windows.h>
#define LEN sizeof(struct student)
typedef struct student
{
	char id[20];//学号
	char name[10];//姓名
	char sex[10];//性别
	char bothdate[20];//出生年月
	char jor[20];//专业
	char like[50];//爱好
	int yuwen; // 语文 
	int shuxue;// 数学 
	int waiyu; // 外语 
	int sore;//个人总成绩
	float money;//消费记录
}student;

student soredata[200];//存蓄成绩数据
student moneydata[200];//存储消费金额数据
int snum=0;//成绩数据个数
int mnum=0;//消费数据个数


void SorePrintf(student p) // 查询学生信息时的输出内容 
{
	printf("--------------------------------------------\n");
	printf("学号:%s  姓名:%s  性别: %s\n",p.id,p.name,p.sex);
	printf("出生年月:%s  专业:%s  爱好: %s\n",p.bothdate,p.jor,p.like);
	printf("语文成绩:%d  数学成绩:%d  外语成绩:%d\n",p.yuwen,p.shuxue,p.waiyu);
	p.sore=p.yuwen+p.shuxue+p.waiyu;
	printf("个人总成绩: %d\n",p.sore);
	printf("--------------------------------------------\n");
//	printf("总人数=%d",snum);
}

void MoneyPrintf(student p) // 查询学生消费时的输出内容 
{
	printf("--------------------------------------------\n");
	printf("学号:%s  姓名:%s  性别: %s\n",p.id,p.name,p.sex);
	printf("出生年月:%s  专业:%s  爱好: %s\n",p.bothdate,p.jor,p.like);
	printf("消费额: %.1f\n",p.money);
	printf("--------------------------------------------\n");
}


void read()//读文件数据
{
		//文件
	FILE *fp;
	
	//以读的方式打开文件
	fp=fopen("score.txt","r"); 
	if(fp==NULL)
	{
	    printf("打开文件失败!\n");
	    return;   
	}

	snum =0;
    while(!feof(fp))    
	{   
	   //读文件数据到数组

		fscanf(fp,"%s%s%s",soredata[snum].id,soredata[snum].name,soredata[snum].sex); 
		fscanf(fp,"%s%s%s",soredata[snum].bothdate,soredata[snum].jor,soredata[snum].like); 
		fscanf(fp,"%d%d%d%d",&soredata[snum].yuwen,&soredata[snum].shuxue,&soredata[snum].waiyu,&soredata[snum].sore);
		snum++;//个数加1
	}

	//关闭文件
	fclose(fp);


		//以读的方式打开文件
	fp=fopen("money.txt","r"); 
	if(fp==NULL)
	{
	    printf("打开文件失败!\n");
	    return;   
	}

	mnum =0;
    while(!feof(fp))    
	{   
	   //读文件数据到数组

		fscanf(fp,"%s%s%s",moneydata[mnum].id,moneydata[mnum].name,moneydata[mnum].sex); 
		fscanf(fp,"%s%s%s",moneydata[mnum].bothdate,moneydata[mnum].jor,moneydata[mnum].like); 
		fscanf(fp,"%f",&moneydata[mnum].money);
		mnum++;//个数加1
	}

	//关闭文件
	fclose(fp);

}


void SaveScore()//保存数据
{
			//文件
	FILE *fp;
	int i;
	
	//以读的方式打开文件
	fp=fopen("score.txt","w"); 
	if(fp==NULL)
	{
	    printf("打开文件失败!\n");
	    exit(0);   
	}

	for(i=0;i<snum-1;i++)
	{
		fprintf(fp,"%s  %s  %s  ",soredata[i].id,soredata[i].name,soredata[i].sex); 
		fprintf(fp,"%s  %s  %s  ",soredata[i].bothdate,soredata[i].jor,soredata[i].like); 
		fprintf(fp,"%d  %d  %d  ",soredata[i].yuwen,soredata[i].shuxue,soredata[i].waiyu);
		soredata[i].sore=soredata[i].yuwen+soredata[i].shuxue+soredata[i].waiyu;
		fprintf(fp,"%d\n",soredata[i].sore);
	 
	}
	fprintf(fp,"%s  %s  %s  ",soredata[i].id,soredata[i].name,soredata[i].sex); 
	fprintf(fp,"%s  %s  %s  ",soredata[i].bothdate,soredata[i].jor,soredata[i].like); 
	soredata[i].sore=soredata[i].yuwen+soredata[i].shuxue+soredata[i].waiyu;
	fprintf(fp,"%d",soredata[i].sore);


	//关闭文件
	fclose(fp);
	
}


void SaveMoney()//保存数据
{
			//文件
	FILE *fp;
	int i;
	
	//以读的方式打开文件
	fp=fopen("money.txt","w"); 
	if(fp==NULL)
	{
	    printf("打开文件失败!\n");
	    exit(0);   
	}

	for(i=0;i<mnum-1;i++)
	{
		fprintf(fp,"%s  %s  %s  ",moneydata[i].id,moneydata[i].name,moneydata[i].sex); 
		fprintf(fp,"%s  %s  %s  ",moneydata[i].bothdate,moneydata[i].jor,moneydata[i].like); 
		fprintf(fp,"%.1f\n",moneydata[i].money);
	 
	}
	fprintf(fp,"%s  %s  %s  ",moneydata[i].id,moneydata[i].name,moneydata[i].sex); 
	fprintf(fp,"%s  %s  %s  ",moneydata[i].bothdate,moneydata[i].jor,moneydata[i].like); 
	fprintf(fp,"%.1f",moneydata[i].money);


	//关闭文件
	fclose(fp);
	
}




void AddScore()  //录入学生信息函数 
{
	

	printf("请输入学号:");
	scanf("%s",soredata[snum].id);
	printf("请输入姓名:");
	scanf("%s",soredata[snum].name);
	printf("请输入性别:");
	scanf("%s",soredata[snum].sex);

	printf("请输入出生年月(2000-02):");
	scanf("%s",soredata[snum].bothdate);
	printf("请输入专业:");
	scanf("%s",soredata[snum].jor);
	printf("请输入爱好:");
	scanf("%s",soredata[snum].like);

	printf("请输入语文成绩:");
	scanf("%d",&soredata[snum].yuwen);
	
	printf("请输入数学成绩:");
	scanf("%d",&soredata[snum].shuxue);
	
	printf("请输入外语成绩:");
	scanf("%d",&soredata[snum].waiyu);
	snum++;//加1
	SaveScore();
	printf("添加成功\n");
	printf("任意键回到菜单....\n");
	getch();
}


void AddMoney()  //录入学生消费信息 
{
	

	printf("请输入学号:");
	scanf("%s",moneydata[mnum].id);
	printf("请输入姓名:");
	scanf("%s",moneydata[mnum].name);
	printf("请输入性别:");
	scanf("%s",moneydata[mnum].sex);

	printf("请输入出生年月(2000-02):");
	scanf("%s",moneydata[mnum].bothdate);
	printf("请输入专业:");
	scanf("%s",moneydata[mnum].jor);
	printf("请输入爱好:");
	scanf("%s",moneydata[mnum].like);

	printf("请输入消费金额:");
	scanf("%f",&moneydata[mnum].money);

	mnum++;
	SaveMoney();
	
	printf("添加成功\n");
	printf("任意键回到菜单....\n");
	getch();
}



void FindScore()//(1)查询学生成绩信息 
{

	int i;
	char id[20];
	printf("请输入需要查询的学号:\n");
	scanf("%s",id);


	for(i =0;i<snum;i++)
	{
		if(strcmp(soredata[i].id,id) == 0)
		{
			printf("查找到的信息如下:\n");
			SorePrintf(soredata[i]);
			printf("任意键回到菜单....\n");
			getch();
			return;


		}

	}

	printf("信息不存在\n");
	printf("任意键回到菜单....\n");
	getch();


}


void FindMoney()//查询学生消费信息 
{

	int i;
	char id[20];
	printf("请输入需要查询的学号:\n");
	scanf("%s",id);


	for(i =0;i<mnum;i++)
	{
		if(strcmp(moneydata[i].id,id) == 0)
		{
			printf("查找到的信息如下:\n");
			MoneyPrintf(moneydata[i]);
			printf("任意键回到菜单....\n");
			getch();
			return;


		}

	}

	printf("信息不存在\n");
	printf("任意键回到菜单....\n");
	getch();


}


void FixScore()//(1)修改学生成绩信息 
{
	int i;
	char id[20];
	printf("请输入需要修改的学号:\n");
	scanf("%s",id);


	for(i =0;i<snum;i++)
	{
		if(strcmp(soredata[i].id,id) == 0)
		{
			printf("修改前信息如下:\n");
			SorePrintf(soredata[i]);

			printf("请输入修改后的成绩:\n");
			scanf("%d",&soredata[i].sore);
			
			SaveScore();//保存
			printf("修改成功");
			printf("任意键回到菜单....\n");
			getch();
			return;


		}

	}

	printf("信息不存在\n");
	printf("任意键回到菜单....\n");
	getch();


}



void FixMoney()//(2)修改学生消费信息 
{

	int i;
	char id[20];
	printf("请输入需要修改的学号:\n");
	scanf("%s",id);


	for(i =0;i<mnum;i++)
	{
		if(strcmp(moneydata[i].id,id) == 0)
		{
			printf("查找到的信息如下:\n");
			MoneyPrintf(moneydata[i]);
			printf("请输入修改后的消费金额:\n");
			scanf("%f",&moneydata[i].money);
			
			SaveMoney();//保存
			printf("修改成功\n");
			printf("任意键回到菜单....\n");
			getch();
			return;


		}

	}

	printf("信息不存在\n");
	printf("任意键回到菜单....\n");
	getch();


}


void DeleScore()//(1)删除成绩信息模块中学生信息 
{
	int i;
	char id[20];
	printf("请输入需要删除的学号:\n");
	scanf("%s",id);


	for(i =0;i<snum;i++)
	{
		if(strcmp(soredata[i].id,id) == 0)
		{
			printf("删除信息如下:\n");
			SorePrintf(soredata[i]);

			for(;i<snum;i++)
			{
				soredata[i] = soredata[i+1];
			}
			snum--;
			SaveScore();

			printf("删除成功\n");
			printf("任意键回到菜单....\n");
			getch();
			return;


		}

	}

	printf("信息不存在\n");
	printf("任意键回到菜单....\n");
	getch();
}




void DeleMoney()//(2)删除消费信息模块中学生信息 
{

	int i;
	char id[20];
	printf("请输入需要删除的学号:\n");
	scanf("%s",id);


	for(i =0;i<mnum;i++)
	{
		if(strcmp(moneydata[i].id,id) == 0)
		{
			printf("删除信息如下:\n");
			MoneyPrintf(moneydata[i]);

			for(;i<mnum;i++)
			{
				moneydata[i] = moneydata[i+1];
			}


			mnum--;
			SaveMoney();//保存
			printf("删除成功\n");
			printf("任意键回到菜单....\n");
			getch();
			return;


		}

	}

	printf("信息不存在\n");
	printf("任意键回到菜单....\n");
	getch();
}

void SortScore()  //学生成绩排名模块 
{
	FILE *fp;
	 student t;
	int i=0,j=0;
	fp=fopen("score.txt","r+");
		if(snum==0){
			printf("文件中没有记录!\n");
			return ;
		}
		for(i=0;i<snum-1;i++){
			for(int j=i+1;j<snum;j++){
				if(soredata[i].sore<soredata[j].sore){
					t=soredata[i];
					soredata[i]=soredata[j];
					soredata[j]=t;
				}
			}
		
	    }
		for(i=0;i<snum;i++){
//			if(fwrite(&soredata[i],LEN,1,fp)!=1)
//				{
					printf("第%d名:\n",i+1);
					SorePrintf(soredata[i]);
					getch();
//				}
			}
	

	fclose(fp);
	printf("保存成功!\n");
}



void ShowScore()  //展示学生成绩 
{
	int i;
	int total=0;

	for(i =0;i<snum;i++)
	{
		
		SorePrintf(soredata[i]);
//		total = total + soredata[i].sore;//计算总成绩
		
	}
//	printf("【总成绩】——【%d】\n",total);

	
	printf("任意键回到菜单....\n");
	getch();


}


void ShowMoney()    //计算总消费 
{
	int i;
	float total=0;

	for(i =0;i<mnum;i++)
	{
		
		MoneyPrintf(moneydata[i]);
		total = total + moneydata[i].money;
		
	}
	printf("【总消费金额】——【%.1f】\n",total);

	
	printf("任意键回到菜单....\n");
	getch();


}


void ScoreMenu()   //学生成绩模块菜单 
{

	char ch;
	system("cls");
	printf("**************************************\n");
	printf("**                                  **\n");
	printf("**      欢迎来到学生成绩模块        **\n");
	printf("**                                  **\n");
	printf("**         1.添加信息               **\n");
	printf("**                                  **\n");
	printf("**         2.查询信息               **\n");
	printf("**                                  **\n");
	printf("**         3.修改信息               **\n");
	printf("**                                  **\n");
	printf("**         4.删除信息               **\n");
	printf("**                                  **\n");
	printf("**         5.成绩排名               **\n");
	printf("**                                  **\n");
	printf("**         6.显示所有               **\n");
	printf("**                                  **\n");
	printf("**         7.返回上一层             **\n");
	printf("**                                  **\n");
	printf("**         8.退出系统               **\n");
	printf("**                                  **\n");
	printf("**************************************\n");
	printf("请输入序号: ");
	//输入选择
	scanf("%c",&ch);
	switch(ch){
	case '1':
		AddScore();
		break;
	case '2':
		FindScore();
		break;
	case '3':
		FixScore(); 
		break;
	case '4':
		DeleScore();
		break;
	case '5':
		SortScore(); //成绩排名 
		break;
	case '6':
		ShowScore();
		break;

	case '7':
		return;
		break;
	case '8':
		exit(0);
		break;


	default:
		break;
	}

	ScoreMenu();
}




void MoneyMenu()  //学生消费管理模块菜单 
{

	char ch;
	system("cls");
	printf("**************************************\n");
	printf("**                                  **\n");
	printf("**      欢迎来到学生消费管理模块    **\n");
	printf("**                                  **\n");
	printf("**         1.添加信息               **\n");
	printf("**                                  **\n");
	printf("**         2.查询信息               **\n");
	printf("**                                  **\n");
	printf("**         3.修改信息               **\n");
	printf("**                                  **\n");
	printf("**         4.删除信息               **\n");
	printf("**                                  **\n");
	printf("**         5.显示所有               **\n");
	printf("**                                  **\n");
	printf("**         6.返回上一层             **\n");
	printf("**                                  **\n");
	printf("**         7.退出系统               **\n");
	printf("**                                  **\n");
	printf("**************************************\n");
	printf("请输入序号: ");
	//输入选择
	scanf("%c",&ch);
	switch(ch){
	case '1':
		AddMoney();
		break;
	case '2':
		FindMoney();
		break;
	case '3':
		FixMoney(); 
		break;
	case '4':
		DeleMoney();
		break;
	case '5':
		ShowMoney();
		break;

	case '6':
		return;
		break;
	case '7':
		exit(0);
		break;


	default:
		break;
	}

	MoneyMenu();
}


void Menu()  //主菜单 
{

	char ch;

	system("cls");
	printf("**************************************\n");
	printf("**                                  **\n");
	printf("**      《学生综合信息系统》        **\n");
	printf("**                                  **\n");
	printf("**         1.成绩管理模块           **\n");
	printf("**                                  **\n");
	printf("**         2.消费管理模块           **\n");
	printf("**                                  **\n");
	printf("**         3.退出系统               **\n");
	printf("**                                  **\n");
	printf("**************************************\n");

    system("color C");
 
	printf("请输入序号: ");
	//输入选择
	scanf("%c",&ch);
	switch(ch){
	case '1':
		ScoreMenu();
		break;
	case '2':
		MoneyMenu();
		break;
	case '3':
		 exit(0);
		break;

	default:
		break;
	}
	Menu();
}

int main()
{		
	read(); //读取部分 
	Menu(); //菜单部分 
	while(1);
}


七. 效果实现 

 

 

  

 

 

 

 

 

 

  • 19
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李 吉 脖.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值