资源简介

再给同学们呈上我大二时的数据结构课程设计,完全又本人完成,无雷同版。题目为宿舍管理系统,里面有详细代码和分工,包括文件操作,代码风格清晰,有注释,仅供参考。

资源截图

代码片段和文件信息

#include 
#include 
#include 

typedef struct Stu {
    char stuNo[20];
    char stuName[20];
    char dormNo[10];  //宿舍号
    char stuAge[3];
    char stuSex[3];
    char stuNative[20];
    char stuMajor[20];//专业
}Stu;
/*********************************************
 *    用来存放数据文件的目录
 *
 */

char routeStu[] = “E:\\课程设计\\Data\\stuData“;
char routeStuNum[] = “E:\\课程设计\\Data\\stuNum“;
char routeSq[] = “E:\\课程设计\\Data\\sq“;     //标记信息
/********************************************/
void Swap(Stu &a Stu &b int flag)
{
    /**
     *  此函数实现两个结构体进行交换  用于排序和插入操作中
     *  flag 有三个值 1  2  3
     *  flag == 1 时进行学号比较并交换
     *  flag == 2 时进行姓名比较并交换
     *  flag == 3 时进行宿舍号比较并交换
     */
    Stu temp;       //结构体交换临时变量
    if (flag == 1)
    {
        if (strcmp(a.stuNo b.stuNo) > 0) {
            temp = a;
            a = b;
            b = temp;
        }
    }
    else if (flag == 2)
    {
        if (strcmp(a.stuName b.stuName) > 0) {
            temp = a;
            a = b;
            b = temp;
        }
    }
    else
    {
        if (strcmp(a.dormNo b.dormNo) > 0)
        {
            temp = a;
            a = b;
            b = temp;
        }
        else if(strcmp(a.dormNo b.dormNo)==0 && strcmp(a.stuNo b.stuNo)>0)
        {
            temp = a;
            a = b;
            b = temp;
        }
    }
}

void InsertStu(Stu stu[] int stuNum Stu &stuTemp int flag)
{
    /**
     *  功能:接受要插入学生信息 并按指定顺序插入
     *  st[] 成员结构体数组
     *  stuNum  学生人数
     *  stuTemp 要插入学生结构体
     *  flag 按何种顺序插入
     *  flag == 1 学号
     *  flag == 2 姓名
     *  flag == 3 宿舍号
     *  说明:此函数可需调用 Swap(Stu &a Stu &b int flag)   函数
     */
    stu[stuNum] = stuTemp;

    for (int i=stuNum; i>0; i--)
    {
        Swap(stu[i-1] stu[i] flag);
    }
}

/****************************************************/
void OutStuInfo(Stu stu[] int m)
{
    /**
     *  功能:输出学生信息 并进行简单排版
     *  stu[]   结构体数组
     *  m   要输出学生结构体下标
     */
    //printf(“***********************************************************************\n“);
    //printf(“*  学号        姓名      性别 年龄 籍贯        专业           宿舍号  *\n“);
    printf(“*                                                                     *\n“);
    printf(“*  %-12s“ stu[m].stuNo);

    printf(“%-10s“ stu[m].stuName);
    printf(“%-5s“ stu[m].stuSex);
    printf(“%-5s“ stu[m].stuAge);

    printf(“%-12s“ stu[m].stuNative);
    printf(“%-15s“ stu[m].stuMajor);
    printf(“%-8s“ stu[m].dormNo);

    printf(“*\n“);

}


void OutDormInfo(Stu stu[] int m)
{
    /**
     *  输出宿舍成员信息 接收一成员 stu[m]
     *  按学号顺序输出该宿舍所有成员信息
     *  并进行简单排版
     */
    int min = m max = m;
    while (strcmp(stu[min-1].dormNo stu[min].dormNo) == 0)
        min--;
    while (strcmp(stu[max+1].dormNo stu[max].dormNo) == 0)
        max++;
    printf(“\n该宿舍人数为 %d\n“ max-min+1);
    printf(“*************

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件          4  2011-06-13 08:35  课程设计\Data\sq

     文件        576  2011-06-13 08:35  课程设计\Data\stuData

     文件          4  2011-06-13 08:35  课程设计\Data\stuNum

     文件          0  2012-06-11 10:35  课程设计\将此文件夹放于E盘.txt

     文件     511452  2011-06-24 08:16  课程设计\数 据 结 构.doc

     文件      30492  2011-06-13 08:34  课程设计\源文件.cpp

     文件      30402  2011-06-13 08:27  课程设计\源程序.exe

     目录          0  2011-06-13 08:01  课程设计\Data

     目录          0  2012-06-11 10:36  课程设计

----------- ---------  ---------- -----  ----

               572930                    9


评论

共有 条评论