还剩15页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
商洛学院C语言课程设计报告题目学生信息管理系统院系名称计算机科学系专业名称信息管理与信息系统指导老师赵国强小组成员张少勃,张煌,李荣贵,杨鹏坤,李桥一.设计目的
1.通过本次试验,能更好的对链表结构体、部分的相关知识有一个系统的复习和提高
2.从实验中找出自己在对整体程序设计上的缺陷,并在以后加以改进二.设计内容编写学生信息管理系统,包含数据的插入、显示、修改、删除、查找,文件的读写三.概要设计1.功能模块图
(1)用户进入模块2主菜单3插入模块当用户输入选择使用的功能为1时,进入插入功能显示如下界面在输入完成后按enter键显示如下输入y则继续输入,输入n则返回主菜单4查询模块当用户输入选择使用的功能为2时,进入查询功能显示如下界面输入学号1则显示按enter返回主菜单5显示模块当用户输入选择使用的功能为3时,进入显示所有信息功能显示如下界面按enter键返回主菜单6删除模块当用户输入选择使用的功能为4时,进入删除功能显示如下界面输入要删除的学号信息,按enter键,系统就会进行删除信息,删除成功后显示如下按enter键返回主菜单7修改模块当用户输入选择使用的功能为5时,进入修改功能显示如下界面修改完成后输入n返回主菜单,按y继续修改8)退出若要退出,在主菜单界面输入6则会退出本系统2.各个模块详细的功能描述1用户进入界面每次都进入必须输入__才能进入主菜单2主菜单通过数据的录入(或打开存储的文件)实现信息的修改、插入、删除、查找,然后打印输出四.详细设计1.功能函数的调用关系图2.重点设计及编码
1.__输入相关代码voidfirst{inti;do{printf***************学生信息管理系统中**************\n;printf*******************系统初始化******************\n;printf初始__:;scanf%di;fflushstdin;systemcls;}whilei!=123;}
2.插入信息相关代码voidinsertintcountstructstust[]{charb;printf\t\t\t学生信息添加\n;for;b!=n;{ifn==30{printf满员无法添加;break;};systemcls;printf\n\t\t\t请输入学号;scanf%dst[n].num;printf\n\t\t\t请输入姓名;scanf%sst[n].name;printf\n\t\t\t请输入性别;scanf%sst[n].___;printf\n\t\t\t请输入家庭住址;scanf%sst[n].add;n++;printf\t\t\t是否继续y\\n:;fflushstdin;scanf%cb;systemcls;fflushstdin;whileb!=y{ifb==nbreak;ifb!=yprintf\n\t\t\ty\\n;scanf%cb;fflushstdin;};}fflushstdin;printf\t\t\t返回功能菜单……;}
3.查询信息相关代码voidquerstructstust[]{intm=1;intt;intx;x=0;printf\t\t\t\t请输入要查询的学号:;scanf%dt;systemcls;forx=0;x=30;x++ifst[x].num==t{head;printf%d\t%s\t%s\t%s\nst[x].numst[x].namest[x].___st[x].add;m=0;};ifm==1printf\t\t无查询信息;fflushstdin;}
4.显示信息在主菜单上输入3时进入,则显示所有插入的信息相关代码voiddispintcountstructstust[]{intj=0;systemcls;head;for;jn;j++printf%d\t%s\t%s\t%s\nst[j].numst[j].namest[j].___st[j].add;}
5.删除信息相关代码voiddelstructstust[]{intm=1;intt;intx;intx1;x=0;printf\t\t\t请输入要删除的学生的学号:;scanf%dt;forx=0;x=nm;x++ifst[x].num==t{forx1=x;x1=n;x1++st[x1]=st[x1+1];m=0;printf已删除该信息\n;n--;};ifm==1printf无需要删除的信息\n;fflushstdin;}
6.修改信息相关代码voiddelstructstust[]{intm=1;intt;intx;intx1;x=0;printf\t\t\t请输入要删除的学生的学号:;scanf%dt;forx=0;x=nm;x++ifst[x].num==t{forx1=x;x1=n;x1++st[x1]=st[x1+1];m=0;printf已删除该信息\n;n--;};ifm==1printf无需要删除的信息\n;fflushstdin;}五.测试数据及运行结果1插入信息(打开文件)进入插入界面输入图上内容按n选择退出
(2)查找信息在选择菜单上输入2弹出让用户输入要查找的学号信息在输入后按enter键会出现如下界面
(3)显示信息在选择菜单上输入3按回车键会显示系统存储的所有的信息4删除信息在主菜单上输入4后会有提示让用户输入要删除的学号信息,输入后则会删除该学号的相关所有信息检查时进入查看信息功能,进入后则没有显示该学号的相关信息5修改信息修改后进入查看信息功能,打印出的数据中没有修改前的信息六.调试情况,设计技巧及体会好的方面,界面之间的转换,尽量减少了系统的缺陷,提示语句人性化,便于使用函数的调用及返回值,系统设置__可以保护用户的信息不外泄但是,程序可读性不太高,注释说明语句太少,程序做出来是给别人使用的,以后的学习中应该注意七.附录(电子版源代码)#includestdio.h#includestring.h#includestdlib.h#includewindows.hvoidenter;intreaddata;voidstra;ints__e;voiddispintstructstust[];voidquerstructstust[];voidinsertintstructstust[];voiddelstructstust[];voidmodfixstructstust[];voidhead;voidrestra;s__eflag=0;structstu{intnum;charname
[30];char___
[4];charadd
[40];};intn=0;structstust
[30]*p=st;FILE*fp;int__in{enter;readdata;stra;s__e;fclosefp;return0;}voidenter{inti;do{printf***************学生信息管理系统中**************\n;printf*******************系统初始化******************\n;printf初始__:;scanf%di;fflushstdin;systemcls;}whilei!=123;}intreaddata{FILE*fp;iffp=fopenstdata.___r==NULL{printf数据文件无法打开,请检查数据文件\n;return0;}while!feoffp{fscanffp%d\t%s\t%s\t%s\nst[n].numst[n].namest[n].___st[n].add;n++;}fclosefp;return1;}ints__e//保存数据{intq;iffp=fopenstdata.___w==NULL{printf\t\t\t文件无法打开\n;return0;};forq=0;qn;q++fprintffp%d\t%s\t%s\t%s\nst[q].numst[q].namest[q].___st[q].add;fclosefp;return1;}voidstra{inti;charc;do{fori=0;i5;i++printf\n;printf\n;restra;printf**************************************************\n;restra;printf*欢迎使用学生信息查询系统*\n;restra;printf*_______________________________________________*\n;restra;printf*
1.插入信息
2.查询信息*\n;restra;printf*
3.显示信息
4.删除信息*\n;restra;printf*
5.修改信息
6.退出系统*\n;restra;printf**\n;restra;printf**************************************************\n;restra;printf选择使用的功能;scanf%cc;fflushstdin;switchc{case1:restra;printf功能1\n;insertnp;s__ep;getchar;break;case2:restra;printf功能2\n;querp;getchar;break;case3:restra;printf功能3\n;dispnp;getchar;break;case4:restra;printf功能4\n;delp;s__e;getchar;break;case5:restra;printf功能5\n;modfixp;s__e;getchar;break;case6:printf\n;restra;printf您选择了退出本系统!\n谢谢使用您的使用!;break;};systemcls;}whilec!=6;ifc==6{intk;printf\n;restra;ifs__eflag==1{fflushstdin;printf学生数据已经改动,是否保存【y/n】:;k=getchar;fflushstdin;ifk==ys__est;}printf\n\t\t数据保存成功!谢谢使用本系统!!;}}voidrestra{inti;fori=0;i=1;i++printf\t;}voiddispintcountstructstust[]{intj=0;systemcls;head;for;jn;j++printf%d\t%s\t%s\t%s\nst[j].numst[j].namest[j].___st[j].add;}voidquerstructstust[]{intm=1;intt;intx;x=0;printf\t\t\t\t请输入要查询的学号:;scanf%dt;systemcls;forx=0;x=30;x++ifst[x].num==t{head;printf%d\t%s\t%s\t%s\nst[x].numst[x].namest[x].___st[x].add;m=0;};ifm==1printf\t\t无查询信息;fflushstdin;}voidinsertintcountstructstust[]{charb;printf\t\t\t学生信息添加\n;for;b!=n;{ifn==30{printf满员无法添加;break;};systemcls;printf\n\t\t\t请输入学号;scanf%dst[n].num;printf\n\t\t\t请输入姓名;scanf%sst[n].name;printf\n\t\t\t请输入性别;scanf%sst[n].___;printf\n\t\t\t请输入家庭住址;scanf%sst[n].add;n++;s__eflag=1;printf\t\t\t是否继续y\\n:;fflushstdin;scanf%cb;systemcls;fflushstdin;whileb!=y{ifb==nbreak;ifb!=yprintf\n\t\t\ty\\n;scanf%cb;fflushstdin;};}fflushstdin;printf\t\t\t返回功能菜单……;}voiddelstructstust[]{intm=1;intt;intx;intx1;x=0;printf\t\t\t请输入要删除的学生的学号:;scanf%dt;forx=0;x=nm;x++ifst[x].num==t{forx1=x;x1=n;x1++st[x1]=st[x1+1];m=0;printf已删除该信息\n;n--;};ifm==1printf无需要删除的信息\n;fflushstdin;}voidmodfixstructstust[]{intf;intxh;intm1=1;systemcls;printf\t\t输入需要修改的学生信息的学号:;scanf%dxh;forf=0;f=nm1;f++ifst[f].num==xh{printf\n\t\t\t请输入新学号;scanf%dst[f].num;printf\n\t\t\t请输入新姓名;scanf%sst[f].name;printf\n\t\t\t请输入新性别;scanf%sst[f].___;printf\n\t\t\t请输入新家庭住址;scanf%sst[f].add;m1=0;printf\t\t\t是否继续y\\n:;fflushstdin;};ifm1==1printf无需要修改的信息\n;fflushstdin;}voidhead{printf学号\t姓名\t性别\t家庭住址\n;}主函数用户登录主菜单显示信息修改信息插入信息查询信息删除信息通过学号删除通过学号修改通过学号查询。