首页 > 文库大全 > 精品范文库 > 12号文库

学生管理系统学生链表

学生管理系统学生链表



第一篇:学生管理系统学生链表

#include #include #include

typedef struct student { int num;char name[10];char passwd[6];int age;int class;int math;int clan;int chinese;int mingci;struct student *next;}STU,*pstu;

pstu stu_numsort(pstu head);pstu stu_sumsort(pstu head);pstu stu_mathsort(pstu head);pstu stu_chisort(pstu head);pstu stu_clansort(pstu head);pstu stu_searchbynum(pstu head,int num);pstu stu_searchbyname(pstu head,char name[]);pstu stu_searchbyclass(pstu head,int class);pstu stu_create(){

pstu head=NULL;pstu s=NULL;int num;char name[10];char passwd[6];int age;int class;int math;int clan;int chinese;int mingci;printf(“请输入任意一个数非0的数继续 :”);scanf(“%d”,&num);while(num!=0){

s=(pstu)malloc(sizeof(STU));

if(s==NULL)

{

printf(“nmalloc errorn”);

return NULL;

}

printf(“输入学生学号:”);

scanf(“%d”,&s->num);

printf(“请输入学生姓名:”);

scanf(“%s”,s->name);

printf(“请输入登陆密码:”);//学生权限(error)

scanf(“%s”,s->passwd);

printf(“请输入学生年龄:”);

scanf(“%d”,&s->age);

printf(“请输入学生班级:”);

scanf(“%d”,&s->class);

printf(“请输入数学成绩:”);

scanf(“%d”,&s->math);

printf(“请输入c语言成绩:”);

scanf(“%d”,&s->clan);

printf(“请输入语文成绩:”);

scanf(“%d”,&s->chinese);

printf(“enter next studentn”);

if(head==NULL)

{

s->next=NULL;

head=s;

}

else

{

s->next=NULL;

s->next=head;

head=s;

}

scanf(“%d”,&num);} return head;} //保存

void stu_write(pstu head){ int flag=0;FILE *fp=NULL;pstu p=head;fp=fopen(“num”,“w”);if(fp==NULL){

printf(“open errorn”);

return;} while(p!=NULL){

flag=fwrite(p,sizeof(STU),1,fp);

if(flag!=1)

{

printf(“write errorn”);

return;

}

p->next;} fclose(fp);} //读函数

pstu stu_read(){ FILE *fp=NULL;pstu head=NULL;pstu s=NULL;fp=fopen(“num”,“r”);s=(pstu)malloc(sizeof(STU));while(fread(s,sizeof(STU),1,fp)==1){

if(head==NULL)

{

s->next=NULL;

head=s;

}

else

{

s->next=NULL;

s->next=head;

head=s;

}

s=(pstu)malloc(sizeof(STU));} fclose(fp);return head;} //删除学生信息(学号)pstu stu_del(pstu head,int num){ pstu p=head;pstu q=NULL;printf(“输入删除的学号:”);scanf(“%d”,&num);if(head->num==num){

head=head->next;} else {

while(p->next!=NULL)

{

if(p->next->num==num)

{

q=p->next;

p->next=q->next;

free(q);

q=NULL;

break;

}

p=p->next;

} } return head;}

pstu stu_searchbynum();//按学号修改学生信息

void stu_changebynum(pstu head){ pstu p=head;int num;char name[10];char passwd[6];int age;int class;int math,chinese,clan;int n;printf(“请输入查找的学号:”);scanf(“%d”,&num);while(p!=NULL){

if(p->num==num)

{

printf(“学号t姓名t密码t年龄t班级t数学tc语言t语文t名次n”);

printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,p->num,p->name,p->passwd,p->age,p->class,p->math,p->clan,p->chinese,p->mingci);

break;

}

p=p->next;}

printf(“请选择需要修改的学生信息:n”);printf(“-------------------------n”);printf(“1:姓名n”);printf(“2:密码n”);printf(“3:年龄n”);printf(“4:班级n”);printf(“5:数学成绩n”);printf(“6:c成绩n”);printf(“7:语文成绩n”);printf(“0:退出”);printf(“---------------------------n”);printf(“请输入需要修改的信息:”);scanf(“%d”,&n);switch(n){

case 0:

return;

case 1:

printf(“请输入新的姓名:”);

scanf(“%s”,p->name);

break;

case 2:

printf(“请输入新的密码:”);

scanf(“%s”,p->passwd);

break;

case 3:

printf(“请输入新的年龄:”);

scanf(“%d”,&p->age);

break;

case 4:

printf(“请输入新的班级:”);

scanf(“%d”,&p->class);

break;

case 5:

printf(“请输入新的数学成绩:”);

scanf(“%d”,&p->math);

break;

case 6:

printf(“请输入新的c语言成绩:”);

scanf(“%d”,&p->clan);

break;

case 7:

printf(“请输入新的语文成绩:”);

scanf(“%d”,&p->chinese);

break;

default:

printf(“n无效选项n”);

break;} printf(“修改成功!n”);printf(“学号t姓名t密码t年龄t班级t数学tc语言t语文t名次n”);

printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,p->num,p->name,p->passwd,p->age,p->class,p->math,p->clan,p->chinese,p->mingci);} //按学生姓名修改

void stu_changebyname(pstu head){ pstu p=head;int num;char name[10];char passwd[6];int age;int class;int math,chinese,clan;int n;printf(“请输入查找的姓名:”);scanf(“%s”,name);while(p!=NULL){

if(strcmp(p->name,name)==0)

{

printf(“学号t姓名t密码t年龄t班级t数学tc语言t语文t名次n”);

printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,p->num,p->name,p->passwd,p->age,p->class,p->math,p->clan,p->chinese,p->mingci);

break;} p=p->next;} printf(“请选择需要修改的学生信息:n”);printf(“-------------------------n”);printf(“1:学号n”);printf(“2:密码n”);printf(“3:年龄n”);printf(“4:班级n”);printf(“5:数学成绩n”);printf(“6:c成绩n”);printf(“7:语文成绩n”);printf(“0:退出”);printf(“---------------------------n”);printf(“请输入需要修改的信息:”);scanf(“%d”,&n);switch(n){ case 0:

return;case 1:

printf(“请输入新的学号:”);

scanf(“%d”,&p->num);

break;case 2:

printf(“请输入新的密码:”);

scanf(“%s”,p->passwd);

break;case 3:

printf(“请输入新的年龄:”);

scanf(“%d”,&p->age);

break;case 4:

printf(“请输入新的班级:”);

scanf(“%d”,&p->class);

break;case 5:

printf(“请输入新的数学成绩:”);

scanf(“%d”,&p->math);

break;case 6:

printf(“请输入新的c语言成绩:”);

scanf(“%d”,&p->clan);

break;

case 7:

printf(“请输入新的语文成绩:”);

scanf(“%d”,&p->chinese);

break;

default:

printf(“n无效选项n”);

break;} printf(“修改成功!n”);printf(“学号t姓名t密码t年龄t班级t数学tc语言t语文t名次n”);

printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,p->num,p->name,p->passwd,p->age,p->class,p->math,p->clan,p->chinese,p->mingci);

} void change_printf(pstu head){ pstu p=head;int n;printf(“请选择修改学生信息的方式:n”);printf(“-------n”);printf(“1:按学生学号修改n”);printf(“2:按学生姓名修改n”);printf(“0:退出n”);printf(“---------n”);scanf(“%d”,&n);switch(n){

case 1:

stu_changebynum(head);

printf(“显示全部学生信息:”);

break;

case 2:

stu_changebyname(head);

printf(“显示全部学生信息:”);

break;

case 3:

return;} } //查找学生信息

void search_printf(pstu head){ pstu p=head;int n;int num;char name[10];int class;printf(“请选择查找学生信息的方式:n”);printf(“-------n”);printf(“1:按学生学号查找n”);printf(“2:按学生姓名查找n”);printf(“3:按班级群体查找n”);printf(“0:退出n”);printf(“---------n”);scanf(“%d”,&n);switch(n){

case 1:

stu_searchbynum(head,num);

break;

case 2:

stu_searchbyname(head,name);

break;

case 3:

stu_searchbyclass(head,class);

break;

case 0:

return;} } //1:学号查找

pstu stu_searchbynum(pstu head,int num){ pstu p=head;printf(“请输入查找的学号:”);scanf(“%d”,&num);while(p!=NULL){

if(p->num==num)

break;

p=p->next;} return p;} //2:按姓名查找 pstu stu_searchbyname(pstu head,char name[]){ pstu p=head;printf(“请输入要查找的姓名:”);scanf(“%s”,name);while(p!=NULL){

if(strcmp(name,p->name)==0)

break;

p=p->next;} return p;} //班级群体查找

pstu stu_searchbyclass(pstu head,int class){ pstu p=head;printf(“请输入要查找的班级:”);scanf(“%d”,&class);while(p!=NULL){

if(p->class==class)

break;

p=p->next;} return p;}

//显示所有学生信息列表

void sort_printf(pstu head){ pstu p=head;int n;printf(“请选择显示学生信息的方式:n”);printf(“-----n”);printf(“1:按学号顺序显示n”);printf(“2:按名次显示n”);printf(“3:按数学成绩显示n”);printf(“4:按c语言成绩显示n”);printf(“5:按语文成绩显示n”);printf(“--------n”);printf(“请输入你要选择的操作:”);scanf(“%d”,&n);switch(n){

case 1:

stu_numsort(head);

printf(“显示学生信息n”);

break;

case 2:

stu_sumsort(head);

printf(“显示学生信息n”);

break;

case 3:

stu_mathsort(head);

printf(“显示学生信息n”);

break;

case 4:

stu_clansort(head);

printf(“显示学生信息n”);

break;

case 5:

stu_chisort(head);

printf(“显示学生信息n”);

break;

case 6:

return;

default:

printf(“输入错误n”);

break;} }

int stu_len(pstu head){ pstu p=head;int len=0;while(p!=NULL){

len++;

p=p->next;} return len;} //1:按学号顺序显示

pstu getnummax(pstu head){ pstu pmax=head;if(head==NULL){

return NULL;} pstu p=head->next;while(p!=NULL){

if(pmax->num

num)

{

pmax=p;

}

p=p->next;} return pmax;} pstu removefromold(pstu head,pstu pmax){ pstu p=head;if(head==pmax){

head=head->next;} else {

while(p!=NULL)

{

if(p->next==pmax)

{

p->next=pmax->next;

break;

}

}

p=p->next;} return head;} pstu add(pstu pnew,pstu pmax){ pmax->next=pnew;pnew=pmax;return pnew;} pstu stu_numsort(pstu head){ pstu pold=head;pstu pmax=NULL;pstu pnew=NULL;while(pold!=NULL){

pmax=getnummax(pold);

pold=removefromold(pold,pmax);

pnew=add(pnew,pmax);} return pnew;} //按名次显示

pstu getsummin(pstu head){ pstu pmin=head;if(head==NULL){

return NULL;} pstu p=head->next;while(p!=NULL){

if(pmin->math+pmin->clan+pmin->chinese>p->math+p->clan+p->chinese)

{

pmin=p;

}

p=p->next;} return pmin;} pstu removefromtold(pstu head,pstu pmin){ pstu p=head;if(head==pmin){

head=head->next;} else {

while(p!=NULL)

{

if(p->next==pmin)

p->next=pmin->next;

break;

}

p=p->next;} return head;} pstu addt(pstu pnew,pstu pmin){ pmin->next=pnew;pnew=pmin;return pnew;} pstu stu_sumsort(pstu head){ pstu pold=head;pstu pmin=NULL;pstu pnew=NULL;int i=stu_len(head);while(pold!=NULL){

pmin=getsummin(pold);

pold=removefromtold(pold,pmin);

pnew=addt(pnew,pmin);

pnew->mingci=i--;} return pnew;} //按数学成绩显示

pstu getmathmin(pstu head){ pstu pmin=head;if(head==NULL){

return NULL;} pstu p=head->next;while(p!=NULL){

if(pmin->math>p->math)

{

pmin=p;

}

p=p->next;} return pmin;} pstu stu_mathsort(pstu head){ int i=stu_len(head);pstu pold=head;pstu pmin=NULL;pstu pnew=NULL;while(pold!=NULL){

pmin=getmathmin(pold);

pold=removefromold(pold,pmin);

pnew=add(pnew,pmin);

pnew->mingci=i--;} return pnew;} //按c语言成绩显示

pstu getclanmin(pstu head){ pstu pmin=head;if(head==NULL){

return NULL;} pstu p=head->next;while(p!=NULL){

if(pmin->clan>p->clan)

{

pmin=p;

}

p=p->next;} return pmin;} pstu stu_clansort(pstu head){ int i=stu_len(head);pstu pold=head;pstu pmin=NULL;pstu pnew=NULL;while(pold!=NULL){

pmin=getclanmin(pold);

pold=removefromtold(pold,pmin);

pnew=addt(pnew,pmin);

pnew->mingci=i--;} return pnew;} //按语文成绩显示

pstu getchimin(pstu head){ pstu pmin=head;if(head==NULL){

return NULL;} pstu p=head->next;while(p!=NULL){

if(pmin->chinese>p->chinese)

{

pmin=p;

}

p=p->next;} return pmin;} pstu stu_chisort(pstu head){ int i=stu_len(head);pstu pold=head;pstu pmin=NULL;pstu pnew=NULL;while(pold!=NULL){

pmin=getchimin(pold);

pold=removefromtold(pold,pmin);

pnew=addt(pnew,pmin);

pnew->mingci=i--;} return pnew;} void stu_printf(pstu head){ pstu tmp=head;printf(“学号t姓名t密码t年龄t班级t数学tc语言t语文t名次n”);while(tmp!=NULL){

printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,tmp->num,tmp->name,tmp->passwd,tmp->age,tmp->class,tmp->math,tmp->clan,tmp->chinese,tmp->mingci);

tmp=tmp->next;} printf(“n”);} void stun_printf(pstu head){ pstu tmp=head;printf(“学号t姓名t密码t年龄t班级t数学tc语言t语文t名次n”);while(tmp!=NULL){

printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,tmp->num,tmp->name,tmp->passwd,tmp->age,tmp->class,tmp->math,tmp->clan,tmp->chinese,tmp->mingci);

break;} printf(“n”);}

//2: int main(){ // int m;int num;int class;int len;char name[10];pstu head=stu_create();stu_printf(head);len=stu_len(head);// pstu p=stu_del(head, num);// stu_printf(p);/* pstu k=stu_searchbynum(head,num);if(k!=NULL)

stun_printf(k);else

printf(“no find”);

pstu l=stu_searchbyname(head,name);

// // // // // //

// // // // // //

} if(l!=NULL)stun_printf(l);else printf(“no find”);pstu h=stu_searchbyclass(head,class);if(h!=NULL)stun_printf(h);else printf(“no find”);*/ stu_changebynum(head);printf(“显示全部学生信息:”);stu_printf(head);stu_changebyname(head);printf(“显示全部学生信息:”);stu_printf(head);search_printf(head);stun_printf(head);change_printf(head);stu_printf(head);pstu p1=stu_numsort(head);stu_printf(p1);pstu p2=stu_sumsort(head);stu_printf(p2);pstu p3=stu_mathsort(head);stu_printf(p3);sort_printf(head);stu_printf(head);

第二篇:学生管理系统

import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;

public class Xsglxt extends JFrame implements ActionListener { JPanel mb1,mb2;JLabel bq1;JTextField wbk1;JButton an1,an2,an3,an4;JTable bg1;

JScrollPane gd1;Xsxx xsxx2;

public static void main(String[] args)

{

Xsglxt xs=new Xsglxt();}

public Xsglxt(){

mb1=new JPanel();

bq1=new JLabel(“请输入姓名”);

wbk1=new JTextField(10);

an1=new JButton(“查询”);

an1.addActionListener(this);

an1.setActionCommand(“chaxun”);

mb1.add(bq1);mb1.add(wbk1);mb1.add(an1);

mb2=new JPanel();

an2=new JButton(“添加”);

an2.addActionListener(this);

an2.setActionCommand(“tianjia”);

an3=new JButton(“修改”);

an3.addActionListener(this);

an3.setActionCommand(“xiugai”);

an4=new JButton(“删除”);

an4.addActionListener(this);

an4.setActionCommand(“shanchu”);

mb2.add(an2);mb2.add(an3);mb2.add(an4);

xsxx2=new Xsxx();

bg1=new JTable(xsxx2);gd1=new JScrollPane(bg1);

this.add(gd1);this.add(mb1,“North”);this.add(mb2,“South”);

this.setTitle(“学生管理系统”);this.setSize(500,400);this.setLocation(201,181);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);

} public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals(“chaxun”)){

String xingming=this.wbk1.getText().trim();

String sql=“select * from xuesheng where xingming='”+xingming+“'”;

xsxx2=new Xsxx(sql);

bg1.setModel(xsxx2);} else if(e.getActionCommand().equals(“tianjia”)){

Tianjia tj=new Tianjia(this,“添加学生信息”,true);

xsxx2=new Xsxx();

bg1.setModel(xsxx2);

} else if(e.getActionCommand().equals(“xiugai”)){

int ii=this.bg1.getSelectedRow();

if(ii==-1)

{

JOptionPane.showMessageDialog(this,“请选中要修改的行”);

return;

}

new Xiugai(this,“修改学生信息”,true,xsxx2,ii);

xsxx2=new Xsxx();

bg1.setModel(xsxx2);}

else if(e.getActionCommand().equals(“shanchu”))

{

int ii=this.bg1.getSelectedRow();

if(ii==-1)

{

JOptionPane.showMessageDialog(this,“请选中要删除的行”);

return;

}

String st=(String)xsxx2.getValueAt(ii,0);

PreparedStatement ps=null;

Connection ct=null;

ResultSet rs=null;

Statement sm=null;

try {

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

ct=DriverManager.getConnection(“jdbc:odbc:sql server”,“sa”,“ydyd4488321”);

ps=ct.prepareStatement(“delete from xuesheng where xuehao=?”);

ps.setString(1,st);

ps.executeUpdate();

} catch(Exception e2){}

finally

{

try {

if(rs!=null)

{

rs.close();

}

if(ps!=null)

{

ps.close();

}

if(ct!=null)

{

ct.close();

}

} catch(Exception e3){}

}

xsxx2=new Xsxx();

bg1.setModel(xsxx2);

} } }

第三篇:学生管理系统使用说明

学生系统使用说明

登录

在浏览器地址栏内输入“202.195.128.108”后点击回车,弹出苏大研究生管理系统登录窗口。如图1所示。

图1 在图一所示窗口输入用户名、密码、验证码等信息后,类别选择“学生”,然后点击“

”按钮。

个人基本信息的核对

点击“其他管理—个人基本信息管理”,弹出如图2所示窗口。

图2 点击左上角的“基本”按钮,对个人基本信息进行修改。修改完成后点击“其他”按钮,对学业等基本信息进行修改。每完成一篇信息的修改都需要点击一次“

”按钮。同样,点击“学业/

”按钮。

提交培养计划

登录以后,点击“培养管理—培养计划信息管理”,显示出培养计划提交页面。如图3所示。

图3 此页面显示即为本专业培养方案信息,学生可在此制定自己的培养计划。选择框显示为灰色的课程是学生必选课程,选择框为亮色的课程是学生可选课程,学生可在要选的课程前面的方框内打“√”来选中课程。若是要选择培养方案外的课程,则可点击“

”按钮,在弹出的的对话窗口(如图4)中点击课程后对应的“

”按钮来选择方案外课程。

图4 选择完全部课程后,点击图3中右上方的“

”按钮即可完成培养计划的提交。

以上内容为本次系统开放主要工作,同学们要熟悉掌握操作方法。下面介绍的内容,同学们可先大致的了解。培养管理

1.学期注册信息管理

点击“培养—培养管理—学期注册信息管理”,弹出如图5所示页面。

图5 在图5空格中填写个人基本信息后,选择“注册学期”和“注册类型”,然后点击“

”即可。

2.培养计划信息查询

点击“培养—培养管理—培养计划信息查询”,弹出如图6所示页面。

图6 点击“打印”可打印自己的培养计划;点击“导出”可导出自己的培养计划。注:只有培养计划审核通过后,此处才会显示培养计划的内容!

课务管理

开课目录信息查询

点击“培养—课务管理—开课目录信息查询”显示如图7所示页面。

图7 在查询栏内输入查询条件,点击“查询”,查找到符合查询条件的开课课程信息。点击“课程编号”可查看课程基本信息。点击“班级名称”可查看该班级上课时间、上课地点等基本信息。课程网上选课管理

点击“培养—课务管理—课程网上选课管理”显示如图8所示页面。

图8 点击“”按钮,可以进行网上选课操作。如图9所示

图9 点击图9中课程班级后的“”按钮,即可选中该课程。选课结果信息查询

点击“培养—课务管理—选课结果信息查询”显示如图10所示页面。

图10 此处可显示审核后的选课结果,点击“打印”按钮可打印查询到的选课结果。

学期课表信息查询

点击“培养—课务管理—学期课表信息查询”显示如图11所示页面。

图11 在左上角选择相应的学期,即可查询到该学期的课表信息,点击“打印”可打印该学期课表。

本周学期课表查询

同“学期课表信息查询”。课程成绩信息查询

点击“培养—课务管理—课程成绩信息查询”显示如图12所示页面。

图12 学生登录系统后必须先进行个人基本信息的核对和完善,否则不能查看课程成绩。调停补课信息查询

点击“培养—课务管理—调停补课信息查询”显示如图13所示页面。

图13 选择学期和查询类别后,即可查看到相应的调停补课信息。

学期考试信息查询

点击“培养—课务管理—学期考试信息查询”显示如图14所示页面。

图14 选择学期,可查看选择学期的学期考试信息。课程重修申请管理

点击“培养—课务管理—课程重修申请管理”显示如图15所示页面。

图15 点击“”按钮,系统会弹出学生所有已修课程及其成绩信息。如图16所示。

图16 点击未及格课程后对应的“”即可提交该课程的重修申请。

考级管理

入学CET成绩录入

点击“培养—考级管理—入学CET成绩录入”显示如图17所示页面。

图17 在图17中输入入学前CET考试成绩,输入完成后点击“

CET外语成绩查看

点击“培养—考级管理—CET外语成绩查看”显示如图18所示页面。

”即可。

图18 在此处可查看自己的每一次CET外语考试成绩。

计算机考级报名

点击“培养—考级管理—计算机考级报名”显示如图19所示页面。

图19 在图19中填写报名信息后,点击“

计算机等级成绩

点击“培养—考级管理—计算机等级成绩”显示如图20所示页面。

”按钮即可完成报名。在此处可查看每一次的计算机等级考试成绩。

外国语考级报名

同“计算机考级报名”

外国语考级成绩

同“计算机考级成绩”

普通话考级报名

同“计算机考级报名”

图 普通话考级成绩

同“计算机考级成绩”

学位管理

学位论文

论文开题报告管理

点击“学位—学位论文—论文开题报告管理”显示如图21所示页面。

图21 点击“ ”按钮,弹出如图22所示对话框。

图22 填写完成图22中的内容后,点击“

”按钮即可。提交成功后,显示如图23所示页面。

23中的“”按钮,显示如图图23

24所示页面。点击图

图24 点击上方“基本信息”、“立题依据”、“研究内容”等菜单,分别将其中信息填写完成后,点击“

”按钮。点击“浏览”找到开题报告电子文档,点击“上传文档”可将电子版的开题报告文档上传。后面上传评审论文和答辩论文方式也是如此。点击“

论文中期报告管理

同“论文开题报告管理”

论文预备答辩管理

同“论文开题报告管理”

学位论文评审管理

同“论文开题报告管理”

学位论文答辩管理

同“论文开题报告管理”

”可导出word版的开题报告申请书。存档论文文档上传

论文成果

发表论文信息登记

点击“学位—论文成果—发表论文信息登记”显示如图25所示页面。

图25 点击“”按钮,弹出如图26所示页面。在图26中输入发表文章的基本信息后,点击“

科研成果信息登记

同“发表论文信息登记”

”即可。

其他

其他管理

登录密码信息修改

点击“其他—其他管理—登录密码信息修改”显示如图27所示页面。

图27 在图27中,可以对学生的登录名称和登录密码,修改完成后点击“

照片信息核对管理

点击“其他—其他管理—照片信息核对管理”显示如图28所示页面

”即可。

图28 点击“上传照片”可以上传自己的学籍照片。

培养方案信息查看

点击“其他—其他管理—培养方案信息查看”显示如图29所示页面

图29 在查询栏内输入查询条件,点击“查询”查找到符合查询条件的培养方案信息。点击“校内专业名称”下对应的专业名称,即可查看该专业的培养方案信息。

奖学金信息查看

可查看奖学金发放情况。(略)

教室借用申请管理

点击“其他—其他管理—教室借用申请管理”显示如图30所示页面

图30 点击“ ”按钮,在弹出的对话框中填写教室借用申请信息后点击“保存”即可。

互动信息

通知公告信息查询

点击“其他—互动信息—通知公告信息查询”显示如图31所示页面

图31 在查询栏输入查询起始时间,点击“查询”即可查询到该段时间内发布的通知公告信息,点击通知公告标题即可查看改通知公告的内容。

师生消息互动管理

点击“其他—互动信息—师生消息互动管理”显示如图32所示页面

图32 点击“收件箱”可查看收到的信息;点击“发件箱”可发送消息;点击“回复箱”可查看回复别人或别人回复的消息。

在发件箱内点击“

”弹出如图33所示页面

图33 首先编写信息标题和信息内容,点击“

”按钮。选择接收人员是个人时,点击“

”按钮选择信息接收人。选择接收人员是院系和专业时,首先选择接收消息的院系或专业,然后选择接收范围“学生”、“教师”或“全部”。如图34所示。

图34 选择完成后可选择立即发送,也可选择存入发件箱待确认信息无误后再发送。教学评价信息管理

问卷调查信息管理

点击“其他—互动信息—问卷调查信息管理”显示如图35所示页面

图35 若是调查状态为“正在进行”,则点击“”可进行问卷调查答题。若调查状态为“调查完毕”,点击“以查看问卷调查答题信息。

教学校历信息查看

可以查看某学期的教学校历信息。(略)

”可

第四篇:学生管理系统实验报告

数据库课程设计报告

-----学生管理系统一、需求分析

根据老师的要求,我主要把精力集中在学生选课的功能实现上,角色分为管理员与学生 实现功能包括如下两部分:

A.学生端实现功能:

1.系统管理:登陆,退出

2.学籍管理:新生注册,修改信息

3.选课管理:选课,我的课表

4.成绩管理(查询个人成绩)

B.管理员端实现功能:

1.系统管理:登录,修改密码

2.学生信息管理:显示学生列表,更改学生状态录入学生各学期科目成绩、修改

3.选课管理:添加、删除选课,显示选课列表,添加选课成绩

4.成绩管理:查看成绩,统计成绩

二.概念结构设计

实体联系图如下:

三.逻辑设计

关系模型:

学生(学号,姓名,密码,性别,专业,入学日期)

课程(ID,课程名,课时)

学期(ID,学期名称)

安排(ID,学期ID,课程ID,老师,地点,教材名)

选课(安排ID,学号,成绩,是否定教材,审核)

状态(ID,状态名)

管理员(ID,姓名,密码)

四.物理结构设计

数据表及关系:

五.系统实施

主要分三层:

表现层,数据访问层,数据存储层(参照《C#网络应用开发例学与实践》实现)这样分层,降低耦合度,便于查错及修改

六.知识点总结

1.使用ADO.NET访问数据库的过程

//新建连接对象

SqlConnection conn = new SqlConnection();

conn.ConnectionString = “Data Source=(local);Initial Catalog=School;Integrated Security=True”;

//新建命令对象

SqlCommand cmd = new SqlCommand(“UpdateStudentInfo”, conn);

//指定命令类型为存储过程

cmd.CommandType = CommandType.StoredProcedure;

//添加参数

cmd.Parameters.Add(new SqlParameter(“@userName”, userName));

cmd.Parameters.Add(new SqlParameter(“@userID”, userID));

conn.Open();

//保存执行结果

int recordsAffected = cmd.ExecuteNonQuery();

conn.Close();

2.引用类型与值类型

SqlParameter(“@isBook”, “0”);对

SqlParameter(“@isBook”, 0);错

“@isBook int ”

SqlParameter 构造函数(String, Object)Object不能对应int类型

3.模糊查询的过程

A.CREATE PROCEDURE [dbo].[Pr_GetMyScore]

(@stuNum varchar(50)= null,@termIDvarchar(20)= null,@courseName varchar(50)= null)

AS

BEGIN

SELECT

[term].[name] AS 学期,[arrange].arrangeID AS 选课编号,[course].[Name] AS 课程名称,FROM[elective],[arrange],[term],[course]

WHERE[arrange].[termID] = [term].[termID]

and[arrange].[courseID] =[course].[courseID]

and[arrange].[arrangeID] = [elective].[arrangeID]

AND(@termID='0' OR [arrange].[termID]=@termID)

AND(@courseName IS NULL OR [course].[Name]like '%' + @courseName + '%')

AND(@stuNum IS NULL OR [elective].[stuID]=@stuNum)

AND[course].courseID = [arrange].courseID

END

B.CREATE PROCEDURE [dbo].[Pr_GetScore]

(@stuNum varchar(50)= null,@courseName varchar(50)= null,)

AS

BEGIN

SET NOCOUNT ON;

DECLARE @sql varchar(8000)

SET @sql=' SELECT

[elective].[stuID] AS 学号, [student].[name] AS 姓名,[arrange].arrangeID AS 选课编号,FROM[elective],[arrange],[course],[student]

WHERE[arrange].[courseID] =[course].[courseID]

and [arrange].[arrangeID] = [elective].[arrangeID]

AND[student].[stuID] = [elective].[stuID]'

IF @stuNum IS NOT NULL

SET @sql=@sql+' AND [elective].[stuID]='+''''+@stuNum+''''

IF @courseName IS NOT NULL

SET @sql=@sql+' AND [course].[Name] like '+'''%' +@courseName+'%'''

EXEC(@sql)

END

七.实验感想

在实训之前,我接触过一些.NET的知识,那时更多的是看实例,然后照搬过来做,对ADO.NET模型不是很了解,这次实训,我又系统地看了一下ADO.NET的基础,加深了对ADO.NET的理解,明白两个核心组件DataSet和.NET Framework的任务。我觉得理论加实践,才能加深对知识的理解,提高处理问题的能力。

做项目,如果从数据库开始分析,把表设计好,那么进行业务逻辑层的设计就很容易实现,也便于以后的扩展。

通过这次的学习,我又接触了很多的.NET控件,(DataGridView,ListView),在遇到不懂的问题,或者解答同学提出的问题时,我尽量查MSDN,使用里面的实例做测试,学到不少知识。

第五篇:学生籍贯管理系统

#include “stdafx.h” #include “stdio.h” #include “stdlib.h” #include “conio.h” #include “math.h” #include “string.h”

/**********************建立链表******************************/ struct hj

{

};int age;long number;char name[10],address[50],sex[2];struct hj *next;/**************************文件操作函数******************************/ FILE *fp;void openfile(char xx[20]){ fp=fopen(xx,“ab+”);if(fp==NULL)fp=fopen(xx,“wb”);} /************************录入信息函数***********************************/ void hjnew(void){

system(“cls”);int n=0,xage;long xnumber;char xname[10];char xaddress[50];char xsex[2];struct hj *head;struct hj *x1,*x2;head=NULL;x2=NULL;printf(“n

★★★★★欢迎使用户籍管理系统★★★★★n”);printf(“n

★★★录入信息★★★n”);printf(“n

〒提示输入0返回上级菜单〒nnn”);printf(“n

请输入学号【15字内】:”);scanf(“%ld”,&xnumber);if(xnumber==0)goto haha;printf(“n

请输入姓名【10字内】:”);scanf(“%s”,xname);printf(“n

请输入年龄【|-__-|】:”);scanf(“%d”,&xage);printf(“n

请输入性别【男OR女】:”);

scanf(“%s”,xsex);printf(“n

请输入籍贯【25字内】:”);

scanf(“%s”,xaddress);{

while(xnumber!=0)n++;x1=(struct hj *)malloc(sizeof(struct hj));x1->number=xnumber;strcpy(x1->name,xname);strcpy(x1->sex,xsex);x1->age=xage;strcpy(x1->address,xaddress);if(n==1)head=x1;else x2->next=x1;x2=x1;printf(“n

请输入学号【15字内】:”);scanf(“%ld”,&xnumber);if(xnumber==0)break;printf(“n

请输入姓名【10字内】:”);scanf(“%s”,xname);printf(“n

请输入年龄【|-__-|】:”);scanf(“%d”,&xage);printf(“n

请输入性别【男OR女】:”);scanf(“%s”,xsex);printf(“n

请输入籍贯【25字内】:”);scanf(“%s”,xaddress);}

x2->next=NULL;

x1=head;

while(x1!=NULL)

{ openfile(“hj.txt”);

char d[5]=“四川”;

fwrite(x1,sizeof(struct hj),1,fp);

fclose(fp);

if(strstr(x1->address,d)!=NULL)

{

openfile(“schj.txt”);

fwrite(x1,sizeof(struct hj),1,fp);

fclose(fp);

}

else

{

openfile(“qthj.txt”);

fwrite(x1,sizeof(struct hj),1,fp);

fclose(fp);}

x1=x1->next;}

haha:;}

/*****************************查询函数*************************/ void hjxmselect(void)//按学号方式查询函数 { ssmmx:

int n=0;

long hh;

system(“cls”);

printf(“n

★★★★★欢迎使用户籍管理系统★★★★★n”);printf(“n

★★★查询编辑信息★★★n”);printf(“n

〒提示输入0返回上级菜单〒nnn”);printf(“

请您输入学号:”);

scanf(“%ld”,&hh);

if(hh!=0)

{

struct hj *p;

struct hj *q=NULL,*head=NULL;

fp=fopen(“hj.txt”,“rb”);

if(fp==NULL){ printf(“n没有记录,请输入记录然后再查询!”);

getch();

goto jjx;}

while(!feof(fp))

{ n++;

p=(struct hj *)malloc(sizeof(struct hj));

fread(p,sizeof(struct hj),1,fp);

if(n==1)

head=p;

else

q->next=p;

q=p;

}

q->next=NULL;

p=head;

while(p!=NULL)

{

if(p->number==hh){ int a;

printf(“n 结 果 →

学号=%ld

姓名=%s

年龄=%d

性别=%s ”,p->number,p->name,p->age,p->sex);

printf(“n

地址=%s”,p->address);

printf(“nn 操 作 →

⑴更改数据

⑵删除数据

⑶查询其他数据

⑷返回上页

⑸退出程序nn 请您选择操作:”);

ssmx:

scanf(“%d”,&a);

switch(a){

void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1: hjedit(head,p);goto ssmmx;break;case 2: hjdelete(head,p);

goto ssmmx;break;

case 3: goto ssmmx;

case 4: goto jjx;

case 5:exit(0);

default:printf(“n

错误的选择,请重新选择:”);

goto ssmx;} }

else

p=p->next;}

int iiii=0;

printf(“n

没有此记录 1.重新查询 2.返回上一页 3.退出程序!”);

printf(“n

请选择:”);

qqqq:

scanf(“%d”,&iiii);

switch(iiii)

{

} case 1: goto ssmmx;case 2: goto jjx;case 3: exit(0);default: printf(“n

错误的选择,请重新选择:”);goto qqqq;

goto jjx;}

jjx:;} void hjxhselect(void)//按姓名方式查询函数 {

ssmm: int n=0;char hh[10];system(“cls”);printf(“n

★★★★★欢迎使用户籍管理系统★★★★★n”);printf(“n

★★★查询编辑信息★★★n”);printf(“n

〒提示输入0返回上级菜单〒nnn”);printf(“

请您输入姓名:”);scanf(“%s”,hh);if(strcmp(hh,“0”)!=0){ struct hj *p;

struct hj *q=NULL,*head=NULL;

fp=fopen(“hj.txt”,“rb”);

if(fp==NULL)

{

printf(“n没有记录,请输入记录然后再查询!”);

getch();

goto jjj;

}

while(!feof(fp))

{

n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)else head=p;

q->next=p;

q=p;

}

q->next=NULL;

p=head;

while(p!=NULL)

{

if(strcmp(p->name,hh)==0){ int a;

printf(“n 结 果 →

学号=%ld

姓名=%s

年龄=%d

性别=%s ”,p->number,p->name,p->age,p->sex);

printf(“n

地址=%s”,p->address);

printf(“nn 操 作 →

⑴更改数据

⑵删除数据

⑶查询其他数据

⑷返回上页

⑸退出程序nn 请您选择操作:”);

ssm:

scanf(“%d”,&a);

switch(a)

{

}

} void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1: hjedit(head,p);

goto ssmm;break;case 2: hjdelete(head,p);goto ssmm;break;case 3: goto ssmm;case 4: goto jjj;case 5:exit(0);default:printf(“n

错误的选择,请重新选goto ssm;

择:”);

else

p=p->next;

}

int iii=0;

printf(“n

没有此记录 1.重新查询 2.返回上一页 3.退出程序!”);

printf(“n

请选择:”);

qqq:

scanf(“%d”,&iii);

switch(iii)

{

case 1: goto ssmm;case 2: goto jjj;case 3: exit(0);

default: printf(“n

错误的选择,请重新选择:”);

goto qqq;

}

goto jjj;}

jjj:;} void hjjgselect(void)//按籍贯方式查询 { yyy:

int i;

system(“cls”);

printf(“n

★★★★★欢迎使用户籍管理系统★★★★★n”);

printf(“n

★★★籍贯方式查询信息★★★nnn”);

printf(“n

显示所有信息n”);

printf(“n

显示四川籍所有信息n”);

printf(“n

显示其它籍所有信息n”);

printf(“n

自定义查询信息n”);

printf(“n

←返回上级菜单n”);

printf(“n

↓退出程序n”);

printf(“nn

请选择:”);

scanf(“%d”,&i);

switch(i){

void zdyselect(void);

} void zdyselect(void){

ssmmz: int n=0,j=0;char hh[10];system(“cls”);printf(“n

★★★★★欢迎使用户籍管理系统★★★★★n”);

} void allselect(char a[8]);case 1:allselect(“hj.txt”);goto yyy;break;case 2: allselect(“schj.txt”);goto yyy;break;case 3: allselect(“qthj.txt”);goto yyy;break;case 4: zdyselect();case 5: break;case 6: exit(0);printf(“n

★★★自定义查询信息★★★nnn”);

printf(“

请您输入地址关键字:”);

scanf(“%s”,hh);

if(strcmp(hh,“0”)!=0){

struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen(“hj.txt”,“rb”);if(fp==NULL){

} printf(“n

没有记录,请输入记录然后再查询!”);getch();goto jjz;

while(!feof(fp))

{

} n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;else q->next=p;q=p;

q->next=NULL;

p=head;

while(p!=NULL)

{

if(strstr(p->address,hh)!=NULL)

{

int a;j++;printf(“n 结 果 →

学号=%ld

姓名=%s

年龄=%d

性别=%s ”,p->number,p->name,p->age,p->sex);

printf(“n

地址=%s”,p->address);printf(“nn 操 作 →

⑴更改数据

⑵删除数据

⑶查询下一条数据

⑷返回上页

⑸退出程序nn 请您选择操作:”);

ssmz:

scanf(“%d”,&a);switch(a){

void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);

case 1: hjedit(head,p);goto ssmmz;break;case 2: hjdelete(head,p);goto ssmmz;break;case 3: p=p->next;continue;case 4: goto jjz;case 5:exit(0);default:printf(“n

错误的选择,请重新选

择:”);goto ssmz;

}

p=p->next;

}

else

p=p->next;}

if(j==0)

{

printf(“nnn没有匹配的记录 按任意键继续!”);

getch();fclose(fp);

goto ssmmz;

}

else

{

int xx;printf(“nn查询完毕!

继续查询

返回上一级菜单程序”);

printf(“n请选择:”);

scanf(“%d”,&xx);

if(xx==2)

goto jjz;

else if(xx==3)exit(0);

}

goto ssmmz;

jjz:;}

} void allselect(char a[8])//全部查询 { int n=0;int k=0;⑶

退出 system(“cls”);printf(“n

★★★★★欢迎使用户籍管理系统★★★★★n”);printf(“n

★★★籍贯方式信息★★★nnn”);

struct hj *p;struct hj *q=NULL,*head=NULL;

fp=fopen(a,“rb”);if(fp==NULL){ printf(“n对不起,没有记录无法查询!”);goto xxxx;} rewind(fp);while(!feof(fp)){

n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;else q->next=p;q=p;} q->next=NULL;

struct hj *h1,*p2,*q3,*r4,*s5;h1=p2=(hj *)malloc(sizeof(struct hj));

p2->next=head;while(p2->next!=NULL){

q3=p2->next;r4=p2;

while(q3->next!=NULL){

if(q3->next->number

next->number)r4=q3;q3=q3->next;

}

if(r4!=p2){

s5=r4->next;r4->next=s5->next;s5->next=p2->next;p2->next=s5;

}

p2=p2->next;}

head=h1->next->next;free(h1);

while(p!=NULL&&n>0){ n--;printf(“n学号=%ld

姓名=%s

年龄=%d

性别=%s

p=head;”,p->number,p->name,p->age,p->sex);

printf(“n地址=%s”,p->address);

p=p->next;}

xxxx: printf(“n→显示完毕←n⑴ ↑返回上级菜单

⑵ ↓退出程序 n请 选 择 :”);xxx: scanf(“%d”,&n);switch(n){

} case 1:break;case 2:exit(0);default:printf(“n错误的选择,请重新选择:”);goto xxx;} void hjselect(void)//查询编辑信息函数 {

cxbegin: int a;

system(“cls”);printf(“n

★★★★★欢迎使用户籍管理系统★★★★★n”);printf(“n

★★★查询编辑信息★★★nnn”);printf(“n

按学号方式查询n”);printf(“n

按姓名方式查询n”);printf(“n

按籍贯方式查询n”);printf(“n

→显示全部信息n”);printf(“n

←返回上级菜单n”);printf(“n

请 选 择 查 询 方 式:”);cxmm: scanf(“%d”,&a);switch(a){

case 1: hjxmselect();goto cxbegin;break;

} case 2: hjxhselect();goto cxbegin;break;case 3: hjjgselect();goto cxbegin;break;case 4: allselect(“hj.txt”);goto cxbegin;break;case 5: break;default:printf(“n错误的选择,请重新选择:”);

goto cxmm;} void hjde(void)//删除界面函数 {

cxxbegin: int a;system(“cls”);printf(“n

★★★★★欢迎使用户籍管理系统★★★★★n”);printf(“n

★★★删除信息★★★nnn”);printf(“n

按学号方式删除n”);printf(“n

按姓名方式删除n”);printf(“n

按籍贯方式删除n”);printf(“n

→删除全部信息n”);printf(“n

←返回上级菜单n”);printf(“n

请 选 择 删 除 方 式:”);cxxmm: scanf(“%d”,&a);int i=0;switch(a){

case 1: hjxmselect();goto cxxbegin;break;

case 2: hjxhselect();goto cxxbegin;break;case 3: zdyselect();goto cxxbegin;break;case 4:

fp=fopen(“hj.txt”,“wb”);if(fp!=NULL)i++;fp=fopen(“schj.txt”,“wb”);if(fp!=NULL)i++;fp=fopen(“qthj.txt”,“wb”);if(fp!=NULL)i++;if(i==3){ printf(“n

全部数据已经删除!!!敲任意键继续getch();

”);

}

} } goto cxxbegin;break;case 5: break;default:printf(“n错误的选择,请重新选择:”);goto cxxmm;//==============删除函数接口=============== void hjdelete(struct hj *headdd,struct hj *ss){

struct hj *q;char d[5]=“四川”;if(headdd==ss){ headdd=headdd->next;goto gogo;} q=headdd;while(q!=NULL){ if(q->next->number==ss->number)

{

break;

}

q=q->next;}

q->next=ss->next;gogo: q=headdd;

fp=fopen(“hj.txt”,“wb”);

while(q!=NULL){ fwrite(q,sizeof(struct hj),1,fp);q=q->next;} fclose(fp);q=headdd;fp=fopen(“schj.txt”,“wb”);while(q!=NULL)

if(strstr(q->address,d)!=NULL){

fwrite(q,sizeof(struct hj),1,fp);}

{

q=q->next;} fclose(fp);q=headdd;fp=fopen(“qthj.txt”,“wb”);while(q!=NULL)

if(strstr(q->address,d)==NULL){ fwrite(q,sizeof(struct hj),1,fp);} q=q->next;

{ } fclose(fp);} //===============编辑函数接口============== void hjedit(struct hj *headd,struct hj *pp){ int n=0;

struct hj *p,*p1,*p2;char d[5]=“四川”;printf(“n 输 入 →

学号=”);scanf(“%ld”,&pp->number);printf(“n

姓名=”);scanf(“%s”,pp->name);printf(“n

年龄=”);scanf(“%d”,&pp->age);printf(“n

性别=”);scanf(“%s”,pp->sex);printf(“n

地址=”);scanf(“%s”,pp->address);p=headd;fp=fopen(“hj.txt”,“wb”);while(p!=NULL){ fwrite(p,sizeof(struct hj),1,fp);p=p->next;} fclose(fp);p1=headd;fp=fopen(“schj.txt”,“wb”);while(p1!=NULL)

{

if(strstr(p1->address,d)!=NULL)

} {

fwrite(p1,sizeof(struct hj),1,fp);} p1=p1->next;fclose(fp);p2=headd;fp=fopen(“qthj.txt”,“wb”);while(p2!=NULL)

} if(strstr(p2->address,d)==NULL){

} fwrite(p2,sizeof(struct hj),1,fp);

{ p2=p2->next;fclose(fp);} /*****************************主函数****************************************/ int main(int argc, char* argv[]){

begin:

int t;system(“cls”);printf(“n

★★★★★欢迎使用户籍管理系统★★★★★nnnnn”);printf(“

1.录入学生籍贯信息nn”);printf(“

2.查编学生籍贯信息nn”);

printf(“

3.删除学生籍贯信息nn”);printf(“

4.退出程序nn”);

printf(“

请您选择1-4:”);mm:

scanf(“%d”,&t);switch(t){

case 1: hjnew();break;

case 2: hjselect();break;case 3: hjde();break;case 4:exit(0);default:printf(“n

错误的选择,请重新选择:”);goto mm;} goto begin;

return 0;

相关内容

热门阅读

最新更新

随机推荐