课程设计选题管理系统

#include<fstream>
#include<cstring>
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
using namespace std;

#define OK 1
#define ERROR 0
#define OVERFLOW -1

#define List_INIT_SPACE 100           //存储空间初始分配量
#define List_INC_SPACE 10             //存储空间分配增量
int node = 1;
typedef struct Student
{
    int age;                          //年龄
    int student_id;                   //学号
    int course_id;                    //题目编号
    char student_name[40];            //姓名
    char sex[10];                     //性别
    char Class[40];                   //班级
    char specialty[40];               //专业
    char course_name[40];             //题目名称
    char keyword[40];                 //关键词
    char technology[40];
}Student;

typedef struct STent_list
{
    struct Student *stu;             //存储空间基址
    int length;                       //当前长度
    int listsize;                     //当前分配的存储容量(以sizeof(Student)为单位
}STent_list;

int STent_listInit(STent_list &S)
{
    //在内存中分配空间
    S.stu = (Student*)malloc(List_INC_SPACE*sizeof(Student));
    if(!S.stu) exit(OVERFLOW);      //存储空间分配失败

    //构造一个空的线性表
    S.length = 0;
    S.listsize = List_INC_SPACE;     //初始存储容量
    return OK;
}//函数STent_listInit结束

void write(STent_list &S, int n)
{
	fstream myfile;
	myfile.open("student.txt",ios::out|ios::binary);
	//fstream myfile("student.txt",ios::out|ios::binary);
	if(! myfile)
	{
	    cout<<"该文件不能打开!"<<endl;
		abort();        //异常终止函数
	}
	int count = n;
	myfile<<count<<endl<<endl;
	for(int i = 0; i <= count; i++)
	{
	     myfile<<(S.stu[i]).student_id<<"   "<<(S.stu[i]).student_name<<"    "<<(S.stu[i]).sex<<"  "<<(S.stu[i]).age<<"    "<<(S.stu[i]).Class<<"    "<<(S.stu[i]).specialty<<"  "<<S.stu[i].course_id<<"   "<<S.stu[i].course_name<<"   "<<S.stu[i].keyword<<"   "<<S.stu[i].technology<<"    "<<endl;
	}
	myfile.close();
}
/**************************************/
//函数名: read(STent_list &S)
//参数:   (传入) STent_list S顺序表
//返回值: int型,返回1表示创建成功,0表示失败
//功能:   读取顺序表中的内容
/*************************************/
int read(STent_list &S)
{
	fstream myfile;
	myfile.open("student.txt",ios::in|ios::binary);
	//fstream myfile("student.txt",ios::out|ios::binary);
	if(! myfile)
	{
		cout<<"该文件不能打开"<<endl;
		abort();
	}
	int count;
	myfile.seekg(0);
	myfile>>count;
	for(int i = 0; i <= count; i++)
	{
		myfile>>S.stu[i].student_id>>S.stu[i].student_name>>S.stu[i].sex>>S.stu[i].age>>S.stu[i].Class>>S.stu[i].specialty>>S.stu[i].course_id>>S.stu[i].course_name>>S.stu[i].keyword>>S.stu[i].technology;
	}
	myfile.close();
	return count;
}
/*****************************************/
//函数名:add(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值:  空
//功能:   添加学生信息
/*****************************************/
void add(STent_list &S)
{
	int n = read(S);
	int i = 0;
	char sign = 'F';
	cout<<endl<<"请输入增加的学生的相关信息:"<<endl;
	while(sign != 'N')
	{
		loop:
			cout<<"学号:";
			cin>>S.stu[i].student_id;
			cout<<endl;
			int c = 0;
			while(c < i)
			{
			    c++;
		    	if(S.stu[i].student_id == S.stu[i-c].student_id)
			    {
			        cout<<"你输入的学号已经存在!请重新输入" <<endl;
			        goto loop;
			    }
		    }
		    cout<<"姓名:";
			cin>>S.stu[i].student_name;
			cout<<endl;
			cout<<"性别:";
			cin>>S.stu[i].sex;
			cout<<endl;
			cout<<&#
  • 13
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
1 项目背景 毕业论文选题管理是高校必不可缺的组成部分,一直以来,学院教学管理工作人员使用传统人工的方式进行论文选题的管理,模式多种多样,如:学院指定教师与所带毕业设计的学生的对应关系,由教师和学生联系后确定题目;又如:学院汇总选题后,由各班学生分别进行选题和汇总,学院最终进行毕业选题的分配,这种管理方式存在着许多缺点,如:效率低、容易出错,实时性和互动性不强等,在发挥学生特长、更有效地通过毕业设计强化学生知识体系的目标不吻合,也无法实现学分制下教学管理的要求。 项目开发的《毕业论文网上选题管理系统》能够满足不同特点的学生对课题的不同要求,有利于发挥学生的特点,让学生根据自己的实际爱好,按要求自由选择论文课题,让水平比较高的学生选择难度大一些的课题,水平较高的学生有充分发挥才能的空间,让水平不是特别高的学生选择适合自己的难度适当的题目。通过选择课题,使各类学生的知识水平、实践潜力都得到充分调动,解决问题的潜力得到充分发挥。而且能够充分利用各种教育资源,建立,优化课题组织结构,调动教师与学生教和学的积极性,进一步提高毕业生的质量,提高办学水平,具有十分重要的作用。作为计算机应用的一部分,使用计算机对课题信息进行管理,具有人工管理所无法比拟的优点.例如:操作方便,使用简单,自主性强等。这些优点能够极大地提高学校毕业论文课题管理的质量,进一步提高办学水平和办学效率,有利于贯彻“以人为本”的教育原则,适应当今时代对高等教育的客观要求,培养出更多一专多能的毕业生。 基于网络数据库的学生毕业论文选题系统是在网络环境的支持下,开展学生选题和信息查询的一种先进模式,发挥学生选择课题的自主性,提高学校课题管理效率。网络选题具有其它技术手段无可比拟的优越性,因此世界各国尤其是发达国家无不对此给予高度的重视。发达国家主要从硬件和实践上建立网络选题环境,并建起信息传递式、合作学习模式等几种主要的选题模式。 2 系统特点: 《毕业论文网上选题管理系统》采用B/S结构进行架构,使用ASP作为开发工具,MS SQL为后台数据库,采用了DAO数据库访问技术,这种技术功能强大,使用方便。另外,本系统的主要特色是界面简单友好,操作方便,用户能在很短的时间内掌握其操作。 3 系统功能 根据使用本平台的对象,系统把用户列为四类:系统管理员、院系管理员、教师、学生。根据身份不同,功能也有所相同。下面介绍各类对象在平台上的具体操作。 3.1 系统管理员 3.1.1 基础设置 在基础设置中,系统管理员可以完成系别设置、专业设置、管理员管理、教师信息、学生信息的设置。 系别设置:在此功能模块,系统管理员可以设置本学院下属系,系别设置好以后,可以部署本学院各系的选题管理,把学院的选题管理工作分解至各系,传统的手工选题管理过程一般也是这样分解的; 专业设置:设置本学院的各个专业,导入学生时需要把学生定位于相应的专业; 管理员管理:设置系管理员以后,各系的管理员就可以在系统统一安排下自行安排本系的选题的上报和选题情况的查阅等; 教师信息:系统管理员或者系管理员导入教师信息,教师登录后即可以上报课题信息、查阅选题学生,确定选题学生、上传文件等(任务书等); 学生信息:系统管理员或者系管理员导入学生信息后,学生即可进行课题浏览、选题和文件上传(开题计划、论文初稿等)等; 3.2.2 课题管理 课题浏览:查看各系上报的课题并进行审核; 添加课题:系统管理员帮助计算机操作水平差的教师进行课题上报,一般用不到; 学生选题情况:查看已确定选题的学生及选题及未确定选题的学生; 3.2 系管理员 系管理员的功能与系统管理员相似,所不同的是系管理员的操作数据的权限仅在该系,无法浏览及操作学院其它系的课题信息; 3.3 教师 教师信息:教师登录后可以更改个人信息,这样可以方便学生在选题时了解教师研究内容和方向; 课题浏览:查看教师已上报课题及审核情况,课题必须经系统管理员或系管理员审核通过后,学生方可查阅并进行选题;学生选题后在该功能模块可以查阅已选学生名单及学生信息,并进行该课题学生的确认,实现互动双向选择; 添加课题:课题信息上报给系或者学院管理员,以便教学管理人员进行审核; 课题浏览:查看已确定学生的课题信息,在此功能模块可以进行任务书的上传; 3.4 学生 学生信息:学生登录后可以更改个人信息,这样可以方便教师在确定学生时了解学生的专业兴趣及特长; 课题浏览:查阅学生所在系的课题信息及选择课题; 已选课题:查看学生已选课题信息及教师确定是否同意申请,通过教师审核后,学生可以查看教师上报的任务书等文件,学生可以上传自己的开题计划及论文初稿给教师查阅; 学生选题情况:查看本系已确定选题的学生及对应关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值