开发设计

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;
   }
}

心得

一开始听老师讲的时候,感觉还能明白,但是听到后面就懵了不想听了,感觉链表好复杂,自己脑子已经不清醒了,自己也没有很明白,我觉得越到这种时候,应该越努力自己去摸索,因为自己害怕的内容,才是自己没有明白没有搞懂的,所以后面还要找时间自己好好清理一下还没有搞懂的东西。

上一篇 下一篇

猜你喜欢

热点阅读