寒假第一周周报
寒假打卡第一周,以下是我的学习周报:
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;
}