• 大小: 343KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: C/C++
  • 标签: linux  C  

资源简介

早期写的在linux下编写的C程序,作为巩固C语言的实践项目。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define User 10                  //用户名最大宽度
#define Password 10              //密码最大宽度
#define Hight 24                 //控制台高度
#define Width 80                 //控制台宽度
#define DefaultUser “admin“      //默认的用户名
#define DefaultPassword “123456“ //默认的用户密码
#define StudentName 20           //学生姓名最大长度
#define OnePageNum 8             //一页显示信息条数
#define MARKLEN (Width-2-StudentName-8)/8      //除学号和姓名外其他项目所占长度
#define FILEADDR “data.txt“      //默认文件名
#define FILE_NAME_NUM 8          //文件名长度

int WrongTimes = 3;     //允许登录输错密码次数
int IsSaved = 0;        //记录是否保存0为已保存
int student_num = 0;    //学生实际人数
int maxnum = 0;         //最大学号
int sys_year = 0;       //系统时间 年
int sys_mon = 0;        //系统时间 月
int sys_day = 0;        //系统时间 日

typedef struct del_node   //存放缺漏的学号
{
int Sno;
struct del_node *next;
}del_Node *del_list *del_pointer;

typedef struct date_node
{
int Year;         //年
int Month;        //月
int Day;          //日
}m_date;

typedef struct student_node
{
int Sno;              //学号
char Name[20];        //姓名
m_date birthday;      //生日
float score[5];       //五门成绩:语文数学英语物理化学
}student_info;

typedef struct node          //学生信息的数据结构
{
student_info data;
struct node* next;    //指向下一结点
}Node *lklist *pointer;

pointer p = NULLq;    //p为尾巴结点用于添加   q用于其他
lklist head = NULL;    //学生数据头结点

del_list del_head = NULL;  //缺漏学号链表头结点
del_pointer del_last = NULL;//缺漏学号链表尾结点

/************************
功能:添加新的结点到链表中
参数:lklist head链表头结点
     lklist *last链表尾结点指针
     其他学生结点信息
返回:链表头结点
************************/
lklist add(lklist head lklist *last student_info data)
{
if(head == NULL)   //如果链表为空
{
head = (Node *)malloc(sizeof(Node));
*last = head;
head->data.Sno = 0;
head->next = NULL;
}

q = (Node *)malloc(sizeof(Node));
q->data = data;

if (q->data.Sno > maxnum)
maxnum = q->data.Sno;  //记录最大学号

(*last)->next=q;
*last=q;
(*last)->next = NULL;

return head;
}

/************************
功能:添加缺漏的学号
参数:lklist head链表头结点
     lklist *last链表尾结点指针
     int sno 学号
返回:链表头结点
************************/
del_list add_del_sno(del_list head del_list *last int sno)
{
del_pointer x;

if(head == NULL)   //如果链表为空
{
head = (del_Node *)malloc(sizeof(del_Node));
head->Sno = 0;
*last = head;
head->next = NULL;
}

x = (del_Node *)malloc(sizeof(del_Node));
x->Sno = sno;
head->Sno = head->Sno + 1;

(*last)->next = x;
*last = x;
(*last)->next = NULL;

return head;
}

/************************
功能:清空链表结点
参数:lklist head链表头结点
     lklist *last链表尾结点指针
返回:无
************************/
void del(lklist head lklist *last)
{
if (head == NULL || head->next == NULL)
return;
while (head->next)
{
q = head->next;
head->next = q->next;
free(q);
}
*last = head;
}

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

     文件        624  2009-07-14 16:00  student_info\data.txt

     文件      37178  2009-07-16 14:14  student_info\main

     文件      50610  2009-07-16 14:02  student_info\main.c

     文件    1184768  2009-07-16 11:21  student_info\学生信息管理系统项目说明文档.doc

     目录          0  2009-12-26 17:07  student_info

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

              1273180                    5


评论

共有 条评论