寒假第一周周报

寒假第一周周报

寒假打卡第一周,以下是我的学习周报:

1-18

学习了有关文件的知识,想了我要完成管理系统需要哪方面的知识,构思了其轮廓;

1-19

系统学习了宏定义,条件编译,位运算等,简单敲了管理系统的初始化,创建,插入;

1-20

今天学习了位域,回想起当时的异或,学习了文件,打开文件关闭文件进行读写操作,还有各种函数,fscanf,fprintf,fputs等,管理系统敲了几个部分,待完善;

1-21

继续完善管理系统,进一步学习文件知识;

1-22

基本完成了各个子函数,
但是还是存在一些问题,待继续完善;

以下是学生信息管理系统源代码:

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

typedef struct node{
	char name[20];
	char grade[20];
	char sex[20];
	char age[20];
	int score;
	struct node *next;
}node;

int menu(){
	int n;
	printf("--------------学生信息管理系统--------------\n"); 
	printf("\t\t\t1.创建链表\n");
	printf("\t\t\t2.添加信息\n");
	printf("\t\t\t3.删除信息\n");
	printf("\t\t\t4.浏览信息\n");
	printf("\t\t\t5.保存信息\n");
	printf("\t\t\t6.退出系统\n"); 
	printf("\t\t\t7.排序信息\n");
	printf("\t\t\t8.查找信息\n");
	printf("\t\t\t9.系统帮助\n");
	printf("--------------------------------------------\n");   
	printf("请输入所想要进行操作前的序号:");
	scanf("%d",&n);
	return n;
}

void help()
{
	printf("\n\t\t\t0.欢迎使用系统帮助;\n");
	printf("\n\t\t\t1.初次进入系统,请先选择录入信息;\n");
	printf("\n\t\t\t2.按照菜单提示输入序号;\n");
	printf("\n\t\t\t3.谢谢您的使用.\n"); 
}

void gotoxy(int x,int y)
{
	COORD coord={x,y};
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}

void add(node **head)
{
	printf("当输入姓名为haha时,停止增加!");
	printf("\n名字\t性别\t年龄\t班级\t成绩\n");
	node*s=NULL;
	while(1)
	{
		node *temp=(node*)malloc(sizeof(node));
		gotoxy(0,22);
		scanf("%s",temp->name);
		gotoxy(10,22);
		if(strcmp(temp->name,"haha")==0){
			break;
		}
			fflush(stdin);
		scanf("%s",temp->sex);
        gotoxy(20,22);
		scanf("%s",temp->age);
		gotoxy(30,22);
		scanf("%s",temp->grade);
		gotoxy(40,22);
		scanf("%d",&temp->score);
			fflush(stdin);
		temp->next=NULL;
		if(*head==NULL)
		{
			*head=temp;
		}
		else
		{
			s->next=temp;
		}
		s=temp;
	}
}

void printlist(node **head)
{
	node *temp=*head;
	if(*head==NULL)
	{
		printf("\n无学生录入,请先录入学生!");
	}
	while(temp!=NULL)
	{
		printf("姓名:%s\t性别:%s\t年龄:%s\t:班级%s\t成绩%d\n",temp->name,temp->sex,temp->age,temp->grade,temp->score);
		temp=temp->next;
	}
}

void plus(node **head)
{
	node *temp=*head;
	while(temp->next!=NULL)
	{
		temp=temp->next;
	}
	node *s=(node*)malloc(sizeof(node));
	scanf("%s%s%s%s%d",s->name,s->sex,s->age,s->grade,&s->score);
	temp->next=s;
	s->next=NULL;
}

int Delete(node **head)
{
	printf("请输入需要删除的学生的姓名!");
	node *temp=*head;
	char secret[20];
	scanf("%s",secret);
	if(strcmp(temp->name,secret)==0)
	{
		*head=temp->next;
		return 0;
	}
	while(temp!=NULL)
	{
		if(strcmp(temp->next->name,secret)==0)
		{
			temp->next=temp->next->next;
			break;
		}
		temp=temp->next;
	}
}

void save(node **head){
	FILE *fp=fopen("student.txt","a");
	node *temp=*head;
	while(temp!=NULL)
	{
		
		fprintf(fp,"姓名:%s\t性别:%s\t年龄:%s\t:班级%s\t成绩%d\n",temp->name,temp->sex,temp->age,temp->grade,&temp->score);
		temp=temp->next;
	}
	fclose(fp);
}

void paixu(node **head)
{
	printf("输出成绩最高的学生姓名!");
	node* temp=*head;
	node *t=NULL;
	int m;
	while(temp->next!=NULL)
	{
		t=temp->next;
		while(t!=NULL)
		{
			if(temp->score < t->score)
			{
				m=temp->score;
				temp->score=t->score;
				t->score=m;
			} 
			t=t->next;
		}	
		temp=temp->next;
	}
	printf("%s",temp->name);
}


int find(node **head)
{
    node *temp=*head;
	char secret[20];
	scanf("%s",secret);
	if(strcmp(temp->name,secret)==0)
	{
		printf("\n姓名:%s\t性别:%s\t年龄:%s\t:班级%s\t成绩%d\n",temp->name,temp->sex,temp->age,temp->grade,temp->score);
		return 0;
	}
	while(temp!=NULL)
	{
		if(strcmp(temp->next->name,secret)==0)
		{
		printf("\n姓名:%s\t性别:%s\t年龄:%s\t:班级%s\t成绩%d\n",temp->name,temp->sex,temp->age,temp->grade,temp->score);
		return 0;
		}
		temp=temp->next;
	}
}

int main(void)
{
	printf("------------欢迎来到学生信息管理系统-------------\n");
	printf("初始密码:123456\n"); 
	FILE *fp=fopen("student.txt","a");
	fprintf(fp,"%d\n",123456);
	fclose(fp);
	int n=1;
	int secret;
	node *head=NULL;
	int i;
		char name[20];
	printf("请输入用户名:");
	scanf("%s,&name");
		printf("请输入初始密码:");
		scanf("%d",&secret);
		for(i=0;i<3;i++)
		{
			if(secret==123456)
			{
				printf("\n密码正确,正在进入系统,请稍后...\n");
		    	break;
			}
			else
			{
				printf("密码错误,请重新输入:");
			}
		}
		if(3==i)
		{
			printf("登录失败,请退出再试\n");
		}
	while(n!=0&&secret==123456)
	{	
	n=menu();	
	switch(n)
	{
		case 1:printf("---------------【创建链表】---------------\n");
			add(&head);
			break;
		case 2:printf("---------------【添加信息】---------------\n");
			plus(&head);
			break;
		case 3:printf("---------------【删除信息】---------------\n");
			Delete(&head);
			break;
		case 4:printf("---------------【浏览信息】---------------\n");
			printlist(&head);
			break;
		case 5:printf("---------------【保存信息】---------------\n");
			save(&head);
			break;
		case 6:printf("---------------【退出信息】---------------\n");
			printf("正常退出!\n");
			    system("pause");
			    exit(0);system("cls");
		    break;
		case 7:printf("---------------【排序信息】---------------\n");
			paixu(&head);
			break;
		case 8:printf("---------------【查找信息】---------------\n");
			find(&head);
			break;
		case 9:printf("---------------【系统帮助】---------------\n");
			help();
		    break;		
	   }
   }
	return 0;
}
	
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值