一个学生学籍信息管理系统VB+SQL的 学生信息管理系统设计(C语言)
来源:国际学校信息网
时间:2024-11-06 03:10:11
本文目录一览:
一个学生学籍信息管理系统VB+SQL的
楼主,先付上报告,如果对你有用的话补充问题再说细节 摘要学生信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析,我们使用MICROSOFT公司的VISUALBASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。关键字:控件窗体域VISULBASICACCESS数据库 Abstract Thesystemofmanagingstudentfileisatypicalapplicationofmanaginginformationsystem(knowasMIS),whichmainlyincludesbuildingupdata-baseofback-endanddevelopingtheapplicationinterfaceoffront-end.Theformerrequiredconsistencyandintegralityandsecurityofdata.Thelatershouldmaketheapplicationpowerfulandeasilyused.Bylookinguplotsofdatum,weselectedVisualBasicpresentedbyMicrosoftbecauseofitsobjectivetoolsinWin32.VBofferedaseriesofActiveXoperatingadata-base.Itcangiveyouashort-cuttobuildupaprototypeofsystemapplication.Theprototypecouldbemodifiedanddevelopedtillusersaresatisfiedwithit.Keywords:ActiveXFormFieldVBAccessDataBase目录摘要1Abstract1前言2第一章课题总体介绍31.1课题介绍31.2课题目的及意义31.3主要设计功能4第二章开发方法的选择42.1开发工具的选择42.2WINDOWS下的VISUALBASIC编程环境介绍42.3使用ACCESS2000实现关系型数据库62.4二者的结合(DBA)72.5硬件开发环境8第三章系统分析83.1系统分析的重要性83.2需求分析93.3可行性分析9第四章系统总体规划104.1系统功能104.2系统流程图114.3总结11第五章系统详细设计125.1系统子模块功能概括125.2用户界面的实现125.3数据库的实现245.4系统的特点275.5目前存在的问题及改进意见27第六章系统测试286.1系统测试的分类286.2系统测试工作的特点286.3本章小结29第七章谢辞30第八章结束语31参考文献32前言学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统设计是以能够为用户提供充足的信息和快捷的查询手段为核心内容的。一直以来人们所使用的传统的人工管理文件信息的方式实在是太落后,它存在着许许多多的缺点,效率低、保密性差的问题尤其突出。另外工作量稍微一大,将会有大量的文件和数据需要维护,有些问题是人工所无法解决的。随着科学技术的不断提高,计算机应用越来越广泛,其强大的功能已为人们所深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点,检索快捷、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些显而易见的优点能够极大地提高学校管理人员的工作效率,也即提高进行学生信息管理的效率。由于这些原因加之指导老师的睿智指导,选择这样一个《学生信息管理系统》的设计也就成了必然。下面我就谈谈《学生信息管理系统》的开发过程中所遇到的问题及解决方法。学生学籍管理系统Java+Oracle
ORACLEJAVA班免费开班了三十年沉淀,王者归来 ORACLEJava品牌专注高级软件编程,以“三十年磨一剑”的心态打造全中国最强(不是之一)ORACLEJava学习体系:包括ORACLEJava体系原厂教材,ORACLEJava学习体系,这些深厚的知识沉淀已被大量高校、培训机构奉为经典。ORACLEJava怀抱“软件强国”的理想,立志以务实的技术来改变中国的软件教育。ORACLEJava精英工程师刘佳鑫带领的讲师团队将带给广大学习者“非一般”的JAVA教育。 ORACLEJava在前两年的培训过程中,凭借自身强悍的师资、一流的课程、真实原厂项目、超高的就业率已经让广大西南学子成功走上软件工程师职业道路。大量学子已通过ORACLEJava实现了就业。 ORACLEJava师资阵容强大,由国际著名ORACLEJava原厂体系做坚强后盾,还有大量具有丰富实战经验的老师同台授课,为响应ORACLE全球人才培养计划,现免费开设技术学习一个月,欢迎广大学子前来试听,机会难得,名额有限。
报名热线:六七八六三五零五何老师 周老师
学生信息管理系统设计(C语言)
#include<stdio.h>#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define max 20
typedef struct student //学生
{
char sno[max]; // 学号
char sname[max]; //姓名
char sex[max]; //性别
char age[max]; //年龄
char depart[max]; //系
char classs[max]; //班
char grade[max]; //年级
struct student* next;
} student;
student* head;
int LogOn() //登录模块,已实现输入密码不回显,如果中途发现输错某几位,可退格键重输
{
char username[max],password[max];
printf("\n请输入用户名:");
scanf("%s",username);
printf("\n请输入密码(最多15位):");
//开始以不回显且支持退格方式获取输入密码
int i=0;
while((i>=0)&&(password[i++]=getch())!=13)//条件i>=0是用于限制退格的范围
{
if(password[i-1]=='\b')//对退格键的处理
{
printf("%c%c%c",'\b','\0','\b');
i=i-2;
}
else
printf("*");
}
password[--i]='\0';
//已获取密码。验证用户身份
if(!strcmp(username,"zhang")&&!strcmp(password,"8147086"))
{
printf("\n登录成功!");
return 1;
}
else
return 0;
}
void regist()
{
char ch;
student *s,*ptr; //s用来建新结点,ptr用来暂存头结点
do
{
s=(student*)malloc(sizeof(student)); // 新建一个学生结点
printf("\n开始注册..."); //开始注册
printf("\n请输入该学生的学号:");
scanf("%s",s->sno);
printf("\n请输入该学生的姓名:");
scanf("%s",s->sname);
printf("\n请输入该学生的性别:");
scanf("%s",s->sex);
printf("\n请输入该学生的年龄:");
scanf("%s",s->age);
printf("\n请输入该学生的系:");
scanf("%s",s->depart);
printf("\n请输入该学生所在的班:");
scanf("%s",s->classs);
printf("\n请输入该学生所在的年级");
scanf("%s",s->grade);
ptr=head;
head=s;//将新结点插入队头
s->next=ptr;
fflush(stdin);
printf("\n请问是否继续注册?(Y/N)");
scanf("%c",&ch);
}while(ch=='Y'||ch=='y');
return;
}
void ElePrint(char str[]) //输出单个元素
{
if(str==NULL) exit(0);
printf("%s",str);
for(unsigned int i=0;i<12-strlen(str);i++) printf(" ");//为了对齐输出,需插入一些空格
return;
}
int LinePrint(student *ptr) //输出一行
{
if(ptr==NULL) //检查传进来的指针
return 0;
printf("\n");
ElePrint(ptr->sno);
ElePrint(ptr->sname);
ElePrint(ptr->age);
ElePrint(ptr->sex);
ElePrint(ptr->depart);
ElePrint(ptr->classs);
ElePrint(ptr->grade);
return 1;
}
void print() //输出全部学生信息
{
student *ptr=head;
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
while(ptr)
{
LinePrint(ptr);
ptr=ptr->next;
}
printf("\n");
return;
}
void search()//查询模块
{
int method;//查询方式
char no[max],name[max],departm[max],clss[max],grades[max]; //用来接收查询关键字
while(1)
{
printf("\n请选择查询方式");
printf("\n1.按学号查询");
printf("\n2.按姓名查询");
printf("\n3.按所在系查询");
printf("\n4.按所在班级查询");
printf("\n5.按所在年级查询");
printf("\n6.打印全部学生信息");
printf("\n7.返回主菜单\n");
scanf("%d",&method);
student *p=head,*temp;
switch(method)
{
case 1:
printf("\n请输入要查询的学号:");
scanf("%s",no);
while(p)
{
if(!strcmp(p->sno,no))
break;
else
{
temp=p;
p=p->next;
}
}
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
LinePrint(p);
break;
case 2:
printf("\n请输入要查询的姓名:");
scanf("%s",name);
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
while(p)
{
if(!strcmp(p->sname,name))
LinePrint(p);
p=p->next;
}
break;
case 3:
printf("\n请输入学生所在的系:");
scanf("%s",departm);
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
while(p)
{
if(!strcmp(p->depart,departm))
LinePrint(p);
p=p->next;
}
break;
case 4:
printf("\n请输入学生所在的班:");
scanf("%s",clss);
printf("\n请输入学生所在的年级:");
scanf("%s",grades);
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
while(p)
{
if(!strcmp(p->classs,clss)&&!strcmp(p->grade,grades))
LinePrint(p);
p=p->next;
}
break;
case 5:
printf("\n请输入学生所在的年级:");
scanf("%s",grades);
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
while(p)
{
if(!strcmp(p->grade,grades))
LinePrint(p);
p=p->next;
}
break;
case 6:
print();
break;
case 7:
return;
default:
printf("很抱歉,暂无此查询方式!");
break;
}
}
}
void modify()//修改学生信息
{
char num[max];
student *p=head;
printf("\n请输入要修改的学生的学号:");
scanf("%s",num);
while(p)
{
if(!strcmp(p->sno,num))
break;
else
p=p->next;
}
if(p==NULL)
{
printf("\n错误:没有此学生的信息!\n");
return;
}
LinePrint(p);
printf("\n请输入要修改的该学生的信息:");
printf("\n1.姓名");
printf("\n2.性别");
printf("\n3.年龄");
printf("\n4.所在的系");
printf("\n5.所在的班");
printf("\n6.所在的年级");
char name1[max],sex1[max],age1[max],depart1[max],class1[max],grade1[max];
int select;
fflush(stdin);
scanf("%d",&select);
printf("\n请输入新的信息:");
switch(select)
{
case 1:
scanf("%s",name1);
strcpy(p->sname,name1);
break;
case 2:
scanf("%s",sex1);
strcpy(p->sex,sex1);
break;
case 3:
scanf("%s",age1);
strcpy(p->age,age1);
break;
case 4:
scanf("%s",depart1);
strcpy(p->depart,depart1);
break;
case 5:
scanf("%s",class1);
strcpy(p->classs,class1);
break;
case 6:
scanf("%s",grade1);
strcpy(p->grade,grade1);
break;
default:
printf("\nError!");
break;
}
LinePrint(p);
return;
}
void del()// 删除某学生的信息
{
student *p=head,*temp=head,*s;
char num1[max];
printf("\n请输入要删除的学生的学号:");
scanf("%s",num1);
while(p)//查找该学生所在的结点
{
if(!strcmp(p->sno,num1))
break;
else
{
temp=p;
p=p->next;
}
}//while
if(!p)
{
printf("\n不存在此学生的信息.");
return;
}
LinePrint(p);//输出该学生的信息
printf("\n请问真的要删除该学生的信息吗?(Y/N)");
char ch;
fflush(stdin);
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
{
s=p->next;
temp->next=s;
free(p);
printf("\n已经删除该学生的信息.");
}
return;
}
void sort() //排序模块。将学生记录按学号从小到大排列。用起泡排序算法实现
{
student *ptr,*s=head,*p;
int count=0,count1;
while(s)//统计链表结点个数
{
count++;
s=s->next;
}
for(int i=1;i<count;i++)
{
ptr=head;
p=NULL;
count1=count-i; //用来控制每轮起泡排序的终点,即每次把学号最小的结点移到倒数第i个结点
while(ptr&&ptr->next&&(count1--))
{
if(strcmp(ptr->sno,ptr->next->sno)>0)
{
s=ptr->next;
ptr->next=s->next;
if(p==NULL) //ptr处于队头时
head=s;
else
p->next=s;
s->next=ptr;
p=s;
}
else
{
ptr=ptr->next;
if(p==NULL) //ptr处于队头时
p=head;
else
p=p->next;
}
}
}
return;
}
void quit()
{
char ch;
printf("\n真的要退出?(Y/N)");
fflush(stdin);
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
exit(0);
return;
}
int main()
{
int option;
printf("\nCopyright@2005 KongXinCai All rights reserved.");
printf("\n欢迎使用学生信息管理系统!\n");
//登录模块
int icheck=0;
while(icheck<3)
{
if(LogOn()==0)
icheck++;
else
break;
}
if(icheck==3)
{
printf("\n连续登录三次不成功,退出!");
exit(0);
}
//系统界面
while(1)
{
printf("\n\n请选择需要的服务:");
printf("\n1.注册");
printf("\n2.查询");
printf("\n3.修改");
printf("\n4.删除");
printf("\n5.排序");
printf("\n7.求平均");
printf("\n6.退出\n");
scanf("%d",&option);
switch(option)
{
case 1:
regist();
break;
case 2:
search();
break;
case 3:
modify();
break;
case 4:
del();
break;
case 5:
sort();
break;
case 6:
quit();
break;
}
}
return 0;
}

免责声明:文章内容来自网络,如有侵权请及时联系删除,联系邮箱:3789926014@qq.com






宁波市镇海蛟川双语小学
宁波国际学校
上海中学国际部
铁岭枫树岭国际学校
天津英华国际学校
石家庄康福外国语学校
六力国际学校
河北联邦国际学校国际部
杭州市实验外国语学校