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

学生管理系统

学生管理系统



第一篇:学生管理系统

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;

第五篇:学生通讯录管理系统

“学生通讯信息记录系统”的设计与实现

一、设计要求

1.问题的描述

“学生通讯信息记录系统”是为了实现快速的对学生信息进行录入、删除、查找、显示。各个功能靠函数实现。2.需求分析

(1)应该包括以下功能:输入信息、显示信息、查找以姓名作为关键字、删除信息(2)作为一个完整的系统,应具有友好的界面和较强的容错能力

二、概要设计

1.主界面设计

2.储存结构设计

本系统主要采用链表类型来表示储存“学生信息记录系统”中的信息。程序中定义了address结构。其中,包括学生的姓名、宿舍信息和学号。3.系统功能的设计

1)输入信息——enter();2)显示信息———display();3)查找以姓名作为关键字 ———search();4)删除信息———delete();

三、模块设计

1.模块设计

本成绩包含两个模块:主程序模块和链表操作模块。2.系统的程序及功能设计

(1)插入学生信息

void enter()

/*输入函数,本函数循环输入资料,当输入姓名为空时退出*/ {

struct address *info;

/*定义当前结点*/

for(;;){

info=(struct address *)malloc(sizeof(struct address));

/*为当前结点分配空间*/

if(!info)

{

printf(“n Out of memory”);

exit(0);

/*如果分配空间失败,退出程序*/

}

printf(“输入空姓名结束:n”);

inputs(“请输入 姓名:”,info->name,10);

if(!info->name[0])

break;

/*如果输入姓名为空,结束循环*/

inputs(“请输入

院系:”,info->street,50);

inputs(“请输入宿舍楼:”,info->city,15);

inputs(“请输入宿舍号:”,info->state,15);

inputs(“请输入

学号:”,info->eip,7);

insert(info,&start,&last);

/*调用结点插入函数*/ } }

五、测试分析

1.输入学生信息

4.删除信息

5.退出

struct address *start;

/*首结点*/ struct address *last;

/*尾结点*/ struct address *find(char *);

/*声明查找函数*/

void enter();

/*函数声明*/ void search();void save();

void load();void list();void ddelete(struct address **start,struct address **last);void insert(struct address *i,struct address **start,struct address **last);void inputs(char *,char *,int);void display(struct address *);int menu_select(void);

void main(){

int c;

printf(“n

欢迎使用学生通讯录系统”);

printf(“nn”);

printf(“t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“t┃************************************************************┃n”);

printf(“t┃*

*

*┃n”);

printf(“t┃*

1.输入信息

*

2.删除信息

*┃n”);

printf(“t┃*

*

*┃n”);

printf(“t┃************************************************************┃n”);

printf(“t┃*

*

*┃n”);

printf(“t┃*

3.显示信息

*

4.查找

*┃n”);

printf(“t┃*

*

*┃n”);

printf(“t┃************************************************************┃n”);

printf(“t┃

5.退出

┃ n”);

printf(“t┃************************************************************┃n”);

exit(0);

/*如果分配空间失败,退出程序*/ }

printf(“输入空姓名结束:n”);

inputs(“请输入 姓名:”,info->name,10);

if(!info->name[0])break;

/*如果输入姓名为空,结束循环*/

inputs(“请输入

院系:”,info->street,50);

inputs(“请输入宿舍楼:”,info->city,15);

inputs(“请输入宿舍号:”,info->state,15);

inputs(“请输入

学号:”,info->eip,7);

insert(info,&start,&last);

/*调用结点插入函数*/ }

void inputs(char *prompt,char *s,int count)

/*输入函数,有越界检测功能*/ {

char p[255];

do }

i->next=NULL;

i->prior=NULL;

*last=i;

*start=i;

return;

}

else {

(*last)->next=i;

i->prior=*last;i->next=NULL;

*last=(*last)->next;

}

}

void ddelete(struct address **start,struct address **last)

/*删除函数*/

{ struct address *info;

char s[80];

inputs(“请输入 姓名:”,s,10);

/*输入欲删除结点的name域内容*/

info=find(s);

if(info)

{

printf(“Deleting......n”);if(*start==info)

点的下驱作为新的首结点(入口)*/

{ *start=info->next;

if(*start)(*start)->prior=NULL;

else *last=NULL;

}

else

结点*/

{

info->prior->next=info->next;

info=info->next;

}

printf(“未找到相关信息.n”);

return NULL;}

/*输出整个链表*/ void list(void){ struct address *info;

info=start;

if(info==NULL)printf(“当前记录为空!”);else printf(“姓名t院系t宿舍楼t宿舍号t学号tn”);

while(info)

{

};display(info);if(info->next==NULL){break;} info=info->next;

printf(“nn”);}

/*查找函数*/

/*输入欲查找的姓名*/ /*如果没找到,显示Not found*/

/*如果找到,显示该结点资料*/

七、用户使用手册

(1)本程序的执行文件为“学生通讯录管理系统.exe”。

(2)进入本系统之后,随即显示系统住菜单界面。用户可以在该界面下根据提示输入并按回车键确定,执行相应的菜单命令。

(3)本系统可以对学生信息进行录入和删除。

数据结构课程设计

课题:学生成绩管理系统

姓名:孙轩宇

学号:E01014316

专业:计算机科技

院系:计科院

2010.10.8

班级:10

相关内容

热门阅读

最新更新

随机推荐