C语言学习-简易学生管理系统
2019-08-04 本文已影响19人
一只洁_
目的
用C语言实现一个简易的学生信息管理系统(实现部分功能)
技术
结构体、指针、文件的使用、swich语句、链表
技术应用
框架
//定义一个指针 记录头结点
Student *pHeader = NULL;
//初始化头结点
initHeader(&pHeader);
int choice = 0;
while(1){
showMenu();
choice = getChoice();
switch (choice) {
case 1:
//查询
querry(pHeader);
break;
case 2:
break;
case 3:
break;
case 4:
//插入
insert(pHeader);
printf("插入成功!!!\n");
break;
default:
MyExit(EXIT_SUCCESS);
break;
}
}
return 0;
1.定义一个学生的结构体节点
typedef struct Node{
char name[10];
int _id;
float score;
struct Node *next;
} Student;
2.初始化一个头结点
void initHeader(Student **pHeader){
//动态分配内存
Student *pTemp = malloc(1 * sizeof(Student));
//初始化
pTemp->next = NULL;
//改变外部的值
*pHeader = pTemp;
}
3.显示菜单
void showMenu(void){
printf("************\n");
printf("1.查询\n");
printf("2.插入\n");
printf("3.退出\n");
printf("************\n");
}
4.用户选择操作
int getChoice(void){
int c;
printf("请选择操作:");
scanf("%d", &c);
return c;
}
5.插入学生数据并且保存
void MyExit(int status){
printf("**************\n");
printf("感谢你的使用再见\n");
printf("**************\n");
//保存数据
}
void save(Student *pTemp){
}
void insert(Student *pTemp){
//准备一个结构体 保存数据
Student *pStu = malloc(1 * sizeof(Student));
pStu->next = NULL;
//提示用户输入
printf("请输入姓名:");
scanf("%s", pStu->name);
printf("请输入成绩:");
scanf("%f", &(pStu->score));
//插入
int count = 0;
while (pTemp -> next != NULL) {
pTemp = pTemp->next;
count++;
}
//自动编号
pStu->_id = count+1;
//将当前这个学生添加到最后一个节点就可以了
pTemp->next = pStu;
}
6.查询
void querry(Student *pTemp){
//指向第一个数据节点
pTemp = pTemp -> next;
while (pTemp != NULL ) {
printf("id:%d\n", pTemp->_id);
printf("name:%s\n", pTemp->name);
printf("score:%.1f\n",pTemp->score);
printf("\n");
pTemp = pTemp->next;
}
}
心得
一开始听老师讲的时候,感觉还能明白,但是听到后面就懵了不想听了,感觉链表好复杂,自己脑子已经不清醒了,自己也没有很明白,我觉得越到这种时候,应该越努力自己去摸索,因为自己害怕的内容,才是自己没有明白没有搞懂的,所以后面还要找时间自己好好清理一下还没有搞懂的东西。