精华内容
下载资源
问答
  • 针对高校社团管理工作的现状,结合信息管理系统进行高校社团管理的信息化设计。本毕业设计通过对用户需求等方面的系统分析,提出基于浏览器/服务器模式的高校社团管理系统的设计,文章阐述了运用Div+Css网页布局方法...

    针对高校社团管理工作的现状,结合信息管理系统进行高校社团管理的信息化设计。本毕业设计通过对用户需求等方面的系统分析,提出基于浏览器/服务器模式的高校社团管理系统的设计,文章阐述了运用Div+Css网页布局方法、Ajax异步通信技术和Md5加密算法等主要技术,以PHP编程语言、MySQL数据库和Apache Web服务器对系统进行设计开发的整个过程。系统主要实现系统管理、社团管理、会员管理、会费管理和共享信息管理五个模块的功能

    系统主要分为三个用例:会员,社团管理员,超级管理员。系统主要设计目标是各用例能够完成各自对应权限的操作,相关数据能够正常进行存储和调用:各用例的操作主要包括:会员能够进行新用户信息注册、发布和查看共享信息、查看社团信息、查看会费信息、修改账号密码等操作;社团管理员能够进行用户信息注册、发布和查看社团共享信息、查看社团信息、修改密码、添加和删除会员信息、社团信息管理、会费信息管理、搜索会员、添加会员、社团共享信息的管理等操作;超级管理员能够进行院系班级信息的管理、设置社团管理员、查看共享信息、查看社团统计信息、修改密码、添加和删除会员信息、社团信息管理、会员会费信息的管理、搜索会员、社团共享信息的管理等操作。

    3.3.2  功能模块图

    高校社团管理系统主要用于高校社团的日常管理工作,主要包含系统管理、社团管理、会员管理、会费管理及信息共享五个功能模块,各主要功能模块介绍如下:

    1.系统管理模块

    系统管理模块主要是完成系统管理功能,主要包括:用户注册、登录身份选择、系统登录、系统退出等部分。

    2.社团管理模块

    社团管理模块主要是完成社团管理功能,主要包括:浏览社团汇总信息、添加社团信息、修改社团信息、删除社团信息、保存社团信息、社团管理员管理、社团信息统计等部分。

    3.会员管理模块

    会员管理模块主要是完成会员管理功能,主要包括:浏览会员信息、会员信息查询、添加会员信息、修改会员信息、删除会员信息、保存会员信息、会员信息统计等部分。

    4.会费管理模块

    会费管理模块主要是完成会费管理功能,主要包括:浏览会费信息、会费信息查询、修改会费信息、删除会费信息、保存会费信息、会费信息统计等部分。

    5.信息共享模块

    信息共享模块主要是完成信息共享功能,主要包括:浏览信息文档、发布信息文档、删除信息文档、保存信息文档等部分。

    以上是大纲或介绍,如需要完整的资料或者如不符合您的要求,请联系技术人员qq:58850198咨询

    展开全文
  • 针对A高校社团事务管理工作效率的需求,从功能需求、性能需求、数据需求进行分析,设计开发了社团事务管理系统,包含人事管理、财务管理、行政管理、项目管理、消息管理等功能模块,以B/S模式为基础,实现了社团事物...
  • 摘要:首先,本文通过对高等学校大学生社团信息化管理存在的问题进行了阐述,然后简要介绍了Python语言的基本概况,然后对高校社团信息化管理进行了流程分析,最后简述了Python的高校社团信息管理系统的实现效果。...

    基于

    Python

    的高等学校社团信息管理系统

    王金龙

    孙月兴

    【摘

    要】

    摘要

    :

    首先

    ,

    本文通过对高等学校大学生社团信息化管理存在的问题进

    行了阐述

    ,

    然后简要介绍了

    Python

    语言的基本概况

    ,

    然后对高校社团信息化管理

    进行了流程分析

    ,

    最后简述了

    Python

    的高校社团信息管理系统的实现效果。

    【期刊名称】

    数字技术与应用

    【年

    (

    ),

    期】

    2017(000)008

    【总页数】

    2

    【关键词】

    关键词

    :

    高校社团;管理系统;信息化

    1

    高等学校大学生社团概述

    高等学校大学生社团是当代大学生立足于校园内部

    ,

    基于共同兴趣与爱好

    ,

    按照相

    应的章程

    ,

    自愿结成且具有特定活动内容和固定成员的一种组织。现阶段高等学

    校大学生社团信息化管理存在的问题主要集中在以下几方面

    [1]:

    (1)

    社团内部信息化管理的问题。如社团内信息化管理力度不够、学校社团联合

    会对社团内个人信息了解不通畅等。

    (2)

    社团活动实施信息化管理的问题。如社团信息化管理不完善、活动申请审批

    信息化制度不健全

    ,

    信息化运行机制欠缺等。

    (3)

    社团管理效率问题。如社团成绩管理欠缺信息化

    ,

    成绩管理效率较低等。目前

    ,

    高校的大学生把高校社团作为自我教育、自我创新、自我服务和自我管理的实

    践阵地

    ,

    迫切地需要信息化的体制管理体系构建。

    2

    技术背景简介

    Python

    是一种面向对象的解释型计算机程序设计语言

    ,

    Guido

    van

    Rossum

    展开全文
  • (1)社团招收新成员; (2)修改社团相应信息; (3)老成员离开社团; (4)查询社团情况; (5)统计社团成员数;...注:社团信息包括:名称,简介,发布内容等; 成员信息包括:学号,姓名,专业,特长等。
  • 高校社团管理系统C++

    2019-06-23 23:48:36
    (1)社团招收新成员 (2)修改社团相应信息 (3)老成员离开社团 (4)查询社团情况 (5)统计社团成员数
  • 高校社团管理系统的主要实现功能包括:学生:社团概况、校园社团、走进社团、校园资讯、社团活动、在线留言,管理员:网站设置、会员管理、后台用户管理、修改密码、我的账户信息、修改账户信息,社团管理员:社团...

    b83ca9aca629a9318cc131bbb4644979.png
    f64952ce22dd56eb467fca726917302f.png
    高校社团管理系统(ssm+mysql)https://www.zhihu.com/video/1225527405491630080

    f9b0d45e6fc0abfab6dd668ad2d54946.png

    本文以java为开发技术,实现了一个高校社团管理系统。高校社团管理系统的主要实现功能包括:学生:社团概况、校园社团、走进社团、校园资讯、社团活动、在线留言,管理员:网站设置、会员管理、后台用户管理、修改密码、我的账户信息、修改账户信息,社团管理员:社团事务:社团管理、社团人数统计、社团报名审批、社团活动管理、发布活动、活动分类管理,新闻资讯:新闻资讯管理、系统公告管理、新闻栏目管理等功能。通过这些功能模块的设计,基本上实现了整个高校社团信息管理的过程。

    具体在系统设计上,采用了B/S的结构,同时,也使用java技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的高校社团管理系统。

    关键词 :高校社团管理系统;java技术;Mysql数据库;B/S结构

    424e731d52646ca5fe5b24c993172998.png

    ce4dceba0f4777426385ad0c7b61b66e.png

    7f3328176f6b125365d0f90222c00e7d.png

    aeec1749b0c2021791aa99504689ef04.png

    79d41010f7158ae91e60e4a1372e6613.png
    展开全文
  • 课程设计-高校社团管理系统

    千次阅读 2018-12-12 00:27:39
    题目12:高校社团管理系统 编写一个系统完成高校社团的管理,包括录入、查询、删除、修改、排序等操作。社团信息包括:社团名称、创建的时间、主要职责、主要负责人、社团成员等。 功能要求: 录入:采用交互式...

    记录我的课程设计(C语言+数据结构)

    目录

    题目12:高校社团管理系统

    --------  界面预览  --------

    --------  以下贴上我的源代码  --------

    主菜单 main.c

    学生个人信息管理 student.c

    社团信息管理 association.c

    成员信息管理 member.c


     

    题目12:高校社团管理系统

    编写一个系统完成高校社团的管理,包括录入、查询、删除、修改、排序等操作。社团信息包括:社团名称、创建的时间、主要职责、主要负责人、社团成员等。

    功能要求:

    1. 录入:采用交互式方式录入社团信息后存入文件,之后可导入;
    2. 查询:可以特定条件查询社团信息;
    3. 删除
    4. 修改:根据给出的条件查询出社团信息后进行相应的修改;
    5. 排序:根据社团的创建时间进行排序。

    --------  界面预览  --------

     

     

    --------  以下贴上我的源代码  --------

    主菜单 main.c

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    #include <malloc.h>
    #include <conio.h> 
    #include <time.h>
    
    #include "association.c"  //调用社团信息管理模块源文件 
    #include "student.c"   //调用学生信息管理模块源文件 
    #include "member.c"   //调用成员信息管理模块源文件 
    
    //获取用户输入的操作 
    int getChooce(char n[]){  //参数以字符串的形式输入,以防用户不小心输入字符或字符串,导致系统进入死循环
    	int m = -1;  //初始化 
    	if(strcmp(n,"0")==0)
    		m=0;
        else if(strcmp(n,"1")==0)
    		m=1;
        else if(strcmp(n,"2")==0)
    		m=2;
        else if(strcmp(n,"3")==0)
    		m=3;
       	else if(strcmp(n,"4")==0)
    		m=4;
    	else if(strcmp(n,"5")==0)
    		m=5;
        else if(strcmp(n,"6")==0)
    		m=6;
        else if(strcmp(n,"7")==0)
    		m=7;
       	else if(strcmp(n,"8")==0)
    		m=8;
    	else if(strcmp(n,"9")==0)
    		m=9;
    	else if(strcmp(n,"10")==0)
    		m=10;
       	else
    		m=-1;
    	return(m);
    }
    
    int main(){
    	Student stu;  //学生 
    	Association aso;  //社团 
    	Member mbe;   //成员信息 
    	char n[8];  //用于记录用户的操作 
    	initStu(&stu);   //初始化
    	initAso(&aso);
    	initMbe(&mbe);	
    	loadStuDataFile(&stu); //加载文件 
    	loadAsoDataFile(&aso);
    	loadMbeDataFile(&mbe);
    	long i=0;
    	printf("加载中"); 
    	for(i=0; i<100000000;i++){ //模拟加载效果 
    		if(i%10000000 == 0)
    		printf(">> "); 
    	} 
    	printf("加载完毕");
    	while(i != 300000000){  //模拟计时效果 
    		i++; 
    	}
    	system("cls"); 
    	printf("\n\n\n     欢     ");  //欢迎动画 
    	i = 0;
    	while(i != 300000000){
    		i++;
    	}
    	printf("迎     ");
    	i = 0;
    	while(i != 300000000){
    		i++;
    	}
    	printf("使     ");
    	i = 0;
    	while(i != 300000000){
    		i++;
    	}
    	printf("用    \n\n\n");
    	getch();
    	do {
    		system("cls");  //清屏 
    		printf("########### 欢迎使用高校社团管理系统v1.0 #######\n");
    		printf("# 1. 学生个人信息管理                          #\n");
    		printf("# 2. 社团信息管理                              #\n");
    		printf("# 3. 社团会员管理                              #\n");
    		printf("#                                              #\n");
    		printf("#                                              #\n");
    		printf("#                                              #\n");
    		printf("#                                 0 退出系统   #\n"); 
    		printf("##############################  by MR.DING #####\n");
    		printf("请选择您需要的操作:");
    		scanf("%s",n);  //参数以字符串的形式输入,以防用户不小心输入字符或字符串,导致系统进入死循环
    		switch(getChooce(n)){
    			case 0:  
    				system("cls"); 
    				printf("\n\n感谢您使用高校社团管理系统,再见!\n\n\n");
    				system("pause"); 
    				return 0;
    				exit(0); 
    			case 1:
    				studentInfoManage(&stu); //模块选择 
    				break;
    			case 2:
    				associationInfoManage(&aso); 
    				break;
    			case 3:
    				memberInfoManage(&stu, &aso, &mbe); 
    				break;
    			default:
    				printf("输入错误!\n");
    				system("pause");
    		}
    	} while (1); 
    }
    

    学生个人信息管理 student.c

    //定义学生对象类型
    typedef struct node1{
    	char sno[10];    //学号
    	char name[30];  //姓名
    	char gemder[3];    //性别
    	char dept[30];   //年级专业
    	char phone[15]; //手机号码
    	struct node1 *next;
    }Student;
    
    int getChooce(char n[]);
    
    //初始化学生信息
    void initStu(Student *stu){
    	stu->next = NULL;
    }
    
    //读取储存在studata.dat里的数据
    int loadStuDataFile(Student* stu){
    	FILE* fp = fopen(".\\data\\studata.dat", "rb");
    	if(!fp){
    		printf("不能读取文件!");
    		return 0;
    	}
    	int num = 0,i;
    	Student* r = stu;
    	fread(&num, sizeof(int), 1, fp);
    	for(i=0; i<num; i++){
    		Student* newNode = (Student*)malloc(sizeof(Student));
    		fread(newNode, sizeof(Student), 1, fp);
    		newNode->next = 0;
    		r->next = newNode;
    		r = r->next;
    	}
    	fclose(fp);
    	return 1;
    }
    
    //将数据存到studata.dat里
    int saveStuDataFile(Student* stu){
    	FILE *fp;
    	if((fp = fopen(".\\data\\studata.dat", "wb")) == NULL){
            printf("不能打开文件! \n");
            return 0;
        }
    	int sNum = 0;
    	Student* p;
    	for(p=stu->next; p; p=p->next)sNum++;
    	printf("正在保存文件......");
    	Student* p1;
    	fwrite(&sNum, sizeof(int), 1, fp);
    	for(p1=stu->next; p1; p1 = p1->next){
    		fwrite(p1, sizeof(Student), 1, fp);
    	}
    	if (fclose(fp) == 0){//关闭成功返回0,否则返回-1 
    		return 1;//关闭成功
    	}else{
    		return 0;//关闭失败 
    	}
    }
    
    //查看学生个人信息 
    void StuInfoList(Student *stu){ 
    	Student *p = stu->next;
    	printf("                     学生个人信息表                      \n");
    	printf("_________________________________________________________\n");
    	printf("|   学号   |   姓名   |  性别  |  年级专业  |   手机号   |\n");
    	printf("|   sno    |   name   | gender |    dept    |    phone   |\n");
    	printf(" ————— ————— ———— —————— ——————\n");
    	if(p == NULL){
    		printf("                      没有记录                         \n\n");
    	}else{
    		while(p != NULL){
    			printf("|%10s|%10s|%8s|%12s|%12s|\n",p->sno,p->name,p->gemder,p->dept,p->phone);
    			printf(" ————— ————— ———— —————— ——————\n");
    			p = p->next;
    		}
    	}
    }
    
    //查找并显示显示一个学生信息 
    void selectAStuRecold(Student *stu){ 
    	char sn[20];
    	Student *p = stu->next;
    	printf("请输入所要查询的学生的学号或姓名\n");
    	printf("请输入:");
    	scanf("%s",sn);
    	do{
    		if (strcmp(p->name,sn) == 0 || strcmp(p->sno,sn) == 0) {
    		printf("                     学生个人信息表                      \n");
    		printf("_________________________________________________________\n");
    		printf("|   学号   |   姓名   |  性别  |  年级专业  |   手机号   |\n");
    		printf("|   sno    |   name   | gender |    dept    |    phone   |\n");
    		printf(" ————— ————— ———— —————— ——————\n");
    			printf("|%10s|%10s|%8s|%12s|%12s|\n",p->sno,p->name,p->gemder,p->dept,p->phone);
    			printf(" ————— ————— ———— —————— ——————\n");
    			break;
    		}
    		p=p->next;//注意指针要往后走
    		if(p == NULL){
    			break;
    		}
    	}while(p != NULL);
    	if(p == NULL)
    		printf("对不起!无此学生的信息!\n");
    }
    
    //更新学生个人信息 
    void updateStuInfo(Student *stu){ 
    	char sn[30];
    	Student *p;
    	printf("请输入要修改的学生的学号或者姓名:");
    	scanf("%s",sn);
    	p = stu->next;//检查是否存在这名学生,若存在则将姓名转换为对应的学号
    	do {
    		if (strcmp(p->sno,sn) == 0 || strcmp(p->name,sn) == 0){
    		strcpy(sn,p->sno);
    		break;
    		}
    		p = p->next; 
    	} while (p != NULL);
    	if(p==NULL){
    		printf("对不起!无该名学生的信息!\n");
    		return ;
    	}
    	if (strcmp(p->name,sn) == 0 || strcmp(p->sno,sn) == 0) {
    		printf("                     学生个人信息表                      \n");
    		printf("_________________________________________________________\n");
    		printf("|   学号   |   姓名   |  性别  |  年级专业  |   手机号   |\n");
    		printf("|   sno    |   name   | gender |    dept    |    phone   |\n");
    		printf(" ————— ————— ———— —————— ——————\n");
    			printf("|%10s|%10s|%8s|%12s|%12s|\n",p->sno,p->name,p->gemder,p->dept,p->phone);
    			printf(" ————— ————— ———— —————— —————\n");
    	}
     	printf("---请按顺序更新信息---\n");  //(问题:中途取消更新怎么退出? ) 
     	printf("请问学号需要修改吗?(Y/N)");
     	if(getch() == 'y'){
     		printf("请输入学号:"); 
    		scanf("%s",p->sno); 
    	}else{
    		printf("\n"); 
    	}
     	printf("请问姓名需要修改吗?(Y/N)");
     	if(getch() == 'y'){
     		printf("请输入姓名:");
    		scanf("%s",p->name);
    	}else{
    		printf("\n"); 
    	}
    	printf("请问性别需要修改吗?(Y/N)");
     	if(getch() == 'y'){
     		printf("请输入性别:"); //(优化:输入限制) 
    		scanf("%s",p->gemder);
    	}else{
    		printf("\n"); 
    	}
    	printf("请问班级需要修改吗?(Y/N)");
     	if(getch() == 'y'){
     		printf("请输入班级:");
    		scanf("%s",p->dept);
    	}else{
    		printf("\n"); 
    	}
    	printf("请问手机号需要修改吗?(Y/N)");//(优化:格式判断) 
     	if(getch() == 'y'){
     		printf("请输入手机号:");
    		scanf("%s",p->phone);
    	}else{
    		printf("\n"); 
    	}
    	printf("修改完成!\n"); 
    }
    
    //录入学生信息(尾插法)
    void insertStuInfo(Student *stu){ // 录入成员信息 
    	Student *s,*r;
    	int m, i; 
    	r = stu; //r始终指向尾结点,开始时指向头结点
    	while (r->next != NULL){
    		r = r->next;
    	}
    	printf("请输入需要录入的学生个数:  ");
    	scanf("%d",&m);
    	printf("现在输入学生信息\n\n");
    	for(i = 0; i < m; i++){
    		s = (Student *)malloc(sizeof(Student)); //生成新结点 
    		printf("---请按顺序录入信息---\n");
    		if (m>1){
    			printf("--第%d个学生\n",i+1);  
    		}
    		printf("请输入学号:");   //重复输入相同学号问题 未解决 
    		scanf("%s",s->sno); 
    		printf("请输入姓名:");
    		scanf("%s",s->name);
    		printf("请输入性别:");  //(优化:格式判断,输入限制) 
    		scanf("%s",s->gemder);
    		printf("请输入班级:"); 
    		scanf("%s",s->dept);
    		printf("请输入手机号:");  //(优化:格式判断) 
    		scanf("%s",s->phone);
    		r->next = s; //将*s 插入到 *r 之后 
    		r = s; //作用?
    	}
    	r->next = NULL;
    	printf("录入学生信息完成\n"); 
    } 
    
    //删除学生信息
    void deleteStuInfo(Student *stu){  
    	Student *p,*q,*t;
    	char sn[30];
    	printf("请输入要删除的学生学号或姓名:");  //编号名字重复问题 未解决 
    	scanf("%s",sn);
    	p = stu->next;//检查是否存在这名学生
    	do{
    		if (strcmp(p->sno,sn)==0 || strcmp(p->name,sn)==0) {
    			strcpy(sn,p->sno);
    			break;
    		}
    		p = p->next;//注意指针要往后走
    	}while(p != NULL);
    	if(p==NULL){
    		printf("对不起!无该名学生的信息!\n");
    		return ;
    	}
    	t = stu;//t指向q的前一个节点,便于删除和释放
    	q = stu->next;
    	do {
    		if(strcmp(q->sno,sn) == 0){
    			t->next = q->next;
    			free(q);
    			printf("删除成功");
    			break;
    		}
    		t = t->next;
    		q = q->next; 
    	} while (q != NULL);
    	if (q == NULL){
    		printf("对不起!表中没有您要删除的学生信息!\n"); 
    	}
    } 
    
    //学生个人信息管理 
    void studentInfoManage(Student *stu){  
    	int back = 0;  //返回主菜单标记,0不返回,1返回 
    	Student *r = stu;
    	char n[8];
    	do {
    	   	system("cls"); 
    		printf("############### 学生个人信息管理 ###############\n");
    		printf("# 1. 学生信息列表                              #\n");
    		printf("# 2. 录入学生信息                              #\n");
    		printf("# 3. 更新学生信息                              #\n");
    		printf("# 4. 删除学生信息                              #\n");
    		printf("# 5. 查找学生信息                              #\n");
    		printf("#                                              #\n");
    		printf("#                               0. 返回主菜单  #\n"); 
    		printf("##############################  by MR.DING #####\n");
    		printf("请选择您的操作:");
    		scanf("%s",n);  
    		switch(getChooce(n)){
    			case 1:
    				StuInfoList(r);
    				system("pause"); 
    				break;
    			case 2:
    				insertStuInfo(r);
    				if (saveStuDataFile(r)) {
    					printf("文件保存成功!\n");
    				}else{
    					printf("文件保存失败!\n");
    				}
    				system("pause");
    				break;
    			case 3:
    				StuInfoList(r); 
    				updateStuInfo(r);
    				if (saveStuDataFile(r)) {
    					printf("文件保存成功!\n");
    				}else{
    					printf("文件保存失败!\n");
    				}
    				system("pause");
    	  		    break;
    			case 4:
    				StuInfoList(r); 
    				deleteStuInfo(r);
    				if (saveStuDataFile(r)) {
    					printf("文件保存成功!\n");
    				}else{
    					printf("文件保存失败!\n");
    				}
    				system("pause");
    				break;
    			case 5:
    				selectAStuRecold(r);
    				system("pause");
    	 	 		break;
    			case 0:
    				back = 1;
    	 	 		break;
    			default:
    				printf("输入错误!");
    				system("pause");
    			}
    			if (back == 1) {
    				break;
    			}
    	} while (1);
    }

    社团信息管理 association.c

    //定义社团对象类型
    typedef struct node2{
    	char ano[10];    //社团编号
    	char name[50];  //社团名称
    	int creatTime;  //成立时间
    	char personInCharge[30]; //主要负责人
    	char  totlePerson[6]; //人数
    	struct node2 *next;
    }Association;
    
    
    int getChooce(char n[]);
    
    //初始化社团信息
    void initAso(Association *aso){
    	aso->next = NULL;
    }
    
    //读取储存在asodatafile.dat里的数据
    int loadAsoDataFile(Association* aso){
    	FILE* fp = fopen(".\\data\\asodata.dat", "rb");
    	if(!fp){
    		printf("不能读取文件!");
    		return 0;
    	}
    	int num = 0,i;
    	Association* r = aso;
    	fread(&num, sizeof(int), 1, fp);
    	for(i=0; i<num; i++){
    		Association* newNode = (Association *)malloc(sizeof(Association));
    		fread(newNode, sizeof(Association), 1, fp);
    		newNode->next = 0;
    		r->next = newNode;
    		r = r->next;
    	}
    	fclose(fp);
    	return 1;
    }
    
    //将数据存到asodatafile.dat里
    int saveAsoDataFile(Association* aso){
    	FILE *fp;
    	if((fp = fopen(".\\data\\asodata.dat", "wb")) == NULL){
            printf("不能打开文件! \n");
            return 0;
        }
    	int sNum = 0;
    	Association* p;
    	for(p=aso->next; p; p=p->next)sNum++;
    	printf("正在保存文件......");
    	Association* p1;
    	fwrite(&sNum, sizeof(int), 1, fp);
    	for(p1=aso->next; p1; p1 = p1->next){
    		fwrite(p1, sizeof(Association), 1, fp);
    	}
    	if (fclose(fp) == 0){//关闭成功返回0,否则返回-1 
    		return 1;//关闭成功
    	}else{
    		return 0;//关闭失败 
    	}
    }
    
    //更新社团信息 
    void updateAsoInfo(Association *aso){ 
    	char sn[30];
    	Association *p;
    	printf("请输入要修改的社团的编号或者名字:");
    	scanf("%s",sn);
    	p = aso->next;//检查是否存在这个社团,若存在则将名字转换为对应的编号 
    	do {
    		if (strcmp(p->ano,sn) == 0 || strcmp(p->name,sn) == 0){
    		strcpy(sn,p->ano);
    		break;
    		}
    		p = p->next; 
    	} while (p != NULL);
    	if(p==NULL){
    		printf("对不起!无该社团的信息!\n");
    		return ;
    	}
    	if (strcmp(p->name,sn) == 0 || strcmp(p->ano,sn) == 0) {
    		printf("                            社团信息表                            \n");
    	 	printf("__________________________________________________________________\n");
    	 	printf("|  编号  |      名称      |  成立时间  |  主要负责人  |   总人数  |\n");
    	 	printf("|  ano   |      name      |  creatTime |personInCharge|totlePerson|\n");
    	 	printf(" ———— ———————— —————— ——————— ——————\n"); 
    		printf("|%8s|%16s|%12d|%14s|%11s|\n",p->ano,p->name,p->creatTime,p->personInCharge,p->totlePerson);
    	 	printf(" ———— ———————— —————— ——————— ——————\n"); 
    	}
     	printf("---请按顺序更新信息---\n");
     	printf("请问编号需要修改吗?(Y/N)"); //问题:输入两个非‘y’的缓冲字符会把下面的也输入 
     	if(getch() == 'y'){
     		printf("请输入编号:"); 
    		scanf("%s",p->ano); 
    	}else{
    		printf("\n"); 
    	}
     	printf("请问名字需要修改吗?(Y/N)");
     	if(getch() == 'y'){
     		printf("请输入名字:");
    		scanf("%s",p->name);
    	}else{
    		printf("\n"); 
    	}
    	printf("请问需要成立时间修改吗?(Y/N)");
     	if(getch() == 'y'){
     		printf("请输入成立时间(年份):");
    		scanf("%d",&p->creatTime);
    	}else{
    		printf("\n"); 
    	}
    	printf("请问主要负责人需要修改吗?(Y/N)");
     	if(getch() == 'y'){
     		printf("请输入主要负责人:");
    		scanf("%s",p->personInCharge);
    	}else{
    		printf("\n"); 
    	}
    	printf("请问总人数需要修改吗?(Y/N)");
     	if(getch() == 'y'){
     		printf("请输入总人数:");
    		scanf("%s",p->totlePerson);
    	}else{
    		printf("\n"); 
    	}
    	printf("修改完成!\n"); 
    }
    
    //查看所有社团,列表显示,按成立时间排序
    int asoInfoList(Association *aso){
    	Association *p = aso->next, *tmp, *subHead; //定义指针类型用以排序
    	//按时间排序算法(没做成功,删去) 
    		printf("                            社团信息表                            \n");
    	 	printf("__________________________________________________________________\n");
    	 	printf("|  编号  |      名称      |  成立时间  |  主要负责人  |   总人数  |\n");
    	 	printf("|  ano   |      name      |  creatTime |personInCharge|totlePerson|\n");
    	 	printf(" ———— ———————— —————— ——————— ——————\n"); 
    	if(p == NULL){
    		printf("                            没有记录                         \n\n");
    	}else{
    		do {
    		printf("|%8s|%16s|%12d|%14s|%11s|\n",p->ano,p->name,p->creatTime,p->personInCharge,p->totlePerson);
    	 	printf(" ———— ———————— —————— ——————— ——————\n"); 
    		p = p->next;
    		}while(p != NULL);
    	}
    }
    
    //显示社团详细信息 
    void dispAsoInfo(Association *aso){
    	Association *p = aso->next;
    	char an[30];
    	printf("请输入你要查看的社团的编号或社团名:");
    	scanf("%s",an);
     	if(strcmp(p->name,an) == 0 || strcmp(p->ano,an) == 0){
    		printf("                            社团信息表                            \n");
    	 	printf("__________________________________________________________________\n");
    	 	printf("|  编号  |      名称      |  成立时间  |  主要负责人  |   总人数  |\n");
    	 	printf("|  ano   |      name      |  creatTime |personInCharge|totlePerson|\n");
    	 	printf(" ———— ———————— —————— ——————— ——————\n"); 	
     		printf("|%8s|%16s|%12d|%14s|%11d",p->ano,p->name,p->creatTime,p->personInCharge,p->totlePerson);
    	 	printf(" ———— ———————— —————— ——————— ——————\n"); 
    	}
    	if (p == NULL){
    		printf("该社团未找到!\n");
    	}
    } 
    
    //添加社团信息(尾插法) 
    void addAsoInfo(Association *aso){
    	Association *s,*r, *r_t;
    	r = aso; //r始终指向尾结点,开始时指向头结点
    	while (r->next != NULL){
    		r = r->next;
    	}
    	printf("现在为新增的社团输入社团信息\n\n");
    	s = (Association *)malloc(sizeof(Association)); //生成新结点 
    	printf("---请按顺序录入信息---\n");
    	printf("请输入 编号:      "); //重复编号检查没做出来 
    	scanf("%s",s->ano);
    	printf("请输入 名字:      ");
    	scanf("%s",s->name);
    	printf("请输入 成立时间(年份):  ");
    	scanf("%d",&s->creatTime);
    	printf("请输入 主要负责人:");
    	scanf("%s",s->personInCharge);
    	printf("请输入 总人数:    ");
    	scanf("%s",s->totlePerson);
    	r->next = s; //将*s 插入到 *r 之后 
    	r = s; //作用?
    	r->next = NULL;
    	printf("录入社团信息完成\n\n"); 
    }
    
    //删除社团信息 
    void deleteAsoInfo(Association *aso){              
    	Association *p,*q,*t;
    	char sn[30];
    	printf("请输入要删除的社团编号或姓名:");
    	scanf("%s",sn);
    	p = aso->next;//检查是否存在这名学生
    	do{
    		if (strcmp(p->ano,sn)==0 || strcmp(p->name,sn)==0) {
    			strcpy(sn,p->ano);
    			break;
    		}
    		p = p->next;//注意指针要往后走
    	}while(p != NULL);
    	if(p==NULL){
    		printf("对不起!无该社团的信息!\n");
    		return ;
    	}
    	t = aso;//t指向q的前一个节点,便于删除和释放
    	q = aso->next;
    	do {
    		if(strcmp(q->ano,sn) == 0){
    			t->next = q->next;
    			free(q);
    			printf("删除成功");
    			break;
    		}
    		t = t->next;
    		q = q->next; 
    	} while (q != NULL);
    	if (q == NULL){
    		printf("对不起!表中没有您要删除的社团信息!\n"); 
    	}
    }
    
    
    
    //社团信息管理 
    void associationInfoManage(Association* aso){
    	Association *r = aso;
    	int back = 0;  //返回主菜单标记,0不返回,1返回 
    	char n[8];
    	do {
    	   	system("cls");
    		printf("################  社团信息管理  ################\n");
    		printf("# 1. 查看社团列表(根据创建时间排序)           #\n");
    		printf("# 2. 新增社团                                   #\n");
    		printf("# 3. 查看社团详细信息                           #\n");
    		printf("# 4. 更新社团信息                               #\n");
    		printf("# 5. 删除社团                                   #\n");
    		printf("#                                               #\n");
    		printf("#                               0. 返回主菜单   #\n"); 
    		printf("##############################  by MR.DING #####\n");
    		printf("请选择您的操作:");
    		scanf("%s",n);//参数以字符串的形式输入,以防用户不小心输入字符或字符串,导致系统进入死循环
    		switch(getChooce(n)){
    			case 1:
    				asoInfoList(r);  
    				system("pause");
    				break;
    			case 2:
    				addAsoInfo(r);
    				if (saveAsoDataFile(r)) {
    					printf("文件保存成功!\n");
    				}else{
    					printf("文件保存失败!\n");
    				}
    				system("pause");
    				break;
    			case 3:
    				system("pause");
    	  		    break;
    			case 4:
    				asoInfoList(r);
    				updateAsoInfo(r);
    				if (saveAsoDataFile(r)) {
    					printf("文件保存成功!\n");
    				}else{
    					printf("文件保存失败!\n");
    				}
    				system("pause");
    				break;
    			case 5:
    				asoInfoList(r);
    				deleteAsoInfo(r);
    				if (saveAsoDataFile(r)) {
    					printf("文件保存成功!\n");
    				}else{
    					printf("文件保存失败!\n");
    				}
    				system("pause");
    	 	 		break;
    			case 0:
    				back = 1;
    	 	 		break;
    			default:
    				printf("输入错误!");
    				system("pause");
    			}
    			if (back == 1) {
    				break;
    			}
    	} while (1);
    } 
    

    成员信息管理 member.c

    //定义学生加入社团的信息对象类型
    typedef struct node3{
    	char sno[10];    //学生学号 
    	char ano[10];    //社团编号
    	char job[10];    //会员职务
    	struct node3 *next;
    }Member; 
    
    int getChooce(char n[]);
    
    //初始化社团成员信息 
    void initMbe(Member *mbe){
    	mbe->next = NULL;
    }
    
    //读取储存在mbedatafile.dat里的数据
    int loadMbeDataFile(Member* mbe){
    	FILE* fp = fopen(".\\data\\mbedata.dat", "rb");
    	if(!fp){
    		printf("不能读取文件!");
    		return 0;
    	}
    	int num = 0,i;
    	Member* r = mbe;
    	fread(&num, sizeof(int), 1, fp);
    	for(i=0; i<num; i++){
    		Member* newNode = (Member *)malloc(sizeof(Member));
    		fread(newNode, sizeof(Member), 1, fp);
    		newNode->next = 0;
    		r->next = newNode;
    		r = r->next;
    	}
    	fclose(fp);
    	return 1;
    }
    
    
    
    //将数据存到mbedata.dat里
    int saveMbeDataFile(Member* mbe){
    	FILE *fp;
    	if((fp = fopen(".\\data\\mbedata.dat", "wb")) == NULL){
            printf("不能打开文件! \n");
            return 0;
        } 
    	int sNum = 0;
    	Member* p;
    	for(p=mbe->next; p; p=p->next)sNum++;
    	printf("正在保存文件......");
    	Member* p1;
    	fwrite(&sNum, sizeof(int), 1, fp);
    	for(p1=mbe->next; p1; p1 = p1->next){
    		fwrite(p1, sizeof(Member), 1, fp);
    	}
    	if (fclose(fp) == 0){//关闭成功返回0,否则返回-1 
    		return 1;//关闭成功
    	}else{
    		return 0;//关闭失败 
    	}
    }
    
    //用户输入社团会员信息数据
    void insertMbeInfo(Student *stu, Association *aso, Member *mbe){ // 录入成员信息 
    	char sn[20],an[20],job[10];
    	Student *p;
    	Association *q;
    	Member *r,*s;
    	r = mbe;
    	printf("请输入社团会员信息:\n");
    	printf("请输入学号或姓名:");
    	scanf("%s",sn);
    	p = stu->next; //检查是否存在这名学生,若存在则将姓名转换为对应的学号
    	do{
    		if(strcmp(p->sno,sn)==0 || strcmp(p->name,sn)==0){
    			strcpy(sn,p->sno);
    			break;
    		}
    		p = p->next;
    	}while (p != NULL);
    	if(p==NULL){
    		printf("对不起!不存在该名学生,您不能添加其入团信息!\n");
    		return ;
    	}
    	printf("请输入社团编号或社团名:");
    	scanf("%s",an);
        q = aso->next; //检查是否存在该社团,若存在则将社团名转换为对应的编号
    	do{
        	if(strcmp(an,q->name)==0 || strcmp(an,q->ano)==0){
    			strcpy(an,q->ano);
    			break;
    		}
    		q=q->next;
    	}while(q != NULL);
       	if(q == NULL){
        	printf("对不起!您输入的社团信息有误!\n");
    		return ;
    	}
    	s = (Member *)malloc(sizeof(Member));
    	printf("请输入该学生在该社团担任的职务:");
    	scanf("%s",job);
    	strcpy(s->sno,sn);
    	strcpy(s->ano,an);
    	strcpy(s->job,job);
    	while(r->next != NULL){
    		r=r->next;
    	}
    	s->next = r->next; //循环链表?
    	r->next = s;
    	printf("成员信息添加成功!\n");
    }
    
    //查看社团成员信息 
    int MbeInfoList(Student *stu, Association *aso, Member *mbe){ 
    	int num = 0,i;
    	Member *p = mbe->next;
    	Student *r_s = stu->next;
    	Association *r_a = aso->next;
    	printf("                     会员信息表                  \n");
    	printf("___________________________________________________\n");
    	printf("|   学号   |   姓名   |     社团名     |   职务   |\n");
    	printf("|   sno    |   name   |      name      |   job    |\n");
    	printf(" ————— ————— ———————— ————— \n");
    	if(p == NULL){
    		printf("                      没有记录                 \n\n");
    	}else{
    		while(p != NULL){
    			
    			while (strcmp(p->sno,r_s->sno) != 0 && r_s != NULL){	//通过主键查找名字 
    				  r_s = r_s->next;
     			} 
     			while (strcmp(p->ano,r_a->ano) != 0 && r_a != NULL){
     				  r_a = r_a->next;
    			}
    			printf("|%10s|%10s|%16s|%10s|\n",p->sno,r_s->name,r_a->name,p->job);
    			printf(" ————— ————— ———————— ————— \n");
    			p = p->next;
    			r_s = stu; 
    			r_a = aso;
    		}
    	}
    	return 1;
    }
    
    //删除成员信息 
    void deleteMbeInfo(Student *stu, Association *aso, Member *mbe){
    	char sn[20];
    	char an[20];
    	Student *p;
    	Association *q;
    	Member *r;
    	Member *t;
    	printf("请输入要删除的学生学号或姓名和社团编号或社团名!\n");  //重复问题  未解决 
    	printf("请输入学 号 或 姓 名:");
    	scanf("%s",sn);
    	p = stu->next; //检查是否存在这名学生
    	do{
    		if(strcmp(p->sno,sn)==0 || strcmp(p->name,sn)==0){
    			strcpy(sn,p->sno);
    			break;
    		}
    		p=p->next; //注意指针要往后走
    	}while(p!=NULL);
    	if(p == NULL){
    		printf("对不起!无该名学生的信息!\n");
    		return ;
    	}
        printf("请输入社团编号或社团名:"); //社团编号或者社团名重复问题 
        scanf("%s",an);
        q = aso->next; //检查社团编号是否合法
        do{
        	if(strcmp(q->name,an)==0 || strcmp(q->ano,an)==0){
    			strcpy(an,q->ano);
        		break;
    		}
        	q = q->next;
    	} while (q!=NULL);
        if(p == NULL){
        	printf("对不起!您输入的社团信息有误!\n");
    		return ;
    	}
        t = mbe; //t指向r的前一个节点,便于删除和释放
        r = mbe->next;
        do{
    		if(strcmp(r->sno,sn)==0 && strcmp(r->ano,an)==0){
    			t->next = r->next;
                free(r);
        	    printf("删除成功!\n");
    			break;
    		}
    		t=t->next;
            r=r->next;
    	}while(r!=NULL);
    	if(r == NULL){
    		printf("对不起!原表中没有您要删除的入团信息!\n");
    	}
    }
    
    //更新成员信息 
    void updateMbeInfo(Student *stu, Association *aso, Member *mbe){
    	char sn[20],an[20],mn[20];
    	Student *p;
    	Association *q;
    	Member *r, *t_m;
    	printf("请按顺序输入您所要修改社团会员信息!\n");
    	printf("社团编号或社团名:");
        scanf("%s",an);
        q = aso->next; //检查是否存在该社团,若存在则将社团名转换为对应的编号
        do{
        	if(strcmp(q->name,an)==0 || strcmp(q->ano,an)==0){
    			strcpy(an,q->ano);
    			break;
    		}
    		q = q->next;
    	}while(q != NULL);
       	if(q == NULL){
        	printf("对不起!您输入的社团信息有误!\n");
    		return ;
    	}
    	printf("学号或姓名:");
    	scanf("%s",sn);
    	p = stu->next; //检查是否存在这名学生,若存在则将姓名转换为对应的学号
    	do{
    		if(strcmp(p->sno,sn)==0 || strcmp(p->name,sn)==0){
    			strcpy(sn,p->sno);
    			break;
    		}
    		p=p->next;
    	}while(p!=NULL);
    	if(p==NULL){
    		printf("对不起!无该名学生的信息!\n");
    		return ;
    	}
       	r = mbe->next;
       	do{
           	if(strcmp(r->sno,sn)==0 && strcmp(r->ano,an)==0){
        		printf("该名学生的当前入团信息为:\n");
    			printf("                     会员信息表                  \n");
    			printf("___________________________________________________\n");
    			printf("|   学号   |   姓名   |     社团名     |   职务   |\n");
    			printf("|   sno    |   name   |      name      |   job    |\n");
    			printf(" ————— ————— ———————— ————— \n");
        		printf("|%10s|%10s|%16s|%10s|\n",r->sno,p->name,q->name,r->job);
    			printf(" ————— ————— ———————— ————— \n");
        		break;
    		}
           	r=r->next;
    	}while(r!=NULL);
    	if(r==NULL){
    		printf("对不起!没有您要修改的入团信息!\n");
    		return ;
    	}
    	printf("现在请您重置该名学生的入团信息!\n");
       	printf("学号 或 姓名:");
       	scanf("%s",sn);
       	p = stu->next; //检查学生信息表中是否存在这名学生
    	do{
    		if(strcmp(p->sno,sn)==0 || strcmp(p->name,sn)==0){
    			strcpy(sn,p->sno);
    			break;
    		}
    		p=p->next;
    	}while(p != NULL);
    	if(p == NULL){
    		printf("对不起!您的输入有误!\n");
    		return ;
    	}
        printf("社团编号或社团名:");
    	scanf("%s",an);
    	q = aso->next;  //检查是否存在该社团,若存在则将社团名转换为对应的编号
        do{
        	if(strcmp(q->name,an)==0 || strcmp(q->ano,an)==0){
    			strcpy(an,q->ano);
    			break;
    		}
    		q = q->next;
    	}while(q!=NULL);
       	if(q == NULL){
        	printf("对不起!您输入的社团信息有误!\n");
    		return ;
    	}
    	strcpy(r->sno, sn);
    	strcpy(r->ano, an);
        printf("所在社团职务:");
        scanf("%s", r->job);
        printf("成员信息修改成功!\n");
    } 
    
    //社团成员信息管理 
    void memberInfoManage(Student *stu, Association *aso, Member *mbe){
    	Student *p = stu;
    	Association *q = aso; 
    	Member *r = mbe;
    	int back = 0;  //返回主菜单标记,0不返回,1返回 
    	char n[8];
    	do {
    	   	system("cls");
    		printf("##############  社团会员信息管理  ##############\n");
    		printf("# 1. 查看全部社团会员                          #\n");
    		printf("# 2. 录入会员                                  #\n");
    		printf("# 3. 查看会员详细信息                          #\n");
    		printf("# 4. 更新会员信息                              #\n");
    		printf("# 5. 删除会员信息                              #\n");
    		printf("# 6. 会员退社                                  #\n");
    		printf("#                               0. 返回主菜单  #\n"); 
    		printf("##############################  by MR.DING #####\n");
    		printf("请选择您的操作:");
    		scanf("%s",n); 
    		switch(getChooce(n)){
    			case 1:
    				MbeInfoList(p, q, r);
    				system("pause");
    				break;
    			case 2:
    				insertMbeInfo(p, q, r);
    				if (saveMbeDataFile(r)) {
    					printf("文件保存成功!\n");
    				}else{
    					printf("文件保存失败!\n");
    				}
    				system("pause");
    				break;
    			case 3:
    				// 查看会员详细信息(进一步还能看个人详细信息) 没做出来 
    				system("pause");
    	  		    break;
    			case 4:
    				MbeInfoList(p, q, r);
    				updateMbeInfo(p, q, r); 
    				if (saveMbeDataFile(r)) {
    					printf("成员信息保存成功!\n");
    				}else{
    					printf("成员信息保存失败!\n");
    				}
    				system("pause");
    				break;
    			case 5:
    				MbeInfoList(p, q, r);
    				deleteMbeInfo(p, q, r); 
    				system("pause");
    	 	 		break;
    	 	 	case 6:
    				 //会员退社 没做出来 
    				system("pause");
    	 	 		break;
    			case 0:
    				back = 1;
    	 	 		break;
    			default:
    				printf("输入错误!");
    				system("pause");
    			}
    			if (back == 1) {
    				break;
    			}
    	} while (1);
    } 
    

     

    展开全文
  • 高校社团管理系统的主要实现功能包括:学生:社团概况、校园社团、走进社团、校园资讯、社团活动、在线留言,管理员:网站设置、会员管理、后台用户管理、修改密码、我的账户信息、修改账户信息,社团管理员:社团...
  • 当前,大多数高校社团信息管理都是采用纸质档案的方式来管理的,这样不仅不能长期的保存信息,而且在数据的查找上带来很大的不方便。在目前的网络技术和计算机技术的普及和信息管理的迅速发展,使用计算机,但总的...
  • 高校学生社团管理系统功能要求学生社团管理系统的主要功能要求如下:1、分级别管理社团管理系统前台、后台2、 用户列表管理,按条件查询用户3、 用户个人注册信息管理及留言、发布信息4、 用户信息发布功能5、用户...
  • 学生社团管理系统 1引言 1.1 项目来源 通过对各大高校实地的调查可知一般高校的学生社团信息管理主要是依据纸质和手工作业处理人工的对大量会员的基本资料进行档案式管理此种处理方式数据量大管理模式和方法滞后 ...
  • 精品文档 学生社团管理系统 1引言 1.1 项目来源 通过对各大高校实地的调查可知一般高校的学生社团信息管理主要是依据纸质和手工作业处理人工的对大量会员的基本资料进行档案式管理此种处理方式数据量大管理模式和...
  • 学生社团管理系统 1引言 1.1 项目来源 通过对各大高校实地的调查可知一般高校的学生社团信息管理主要是依据纸质和手工作业处理人工的对大量会员的基本资料进行档案式管理此种处理方式数据量大管理模式和方法滞后 ...
  • 通过对各大高校实地的调查可知,一般高校的学生社团信息管理主要是依据纸质和手工作业处理,人工的对大量会员的基本资料进行档案式管理,此种处理方式数据量大,管理模式和方法滞后, 存放时间不能长久和数据更新...
  • 需求分析是好多帮科技设计数据库系统的起点,它的分析结果是否准确地反映了高校教育信息化建设的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。它的基本任务是回答“系统必须做什么”...
  • 社团活动由社团负责人申请,先经社联管理员审核,若通过,则再由校团委审批,若不通过,告之原因;校团委审批通过的活动,由校团委发布活动信息
  • PHP大学生社团活动管理系统是有一个为高校社团服务的网站,系统分为前提台和后台两部分,前台部分主要是让查看涉社团相关信息以及参加社团活动服务的后台部分,主要是让管理人员对社团的活动信息进行发布,以及审核...
  • 随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经拥了百兆,甚至千兆的校内网络通...本系统管理,主要包括新闻资讯管理社团简介,活动行程管理,会员管理、留言板等功能 总体功能需求 学生社团
  • 高校学生社团网站在具体实现中设定不同权限,不同权限用户登录到系统后,不能越级操作,管理员可以使使用所有模块;普通用户用户只能在线浏览信息,比如,社团活动信息、浏览社团列表、留言板等功能. 开发技术:jsp,...
  • 本课题会开发一个计算机协会社团信息管理系统,从而实现计算机协会社团信息管理系统内部各种繁琐事务的管理。追求低碳生活,摆脱以前纸质化的办公模式,节约人力物力从而达到提高办事效率的目的。随着计算机技术的...
  • 而动漫又是当下很多年前人热爱的一种新兴事物,所以当下很多的高校也都组织了属于自己的动漫社,为了能够更好的对动漫社内的信息进行管理,我们通过PHP和MySQL开发了动漫社管理系统 动漫社管理系统登录页面 ...
  • 学会由华罗庚教授于1981年发起成立,至今成立了评价方法与应用、项目管理、计算机模拟、统筹、管理决策与信息系统、工业工程、高等教育管理、数学教育、经济数学与管理数学、应急管理、灰色系统研究,复杂系统研究等...
  • 从网络中心机房到实验楼的一楼的中心交换机为千兆传输,从实验楼中心交换机到各楼层交换机传输如下:到2、3、4、5楼层为光纤传输;...整个布线系统能够实现网络的先进性、全性、可管理性、稳定性和可拓展性等要求。
  • | 双鱼林基于SSH2高校毕业生去向信息管理系统毕业课程设计源码.rar 2.35 MB | 双鱼林基于SSH2学生成绩管理系统.rar 7.46 MB | 双鱼林基于安卓Android图书管理系统精品demo系统.rar 11.87 MB | 双鱼林基于苹果手机ios...
  • 移动互联网校园

    2019-05-13 17:49:45
    近年来,随着我国高等教育的快速发展,高校的办学规模不断扩大,学分制稳步推进,助学形式灵活多样,学生事务更加...学工工作信息管理系统完全站在学校整体资源规划的高度来进行系统建设,不再拘泥于某一个业务...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

高校社团信息管理系统