C语言-CodeBlocks-学生成绩管理系统.zip


在codeblocks环境下编写、编译,内附实验报告,写的比较完整
资源截图
代码片段和文件信息
#include 
#include 
#include 
#include 
#include 

//考虑到单条宏定义对内存影响不大,因此设置了较丰富的宏定义

#define MAXADDRESS 120//用户输入文件地址的最长长度

//主函数中的宏定义
#define MAIN_INPUT 20//用于用户输入命令
#define LIST_NUM 15//用于用户输入命令对应菜单中选项的长度

//关于结构体类型stu的定义
#define MAXNUMBER 15//由于技术有限,此项不得超过16
#define MAXNAME 15//由于技术有限,此项不得超过16
#define MAXCOURSENAME 15//由于技术有限,此项不得超过16
#define COURSENUM 3//若修改此项,请务必修改下一行的coursename
char coursename[COURSENUM][MAXCOURSENAME] = {“Math“ “English“ “Computer“};//各课程的名字
typedef struct stu
{
    char number[MAXNUMBER];//学号
    char name[MAXNAME];//姓名
    float score[COURSENUM];//各科成绩
    float aver;//平均分
    float total;//总分
}STUDENT;

//链表的定义
typedef struct node
{
    STUDENT student;
    struct node *next;
}Node;

//全局变量定义
float aver_course[COURSENUM+2];//课程的平均分+所有学生总分的平均分+所有学生平均分的平均分

//函数声明。具体功能参见主函数后函数定义部分
Node* Calculate_course(Node *head);
Node* Sort_total_ascend(Node *head);
Node* Reverse_link(Node *head);
Node* Sort_number_ascend(Node *head);
Node* Sort_name_ascend(Node *head);
Node* Seek_name(Node *head char *str);
Node* Seek_number(Node *head char *str);
void Print_analysis(Node *head);
void Print_single_header(void);
void Print_single(Node *p);
void Print_all(Node *head);
int Read_file(char *file_address Node **head);
int Save_file(char *file_address Node *head);
void Print_menu(void);
Node* Delete_name(Node *head char *str);
Node* Delete_number(Node *head char *str);
void Scan(Node *p);
void Str_change(char *p);
Node* Append_node(Node **head);
Node* Delete_node(Node *head Node *p);
Node* Delete_Memory(Node *head);
void File_address_change(char *file_address);
void Gets_safe(char *input int size);

//主程序
int main()
{
    char input[MAIN_INPUT] = {0};
    char tempName[MAXNAME] = {0};
    char tempNumber[MAXNUMBER] = {0};
    char file_address[MAXADDRESS] = {0};
    Node *head = NULL;
    Node *pt;

    Print_menu();

    printf(“Welcome to use this student achievement management system! You can input “menu“ to call the menu
“);
    printf(“I suggest you always use “0“ to exit the program. This will back up the file you are editing in the root directory.

“);

    while(1)
    {
        //system(“pause“);
        //system(“cls“);//为方便查看历史信息,不使用这两行代码

        //用户输入选项
         {
            printf(“Here is main menu. Please input your choice:“);

            Gets_safe(input sizeof(input));//相当于使用fgets,将fgets最后的
转化成,并且输入后自动清空缓冲区

            printf(“
“);
        }

        //查看链表
        if(strcmp(input “see“) == 0)
        {
            Print_all(head);
            printf(“Program has jumped to the main menu.

“);
            continue;//每个功能使用结束后跳转到“用户输入选项”
        }

        //唤出菜单
        else if(strcmp(input “menu“) == 0)
        {
            Print_menu();
            printf(“
“);
            continue;
        }

        //退出
        else if(strcmp(input “0“)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-12-17 12:30  1190201706
     目录           0  2019-12-11 17:41  1190201706ig_homework
     文件        1090  2019-12-08 10:03  1190201706ig_homeworkig_homework.cbp
     文件         158  2019-12-11 16:40  1190201706ig_homeworkig_homework.depend
     文件         356  2019-12-11 17:41  1190201706ig_homeworkig_homework.layout
     目录           0  2019-12-08 10:05  1190201706ig_homeworkin
     目录           0  2019-12-11 17:06  1190201706ig_homeworkinDebug
     文件       50650  2019-12-11 17:06  1190201706ig_homeworkinDebugig_homework.exe
     文件       28726  2019-12-11 17:06  1190201706ig_homeworkmain.c
     目录           0  2019-12-08 10:05  1190201706ig_homeworkobj
     目录           0  2019-12-11 17:06  1190201706ig_homeworkobjDebug
     文件       23529  2019-12-11 17:06  1190201706ig_homeworkobjDebugmain.o
     文件         361  2019-12-11 17:05  1190201706ig_homework emp12138.txt
     文件     3046400  2019-12-17 12:29  1190201706高级语言程序设计实验大作业反思报告.doc

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)