




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专业综合设计报告书专业综合设计报告书 设计名称: 学生姓名: 专 业: 班 别: 学 号: 指导老师: 日 期: 年 月 日 综合设计名称学生信息管理系统设计 相关课程C 语言程序设计 完成时间2016 年 12 月 19 日 序号评分项名称评分标准得分 1 设计功能概述 全面准确说明设计功能:10 分;全面说明设计 功能:8 分;简要说明设计功能:6 分;功能与 设计名称无关:5 分以下。 2 设计依据及原理 设计依据符合课程要求、原理,并具有现实意义: 20 分;设计依据符合课程要求、原理:16 分; 设计依据符合课程要求:12 分;设计依据与课 程无关:10 分以下。 3 设计体系结构 完整表达设计的结构,灵活应用图表等形式:30 分;使用文本表达设计的结构:24 分;设计结 构基本完成:18 分;体系结构与课程设计无关: 15 分以下。 4 设计与运行 代码与设计步骤清晰,运行成功:30 分;完成 功能设计,运行成功:24 分;设计功能符合要 求,运行有问题:20 分;设计功能不全,代码 出错,不能正常编译和运行:15 分以下。 5 小结 表达清楚,实事求是,符合课程要求:10 分; 表达清楚,符合课程要求:8 分;符合课程要求: 6 分;表达不清楚,不符合课程要求:5 分以下。 总分 等级 成 绩 评 定 评分人 备注:成绩分为优秀、良好,中等、合格和不合格五个等级 目录目录 1.1.设计功能概述设计功能概述1 2.2.设计依据及原理设计依据及原理1 2.1 设计分析.1 2.1.1 系统总体设计.1 2.1.2 详细分析.1 2.2 课程设计原理 2 3.3.设计体系结构设计体系结构3 3.1 设计目标.3 3.2 体系功能结构图 3 4.4.设计与运行设计与运行4 4.1 调试与测试 4 4.2 运行结果.4 5.5. 小结小结9 6.6. 附件(源代码)附件(源代码)9 0 1.1.设计设计功能概述功能概述 学生信息管理系统,是一个可以增加、删除、浏览、查看、修改学生信息的系统,它是利用 C 语言 实现各功能的。其中学生信息包括:学号、姓名、年龄、电话号码、性别、出生年月、QQ、班级等。该 系统可提供添加学生信息、查询学生信息(可以按学号查询和按姓名查询) 、删除学生信息(可以按学号 删除和按姓名删除) 、学生信息修改(可逐项修改学生信息) 、学生信息整表浏览等功能。 2.2.设计依据及原理设计依据及原理 2.1 设计分析 2.1.1 系统总体设计 主菜单 添加学生信息 信息整表浏览 信息查询 按学号查询 按姓名查询 信息编辑 按学号修改 按学号删除 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); 修改学生信息 1 output_info(STU *h); 输出信息 preview_info(STU *h,int type);预览信息 main(); 主函数 2)调用关系 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 课程设计原理 根据总体设计的框架,利用 C 语言逐项实现各个功能。首先将该系统需要的函数框架罗列出来,然 后根据功能要求逐一将各个功能实现,并实现 main 函数的所有调用,每实现一个功能都进行一次测试, 确保将发现的错误在单个功能编写的时候就能解决,以免影响整体效果。最后是整体运行调试。以下是 整个系统的设计思路,和运行流程: 1)运行程序,显示菜单页面,包括适当的提示信息以及可以实现的各项功能。用户选择输入各功能对应 的数字,进入下一级功能页面; 2)根据所输入的功能对应的数字,调用对应的各模块函数,显示相应的提示信息令用户进行下一步操 作; 3)根据用户的输入数据计算或判断,显示出相应的结果以及相应的提示信息,提醒用户进行下一步操作; 4)根据选择菜单上对应的功能,可能跳转到添加学生信息、修改学生信息、删除学生信息、浏览学生信 息等页面,每结束一个动作,都可以按照选择进行下一个动作; 5)当用户选择“0”时,都会结束进程,并关闭系统。 delete_info () update_info () load_info() add_info(STU*h) main() preview_info () output_info() search_info() output_info() 2 3.3.设计设计体系结构体系结构 3.1 设计目标 该系统的目的主要是加强对学生信息的管理,便于学校对学生信息的统一管理。其中该系统包括以 下功能:初始化基本信息界面,即主菜单,有独立的添加与修改界面。添加界面只能连续添加相应的信 息,修改界面只能逐项修改学生的信息。删除信息和查询信息都可以通过按学号和按姓名查询和删除, 可通过浏览整表浏览所有存在的学生信息表。 3.2 体系功能结构图 case6case5case4 case3case2 case1 1 case0 结束程序 调用 add_info() 调用 serch_info 调用 serch_info 调用 delete_info 调用 delete_info 调用 preview_info( 判断 cmd!=0? Y N 输入选择的 cmd 开始 窗口展示 主菜单显示 载入链表 cmd 结束 3 4.4.设计与运行设计与运行 4.1 调试与测试 以下是在调试与测试中遇到的一些问题及解决方法 1)调用STU * load_info() 函数(文件载入) ,读写出现乱码 解决方法:更改相应指针指向,及有关变量的初值设置。 2)边界测试 解决方法:用极端的或偏门的情况来探测和验证代码在处理时会发生什么。 3)执行窗口执行多次命令后显示过多,不利于输入指令及结果查看 解决方法:调用系统清屏函数 system(“cls“);。 4)学生信息输出时分不清界限。 解决方法:在学生信息输出结果时,使分割线,使的输出信息对齐。 4.2 运行结果 (1)显示主菜单,调用了 main()函数,通过输入命令编号继续程序的执行。 (2)输入“1” ,即添加学生信息,调用 add_info(STU *h); 4 (3)按名字查找学生,调用 search_info(STU *h,int type) case2; 查找结果 5 (4)按学号查找学生,调用 search_info(STU *h,int type) case1; 查找结果 (5)浏览全部学生信息,调用 preview_info(STU *h,int type); 6 (5)按学号删除学生信息,调用 delete_info(STU *h); 删除成功 7 (6)先按学号查询需要修改信息的学生,再修改需要修改的信息,先调用 search_info(h,1),再调用 update_info(STU *h); 修改成功,并用 system(“cls“)清屏。 8 5.5.小结小结 在这次系统设计中,我花了比较长的一段时间学习和编写代码,当然也参考了一些资料。毕竟大一 的时候学的 C 语言是比较基础的,也没那么深入的学习。这次实践的结果,不仅实现了学生管理系统的 基本功能,即简洁的菜单以及操作使用户能在最短的时间内实现自己想要实现的功能,基本达到了预期 目标,而且使我加深了对文件、指针、结构体等的理解,又积累了一些实践经验,同时增强了动手能力 和解决实际问题的能力。 在设计此系统之前,我的 C 语言编程能力是比较差的,动手能力十分欠缺,每次都会害怕动手。通 过此次程序设计,使我基本了解了 C 程序设计的步骤,如结构流程图,功能模块分类等等,特别是学会 设计系统的基本步骤及思维方法。 这次实践增强了我动手编程的信心,同时让我对代码的编辑更加自信。 我相信机会都是留给有准备的人,我会更加深入学习相关的知识,不断提高自我的知识能力,迎接未来 的挑战。 6.6.附件(源代码)附件(源代码) #include #include #include typedef struct record /学生信息 结构体 char No10; char name12; 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);/修改学生信息 9 void output_info(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(header); break; case 2:/学号查询 sear=search_info(header,1); if(sear!=NULL) preview_info(sear,1); else printf(“该学生不存在!n“); sear=NULL; break; case 3:/姓名查询 sear=search_info(header,2); if(sear!=NULL) preview_info(sear,1); else printf(“该学生不存在!n“); sear=NULL; break; case 4:/按学号删除 header=delete_info(header); 10 output_info(header); break; 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“, while(cmd9) printf(“无效的命令!n 请重新输入:n“); scanf(“%d“, 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) 11 return NULL; else rewind(fp); fscanf(fp,“%10s %12s %3d %11s %4s %10s %12s %20s“,h-No,h-name, 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, ch=fgetc(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“, printf(“请输入手机号:n“); scanf(“%s“,h-phone); printf(“请输入性别:n“); scanf(“%s“,h-sex); 12 printf(“请输入出生年月日:n“); scanf(“%s“,h-birth); printf(“请输入 qq:n“); scanf(“%s“,h-qq); printf(“请输入班级:n“); scanf(“%s“,h-grade); else while(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“, 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“); return NULL; else 13 printf(“请输入一个学号:n“); scanf(“%s“,no); q=p-next; if(strcmp(h-No,no)=0) printf(“该学生信息已删除!n“); h=h-next; else while(q!=NULL) if(strcmp(q-No,no)=0) printf(“t 该学生的信息已删除!n“); p-next=q-next; return h; else p=q; q=q-next; printf(“该学生不存在!n“); return h; STU * search_info(STU *h,int type)/按条件搜索学生信息 STU *p_temp=NULL,*q=h; p_temp=(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; else q=q-next; 14 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; else q=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“); else cmd=1; while(cmd!=0) system(“cls“); preview_info(q,1); printf(“nt0:修改完成,回主菜单!nt1:修改该学生姓名!nt2:修改该学生年龄!nt3:修改该学 生手机号!nt4:修改该学生性别!nt5:修改该学生生日!nt6:修改该学生 qq 号!nt7:修改该学生班级!nt8:修 改下一个!n“); printf(“请输入命令:nt“); scanf(“%d“, switch(cmd) case 0:cmd=0;rec=0;break; case 1: printf(“t 请输入学生新的姓名:nt“); 15 scanf(“%s“,q-name); break; case 2: printf(“t 请输入学生新的年龄:nt“); scanf(“%d“, 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冷库购买合同样本
- 兼职关于版权合同标准文本
- 企业委外生产合同样本
- 冰淇淋项目合作合同样本
- 临时租店面合同样本
- 农民别墅转让合同样本
- 农村土建简易合同样本
- 借钱微信合同样本
- 农村厨房施工合同样本
- 农药购销合同标准文本制作
- 中医适宜技术-中药热奄包
- 阳光体育与我同行
- 2024年江苏省南通市国家保安员资格考试题库国编版
- 风电基础合同
- GB/T 4706.32-2024家用和类似用途电器的安全第32部分:热泵、空调器和除湿机的特殊要求
- DB51-T 3176-2024 四川省中心乡镇消防救援站建设规范
- 酒店品牌建设与管理教案
- 《扫黑除恶主题班会》班会
- 装修工程竣工验收报告模板
- 《化工和危险化学品生产经营单位重大生产安全事故隐患判定标准(试行)》解读课件
- 外国美术史1-史前美术省公开课金奖全国赛课一等奖微课获奖课件
评论
0/150
提交评论