学生信息管理系统设计_第1页
学生信息管理系统设计_第2页
学生信息管理系统设计_第3页
学生信息管理系统设计_第4页
学生信息管理系统设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.专业综合设计报告书设计名称: 学生姓名: 专 业: 班 别: 学 号: 指导老师: 日 期: 年 月 日综合设计名称学生信息管理系统设计相关课程C语言程序设计完成时间2016年12月19日成绩评定序号评分项名称评分标准得分1设计功能概述全面准确说明设计功能:10分;全面说明设计功能:8分;简要说明设计功能:6分;功能与设计名称无关:5分以下。2设计依据及原理设计依据符合课程要求、原理,并具有现实意义:20分;设计依据符合课程要求、原理:16分;设计依据符合课程要求:12分;设计依据与课程无关:10分以下。3设计体系结构完整表达设计的结构,灵活应用图表等形式:30分;使用文本表达设计的结构:2

2、4分;设计结构基本完成:18分;体系结构与课程设计无关:15分以下。4设计与运行代码与设计步骤清晰,运行成功:30分;完成功能设计,运行成功:24分;设计功能符合要求,运行有问题:20分;设计功能不全,代码出错,不能正常编译和运行:15分以下。5小结表达清楚,实事求是,符合课程要求:10分;表达清楚,符合课程要求:8分;符合课程要求:6分;表达不清楚,不符合课程要求:5分以下。总分等级评分人备注:成绩分为优秀、良好,中等、合格和不合格五个等级目录1.设计功能概述12.设计依据及原理12.1设计分析12.1.1系统总体设计12.1.2详细分析12.2 课程设计原理23.设计体系结构33.1设计目

3、标33.2 体系功能结构图34.设计与运行44.1 调试与测试44.2运行结果45. 小结96. 附件(源代码)9:1.设计功能概述学生信息管理系统,是一个可以增加、删除、浏览、查看、修改学生信息的系统,它是利用C语言实现各功能的。其中学生信息包括:学号、姓名、年龄、电话号码、性别、出生年月、QQ、班级等。该系统可提供添加学生信息、查询学生信息(可以按学号查询和按姓名查询)、删除学生信息(可以按学号删除和按姓名删除)、学生信息修改(可逐项修改学生信息)、学生信息整表浏览等功能。2.设计依据及原理 2.1设计分析 2.1.1系统总体设计主菜单添加学生信息信息整表浏览信息查询按学号查询按姓名查询信

4、息编辑按学号修改按学号删除2.1.2详细分析1)入口函数说明 menu(); 菜单函数 load_info(); 载入函数:txt转为链表 add_info(STU *h); 增加学生 search_info(STU *h,int type); 搜索函数delete_info(STU *h); 删除学生 update_info(STU *h); 修改学生信息output_info(STU *h); 输出信息 preview_info(STU *h,int type);预览信息main(); 主函数2)调用关系delete_info ()update_info ()load_info() add

5、_info(STU*h)main()preview_info () output_info()search_info() output_info() 3)参数说明 add_info(STU*h) 、delete_info(STU*h) 、output_info(STU*h) 、preview_info(STU*h,int type) 、search_info(STU*h,int type) 、update_info(STU*h) 函数中的STU*h为传入的链表节点指针,type为搜索的方式:1为输出传入节点指针的一条学生记录,2为输出所有的学生记录。2.2 课程设计原理 根据总体设计的框架,利

6、用C语言逐项实现各个功能。首先将该系统需要的函数框架罗列出来,然后根据功能要求逐一将各个功能实现,并实现main函数的所有调用,每实现一个功能都进行一次测试,确保将发现的错误在单个功能编写的时候就能解决,以免影响整体效果。最后是整体运行调试。以下是整个系统的设计思路,和运行流程:1)运行程序,显示菜单页面,包括适当的提示信息以及可以实现的各项功能。用户选择输入各功能对应的数字,进入下一级功能页面;2)根据所输入的功能对应的数字,调用对应的各模块函数,显示相应的提示信息令用户进行下一步操作;3)根据用户的输入数据计算或判断,显示出相应的结果以及相应的提示信息,提醒用户进行下一步操作;4)根据选择

7、菜单上对应的功能,可能跳转到添加学生信息、修改学生信息、删除学生信息、浏览学生信息等页面,每结束一个动作,都可以按照选择进行下一个动作;5)当用户选择“0”时,都会结束进程,并关闭系统。3.设计体系结构3.1设计目标该系统的目的主要是加强对学生信息的管理,便于学校对学生信息的统一管理。其中该系统包括以下功能:初始化基本信息界面,即主菜单,有独立的添加与修改界面。添加界面只能连续添加相应的信息,修改界面只能逐项修改学生的信息。删除信息和查询信息都可以通过按学号和按姓名查询和删除,可通过浏览整表浏览所有存在的学生信息表。case6case5case4case3case2case11case0结束程

8、序调用add_info()调用serch_info 调用serch_info调用delete_info调用delete_info调用preview_info(判断cmd!=0?YN输入选择的cmd开始窗口展示主菜单显示载入链表cmd结束3.2 体系功能结构图4.设计与运行4.1 调试与测试 以下是在调试与测试中遇到的一些问题及解决方法1)调用STU * load_info() 函数(文件载入),读写出现乱码解决方法:更改相应指针指向,及有关变量的初值设置。2)边界测试解决方法:用极端的或偏门的情况来探测和验证代码在处理时会发生什么。3)执行窗口执行多次命令后显示过多,不利于输入指令及结果查看解

9、决方法:调用系统清屏函数system(cls);。4)学生信息输出时分不清界限。 解决方法:在学生信息输出结果时,使分割线,使的输出信息对齐。4.2运行结果(1)显示主菜单,调用了main()函数,通过输入命令编号继续程序的执行。(2)输入“1”,即添加学生信息,调用add_info(STU *h);(3)按名字查找学生,调用search_info(STU *h,int type) case2; 查找结果(4)按学号查找学生,调用search_info(STU *h,int type) case1;查找结果(5) 浏览全部学生信息,调用preview_info(STU *h,int type)

10、;(5)按学号删除学生信息,调用delete_info(STU *h); 删除成功(6) 先按学号查询需要修改信息的学生,再修改需要修改的信息,先调用search_info(h,1),再调用update_info(STU *h);修改成功,并用system(cls)清屏。5. 小结在这次系统设计中,我花了比较长的一段时间学习和编写代码,当然也参考了一些资料。毕竟大一的时候学的C语言是比较基础的,也没那么深入的学习。这次实践的结果,不仅实现了学生管理系统的基本功能,即简洁的菜单以及操作使用户能在最短的时间内实现自己想要实现的功能,基本达到了预期目标,而且使我加深了对文件、指针、结构体等的理解,又

11、积累了一些实践经验,同时增强了动手能力和解决实际问题的能力。在设计此系统之前,我的C语言编程能力是比较差的,动手能力十分欠缺,每次都会害怕动手。通过此次程序设计,使我基本了解了C程序设计的步骤,如结构流程图,功能模块分类等等,特别是学会设计系统的基本步骤及思维方法。这次实践增强了我动手编程的信心,同时让我对代码的编辑更加自信。我相信机会都是留给有准备的人,我会更加深入学习相关的知识,不断提高自我的知识能力,迎接未来的挑战。6. 附件(源代码)#include #include #include typedef struct record /学生信息 结构体char No10;char name

12、12;unsigned int age;char sex4;char birth10;char qq12;char grade20;char phone11;struct record *next;STU;int menu(); /菜单函数STU * load_info(); /载入函数:txt转为链表STU * add_info(STU *h); /增加学生STU * search_info(STU *h,int type);/搜索函数STU * delete_info(STU *h);/删除学生void update_info(STU *h);/修改学生信息void output_info

13、(STU *h);/输出信息void preview_info(STU *h,int type);/预览信息void main()STU *header=NULL,*sear=NULL;int cmd=1;system(title 学生信息管理系统);system(date /T);system(TIME /T);system(color 5E);header=load_info();cmd=menu(); /菜单选项设置 while(cmd!=0)switch(cmd)case 0:break;case 1:/添加信息header=add_info(header);output_info(h

14、eader);break;case 2:/学号查询sear=search_info(header,1);if(sear!=NULL)preview_info(sear,1);elseprintf(该学生不存在!n);sear=NULL;break;case 3:/姓名查询sear=search_info(header,2);if(sear!=NULL)preview_info(sear,1);elseprintf(该学生不存在!n);sear=NULL;break;case 4:/按学号删除header=delete_info(header);output_info(header);break

15、;case 5:/修改update_info(header);output_info(header);break;case 6:/整表输出preview_info(header,2);break;default:/命令无效 printf(无效的命令!n请重新输入命令!n);break;if(cmd!=0)cmd=menu();int menu()int cmd=0;printf(n请输入命令:nt0:结束程序!nt1:添加学生!nt2:按学号查询!nt3:按姓名查询!nt4:按学号删除信息!nt5:按学号修改信息!nt6:整表浏览!n);scanf(%d,&cmd);while(cmd9)pr

16、intf(无效的命令!n请重新输入:n);scanf(%d,&cmd);return cmd;STU * load_info()/载入函数:txt转为链表FILE *fp=fopen(d:stu.txt,r+),*fpNew=NULL;STU *h=NULL,*q=NULL,*p=NULL;char ch=0;h=(STU *)malloc(sizeof(STU);if(fp=NULL)fpNew=fopen(d:stu.txt,w);fclose(fpNew);return NULL;rewind(fp);ch=fgetc(fp);if(ch=EOF)return NULL;elserewi

17、nd(fp);fscanf(fp,%10s %12s %3d %11s %4s %10s %12s %20s,h-No,h-name,&h-age,h-phone,h-sex,h-birth,h-qq,h-grade);q=h;q-next=NULL;ch=fgetc(fp);while(ch!=EOF)p=(STU *)malloc(sizeof(STU);p-next=NULL;fscanf(fp,%10s %12s %3d %11s %4s %10s %12s %20s,p-No,p-name,&p-age,p-phone,p-sex,p-birth,p-qq,p-grade);ch=f

18、getc(fp);q-next=p;q=q-next;fclose(fp);return h;STU * add_info(STU *h) /增加学生信息 FILE *fpin=fopen(d:stu.txt,a);STU *stu,*p;p=h;stu=(STU *)malloc(sizeof(STU);stu-next=NULL;system(cls);if(h=NULL)h=stu;printf(请输入学号:n);scanf(%s,h-No);printf(请输入姓名:n);scanf(%s,h-name);printf(请输入年龄:n);scanf(%d,&h-age);printf(

19、请输入手机号:n);scanf(%s,h-phone);printf(请输入性别:n);scanf(%s,h-sex);printf(请输入出生年月日:n);scanf(%s,h-birth);printf(请输入qq:n);scanf(%s,h-qq);printf(请输入班级:n);scanf(%s,h-grade);elsewhile(p-next!=NULL)p=p-next;p-next=stu;printf(请输入学号:n);scanf(%s,stu-No);printf(请输入姓名:n);scanf(%s,stu-name);printf(请输入年龄:n);scanf(%d,&s

20、tu-age);printf(请输入手机号:n);scanf(%s,stu-phone);printf(请输入性别:n);scanf(%s,stu-sex);printf(请输入出生年月日:n);scanf(%s,stu-birth);printf(请输入qq:n);scanf(%s,stu-qq);printf(请输入班级:n);scanf(%s,stu-grade);fclose(fpin);return h;STU * delete_info(STU *h)/删除学生信息 STU *p,*q;char no11;p=h;if(p=NULL)printf(t目前还没有信息记录!n);ret

21、urn NULL;elseprintf(请输入一个学号:n);scanf(%s,no);q=p-next;if(strcmp(h-No,no)=0)printf(该学生信息已删除!n);h=h-next;elsewhile(q!=NULL)if(strcmp(q-No,no)=0)printf(t该学生的信息已删除!n);p-next=q-next;return h;elsep=q;q=q-next;printf(该学生不存在!n);return h;STU * search_info(STU *h,int type)/按条件搜索学生信息 STU *p_temp=NULL,*q=h;p_tem

22、p=(STU *)malloc(sizeof(STU);system(cls);switch(type)case 1:/按学号查询printf(t请输入一个学号:nt);scanf(%s,p_temp-No);while(q!=NULL)if(strcmp(q-No,p_temp-No)=0)return q;elseq=q-next;return NULL;break;case 2:/按姓名查询printf(t请输入一个名字:nt);scanf(%s,p_temp-name);while(q!=NULL)if(strcmp(q-name,p_temp-name)=0)return q;els

23、eq=q-next;return NULL;break;default:return NULL;break;void update_info(STU *h)/修改学生信息 STU *q=NULL;unsigned int cmd=1,rec=1;system(cls);while(rec!=0)q=search_info(h,1);if(q=NULL)printf(t该学生不存在,无法进行修改操作!n);elsecmd=1;while(cmd!=0)system(cls);preview_info(q,1);printf(nt0:修改完成,回主菜单!nt1:修改该学生姓名!nt2:修改该学生年

24、龄!nt3:修改该学生手机号!nt4:修改该学生性别!nt5:修改该学生生日!nt6:修改该学生qq号!nt7:修改该学生班级!nt8:修改下一个!n);printf(请输入命令:nt);scanf(%d,&cmd);switch(cmd)case 0:cmd=0;rec=0;break;case 1:printf(t请输入学生新的姓名:nt);scanf(%s,q-name);break;case 2:printf(t请输入学生新的年龄:nt);scanf(%d,&q-age);break;case 3:printf(t请输入学生新的手机号:nt);scanf(%s,q-phone);break;case 4:printf(t请输入学生新的性别:nt);scanf(%s,q-sex);break;case 5:printf(t请输入学生新的生日:nt);scanf(%s,q-birth);break;case 6:printf(t请输入学生新的qq号:nt);scanf(%s,q-qq);break;case 7:printf(t请输入学生新的班级:nt);scanf(%s,q-grade);break;case 8:cmd=0;break;void output_info(STU *h)/输出学生信息

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论