java学生宿舍管理系统怎么设计

java学生宿舍管理系统怎么设计,第1张

我给你讲一下大概的思路:

1:第一步:设计数据库,一般像这种小型宿舍管理系统,选用mysql作为数据库,然后就是设计表,包括表中的字段名,字段的大小以及表之间的关系

2:第二布:确认使用的技术,作为java,你可以选用Springmvc作为mvc框架,毕竟它比较灵活和简单,然后Spring是必须的,用来管理事务,Hibernate作为后台数据库管理框架,jsp作为页面表现层。这样的程序比较健壮,扩展起来比较方便

3:在第二步的基础上,接下来就是建立Bean类,比如学生类、宿舍类等等,映射数据库表的字段,然后就是编写Service层、Dao层,等等建立数据处理逻辑

4:实现表现层,写jsp页面,你想在前台展示的内容就可以写在jsp里面,这里可以选用的技术有juqery,js。如果为了考虑用户体验,可以用ajax,实现异步无刷新交互。

5:前后台相互通信,用juint进行集成测试,看看数据是否按照逻辑准确的显示出来。后期测试等等

当然如果嫌麻烦,可以不采用ssh框架,可以直接用jsp+servlet写,这样比较简单,原理大概也差不多。只不过分层没这么清晰和明确了。

给你个学生成绩管理的,你改一下变量名就好了

#include

#include

#define LEN sizeof(struct student)

#define N 35

#include

#define NULL 0

int n=0

char m[8]={'0','1','2','3','4','5','6','7'}

int ichar c[10]char d[10]

char fname[20],fname0[20],fname6[20]={"shanchu"}

struct student

{long num

char name[10]

int eng

int math

int comp

int ave

int all

}p

void shuru()

{FILE *fp

printf("\n\n\t请输入存储学生数据的文件名:")

scanf("%s",fname)

fp=fopen(fname,"w")

printf("\t输入的数据之间请用跳格键(Tab)隔开\n\t每输入完一个学生的信按回车键(Enter)\n")

printf("\t结束输入学生数据时,请输入一个学生的学号为0并按回车键\n")

printf("\t学号 姓名 英语 数学 计算机\n")

do{ printf("\t")

scanf("%ld",&p.num)

if(p.num==0) break

scanf("\t%s\t%d\t%d\t%d",p.name,&p.eng,&p.math,&p.comp)

p.all=(p.eng+p.math+p.comp)

p.ave=(p.all/3)

fwrite(&p,LEN,1,fp)

n++

}while(1)

fclose(fp)

}

void chazhao()

{char fname1[20]

FILE *fp

do{printf("\n\n\t请输入查找学生数据的文件名:")

scanf("%s",fname1)

if(strcmp(fname1,fname)==0){fp=fopen(fname,"r")break}

else printf("\t你输入的文件不存在\n")}while(1)

long number

do

{ printf("\t请输入要查找的学生的学号按回键(Enter):")

scanf("%ld",&number)rewind(fp)

for(i=0i { fread(&p,LEN,1,fp)

if(number==p.num) { printf("\t学号 姓名 英语 数学 计算机 平均分 总? \n")

printf("\t%ld\t%s\t%d\t%d\t%d\t%d\t%d\n",p.num,p.name,p.eng,p.math,p.comp,p.ave,p.all)

}

}

printf("\t你还要查找吗?如果继续请输y'加回车键,否'n'加回车键:")

scanf("%s",c)}while(c[0]=='y')

fclose(fp)

}

void paixu()

{FILE *fpchar fname3[20]struct student k[N]

do{printf("\n\n\t请输入你要排序的学生数据的文件名:")

scanf("%s",fname3)

if(strcmp(fname3,fname)==0)

{fp=fopen(fname,"r")break}

else printf("\t你输入的文件不存在\n")}while(1)

rewind(fp)

for(i=0i fread(&k[i],LEN,1,fp)

int w,q,j,g,t,t2,t3,t4,t5char z[10]long t1

for(q=0q {g=q

for(j=q+1j if(k[j].ave t=k[g].avek[g].ave=k[q].avek[q].ave=t

t1=k[g].numk[g].num=k[q].numk[q].num=t1

t2=k[g].engk[g].eng=k[q].engk[q].eng=t2

t3=k[g].mathk[g].math=k[q].mathk[q].math=t3

t4=k[g].compk[g].comp=k[q].compk[q].comp=t4

t5=k[g].allk[g].all=k[q].allk[q].all=t5

for(w=0w<10w++)

{z[w]=k[g].name[w]k[g].name[w]=k[q].name[w]k[q].name[w]=z[w]}

}

fclose(fp)

printf("\n\n\t请输入存储排完序的数据的文件名\n\t注意此文件名和存储原始数据的文件名不相同\n")

printf("\t")

scanf("%s",fname0)

fp=fopen(fname0,"w")

for(i=0i fclose(fp)

}

void shuchu()

{FILE *fpchar fname2[20]

do{printf("\n\n\t请输入你要输出学生数据的文件名:")

scanf("%s",fname2)

if(strcmp(fname2,fname)==0){fp=fopen(fname,"r")break}

else if(strcmp(fname2,fname0)==0){fp=fopen(fname0,"r")break}

else if(strcmp(fname2,fname6)==0){fp=fopen(fname6,"r")break}

else printf("\t你输入的文件不存在\n")}while(1)

rewind(fp)

printf("\t学号 姓名 英语 数学 计算机 平均分 总分\n")

printf("\t==============================================================\n")

for(i=0i {fread(&p,LEN,1,fp)

printf("\t%ld\t%s\t%d\t%d\t%d\t%d\t%d\n",p.num,p.name,p.eng,p.math,p.comp,p.ave,p.all)

}

printf("\t==============================================================\n")

fclose(fp)}

void tongji()

{FILE *fpchar fname4[20]int e1=0,e2=0,e3=0,e4=0,e5=0

do{printf("\n\n\t请输入你要统计的学生数据的文件名:")

scanf("%s",fname4)

if(strcmp(fname4,fname)==0)

{fp=fopen(fname,"r")break}

else printf("\t你输入的文件不存在\n")}while(1)

rewind(fp)

for(i=0i {fread(&p,LEN,1,fp)

if(p.ave<=59&&p.ave>=0)e1=e1+1

if(p.ave<=69&&p.ave>=60)e2=e2+1

if(p.ave<=79&&p.ave>=70)e3=e3+1

if(p.ave<=89&&p.ave>=80)e4=e4+1

if(p.ave<=100&&p.ave>=90)e5=e5+1

}

fclose(fp)

printf("\t按平均分统计各分数段的学生人数 \n")

printf("\t==============================================================\n")

printf("\t分数段\t0--59\t60--69\t70--79\t80--89\t90--100\n")

printf("\t人 数 \t %d\t %d\t %d\t %d\t %d\n",e1,e2,e3,e4,e5)

printf("\t==============================================================\n")

}

void shanchu()

{FILE *fp,*fp1char fname5[20]long numberstruct student M[N]

printf("\n\t")

do{printf("\n\t请输入你要删除学生数据的文件名:")

scanf("%s",fname5)

if(strcmp(fname5,fname)==0)

{fp=fopen(fname,"r")break}

else printf("\n\t你输入的文件不存在 \n")}while(1)

rewind(fp)

fp1=fopen(fname6,"w")

do{printf("\t请输入要删除数据的学生的学号并按回车键:")

scanf("%ld",&number)

for(i=0i {fread(&M[i],LEN,1,fp)

if(M[i].num!=number)fwrite(&M[i],LEN,1,fp1)

}

n--

fcloseall()

fp1=fopen(fname6,"r")fp=fopen(fname,"w")

for(i=0i {fread(&M[i],LEN,1,fp1)fwrite(&M[i],LEN,1,fp)}

fcloseall()

printf("\t你还要删除吗?如果继续请输入'y'加回车键,否则'n'加回车键:")

scanf("%s",c)

}while(c[0]=='y')

}

void charu()

{FILE *fpchar fname7[20]

do{printf("\t请输入你要插入学生数据的文件名:")

scanf("%s",fname7)

if(strcmp(fname7,fname)==0){fp=fopen(fname,"r+")break}

else printf("\t你输入的文件不存在 ")}while(1)

printf("\t请输入你要插入的数据\n\t输入的数据之间请用跳格键(Tab)隔开\n\t每输入完一个学生的数据按回车键(Enter) \n")

printf("\t结束插入学生数据时,请输入一个学生的学号为0并按回车键\n")

printf("\t学号\t姓名\t英语\t数学\t计算机 \n")

do{fseek(fp,n*LEN,0)printf("\t")

scanf("\t%ld",&p.num)

if(p.num==0) break

scanf("\t%s\t%d\t%d\t%d",p.name,&p.eng,&p.math,&p.comp)

p.all=(p.eng+p.math+p.comp)

p.ave=(p.all/3)

fwrite(&p,LEN,1,fp)

n++}while(1)

fclose(fp)

}

void zhujiemian()

{

printf("\n\t 主菜单 \n")

printf("\n")

printf("\t============================================================== \n")

printf("\n")

printf("\t 1.数据输入 2.数据输出 \n")

printf("\n")

printf("\t 3.数据排序(按平均分) 4.数据查找(按学号) \n")

printf("\n")

printf("\t 5.数据的插入 6.数据的删除(按学号) \n")

printf("\n")

printf("\t 7.数据的统计(按平均分)? 0.退出 \n")

printf("\n")

printf("\t============================================================== \n")

printf("\t请输入你的选择(0---7)并按回车键:")

scanf("%s",d)

}

void main()

{do

{

zhujiemian()

if(d[0]==m[0])break

else if(d[0]==m[1]){shuru()printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")}

else if(d[0]==m[2]){shuchu()}

else if(d[0]==m[3]){paixu()}

else if(d[0]==m[4]){chazhao()}

else if(d[0]==m[5]){charu()}

else if(d[0]==m[6]){shanchu()}

else if(d[0]==m[7]){tongji()}

else {printf("\t你的选择不正确!请重新选择! \n")

}

}while(1)

printf("\n\t\n\t\n\t\n\t\n\t\n\t\n\t")

printf("\t\t谢谢你的使用!!! ")

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10870635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存