学生的作业管理系统源码_学生作业管理系统流程图

hacker|
105

文章目录:

Java学生作业管理系统,求思路或者由原代码就好了,谢谢大佬!!!

1,学生能够提交作业,登陆与权限这部分我不细说,主要讲提交作业怎么实现,给你发散下思维。

提交作业首先得有一个发起,我提交什么作业,这个也不细说,提交作业的形式是文件还是文本(富文本),富文本可以使用jq22的插件,我也提交过一个还改造版的。富文本可以直接记录到数据库,其实就是html文本,显示的时候能有格式。

如果是提交文件,有两个方案,简单的,可以存在文件目录下,将文件名修改为一个id值,把这个id与真实名字记录到数据库。

或者,看你用的什么数据库,可以把文件存到数据库的二进制文件的字段中。

这里,如果是office文件,如word,你可以用poi读取出来,这个可能你需要花点时间研究下,但是也挺简单的。

2,老师阅卷打分。

老师也要求可以操作系统,并且权限不一致。文件就涉及到下载问题,富文本好说,直接就可以显示出来。

3,其它,前面说的发起作业,老师的责任,老师"布置作业",学生"提交作业",然后老师"检查作业"这才是一个完整流程。权限只有两个,很好控制,按你设计。应该是封闭系统,不需要注册什么的,但是登陆还是要解决的,修改密码的小功能可以做一下。打分给学生"评语",学生查看评语这些都可以考虑

学生信息管理系统最简单源代码。

方法一:

1、创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。

2、然后编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。

3、然后在源文件中创建main源文件和Stu源文件。再main文件中写入intmian()代码。

4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。

5、在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。

6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。这样一个学生管理系统的基本框架就完成了。

方法二:

1、新建一个学生实体类,用于存放学生的各项信息。

2、新建一个链表节点类,每个节点存放一个学生信息及下一个节点的引用。

3、添加一个主操作类,并添加本系统的菜单方法。

4、定义链表的头节点,当前最后一个节点,以及主控制逻辑信息。

5、使用io流逐行读取存有学生信息的文本文件,对每行字符串,采用\t分割后得到一个字符串数组,数据各项即为一个学生的具体信息。然后新建一个节点加入到链表。

6、运行结果:

c语言学生信息管理系统代码

代码如下:

#includestdio.h

#includemalloc.h

#includestdlib.h

#includestring.h

#includeconio.h

typedef struct examinee //考生信息结构

{   char examno[20]; //准考证号

char name[10]; //姓名

char sex[4]; //性别

short age; //年龄

char examtype[10]; //报考科目

}ElemType;

typedef struct Node //定义链表结点

{

ElemType data; //数据域

struct Node *next; //指针域

}Node,*List,*position;

List make_empty( List L ); //创建一个带头结点的空表

int is_empty( List L ); //测试链表是否是空表

int is_last( position p, List L ); //测试当前位置是否是表尾

position make_node( position p,int n ); //创建结点并输入考生信息

void put_information( position p ); //是否输出该考生信息

void put_name_information( List L ); //输出姓名为xx的考生信息

int put_pos_information( position p ); //输出该地址考生信息

void link_to_tail( List L, position p ); //将结点连接到表尾

int ciculation_make(); //循环创建考生信息

int judge_put_all(); //是否输出所有考生信息

void put_all(List L); //输出所有考生信息。

position find( List L ); //查找第一个姓名为xx的元素并返回位置

position find_previous( List L ); //查找第一个姓名为xx的元素并返回该元素直接前驱的位置

//int judge_delete_val(); //询问是否删除考生数据

int delete_val( List L ); //删除指定考生信息并输出其信息

void menu(List L); //菜单函数

List L;

//position p;

int

main( void ) 

{

List L = NULL; //定义头结点指针

position p = NULL; //定义表工作指针

L = make_empty( L ); //创建空表

printf("\t\t\t★★考生报名管理程序★★\n\t\t----------------------------------------\n");

menu(L);

return 0;

}

//创建一个带头结点的空表

List

make_empty( List L)

{

L = ( List ) malloc (sizeof( Node ));

if(NULL == L)

{

printf("内存分配失败");

exit( 1 );

}

L-next = NULL;

//printf("空表创建成功。\n");

return L;

}

//创建结点并输入考生信息

position

make_node( position p ,int n)

{

if(n) //n为1是创建结点并输入,n为0是修改

{

p = ( position ) malloc ( sizeof ( Node ));

p-next = NULL ;

}

printf("请输入考生准考证号:");

gets(p-data.examno);

printf("请输入考生姓名:");

gets(p-data.name);

do

{

printf("请输入考生性别,只能输入“男”或者“女”:");

gets(p-data.sex);

}

while( 0 != strcmp( p-data.sex, "男" ) 0 != strcmp( p-data.sex, "女" )); //判断性别是否有误

printf("请输入考生年龄:");

scanf("%hd",p-data.age);

getchar();  //如果把这句删掉,就“无法执行”下面的报考类别

/*下面的do while用来判断报考类别是否输入有误*/

do

{

printf("请输入报考类别,只能输入“数学”或“英语”或者“数据结构”:");

gets(p-data.examtype);

}

while( 0 != strcmp( "英语", p-data.examtype ) 0 != strcmp( "数学", p-data.examtype ) 0 != strcmp( "数据结构", p-data.examtype ));

if(n)

{

printf("报名成功\n");

}

else

{

printf("修改成功\n");

}

return p;

}

//前插法;

void

link_to_tail( List L, position p)

{

p-next = L-next;

L-next = p;

}

//查找第一个姓名为xx的元素并返回位置

position

find( List L )

{

position p = L-next;

char name[10];

printf("请输入你要查找的考生姓名:");

gets(name);

while( p != NULL 0 != strcmp( p-data.name , name))

{

p=p-next;

}

return p;

}

//测试链表是否是空表

int

is_empty( List L )

{

return L-next == NULL;

}

//测试当前位置是否是表尾

int

is_last( position p, List L )

{

return p-next == NULL;

}

//输出姓名为xx的考生信息

void

put_name_information( List L )

{

position p = find(L);

if(p!=NULL)

{

printf("您要查找的考生信息:\n");

printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n\n",p-data.examno,p-data.name,p-data.sex,p-data.age,p-data.examtype);

}

else

{

printf("没有您要找的学生。\n");

}

}

//循环创建考生信息

int

ciculation_make()

{

int n = 2;

do

{

printf("是否继续创建考生信息?是请输入“1”,不是请输入“0”:");

scanf("%d",n);

getchar();

}

while( n != 0 n != 1);

return n;

}

//是否输出考生信息

void

put_information( position p )

{

int n=2;

do

{

printf("是否输出该考生信息?是请输入“1”,不是请输入“0”:");

scanf("%d",n);

getchar();

}

while( n != 0 n != 1);

if(n)

{

printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n",p-data.examno,p-data.name,p-data.sex,p-data.age,p-data.examtype);

}

}

//是否输出所有考生信息

int

judge_put_all()

{

int n = 2;

do

{

printf("是否输出所有考生信息?是请输入“1”,不是请输入“0”:");

scanf("%d",n);

getchar();

}

while( n != 0 n != 1);

return n;

}

//输出所有考生信息

void

put_all(List L)

{

if(L-next == NULL)

{

printf("现无考生报名!\n");

}

else

{

position p=L-next;

while( p != NULL )

{

printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n",p-data.examno,p-data.name,p-data.sex,p-data.age,p-data.examtype);

p=p-next;

}

}

//getchar();

}

//询问是否删除考生数据

int

judge_delete_val()

{

int n = 2;

do

{

printf("是否要删除某个考生数据?是请输入“1”,不是输入“0”:");

scanf("%d",n);

getchar();

}

while( n != 0 n != 1);

return n;

}

//查找第一个姓名为xx的元素并返回其直接前驱的位置

position

find_previous( List L )

{

position q = L;

position p = L-next;

char name[10];

printf("请输入你要查找的考生姓名:");

gets(name);

while( p != NULL 0 != strcmp( p-data.name , name))

{

q=p;

p=p-next;

}

if( p != NULL )

{

return q;

}

else

return p;

}

//删除指定考生信息并输出其信息

int

delete_val(List L)

{

int n=2;

position q=NULL;

position p=find_previous( L ); //返回考生信息地址

if( NULL == p )

{

printf("你要删除的考生不存在\n");

return 0;

}

else

{

q = p-next;

p-next = q-next;

printf("删除成功。\n删除的考生信息为:\n");

printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n",q-data.examno,q-data.name,q-data.sex,q-data.age,q-data.examtype);

free(q);

return 1;

}

}

//输出该地址考试信息

int

put_pos_information( position p )

{

if(p != NULL )

{

printf("准考证号:%s\t姓名:%s\t性别:%s\t年龄:%hd\t报考科目:%s\n\n",p-data.examno,p-data.name,p-data.sex,p-data.age,p-data.examtype);

return 1;

}

else

{

printf("没有您要查找的学生。");

return 0;

}

}

//菜单函数

void

menu(List L)

{

printf("\t\t\t   a. 考生报名入口\n");

printf("\t\t\t   b. 查询考生信息\n");

printf("\t\t\t   c. 修改考生信息\n");

printf("\t\t\t   d. 删除考生信息\n");

printf("\t\t\t   e. 全部考生信息\n");

printf("\t\t\t   f. 程序作者信息\n");

printf("\t\t\t   g.   退出程序\n");

char n='h';

while(n != 'g')

{

do  //确定正确输入

{

printf("请通过字母序号选择功能:");

n = getchar();

getchar();

putchar('\n');

if( n 'a' || n 'g')

{

printf("错误的字母序号。\n");

}

}

while( n 'a' || n 'g' );

switch (n)

{

case 'a':

{

printf("请输入报名考生信息:\n");

position p = make_node( p, 1 ); //创建新结点

link_to_tail( L, p ); //将新结点连接到表上

put_information( p );   //是否输出该考生信息

putchar('\n');

}

break;

case 'b':

{

put_name_information( L );

putchar('\n');

}

break;

case 'c':

{

int n=0;

position p = NULL;

printf("您正在进行修改操作。\n");

p = find(L);

n = put_pos_information( p );

if(n)

{

make_node( p , 0 );

put_information( p );   //是否输出该考生信息

}

putchar('\n');

}

break;

case 'd':

{

printf("您正在进行删除操作。\n");

delete_val( L );

putchar('\n');

}

break;

case 'e':

{

put_all( L );

putchar('\n');

}

break;

case 'f':

{

printf("              修改日期    版本号      修改人      修改内容    \n");

printf("        --------------------------------------------------------\n");

printf("              2018.6.19    v2.0       陈百川     增加主菜单\n");

printf("              2018.6.23    v3.0       陈百川   增加生成文件功能\n\n");

printf("            该版本号为v2.0\n");

putchar('\n');

}

break;

default:

break;

}

}

printf("                     感谢本次使用,祝您生活愉快。");

getch();

}

扩展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料:

百度百科——C语言

学生管理系统源代码c++

#include iostream.h

#include string.h

#include "h1.h"

void menu();

void clear()

{

cin.clear();

cin.ignore();

}

void stu::init_name_grade() //输入学生姓名、班级

{

cout"请输入学生姓名:";

cinname;

clear();

cout"请输入学生班级号:";

cingrade;

clear();

}

void stu::init_first() //输入学生第一学期成绩

{

cout"学生"name"第一学期成绩"endl;

cout"请输入英语成绩:";

cinfirst.english;

clear();

cout"请输入数学成绩:";

cinfirst.math;

clear();

first.total=first.english+first.math;

first.aver=first.total/2;

}

void stu::init_second() //输入学生第二学期成绩

{

cout"学生"name"第二学期成绩"endl;

cout"请输入英语成绩:";

cinsecond.english;

clear();

cout"请输入数学成绩:";

cinsecond.math;

clear();

second.total=second.english+second.math;

second.aver=second.total/2;

}

void stu::show_first() //显示学生第一学期成绩

{

cout"学生姓名:"nameendl;

cout"学生班级:"gradeendl;

cout"学生第一学期英语成绩:"first.englishendl;

cout"学生第一学期数学成绩:"first.mathendl;

cout"学生第一学期总成绩:"first.totalendl;

cout"学生第一学期平均成绩:"first.averendl;

}

void stu::show_second() //显示学生第二学期成绩

{

cout"学生姓名:"nameendl;

cout"学生班级:"gradeendl;

cout"学生第二学期英语成绩:"second.englishendl;

cout"学生第二学期数学成绩:"second.mathendl;

cout"学生第二学期总成绩:"second.totalendl;

cout"学生第二学期平均成绩:"second.averendl;

}

void stu::show_grade() //显示学生所有学期成绩

{

cout"学生姓名:"nameendl;

cout"学生班级:"gradeendl;

cout"学生第一学期英语成绩:"first.englishendl;

cout"学生第一学期数学成绩:"first.mathendl;

cout"学生第一学期总成绩:"first.totalendl;

cout"学生第一学期平均成绩:"first.averendl;

cout"学生第二学期英语成绩:"second.englishendl;

cout"学生第二学期数学成绩:"second.mathendl;

cout"学生第二学期总成绩:"second.totalendl;

cout"学生第二学期平均成绩:"second.averendl;

}

stu_info::stu_info() //stu_info的构造函数

{

num=0;

}

void stu_info::add_name_grade() //添加学生信息(班级、姓名)到数组中

{

int choose;

do

{

per[num].init_name_grade();

num++;

cout"继续输入学生信息吗?(0:退出,任意数字键继续...)";

cinchoose;

clear();

}while(choose!=0);

}

void stu_info::add_first(int gra) //添加第一学期成绩

{

for(int i=0;inum;i++)

{

if(per[i].grade==gra)

{

per[i].init_first();

}

}

}

void stu_info::add_second(int gra) //添加第二学期成绩

{

for(int i=0;inum;i++)

{

if(per[i].grade==gra)

{

per[i].init_second();

}

}

}

void stu_info::query_aver(int gra,int term) //按班级、学期及平均分排序显示学生成绩

{

stu temp[100];

stu t;

int sum=0;

for(int i=0;inum;i++)

{

if(per[i].grade==gra)

{

temp[sum]=per[i];

sum++;

}

}

for(int j=0;jsum-1;j++)

{

for(int k=sum-1;kj;k--)

{

if(term==1)

{

if(temp[k].first.avertemp[k-1].first.aver)

{

t=temp[k];

temp[k]=temp[k-1];

temp[k-1]=t;

}

}

else if(term==2)

{

if(temp[k].second.avertemp[k-1].second.aver)

{

t=temp[k];

temp[k]=temp[k-1];

temp[k-1]=t;

}

}

else

{

cout"该学期不存在!"endl;

return;

}

}

}

for( i=0;isum;i++)

{

if(term==1)

{

temp[i].show_first();

}

else

{

temp[i].show_second();

}

}

}

void stu_info::modify(int gra,char name[10]) //按班级、姓名查询学生信息并修改学生信息

{

for(int i=0;inum;i++)

{

if(per[i].grade==grastrcmp(per[i].name,name)==0)

{

per[i].init_name_grade();

per[i].init_first();

per[i].init_second();

return;

}

else

{

cout"该学生不存在!"endl;

}

}

}

void stu_info::query(int gra,char name[10]) //按班级、姓名查询学生信息并输出

{

for(int i=0;inum;i++)

{

if(per[i].grade==grastrcmp(per[i].name,name)==0)

{

per[i].show_grade();

return;

}

else

{

cout"该学生不存在!"endl;

}

}

}

void stu_info::query_grade(int gra) //按班级输出该班全部学生成绩

{

coutgra"班级学生的成绩如下:"endl;

for(int i=0;inum;i++)

{

if(per[i].grade==gra)

{

per[i].show_grade();

}

}

}

void stu_info::show_fail(int grade,int term,int course)

{

cout"不及格名单如下:"endl;

for(int i=0;inum;i++)

{

if(per[i].grade==grade)

{

if(term==1)

{

if(course==1)

{

if(per[i].first.english60)

{

coutper[i].nameendl;

}

}else if(course==2)

{

if(per[i].first.math60)

{

coutper[i].nameendl;

}

}

}

else if(term==2)

{

if(course==1)

{

if(per[i].second.english60)

{

coutper[i].nameendl;

}

}else if(course==2)

{

if(per[i].second.math60)

{

coutper[i].nameendl;

}

}

}

else

{

cout"该学期不存在!"endl;

return;

}

}

}

}

void main()

{

stu_info people;

int grade;

int term;

int choose;

int course;

char name[10];

while(1)

{

menu();

cinchoose;

clear();

switch(choose)

{

case 1:

people.add_name_grade();break;

case 2:

cout"请输入班级号:";

cingrade;

clear();

cout"请输入学期:";

cinterm;

clear();

if(term==1)

people.add_first(grade);

else

people.add_second(grade);

break;

case 3:

cout"请输入班级号:";

cingrade;

clear();

cout"请输入学生姓名:";

cinname;

clear();

people.modify(grade,name);

break;

case 4:

cout"请输入班级号:";

cingrade;

clear();

cout"请输入学期:";

cinterm;

clear();

people.query_aver(grade,term);

break;

case 5:

cout"请输入班级号:";

cingrade;

clear();

people.query_grade(grade);

break;

case 6:

cout"请输入班级号:";

cingrade;

clear();

cout"请输入学期:";

cinterm;

clear();

cout"请输入课程号(1:english,2:math):";

cincourse;

people.show_fail(grade,term,course);

break;

case 7:

cout"请输入班级号:";

cingrade;

clear();

cout"请输入学生姓名:";

cinname;

clear();

people.query(grade,name);

break;

case 8:return;

default:cout"选择错误,请重新选择!"endl;

}

}

}

void menu()

{

cout" 请选择操作"endl;

cout"-------------------------------------------------------------"endl;

cout" 1、输入学生姓名、班级"endl;

cout" 2、按学期、班级录入学生成绩"endl;

cout" 3、修改学生成绩"endl;

cout" 4、按班级平均分对学生成绩排序"endl;

cout" 5、按班级输出学生的成绩单"endl;

cout" 6、按科目输出不及格学生名单"endl;

cout" 7、查询学生成绩单"endl;

cout" 8、退出系统"endl;

}

这上面是实现功能,下面是类的定义和声明 希望对你有用

struct term

{

int english;

int math;

int aver;

int total;

};

class stu

{

char name[10];

int grade;

struct term first;

struct term second;

public:

friend class stu_info;

void init_name_grade();

void init_first();

void init_second();

void show_grade();

void show_first();

void show_second();

};

class stu_info

{

stu per[100];

int num;

public:

stu_info();

void add_name_grade();

void add_first(int gra);

void add_second(int gra);

void query_aver(int gra,int term);

void modify(int gra,char name[10]);

void query(int gra,char name[10]);

void query_grade(int gra);

void show_fail(int grade,int term,int course);

};

求 内容有关于设计 “学生作业管理系统” 的书本名称 或源码

C#+SQL Server中小型信息系统开发实例精选 这本书都是关于管理系统设计的,不过是C/S的,也没有作业管理系统。需要改改应用到B/S。

不过对你的题目来说参考价值比较大

我只有一个吧B/S 车辆调度的、

2条大神的评论

  • avatar
    访客 2022-07-10 上午 01:34:24

    tchar('\n');}break;case 'f':{printf("              修改日期    版本号      修改人      修改内容    \n");print

  • avatar
    访客 2022-07-09 下午 08:36:43

    ) people.add_first(grade); else people.add_second(grade); break; case 3: cout"请输入班级号:"; cingrade; clear(); cou

发表评论