c语言课程设计报告军训管理系统Word下载.docx

上传人:b****5 文档编号:18364984 上传时间:2022-12-15 格式:DOCX 页数:31 大小:362.53KB
下载 相关 举报
c语言课程设计报告军训管理系统Word下载.docx_第1页
第1页 / 共31页
c语言课程设计报告军训管理系统Word下载.docx_第2页
第2页 / 共31页
c语言课程设计报告军训管理系统Word下载.docx_第3页
第3页 / 共31页
c语言课程设计报告军训管理系统Word下载.docx_第4页
第4页 / 共31页
c语言课程设计报告军训管理系统Word下载.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

c语言课程设计报告军训管理系统Word下载.docx

《c语言课程设计报告军训管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告军训管理系统Word下载.docx(31页珍藏版)》请在冰豆网上搜索。

c语言课程设计报告军训管理系统Word下载.docx

intcla;

/*班级*/

intying;

/*所分入营号*/

intlian;

/*所分入连号*/

3、模块功能说明

第一录入模块:

调用input(),对军训学生信息进行录入以及保存。

第二浏览模块:

调用scan(),浏览军训学生信息(可按录入、学号、班级、营号方式查看)。

第三查询模块:

调用find(),按学号、姓名、班级、营号查询军训学生信息。

第四修改模块:

调用change(),对某一学生信息进行修改操作。

第五删除模块:

调用del(),对某一学生信息进行删除操作。

第六添加模块:

调用add(),添加学生信息。

五、详细设计及运行结果

1.函数之间调用关系图

2.部分模块流程图及运行结果图示

登陆界面

主函数流程图

主页界面(管理员界面)

录入模块

录入界面

浏览模块(排序)

浏览界面

查找模块

查找界面

修改模块

修改界面

六、调试情况,设计技巧及体会

1、测试数据

对功能1(密码设置)的测试:

选择方式一,不需密码直接进入学生查看界面;

选择方式二,输入一组错误账号密码系统显示“密码有误!

请重新输入密码!

”,三次错误后将退出系统。

在输入正确密码后,系统显示“登陆成功”并进入主界面。

对功能2(录入学生信息)的测试:

按照先后顺序分别输入学生信息:

学号姓名专业班级营号连号

88huanwl532

23yeyesm251

2huawtg323

45lvwuwl552

对功能3(浏览学生信息)的测试:

按照录入顺序分别输出学生信息:

同时屏幕显示“以上排序由录入数据的先后决定。

也可选择以下为关键词升序查看:

1.学号2.班级3.所编入营号0.返回主界面

选择1按照学号由小到大输出学生信息

选择2按照班级由小到大输出学生信息

选择3按照营号由小到大输出学生信息

选择0返回主界面

对功能4(查询学生信息)的测试:

查询5营的信息,系统显示为:

对功能5(修改学生信息)的测试:

输入要修改学生的学号11:

,系统显示“对不起!

您所查找的人不存在”。

输入修改学生学号:

88,系统显示出该学生信息。

选择修改学号为:

13,系统显“已成功保存!

”。

对功能6(删除学生信息)的测试:

输入要删除学生的学号:

12,系统显示“删除失败!

您所查找的人信息不存在!

输入要删除的学生的学号:

23,系统显示“删除成功!

已成功保存!

对功能7(添加学生信息)的测试:

16nanarj4112

30niniaq142

对功能8(退出系统)的测试:

选择退出系统,程序关闭。

2、对调试中主要问题进行总结

调试过程中,经常会出现输入或显示为乱码的情况,这往往是上下定义的数据类型不同或定义数组长度不够所造成的。

有时候程序中还会出现录入五个数据而只显示四个的情况,这也往往是由于定义的结构体数组长度过低所造成的。

像这类问题只要把数据类型都定义成字符型,并且定义一个合理的数组长度往往都能解决。

在调试过程中我遇到最大的问题出现在删除模块。

在运用“rt+”打开文件并对某一数据进行删除后,往往显示会多显示一行数据。

这是由于“rt+”写数据时只会覆盖数据而不会清除原文件数据,因此文件最后一行数据总会保留在原文件中。

后来我先用“rt”打开文件并读取文件中的数据,然后再用“wt”打开原文件将删除后的数据重新写入文件,最终检测运行成功。

3、对自己设计进行评价,指出合理和不足之处,提出改进的方案

本程序拥有很多的优点:

第一,它具有作为一个宿舍管理系统的各个功能,包括录入信息、添加信息、修改信息、删除信息、查询信息、统计信息六大主要功能。

可以方便的进行住宿学生信息的管理。

第二,它的各个功能模块在实现时非常方便,例如:

录入和添加学生信息可以自己控制录入和添加的人数;

统计学生信息可以分学号、班级、专业等进行统计等等。

第三,它也具有安全性,在进入学生信息管理系统之前要求输入账号和密码,所以非常安全,不会造成信息的外泄。

当然程序也有他的不足之处,比如密码不能回显“*”,这样很容易造成密码的丢失。

可以在密码模块中改为回显“*”形式,并且可以对密码进行算法加密,这样更能确保信息的安全。

4、在设计过程中的感受

“万事开头难”这句话在我编写程序的过程中得到了真正的体现。

在最初编写的几天里出现了这样那样的错误一大堆,这主要是由于我对基础知识掌握不扎实所造成的。

但是随后几天里,我对课本知识进行了回顾并不时的向老师和同学进行请教,慢慢的对编写程序也开始得心应手起来。

程序的编写总归是一件费时费力的事情,但只要我们认真编写和调试最后总能成功。

短短的两周实习时间我收获颇多,我相信经过这次实习必将为我以后的深入学习打下扎实的基础。

七、源程序清单

#include<

stdio.h>

conio.h>

stdlib.h>

string.h>

ctype.h>

io.h>

#defineNsizeof(structst_type)

voidinput();

voidsave(structst_type*head);

structst_type*openf();

voidfind();

voidchange();

voiddel();

voidadd();

voidscan();

{

intnum;

/*学生学号*/

charname[20];

charmajor[15];

intcla;

/*班级*/

intying;

/*所分入营号*/

intlian;

/*所分入连号*/

};

structst_type

structstudent_typemassage;

structst_type*next;

voidmain(void)

intchoice,i,n;

chars[10];

printf("

\n\n\n\n\n\n\t\t\t*学生军训信息管理系统*\n"

);

\n\n\n\n\n欢迎进入学生军训信息管理系统!

\n\n"

\t请选择进入方式:

\t\t\t1.普通用户登入\n"

\t\t\t2.管理员登入\n"

\n"

\t\t\t\t\t\t\t●●\n"

\t\t\t\t\t\t\t/█\\/█\\\n"

\t\t\t\t\t\t\t▅▆▇█████▇▆▅▃\n"

scanf("

%d"

&

choice);

switch(choice)

{

case1:

printf("

登入成功!

printf("

按任意键进入系统。

getch();

do

{

system("

cls"

printf("

\n\n*****军训信息管理系统*****\n\n"

1.浏览学生信息\n"

2.查询学生信息\n"

0.退出系统\n\n"

请选择...\n"

scanf("

switch(choice)

{

case1:

scan();

break;

case2:

find();

case0:

exit(0);

}

if(choice>

5)

printf("

没有此项选项!

}while

(1);

break;

case2:

请输入密码(三次错误后将关闭程序):

for(i=1;

i<

4;

i++)

{

for(n=0;

n<

6;

n++)

s[n]=getch();

*"

}

s[6]='

\0'

;

if(strcmp(s,"

123456"

)==0)

\n登入成功!

getch();

do

system("

\n1.录入学生信息\n"

2.浏览学生信息\n"

3.查询学生信息\n"

4.修改学生信息\n"

5.删除学生信息\n"

6.添加学生信息\n"

scanf("

switch(choice)

{

input();

case3:

case4:

change();

break;

case5:

del();

case6:

add();

}

if(choice>

printf("

}while

(1);

exit(0);

elseprintf("

\n密码错误!

\n请重新输入密码!

}

}

}

voidinput()/*录入信息模块*/

chara;

structst_type*head,*p1,*p2;

system("

head=p2=(structst_type*)malloc(N);

p1=(structst_type*)malloc(N);

请输入学生学号:

p1->

massage.num);

请输入学生姓名:

%s"

p1->

massage.name);

请输入学生专业:

massage.major);

请输入学生班级:

massage.cla);

请输入学生所分入营号:

massage.ying);

请输入学生所分入连号:

massage.lian);

while(p1->

massage.num!

=0)

p2->

next=p1;

p2=p1;

p1=(structst_type*)malloc(N);

\n是否继续输入?

(是选y,否选n)\n"

fflush(stdin);

scanf("

%c"

a);

if(a=='

n'

break;

system("

p2->

next=NULL;

free(p1);

save(head);

voidsave(structst_type*head)/*保存信息*/

structst_type*p;

FILE*fp;

fp=fopen("

1.txt"

"

wt"

if(fp==NULL)

不能打开文件,存储失败!

输入任意键返回主界面。

getch();

p=head->

next;

while(p!

=NULL)

fwrite(p,sizeof(structstudent_type),1,fp);

p=p->

fclose(fp);

getch();

structst_type*openf()/*打开文件*/

structst_type*p,*p1,*head;

head=p1=(structst_type*)malloc(N);

p=(structst_type*)malloc(N);

rt"

while((fread(p,sizeof(structstudent_type),1,fp)))

p1->

next=p;

p1=p;

p=(structst_type*)malloc(N);

p1->

free(p);

returnhead;

voidscan()/*浏览信息模块*/

intchoice;

structst_type*p,*q,t,*r,*head;

head=openf();

学生学号姓名专业班级分入营号连号\n\n"

%d%s%s%d%d%d\n"

p->

massage.num,p->

massage.name,p->

massage.major,p->

massage.cla,p->

massage.ying,p->

以上排序由录入数据的先后决定。

\n也可以选择以下为关键词升序查看:

1.学号\n"

2.班级\n"

3.所编入营号\n"

0.返回主界面\n\n"

if(choice>

3)

请重新选择...\n"

if(choice==0)

return;

case1:

for(p=head->

p;

p=p->

next)

for(q=p->

q;

q=q->

if(p->

massage.num>

q->

massage.num)

t=*p;

*p=*q;

*q=t;

r=p->

p->

next=q->

q->

next=r;

p=head->

for(q=p->

if(p->

massage.cla>

massage.cla)

t=*p;

*p=*q;

*q=t;

r=p->

p->

q->

p=head->

break;

case3:

massage.ying>

massage.ying)

\n\n输入任意键返回主界面。

voidfind()/*查询信息模块*/

intn,choice,i=0;

structst_type*p,*head;

您可以选择以下为关键词进行查找:

2.姓名\n"

3.班级\n"

4.所编入营号\n"

4)

printf("

请输入要查找的学生学号:

"

scanf("

n);

printf("

while(p!

massage.num==n)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1