收藏 分销(赏)

c语言课程设计报告军训管理系统.doc

上传人:二*** 文档编号:4571975 上传时间:2024-09-30 格式:DOC 页数:30 大小:457KB
下载 相关 举报
c语言课程设计报告军训管理系统.doc_第1页
第1页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、. -郵電大學C语言课程设计报告书学院名称计算机学院学生XX专业名称班级学号指导教师时间2013年06月03日至2013年06月12日实验题目:学生军训信息管理系统一、实验目的通过本课程设计,强化上机动手能力,使学生在理论和实践的根底上进一步稳固?C语言程序设计?课程学习的容,掌握工程软件设计的根本法。通过这次实习练习,可以更进一步的熟悉所学的知识,还可以加强和稳固知识。长达两的上机练习,为我们提供了很好的编程环境。更好的了解编程的意义,为将来参加实践活动以及以后的毕业设计打下坚实的根底。二、实验容我设计的是“学生军训信息管理系统,主要是针对军训学生信息的管理,适用对象主要是学校进展军训的学生

2、,以便学校对军训学生的管理。包括学生的XX、学号、专业、班级、所分入的营号和连号等。在编写过程中主要运用C语言的根本知识有:数据类型整形、实型、字符型、指针、数组、构造等;运算类型算术运算、逻辑运算、自增自减运算、赋值运算等;程序构造顺序构造、判断选择构造、循环构造;大程序的功能分解法即函数的调用与使用等。 三、需求分析该程序是由C语言编写的一个军训学生信息查询软件,本程序在Microsoft Visual C+ 6.0下运行,其主要功能是实现对学生信息的录入、浏览、查询、修改、删除、添加。其中浏览可以分别以学号、班级、所分入营号为关键字升序浏览学生信息。四、概要设计1、案设计主函数密码模块查

3、询模块浏览模块修改模块删除模块添加模块退出系统录入模块按学号按班级按班级返回按营号返回按学号按营号2、数据构造说明程序中数据主要是学生信息,具体属于类型如下:struct student_typeint num; /*学生学号*/char name20; /*学生XX*/char major15; /*专业*/int cla; /*班级*/intying; /*所分入营号*/intlian; /*所分入连号*/3、模块功能说明第一录入模块:调用input(),对军训学生信息进展录入以及保存。第二浏览模块:调用scan(),浏览军训学生信息可按录入、学号、班级、营号式查看。第三查询模块:调用fi

4、nd(),按学号、XX、班级、营号查询军训学生信息。第四修改模块:调用change(),对某一学生信息进展修改操作。第五删除模块:调用del(),对某一学生信息进展删除操作。第六添加模块:调用add(),添加学生信息。五、详细设计及运行结果1.函数之间调用关系图修改函数scan()录入函数input()浏览函数scan()删除函数scan()主函数main()添加函数scan()查询函数含排序find()2.局部模块流程图及运行结果图示 登陆界面开场主函数流程图功能选择选1录入模块选2浏览模块查询模块选3选4修改模块删除模块选5添加模块选6选0完毕主页界面(管理员界面)录入模块输入学号输入XX

5、输入专业输入班级输入营号输入连号n是否继续输入完毕y输入学号输入XX输入专业输入班级输入营号输入连号录入界面浏览模块排序功能选择按学号排选1选2按班级排选3按营号排选0回主界面完毕浏览界面查找模块功能选择按学号选1选2按XX选3按班级选4按营号选0回主界面完毕查找界面修改模块功能选择按学号选1按XX选2选3按专业选4按班级选5按营号选6按连号回主界面完毕修改界面六、调试情况,设计技巧及体会1、测试数据对功能1密码设置的测试:选择式一,不需密码直接进入学生查看界面;选择式二,输入一组错误账号密码系统显示“密码有误!请重新输入密码!,三次错误后将退出系统。在输入正确密码后,系统显示“登陆成功并进入

6、主界面。对功能2录入学生信息的测试:按照先后顺序分别输入学生信息:学号 XX 专业 班级 营号 连号88 huan wl 5 3 223 yeye sm 2 5 1 2 huaw tg 3 2 345 lvwu wl 5 5 2对功能3浏览学生信息的测试:按照录入顺序分别输出学生信息:学号 XX 专业 班级 营号 连号88 huan wl 5 3 223 yeye sm 2 5 1 2 huaw tg 3 2 345 lvwu wl 5 5 2同时屏幕显示“以上排序由录入数据的先后决定。也可选择以下为关键词升序查看:1.学号 2.班级 3.所编入营号 0.返回主界面选择1按照学号由小到大输出学

7、生信息选择2按照班级由小到大输出学生信息选择3按照营号由小到大输出学生信息选择0返回主界面对功能4查询学生信息的测试:查询5营的信息,系统显示为:学号 XX 专业 班级 营号 连号23 yeye sm 2 5 145 lvwu wl 5 5 2对功能5修改学生信息的测试:输入要修改学生的学号11:,系统显示“对不起!您所查找的人不存在。输入修改学生学号:88,系统显示出该学生信息。选择修改学号为:13,系统显“已成功保存!。对功能6删除学生信息的测试:输入要删除学生的学号:12,系统显示“删除失败!您所查找的人信息不存在!。输入要删除的学生的学号:23,系统显示“删除成功!已成功保存!。对功能

8、7添加学生信息的测试:按照先后顺序分别输入学生信息:学号 XX 专业 班级 营号 连号16 nana rj 4 1 1230 nini aq 1 4 2 对功能8退出系统的测试:选择退出系统,程序关闭。2、对调试中主要问题进展总结调试过程中,经常会出现输入或显示为乱码的情况,这往往是上下定义的数据类型不同或定义数组长度不够所造成的。有时候程序中还会出现录入五个数据而只显示四个的情况,这也往往是由于定义的构造体数组长度过低所造成的。像这类问题只要把数据类型都定义成字符型,并且定义一个合理的数组长度往往都能解决。在调试过程中我遇到最大的问题出现在删除模块。在运用“rt+翻开文件并对某一数据进展删除

9、后,往往显示会多显示一行数据。这是由于“rt+写数据时只会覆盖数据而不会去除原文件数据,因此文件最后一行数据总会保存在原文件中。后来我先用“rt翻开文件并读取文件中的数据,然后再用“wt翻开原文件将删除后的数据重新写入文件,最终检测运行成功。 3、对自己设计进展评价,指出合理和缺乏之处,提出改良的案本程序拥有很多的优点:第一,它具有作为一个宿舍管理系统的各个功能,包括录入信息、添加信息、修改信息、删除信息、查询信息、统计信息六大主要功能。可以便的进展住宿学生信息的管理。第二,它的各个功能模块在实现时非常便,例如:录入和添加学生信息可以自己控制录入和添加的人数;统计学生信息可以分学号、班级、专业

10、等进展统计等等。第三,它也具有平安性,在进入学生信息管理系统之前要求输入账号和密码,所以非常平安,不会造成信息的外泄。当然程序也有他的缺乏之处,比方密码不能回显“*,这样很容易造成密码的丧失。可以在密码模块中改为回显“*形式,并且可以对密码进展算法加密,这样更能确保信息的平安。 4、在设计过程中的感受“万事开头难这句话在我编写程序的过程中得到了真正的表达。在最初编写的几天里出现了这样那样的错误一大堆,这主要是由于我对根底知识掌握不扎实所造成的。但是随后几天里,我对课本知识进展了回忆并不时的向教师和同学进展请教,慢慢的对编写程序也开场得心应手起来。程序的编写总归是一件费时费力的事情,但只要我们认

11、真编写和调试最后总能成功。 短短的两实习时间我收获颇多,我相信经过这次实习必将为我以后的深入学习打下扎实的根底。七、源程序清单#include#include#include#include#include#include#define N sizeof(struct st_type)void input();void save(struct st_type *head);struct st_type *openf();void find();void change();void del();void add();void scan();struct student_typeint num;

12、/*学生学号*/char name20;/*学生XX*/char major15;/*专业*/int cla;/*班级*/int ying;/*所分入营号*/int lian;/*所分入连号*/;struct st_typestruct student_type massage;struct st_type *next;void main(void)int choice,i,n;char s10;printf(nnnnnnttt *学生军训信息管理系统*n);printf(nnnnn欢送进入学生军训信息管理系统!nn);printf(t 请选择进入式:nn);printf(ttt1.普通用户登

13、入n);printf(ttt2.管理员登入n);printf(n);printf(ttttttt n);printf(ttttttt / n);printf(tttttttn);scanf(%d,&choice);switch(choice)case 1: printf(登入成功!n);printf(按任意键进入系统。n);getch();dosystem(cls);printf(nn*军训信息管理系统*nn);printf( 1.浏览学生信息n);printf( 2.查询学生信息n);printf( 0.退出系统nn);printf(请选择.n);scanf(%d,&choice);swit

14、ch(choice)case 1: scan();break;case 2: find();break;case 0: exit(0);if(choice5)printf(没有此项选项!n);while(1);break;case 2: printf(请输入密码(三次错误后将关闭程序):n);for(i=1;i4;i+)for(n=0;n5)printf(没有此项选项!n);while(1);exit(0);else printf(n密码错误!n请重新输入密码!n);void input()/*录入信息模块*/char a;struct st_type *head,*p1,*p2;system

15、(cls);head=p2=(struct st_type *)malloc(N);p1=(struct st_type *)malloc(N);printf(请输入学生学号:n);scanf(%d,&p1-massage.num);printf(请输入学生XX:n);scanf(%s,p1-massage.name);printf(请输入学生专业:n);scanf(%s,p1-massage.major);printf(请输入学生班级:n);scanf(%d,&p1-massage.cla);printf(请输入学生所分入营号:n);scanf(%d,&p1-massage.ying);pr

16、intf(请输入学生所分入连号:n);scanf(%d,&p1-massage.lian);while(p1-massage.num!=0)p2-next=p1;p2=p1;p1=(struct st_type *)malloc(N);printf(n是否继续输入?(是选y,否选n)n);fflush(stdin);scanf(%c,&a);if(a=n)break;system(cls);printf(请输入学生学号:n);scanf(%d,&p1-massage.num);printf(请输入学生XX:n);scanf(%s,p1-massage.name);printf(请输入学生专业:

17、n);scanf(%s,p1-massage.major);printf(请输入学生班级:n);scanf(%d,&p1-massage.cla);printf(请输入学生所分入营号:n);scanf(%d,&p1-massage.ying);printf(请输入学生所分入连号:n);scanf(%d,&p1-massage.lian);p2-next=NULL;free(p1);save(head);void save(struct st_type *head)/*保存信息*/struct st_type *p;FILE *fp;fp=fopen(1.txt,wt);if(fp=NULL)p

18、rintf(不能翻开文件,存储失败!n);printf(输入任意键返回主界面。n);getch();p=head-next;while(p!=NULL)fwrite(p,sizeof(struct student_type),1,fp);p=p-next;fclose(fp);printf(已成功保存!nn);printf(输入任意键返回主界面。n);getch();struct st_type *openf()/*翻开文件*/FILE *fp;struct st_type *p,*p1,*head;head=p1=(struct st_type *)malloc(N);p=(struct s

19、t_type *)malloc(N);fp=fopen(1.txt,rt);while(fread(p,sizeof(struct student_type),1,fp)p1-next=p;p1=p;p=(struct st_type *)malloc(N);p1-next=NULL;free(p);fclose(fp);return head;void scan()/*浏览信息模块*/int choice;struct st_type *p, *q, t, *r,*head;system(cls);head=openf();p=head-next;printf( 学生学号 XX 专业 班级

20、分入营号 连号nn);while(p!=NULL)printf(%d%s%s%d%d%dn,p-massage.num,p-massage.name,p-massage.major,p-massage.cla,p-massage.ying,p-massage.lian);p=p-next;printf(以上排序由录入数据的先后决定。n也可以选择以下为关键词升序查看:n);printf( 1.学号n);printf( 2.班级n);printf( 3.所编入营号n);printf( 0.返回主界面nn);printf(请选择.n);scanf(%d,&choice);if(choice3)pri

21、ntf(没有此项选项!n);printf(请重新选择.n);scanf(%d,&choice);if(choice=0)return;switch(choice)case 1: for(p = head-next; p; p = p-next)for(q = p-next; q; q = q-next)if(p-massage.num q-massage.num)t = *p;*p = *q;*q = t;r = p-next;p-next = q-next;q-next = r;p = head-next;break;case 2: for(p = head-next; p; p = p-n

22、ext)for(q = p-next; q; q = q-next)if(p-massage.cla q-massage.cla)t = *p;*p = *q;*q = t;r = p-next;p-next = q-next;q-next = r;p = head-next;break;case 3: for(p = head-next; p; p = p-next)for(q = p-next; q; q = q-next)if(p-massage.ying q-massage.ying)t = *p;*p = *q;*q = t;r = p-next;p-next = q-next;q-

23、next = r;p = head-next;break;printf( 学生学号 XX 专业 班级 分入营号 连号nn);while(p!=NULL)printf(%d%s%s%d%d%dn,p-massage.num,p-massage.name,p-massage.major,p-massage.cla,p-massage.ying,p-massage.lian);p=p-next;printf(nn输入任意键返回主界面。n);getch();void find()/*查询信息模块*/int n,choice,i=0;char name20;struct st_type *p,*head

24、;system(cls);head=openf();p=head-next;printf(您可以选择以下为关键词进展查找:n);printf( 1.学号n);printf( 2.XXn);printf( 3.班级n);printf( 4.所编入营号n);printf( 0.返回主界面nn);printf(请选择.n);scanf(%d,&choice);if(choice4)printf(没有此项选项!n);printf(请重新选择.n);scanf(%d,&choice);if(choice=0)return;switch(choice)case 1:printf(请输入要查找的学生学号:)

25、;scanf(%d,&n);printf(n);while(p!=NULL)if(p-massage.num=n)i+;if(i=1)printf( 学生学号 XX 专业 班级 分入营号 连号nn);printf(%d%s%s%d%d%dn,p-massage.num,p-massage.name,p-massage.major,p-massage.cla,p-massage.ying,p-massage.lian);p=p-next;if(i=0)printf(对不起!您所查找的人不存在!n);printf(n输入任意键返回主界面。n);getch();return;break;case 2

26、: printf(请输入要查找的学生XX:);scanf(%s,name);printf(n);while(p!=NULL)if(strcmp(p-massage.name,name)=0)i+;if(i=1)printf( 学生学号 XX 专业 班级 分入营号 连号nn);printf(%d%s%s%d%d%dn,p-massage.num,p-massage.name,p-massage.major,p-massage.cla,p-massage.ying,p-massage.lian);p=p-next;if(i=0)printf(对不起!您所查找的人不存在!n);printf(n输入任

27、意键返回主界面。n);getch();return;break;case 3:printf(请输入要查找的班级:);scanf(%d,&n);printf(n);while(p!=NULL)if(p-massage.cla=n)i+;if(i=1)printf( 学生学号 XX 专业 班级 分入营号 连号nn);printf(%d%s%s%d%d%dn,p-massage.num,p-massage.name,p-massage.major,p-massage.cla,p-massage.ying,p-massage.lian);p=p-next;if(i=0)printf(对不起!您所查找的

28、班级不存在!n);printf(n输入任意键返回主界面。n);getch();return;break;case 4: printf(请输入要查找的营号:);scanf(%d,&n);printf(n);while(p!=NULL)if(p-massage.ying=n)i+;if(i=1)printf( 学生学号 XX 专业 班级 分入营号 连号nn);printf(%d%s%s%d%d%dn,p-massage.num,p-massage.name,p-massage.major,p-massage.cla,p-massage.ying,p-massage.lian);p=p-next;i

29、f(i=0)printf(对不起!您所查找的营不存在!n);printf(n输入任意键返回主界面。n);getch();return;break;printf(n输入任意键返回主界面。n);getch();void change()/*修改信息模块*/int choice,num;struct st_type *p,*head;system(cls);head=openf();p=head-next;printf(请输入要修改的学生学号:n);scanf(%d,&num);printf(n);while(p!=NULL)if(p-massage.num=num)printf( 学生学号 XX

30、专业 班级 分入营号 连号nn);printf(%d%s%s%d%d%dn,p-massage.num,p-massage.name,p-massage.major,p-massage.cla,p-massage.ying,p-massage.lian);break;p=p-next;if(p=NULL)printf(对不起!您所查找的人不存在!n);printf(n输入任意键返回主界面。n);getch();return;printf(n请输入选择需要修改的地:n);printf( 1.学号n);printf( 2.XXn);printf( 3.专业n);printf( 4.班级n);pri

31、ntf( 5.所编入营号n);printf( 6.所编入连号n);scanf(%d,&choice);switch(choice)case 1: printf(请输入修改的值:);scanf(%d,&p-massage.num);printf(修改成功!修改后信息为:n);printf(%d%s%s%d%d%dnn,p-massage.num,p-massage.name,p-massage.major,p-massage.cla,p-massage.ying,p-massage.lian);save(head);break;case 2: printf(请输入修改的值:);scanf(%s,

32、p-massage.name);printf(修改成功!修改后信息为:n);printf(%d%s%s%d%d%dnn,p-massage.num,p-massage.name,p-massage.major,p-massage.cla,p-massage.ying,p-massage.lian);save(head);break;case 3: printf(请输入修改的值:);scanf(%s,p-massage.major);printf(修改成功!修改后信息为:n);printf(%d%s%s%d%d%dnn,p-massage.num,p-massage.name,p-massage.major,p-massage.cla,p-m

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服