学生成绩管理系统程序设计(linuxC)

学生成绩管理系统程序设计(linux C)

本程序设计思想是利用单链表来实现数据的管理,结合文件来实现信息的存贮和提取,整体采用了模块化编程。
头文件部分:

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <malloc.h>
#include <unistd.h>
#include <signal.h>
#include <time.h>
#include <curses.h>
#define N sizeof(node)
#define L sizeof(user)
typedef struct student{
    
      //构建学生信息结构体,并将结构体重命名成node
    int num;
    char name[20];
    char sex[10];
    float yy;
    float yw;
    float cyy;
    float avg;
    struct student *next;
}node;
typedef struct logining{
    
    
    char account[20];       //账号
    char password[20];      //密码
    char filename[20];      //文件名(同账户名)
    char mibao1[20];        //密保用于账号重新找回密码
    char mibao2[20];
    char mibao3[20];
}user;
node *head;//学生信息单向链表的头指针
char filename[20];

void loading();
int  registe();
int  login();
int findp();
int guide();
void creat();
void menu();
void modify(int);
void delete_student(int);
void displayavg(float);
void displaynum(int);
void fileout();
void filesave();
void filetolink();
void sortavg();
void sortnum();
void studentinsert();
void swi(int);

将所有函数声明和全局变量都放置在一个文件中,便于管理
主函数部分:

#include "studentmanage.h"

int main() {
    
    
    system("clear");
    int n,state=0;//state用来,确定是否登录成功,成功该值为1
    int type;//通过注册函数返回的返回值,进行程序控制
    int con;//通过login函数的返回值确定当前登录状态
    loading();       //程序介绍界面
    scanf("%d",&n);
    if(n==1){
    
    
        type=registe();//账号注册
        if(type==1){
    
    //type表示已经注册成功,进入登录界面
            con=login();
            if(con==1){
    
    
                state=1;
            }
            else if(con==2){
    
    
                system("clear");
                printf("\n\n\n\t\t******************************************************************************\n");
                printf("\t\t*                                                                            *\n");
                printf("\t\t*                                                  lu                          *\n");
                printf("\t\t*                             控制界面                                *\n");
                printf("\t\t*                                                                            *\n");
                printf("\t\t*      尊贵的用户,您好!!!                                               *\n");
                printf("\t\t*  在本界面你可以选择关闭本程序,或者重新启动本程序(其他功能正在开发中)   *\n");
                printf("\t\t*  如有不便之处或者程序改进方案,欢迎发送邮件到作者邮箱                     *\n");
                printf("\t\t*   e-mail:[email protected]                                            *\n");
                printf("\t\t*\t 关闭本程序请按1    重新启动本程序,请按2(其他数字也可以)            *\n");
                printf("\t\t*                                      谢谢您的使用                          *\n");
                printf("\t\t*                                                                            *\n");
                printf("\t\t******************************************************************************\n\n");
                int s;
                scanf("%d",&s);
                if(s==1){
    
    
                    return 0;
                }
                if(s!=1) {
    
    
                    system("clear");
                    printf("程序即将重新启动.......");
                    return main();
                }
            }
            else if(con==4){
    
    
                return 0;
            }
            else
            {
    
    
                printf("程序即将重新启动.......");
                system("clear");
                return main();
            }

        }
        else if(type==2){
    
    
            printf("\n\n\n\t\t******************************************************************************\n");
            printf("\t\t*                                                                            *\n");
            printf("\t\t*                                                                            *\n");
            printf("\t\t*                             控制界面                                *\n");
            printf("\t\t*                                                                            *\n");
            printf("\t\t*      尊贵的用户,您好!!!                                               *\n");
            printf("\t\t*  在本界面你可以选择关闭本程序,或者重新启动本程序(其他功能正在开发中)   *\n");
            printf("\t\t*  如有不便之处或者程序改进方案,欢迎发送邮件到作者邮箱                     *\n");
            printf("\t\t*   e-mail:[email protected]                                            *\n");
            printf("\t\t*\t 关闭本程序请按1    重新启动本程序,请按2(其他数字也可以)            *\n");
            printf("\t\t*                                      谢谢您的使用                          *\n");
            printf("\t\t*                                                                            *\n");
            printf("\t\t******************************************************************************\n\n");
            int s;
            scanf("%d",&s);
            if(s==1){
    
    
                return 0;
            }
            if(s!=1) {
    
    
                system("clear");
                printf("程序即将重新启动.......");
                return main();
            }
        }
        else
            return main();
    }
    else if(n==2){
    
    
        con=login();//登录界面
        if(con==1){
    
    
            state=1;
        }
        else if(con==2){
    
    
            system("clear");
            printf("\n\n\n\t\t******************************************************************************\n");
            printf("\t\t*                                                                            *\n");
            printf("\t\t*                                                  lu                          *\n");
            printf("\t\t*                             控制界面                                *\n");
            printf("\t\t*                                                                            *\n");
            printf("\t\t*      尊贵的用户,您好!!!                                               *\n");
            printf("\t\t*  在本界面你可以选择关闭本程序,或者重新启动本程序(其他功能正在开发中)   *\n");
            printf("\t\t*  如有不便之处或者程序改进方案,欢迎发送邮件到作者邮箱                     *\n");
            printf("\t\t*   e-mail:[email protected]                                            *\n");
            printf("\t\t*\t 关闭本程序请按1    重新启动本程序,请按2(其他数字也可以)            *\n");
            printf("\t\t*                                      谢谢您的使用                          *\n");
            printf("\t\t*                                                                            *\n");
            printf("\t\t******************************************************************************\n\n");
            int s;
            scanf("%d",&s);
            if(s==1){
    
    
                return 0;
            }
            if(s!=1) {
    
    
                system("clear");
                printf("程序即将重新启动.......");
                return main();
            }
        }
        else if(con==4){
    
    
            return 0;
        }
        else
        {
    
    
            printf("程序即将重新启动.......");
            system("clear");
            return main();
        }
    }
    else
    {
    
    
        printf("\t\t**************选择错误,程序重启***************");
        return main();
    }
    if(state==1) {
    
    
        int gud;
        gud=guide();
        if(gud==1){
    
    
        while(1){
    
    
            system("clear");
            menu();
            int choose;
            scanf("%d",&choose);
            if(choose==0)
                return 0;
            swi(choose);
        }
        }
        else{
    
    
            printf("程序即将重新启动.......");
            return main();
        }
    }
    return 0;
}

主函数是整体的流程控制函数,主体部分

通过进行数据的判断,该部分

Guess you like

Origin blog.csdn.net/niko02/article/details/112229177