第一篇:學(xué)生籍貫管理系統(tǒng)
#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;/**************************文件操作函數(shù)******************************/ FILE *fp;void openfile(char xx[20]){ fp=fopen(xx,“ab+”);if(fp==NULL)fp=fopen(xx,“wb”);} /************************錄入信息函數(shù)***********************************/ 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
★★★★★歡迎使用戶籍管理系統(tǒng)★★★★★n”);printf(“n
★★★錄入信息★★★n”);printf(“n
〒提示輸入0返回上級菜單〒nnn”);printf(“n
請輸入學(xué)號【15字內(nèi)】:”);scanf(“%ld”,&xnumber);if(xnumber==0)goto haha;printf(“n
請輸入姓名【10字內(nèi)】:”);scanf(“%s”,xname);printf(“n
請輸入年齡【|-__-|】:”);scanf(“%d”,&xage);printf(“n
請輸入性別【男OR女】:”);
scanf(“%s”,xsex);printf(“n
請輸入籍貫【25字內(nèi)】:”);
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
請輸入學(xué)號【15字內(nèi)】:”);scanf(“%ld”,&xnumber);if(xnumber==0)break;printf(“n
請輸入姓名【10字內(nèi)】:”);scanf(“%s”,xname);printf(“n
請輸入年齡【|-__-|】:”);scanf(“%d”,&xage);printf(“n
請輸入性別【男OR女】:”);scanf(“%s”,xsex);printf(“n
請輸入籍貫【25字內(nèi)】:”);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:;}
/*****************************查詢函數(shù)*************************/ void hjxmselect(void)//按學(xué)號方式查詢函數(shù) { ssmmx:
int n=0;
long hh;
system(“cls”);
printf(“n
★★★★★歡迎使用戶籍管理系統(tǒng)★★★★★n”);printf(“n
★★★查詢編輯信息★★★n”);printf(“n
〒提示輸入0返回上級菜單〒nnn”);printf(“
請您輸入學(xué)號:”);
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 結(jié) 果 →
學(xué)號=%ld
姓名=%s
年齡=%d
性別=%s ”,p->number,p->name,p->age,p->sex);
printf(“n
地址=%s”,p->address);
printf(“nn 操 作 →
⑴更改數(shù)據(jù)
⑵刪除數(shù)據(jù)
⑶查詢其他數(shù)據(jù)
⑷返回上頁
⑸退出程序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)//按姓名方式查詢函數(shù) {
ssmm: int n=0;char hh[10];system(“cls”);printf(“n
★★★★★歡迎使用戶籍管理系統(tǒng)★★★★★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 結(jié) 果 →
學(xué)號=%ld
姓名=%s
年齡=%d
性別=%s ”,p->number,p->name,p->age,p->sex);
printf(“n
地址=%s”,p->address);
printf(“nn 操 作 →
⑴更改數(shù)據(jù)
⑵刪除數(shù)據(jù)
⑶查詢其他數(shù)據(jù)
⑷返回上頁
⑸退出程序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
★★★★★歡迎使用戶籍管理系統(tǒng)★★★★★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
★★★★★歡迎使用戶籍管理系統(tǒng)★★★★★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(“
請您輸入地址關(guān)鍵字:”);
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 結(jié) 果 →
學(xué)號=%ld
姓名=%s
年齡=%d
性別=%s ”,p->number,p->name,p->age,p->sex);
printf(“n
地址=%s”,p->address);printf(“nn 操 作 →
⑴更改數(shù)據(jù)
⑵刪除數(shù)據(jù)
⑶查詢下一條數(shù)據(jù)
⑷返回上頁
⑸退出程序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沒有匹配的記錄 按任意鍵繼續(xù)!”);
getch();fclose(fp);
goto ssmmz;
}
else
{
int xx;printf(“nn查詢完畢!
⑴
繼續(xù)查詢
⑵
返回上一級菜單程序”);
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
★★★★★歡迎使用戶籍管理系統(tǒng)★★★★★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學(xué)號=%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)//查詢編輯信息函數(shù) {
cxbegin: int a;
system(“cls”);printf(“n
★★★★★歡迎使用戶籍管理系統(tǒng)★★★★★n”);printf(“n
★★★查詢編輯信息★★★nnn”);printf(“n
一
按學(xué)號方式查詢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)//刪除界面函數(shù) {
cxxbegin: int a;system(“cls”);printf(“n
★★★★★歡迎使用戶籍管理系統(tǒng)★★★★★n”);printf(“n
★★★刪除信息★★★nnn”);printf(“n
一
按學(xué)號方式刪除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
全部數(shù)據(jù)已經(jīng)刪除?。?!敲任意鍵繼續(xù)getch();
”);
}
} } goto cxxbegin;break;case 5: break;default:printf(“n錯誤的選擇,請重新選擇:”);goto cxxmm;//==============刪除函數(shù)接口=============== 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);} //===============編輯函數(shù)接口============== void hjedit(struct hj *headd,struct hj *pp){ int n=0;
struct hj *p,*p1,*p2;char d[5]=“四川”;printf(“n 輸 入 →
學(xué)號=”);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);} /*****************************主函數(shù)****************************************/ int main(int argc, char* argv[]){
begin:
int t;system(“cls”);printf(“n
★★★★★歡迎使用戶籍管理系統(tǒng)★★★★★nnnnn”);printf(“
1.錄入學(xué)生籍貫信息nn”);printf(“
2.查編學(xué)生籍貫信息nn”);
printf(“
3.刪除學(xué)生籍貫信息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;
第二篇:學(xué)生管理系統(tǒng)
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(“學(xué)生管理系統(tǒng)”);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,“添加學(xué)生信息”,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,“修改學(xué)生信息”,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);
} } }
第三篇:學(xué)生考勤管理系統(tǒng)
學(xué)生考勤管理系統(tǒng)
系統(tǒng)設(shè)計開發(fā):張文聰
網(wǎng)站意義:
學(xué)生考勤對學(xué)校教務(wù)管理是至關(guān)重要的,傳統(tǒng)的學(xué)生出勤檢查往往是教師拿著一張紙質(zhì)名單逐一點名,或讓學(xué)生上交課堂作業(yè)以便課后查詢出勤情況。這些方法往往具有考勤效率低下,沒有系統(tǒng)的記錄和整理,容易丟失遺漏,耽誤時間等缺點。針對以上問題,開發(fā)一種針對學(xué)生考勤的網(wǎng)上管理系統(tǒng),通過本系統(tǒng),教師可以再課堂上直接登錄考勤記錄網(wǎng)站進(jìn)行課堂點名,記錄學(xué)生考勤情況等。此外,在課余,任課教師、班主任以及學(xué)校領(lǐng)導(dǎo)也可以登錄該網(wǎng)站查詢某班學(xué)生在某學(xué)科課程的出勤情況。
需求分析:
1、提供學(xué)生和老師兩個登錄用戶;
2、學(xué)生可以查詢自己的出勤情況;
3、任課老師可以查詢自己帶的班級學(xué)生的出勤情況;
4、班主任可以查詢本班級學(xué)生在每一學(xué)科的出勤情況。
5、實現(xiàn)科任老師和班主任查詢結(jié)果的報表打印。
網(wǎng)站設(shè)計圖:
開發(fā)運行平臺:
主要以Microsoft Visual Studio.NET 2008 為開發(fā)平臺,SQL Server 2000為后臺數(shù)據(jù)庫,采用.NET技術(shù),結(jié)合C#和JavaScript構(gòu)造應(yīng)用程序。
功能模塊說明:
1、學(xué)生信息管理
包括了學(xué)生的個人信息,所在班級,學(xué)號,姓名和學(xué)生每個學(xué)科的出勤情況。
2、學(xué)科信息
包括了每一個學(xué)科的課程名稱,課程號和每一個課程對應(yīng)的任課教師。
3、出勤模塊
包括了全校所有學(xué)生對應(yīng)每一學(xué)科課程的出勤情況。班主任和科任老師可以查詢對應(yīng)的班級學(xué)生出勤情況并打印出來。
網(wǎng)站總結(jié):
本系統(tǒng)針對在校學(xué)生每一節(jié)課的考勤情況作記錄,方便班主任對本班學(xué)生出勤率的查看可以及時做好教育防范工作。根據(jù)教務(wù)處的需求,我們還會將本系統(tǒng)繼續(xù)擴大,添加進(jìn)學(xué)生早操、值日和會議等功能,以及學(xué)生通過系統(tǒng)請假,老師或領(lǐng)導(dǎo)批假等功能。
第四篇:學(xué)生管理系統(tǒng)使用說明
學(xué)生系統(tǒng)使用說明
登錄
在瀏覽器地址欄內(nèi)輸入“202.195.128.108”后點擊回車,彈出蘇大研究生管理系統(tǒng)登錄窗口。如圖1所示。
圖1 在圖一所示窗口輸入用戶名、密碼、驗證碼等信息后,類別選擇“學(xué)生”,然后點擊“
”按鈕。
個人基本信息的核對
點擊“其他管理—個人基本信息管理”,彈出如圖2所示窗口。
圖2 點擊左上角的“基本”按鈕,對個人基本信息進(jìn)行修改。修改完成后點擊“其他”按鈕,對學(xué)業(yè)等基本信息進(jìn)行修改。每完成一篇信息的修改都需要點擊一次“
”按鈕。同樣,點擊“學(xué)業(yè)/
”按鈕。
提交培養(yǎng)計劃
登錄以后,點擊“培養(yǎng)管理—培養(yǎng)計劃信息管理”,顯示出培養(yǎng)計劃提交頁面。如圖3所示。
圖3 此頁面顯示即為本專業(yè)培養(yǎng)方案信息,學(xué)生可在此制定自己的培養(yǎng)計劃。選擇框顯示為灰色的課程是學(xué)生必選課程,選擇框為亮色的課程是學(xué)生可選課程,學(xué)生可在要選的課程前面的方框內(nèi)打“√”來選中課程。若是要選擇培養(yǎng)方案外的課程,則可點擊“
”按鈕,在彈出的的對話窗口(如圖4)中點擊課程后對應(yīng)的“
”按鈕來選擇方案外課程。
圖4 選擇完全部課程后,點擊圖3中右上方的“
”按鈕即可完成培養(yǎng)計劃的提交。
以上內(nèi)容為本次系統(tǒng)開放主要工作,同學(xué)們要熟悉掌握操作方法。下面介紹的內(nèi)容,同學(xué)們可先大致的了解。培養(yǎng)管理
1.學(xué)期注冊信息管理
點擊“培養(yǎng)—培養(yǎng)管理—學(xué)期注冊信息管理”,彈出如圖5所示頁面。
圖5 在圖5空格中填寫個人基本信息后,選擇“注冊學(xué)期”和“注冊類型”,然后點擊“
”即可。
2.培養(yǎng)計劃信息查詢
點擊“培養(yǎng)—培養(yǎng)管理—培養(yǎng)計劃信息查詢”,彈出如圖6所示頁面。
圖6 點擊“打印”可打印自己的培養(yǎng)計劃;點擊“導(dǎo)出”可導(dǎo)出自己的培養(yǎng)計劃。注:只有培養(yǎng)計劃審核通過后,此處才會顯示培養(yǎng)計劃的內(nèi)容!
課務(wù)管理
開課目錄信息查詢
點擊“培養(yǎng)—課務(wù)管理—開課目錄信息查詢”顯示如圖7所示頁面。
圖7 在查詢欄內(nèi)輸入查詢條件,點擊“查詢”,查找到符合查詢條件的開課課程信息。點擊“課程編號”可查看課程基本信息。點擊“班級名稱”可查看該班級上課時間、上課地點等基本信息。課程網(wǎng)上選課管理
點擊“培養(yǎng)—課務(wù)管理—課程網(wǎng)上選課管理”顯示如圖8所示頁面。
圖8 點擊“”按鈕,可以進(jìn)行網(wǎng)上選課操作。如圖9所示
圖9 點擊圖9中課程班級后的“”按鈕,即可選中該課程。選課結(jié)果信息查詢
點擊“培養(yǎng)—課務(wù)管理—選課結(jié)果信息查詢”顯示如圖10所示頁面。
圖10 此處可顯示審核后的選課結(jié)果,點擊“打印”按鈕可打印查詢到的選課結(jié)果。
學(xué)期課表信息查詢
點擊“培養(yǎng)—課務(wù)管理—學(xué)期課表信息查詢”顯示如圖11所示頁面。
圖11 在左上角選擇相應(yīng)的學(xué)期,即可查詢到該學(xué)期的課表信息,點擊“打印”可打印該學(xué)期課表。
本周學(xué)期課表查詢
同“學(xué)期課表信息查詢”。課程成績信息查詢
點擊“培養(yǎng)—課務(wù)管理—課程成績信息查詢”顯示如圖12所示頁面。
圖12 學(xué)生登錄系統(tǒng)后必須先進(jìn)行個人基本信息的核對和完善,否則不能查看課程成績。調(diào)停補課信息查詢
點擊“培養(yǎng)—課務(wù)管理—調(diào)停補課信息查詢”顯示如圖13所示頁面。
圖13 選擇學(xué)期和查詢類別后,即可查看到相應(yīng)的調(diào)停補課信息。
學(xué)期考試信息查詢
點擊“培養(yǎng)—課務(wù)管理—學(xué)期考試信息查詢”顯示如圖14所示頁面。
圖14 選擇學(xué)期,可查看選擇學(xué)期的學(xué)期考試信息。課程重修申請管理
點擊“培養(yǎng)—課務(wù)管理—課程重修申請管理”顯示如圖15所示頁面。
圖15 點擊“”按鈕,系統(tǒng)會彈出學(xué)生所有已修課程及其成績信息。如圖16所示。
圖16 點擊未及格課程后對應(yīng)的“”即可提交該課程的重修申請。
考級管理
入學(xué)CET成績錄入
點擊“培養(yǎng)—考級管理—入學(xué)CET成績錄入”顯示如圖17所示頁面。
圖17 在圖17中輸入入學(xué)前CET考試成績,輸入完成后點擊“
CET外語成績查看
點擊“培養(yǎng)—考級管理—CET外語成績查看”顯示如圖18所示頁面。
”即可。
圖18 在此處可查看自己的每一次CET外語考試成績。
計算機考級報名
點擊“培養(yǎng)—考級管理—計算機考級報名”顯示如圖19所示頁面。
圖19 在圖19中填寫報名信息后,點擊“
計算機等級成績
點擊“培養(yǎng)—考級管理—計算機等級成績”顯示如圖20所示頁面。
”按鈕即可完成報名。在此處可查看每一次的計算機等級考試成績。
外國語考級報名
同“計算機考級報名”
外國語考級成績
同“計算機考級成績”
普通話考級報名
同“計算機考級報名”
圖 普通話考級成績
同“計算機考級成績”
學(xué)位管理
學(xué)位論文
論文開題報告管理
點擊“學(xué)位—學(xué)位論文—論文開題報告管理”顯示如圖21所示頁面。
圖21 點擊“ ”按鈕,彈出如圖22所示對話框。
圖22 填寫完成圖22中的內(nèi)容后,點擊“
”按鈕即可。提交成功后,顯示如圖23所示頁面。
23中的“”按鈕,顯示如圖圖23
24所示頁面。點擊圖
圖24 點擊上方“基本信息”、“立題依據(jù)”、“研究內(nèi)容”等菜單,分別將其中信息填寫完成后,點擊“
”按鈕。點擊“瀏覽”找到開題報告電子文檔,點擊“上傳文檔”可將電子版的開題報告文檔上傳。后面上傳評審論文和答辯論文方式也是如此。點擊“
論文中期報告管理
同“論文開題報告管理”
論文預(yù)備答辯管理
同“論文開題報告管理”
學(xué)位論文評審管理
同“論文開題報告管理”
學(xué)位論文答辯管理
同“論文開題報告管理”
”可導(dǎo)出word版的開題報告申請書。存檔論文文檔上傳
略
論文成果
發(fā)表論文信息登記
點擊“學(xué)位—論文成果—發(fā)表論文信息登記”顯示如圖25所示頁面。
圖25 點擊“”按鈕,彈出如圖26所示頁面。在圖26中輸入發(fā)表文章的基本信息后,點擊“
科研成果信息登記
同“發(fā)表論文信息登記”
”即可。
其他
其他管理
登錄密碼信息修改
點擊“其他—其他管理—登錄密碼信息修改”顯示如圖27所示頁面。
圖27 在圖27中,可以對學(xué)生的登錄名稱和登錄密碼,修改完成后點擊“
照片信息核對管理
點擊“其他—其他管理—照片信息核對管理”顯示如圖28所示頁面
”即可。
圖28 點擊“上傳照片”可以上傳自己的學(xué)籍照片。
培養(yǎng)方案信息查看
點擊“其他—其他管理—培養(yǎng)方案信息查看”顯示如圖29所示頁面
圖29 在查詢欄內(nèi)輸入查詢條件,點擊“查詢”查找到符合查詢條件的培養(yǎng)方案信息。點擊“校內(nèi)專業(yè)名稱”下對應(yīng)的專業(yè)名稱,即可查看該專業(yè)的培養(yǎng)方案信息。
獎學(xué)金信息查看
可查看獎學(xué)金發(fā)放情況。(略)
教室借用申請管理
點擊“其他—其他管理—教室借用申請管理”顯示如圖30所示頁面
圖30 點擊“ ”按鈕,在彈出的對話框中填寫教室借用申請信息后點擊“保存”即可。
互動信息
通知公告信息查詢
點擊“其他—互動信息—通知公告信息查詢”顯示如圖31所示頁面
圖31 在查詢欄輸入查詢起始時間,點擊“查詢”即可查詢到該段時間內(nèi)發(fā)布的通知公告信息,點擊通知公告標(biāo)題即可查看改通知公告的內(nèi)容。
師生消息互動管理
點擊“其他—互動信息—師生消息互動管理”顯示如圖32所示頁面
圖32 點擊“收件箱”可查看收到的信息;點擊“發(fā)件箱”可發(fā)送消息;點擊“回復(fù)箱”可查看回復(fù)別人或別人回復(fù)的消息。
在發(fā)件箱內(nèi)點擊“
”彈出如圖33所示頁面
圖33 首先編寫信息標(biāo)題和信息內(nèi)容,點擊“
”按鈕。選擇接收人員是個人時,點擊“
”按鈕選擇信息接收人。選擇接收人員是院系和專業(yè)時,首先選擇接收消息的院系或?qū)I(yè),然后選擇接收范圍“學(xué)生”、“教師”或“全部”。如圖34所示。
圖34 選擇完成后可選擇立即發(fā)送,也可選擇存入發(fā)件箱待確認(rèn)信息無誤后再發(fā)送。教學(xué)評價信息管理
略
問卷調(diào)查信息管理
點擊“其他—互動信息—問卷調(diào)查信息管理”顯示如圖35所示頁面
圖35 若是調(diào)查狀態(tài)為“正在進(jìn)行”,則點擊“”可進(jìn)行問卷調(diào)查答題。若調(diào)查狀態(tài)為“調(diào)查完畢”,點擊“以查看問卷調(diào)查答題信息。
教學(xué)校歷信息查看
可以查看某學(xué)期的教學(xué)校歷信息。(略)
”可
第五篇:學(xué)生管理系統(tǒng)論文
學(xué)生管理系統(tǒng)的設(shè)計
楊世坤 計算機科學(xué)與技術(shù)系 09級 0940141022
摘要:在 VB2008 環(huán)境下,通過連接 Access2000 數(shù)據(jù)庫,建立了一個學(xué)生管理系統(tǒng)。在這個系統(tǒng)里,可以實現(xiàn)學(xué)生學(xué)生的學(xué)號,姓名,性別,民族,年級,出生年月,系別,家庭住址等各種信息的錄入,精確查找,模糊查找,更新,刪除等操作。從程序的界面設(shè)計到源代碼,都做了詳盡的說明,適合初學(xué)者快速掌握信息管理系統(tǒng)開發(fā)的步驟。關(guān)鍵詞:VB;數(shù)據(jù)庫;管理系統(tǒng);access;查詢
Abstract: It is designed for the establishment of student information managementsystem in vb6.0 by connecting Access2000 database.This system can realize Information Processing including data entry, query, update, delete and so on.The Information means the student's number,name,age, contact.From the interface design to the source code, it has shown a detailed description, which suitable for beginners tomaster the designing of system quickly.Key words: vb;database;system of management;access;query 1 引言
隨著學(xué)校辦學(xué)規(guī)模的擴大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生各種信息的數(shù)量也在成倍增長。面對龐大的信息量,利用計算機信息管理系統(tǒng)對學(xué)生的學(xué)號,姓名,性別,民族,年級,出生年月,系別,家庭住址等綜合信息進(jìn)行管理經(jīng)成為一種必然趨勢。我根據(jù)學(xué)校特點,通過開發(fā)學(xué)生信息管理系統(tǒng),可以做到信息的規(guī)范管理、科學(xué)統(tǒng)計和快速查詢,從而解決大量繁瑣的工作,實現(xiàn)學(xué)生信息管理的辦公無紙化和高效化。功能需求分析
學(xué)生管理系統(tǒng)采用 Visual Basic 2008 作為開發(fā)工具,后臺數(shù)據(jù)庫采用 Assecc2000。系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)學(xué)生信息管理的條理化,系統(tǒng)化。用戶通過界面,完成對學(xué)生的學(xué)號,姓名,性別,民族,年級,出生年月,系別,家庭住址等信息的管理??梢詫W(xué)生信息方便的實現(xiàn)輸入,刪除,修改,模糊查詢,精確查詢,在瀏覽記錄時可以切換上一條,下一條,第一條和最后一條。還可對學(xué)生信息記錄進(jìn)行排序。數(shù)據(jù)庫建立與連接
3.1 數(shù)據(jù)庫建立
目前,可應(yīng)用的數(shù)據(jù)庫開發(fā)工作很多,Oracle是面向網(wǎng)絡(luò)計算的數(shù)據(jù)庫,適合開發(fā)大型網(wǎng)絡(luò)應(yīng)用軟件;Access和Visual Foxpro系統(tǒng)適合開發(fā)小型數(shù)據(jù)庫應(yīng)用軟件。Access數(shù)據(jù)庫功能比較齊全,數(shù)據(jù)的備份、拷貝都很方便,且程序發(fā)布時不需要額外安裝其他的數(shù)據(jù)庫管理軟件。本系統(tǒng)數(shù)據(jù)量較小,采用Access數(shù)據(jù)庫就可滿足要求。
3.2 數(shù)據(jù)庫連接
VB 提供了多種與數(shù)據(jù)庫連接的方式,這里使用數(shù)據(jù)控件(Data)。數(shù)據(jù)控件(Data)提供 了一種方便地訪問數(shù)據(jù)庫中數(shù)據(jù)的方法,使用數(shù)據(jù)控件無須編寫代碼就可以對 VB 所支持 的各種類型的數(shù)據(jù)庫執(zhí)行大部分?jǐn)?shù)據(jù)訪問操作。數(shù)據(jù)控件本身不能顯示和直接修改記錄,但是可以通過與數(shù)據(jù)控件相關(guān)聯(lián)的數(shù)據(jù)約束控件中顯示各個記錄。用戶界面設(shè)計 在 Visual Basic2008 環(huán)境中,建立一個標(biāo)準(zhǔn)的 exe 工程。學(xué)生的學(xué)號,姓名,性別,民族,年級,出生年月,系別,家庭住址用文本框控件來顯示,名稱分別為 text1,text2…text8, 他們分別與數(shù)據(jù)庫中的相應(yīng)字段綁定。
選擇數(shù)據(jù)控件 data1,并設(shè)置它的屬性,使得它與數(shù)據(jù)庫連接。實現(xiàn)記錄的第一條,上一條,下一條,最后一條的切換以及添加記錄,刪除記錄和編輯記錄的操作用按鈕來控制實現(xiàn),名稱分別為 command1,command2…command7。對按不同的條件進(jìn)行查詢,這里使用了組合框 Combo1 和 Combo2,分別用來選擇精確查找和模糊查找的條件。代碼
程序的實現(xiàn)主要使用了 data 控件的常用方法。對于精確查找和模糊查找中的“查找第一個”與“查找下一個”按鈕的事件中,它
們所使用的查找條件是一樣的,所以需要先定義窗體變量。5.1 登陸界面
mystr = “Provider=Microsoft.Jet.OLEDB.4.0;Data source=student.mdb”
myconn.ConnectionString = mystr
myconn.Open()
Dim mycmd As New OleDbCommand
mycmd.Connection = myconn
mycmd.CommandText = “select * from admin”
Dim myreader As OleDbDataReader = mycmd.ExecuteReader
While myreader.Read()
If TextBox1.Text = myreader(“ID”).ToString And TextBox2.Text = myreader(“psw”)Then
MsgBox(“用戶名密碼正確!!”, MsgBoxStyle.Information, “提示”)
Module1.password = TextBox2.Text
Module1.username = TextBox1.Text
Module1.pright = myreader(“pright”)
Form1.Show()
Me.Hide()
Exit Sub
End If
End While
MsgBox(“用戶密碼不正確”, MsgBoxStyle.Information, “提示”)
TextBox1.Text = “"
TextBox2.Text = ”“
TextBox1.Focus()5.2 添加刪除用戶
在實際應(yīng)用中,除了超級用戶之外,往往會賦予用戶一定的訪問權(quán)限,在給用戶設(shè)置訪問權(quán)限之前,應(yīng)先創(chuàng)建一個用戶帳戶,將其追加到用于當(dāng)前數(shù)據(jù)庫的工作組信息文件中的默認(rèn)Users組。本系統(tǒng)的安全措施在數(shù)據(jù)庫的訪問過程中雖然起到了一定的防護(hù)作用,然而,盡管人們想到了種種辦法維護(hù)自己的數(shù)據(jù)安全,但也總是有漏洞被發(fā)現(xiàn),因此,備份數(shù)據(jù)是簡單有效的方法。5.2 記錄的跳轉(zhuǎn) 查找首記錄 mybs.MoveFirst()
Label9.Text = ”共有“ & mybs.Count & ”條記錄,“ & ”本記錄為第“ & mybs.Position + 1 & ”條記錄“ 查找下一條記錄
If mybs.Position <> mybs.Count-1 Then
mybs.MoveNext()
Label9.Text = ”共有“ & mybs.Count & ”條記錄,“ & ”本記錄為第“ & mybs.Position + 1 & ”條記錄“
Else
MsgBox(”已經(jīng)是最后一條記錄“, MsgBoxStyle.Information, ”提示“)
End If 查找上一條記錄 If mybs.Position <> 0 Then
mybs.MovePrevious()
Label9.Text = ”共有“ & mybs.Count & ”條記錄,“ & ”本記錄為第“ & mybs.Position + 1 & ”條記錄“
Else
MsgBox(”已經(jīng)是第一條記錄“, MsgBoxStyle.Information, ”提示“)
End If 查找末記錄 mybs.MoveLast()
Label9.Text = ”共有“ & mybs.Count & ”條記錄,“ & ”本記錄為第“ & mybs.Position + 1 & ”條記錄“ 5.3 記錄的修改、刪除、添加、保存
記錄的修改
a = 3
Button5.Enabled = False
Button6.Enabled = False
Button8.Enabled = True
Button7.Enabled = False
GroupBox2.Enabled = False 記錄的刪除
a = 1
Button5.Enabled = False
Button6.Enabled = False
Button8.Enabled = True
Button7.Enabled = False
GroupBox2.Enabled = False 記錄的添加
a = 2
TextBox1.Text = ”“
TextBox2.Text = ”“
TextBox3.Text = ”“
TextBox4.Text = ”“
TextBox5.Text = ”“
TextBox6.Text = ”“
TextBox7.Text = ”“
TextBox8.Text = ”“
TextBox1.Focus()
Button5.Enabled = False
Button6.Enabled = False
Button8.Enabled = True
Button7.Enabled = False
GroupBox2.Enabled = False 記錄的保存
Select Case a
Case 1
If MsgBox(”您確定刪除此條記錄嗎?“, MsgBoxStyle.Question + MsgBoxStyle.YesNo, ”提示“)= MsgBoxResult.Yes Then
myds.Tables(”info“).Rows(mybs.Position).Delete()
Dim mybd = New OleDbCommandBuilder(myada)
myada.Update(myds, ”info“)
myds.Clear()
myada.Fill(myds, ”info“)
GroupBox2.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
Button8.Enabled = False
Else
GroupBox2.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
Button8.Enabled = False
End If
Case 2
Dim myrow As DataRow = myds.Tables(”info“).NewRow
myrow(”學(xué)號“)= TextBox1.Text
myrow(”姓名“)= TextBox2.Text
myrow(”性別“)= TextBox3.Text
myrow(”民族“)= TextBox4.Text
myrow(”年級“)= TextBox5.Text
myrow(”出生年月“)= TextBox6.Text
myrow(”系“)= TextBox7.Text
myrow(”家庭住址“)= TextBox8.Text
myds.Tables(”info“).Rows.Add(myrow)
GroupBox2.Enabled = True
Dim mybd = New OleDbCommandBuilder(myada)
myada.Update(myds, ”info“)
myds.Clear()
myada.Fill(myds, ”info“)
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
Button8.Enabled = False
Case 3
myds.Tables(”info“).Rows(mybs.Position).BeginEdit()
myds.Tables(”info“).Rows(mybs.Position).EndEdit()
Dim mybd = New OleDbCommandBuilder(myada)
myada.Update(myds, ”info“)
myds.Clear()
myada.Fill(myds, ”info“)
GroupBox2.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
Button8.Enabled = False
End Select
Label9.Text = ”共有“ & mybs.Count & ”條記錄,“ & ”本記錄為第“ & mybs.Position + 1 & ”條記錄“
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button6.Click
a = 1
Button5.Enabled = False
Button6.Enabled = False
Button8.Enabled = True
Button7.Enabled = False
GroupBox2.Enabled = False 5.4 記錄的查找 Dim condstr As String
condstr=”“
If TextBox1.Text <> ”“ Then
If condstr = ”“ Then
If ComboBox1.Text = ”等于“ Then
condstr = ”姓名='“ & TextBox1.Text & ”'“
Else
condstr = ”姓名 like '%“ & TextBox1.Text & ”%'“
End If
End If
End If
If TextBox2.Text <> ”“ Then
If condstr = ”“ Then
condstr = ”性別='“ & TextBox2.Text & ”'“
Else
condstr = condstr & ” and “ & ”性別='“ & TextBox2.Text & ”'“
End If
End If
If TextBox3.Text <> ”“ Then
If condstr = ”“ Then
condstr = ”民族='“ & TextBox2.Text & ”'“
Else
condstr = condstr & ” and “ & ”民族='“ & TextBox2.Text & ”'“
End If
End If
If TextBox4.Text <> ”“ Then
If condstr = ”“ Then
If ComboBox2.Text = ”等于“ Then
condstr = ”家庭住址='“ & TextBox4.Text & ”'“
Else
condstr = condstr & ” and “ & ”家庭住址 like '%“ & TextBox4.Text & ”%'"
End If
End If
End If
mydv.RowFilter = condstr 6 結(jié)束語
本系統(tǒng)達(dá)到了預(yù)期的要求,系統(tǒng)設(shè)計是根據(jù)學(xué)校的學(xué)生信息管理流程,合理設(shè)置各種操作模塊,各管理員和操作員之間分工明確,并且能夠及時、準(zhǔn)確地記錄每次操作信息。操作簡單易行,定期審核,確保了數(shù)據(jù)的正確性。從根本上解決了學(xué)生管理的計算機實現(xiàn)方式,對學(xué)校管理來講是一個大的跨越。
參考文獻(xiàn):鄭阿奇 彭作民 Visual Basic.NET 程序設(shè)計教程(第二版)械工業(yè)出版社