欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    华东交通大学理工学院学生信息管理系统.docx

    • 资源ID:5076321       资源大小:141.53KB        全文页数:19页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    华东交通大学理工学院学生信息管理系统.docx

    成绩:存档资料华东交通大学理工学院课程设计报告书所属课程名称C语言课程设计题目学生信息管理系统分 院电信分院专业班级11通信-2学号226学生姓名杨 晨指导教师徐涢基一2012年6月12日目 录第一章设计内容及要求-3 -第二章总体设计思路-3 -1程序设计组成框图-3 -2程序流程图-3 -第三章详细设计说明-4 -1头文件 -4 -2数入口说明-5 -3调用关系-5 -第四章调试与测试-6 -1编译工具-6 -2主菜单-6 -第五章调试中所遇到的问题及解决方法-7 -第六章程序源码-7 -第七章心得体会-14 -第八章参考文献-15 -第一章设计内容及要求设计“学生信息管理系统”使其具有学生信息录入功能,修改、删除、显示和查询功能。(1)包括创建学生个人信息:学生姓名、性别、年龄、学号、专业。(2)学生信息修改功能:对学生数据库中的信息进行修改,保存。(3)删除部分学生信息的功能。(4)显示学生信息(5)按条件查询符合要求的学生信息。第二章总体设计思路1程序设计组成框图添加新的学生信息'检索信息浏览所有学生信息,添加新的学生信息删除所有记录主菜单检索学生信息4按学号检索按姓名检索广修改此同学信息-删除此同学信息保存并退出2程序流程图(见下页)第三章详细设计说明1头文件#include <stdio.h> #include<stdlib.h> #include<string.h>#include<conio.h>2数入口说明main();主函数;void menu();主菜单界面;void add();添加新的学生信息;void print(int i);打印学生信息;void scan();查找学生信息;void res();检索学生信息界面;void res_name();按姓名检索;void res_num();按学号检索;void del(int i);删除学生信息;void modify(int i);修改学生信息;void fileopen();打开文件;void filesave();保存文件;3调用关系add()add() <menu()scan() I res()add()-menu()rres_name()modify(int i)res() Jk,del(int i)res_num ()menu()第四章调试与测试1编译工具VC+6.02主菜单e. E: CYuY an任 i iAww t emp. ex e欢迎登录学生信息管理系统.自心自JIJL1._系. ft.ft.Hd: 生生息退 隹清出 的有生退子并 加览喜 费检保 12 3 4rl第五章调试中所遇到的问题及解决方法问题1:程序退出后,再次打开,上次输入的数据无法保存。解决:调用fileopen()与filesave()保存文件数据,方便第二次打开程序时仍能调用上次 输入的数据。问题2:跳出的界面与选择分支中的对应项不符合。解决:改getchar()为getch(),头文件中加"conio.h”.因为getchar()从输入输出流中一次只 能读取一个字符,而且需要以回车来确认输入。本文件中多次用到getchar(),键盘缓冲区的n 会被下次调用getchar()时接收。而getch()则不会,从键盘上读入一个数据,不给回显,不需 要回车确认,按下键就实现了函数。问题3:误输入刈导致退出。解决:加标志变量flag=1,用while(flag)循环switch语句,当正确输入时,flag=1,跳出 循环。问题4:检索时只能查到第一个学生信息。解决:定义数组log(100)记录符合的结构体数组。循环打印。问题5:不能刷新界面。解决:调用system("cls")清屏函数。问题6:删除某项信息,返回主函数时不能暂停。解决:调用system("PAUSE”)暂停函数。第六章程序源码#include <stdio.h>/声明所有函数/定义全局变量x,减少代码量#include <string.h> #include <stdlib.h> #include <conio.h> void menu();void add();void print(int i);void scan();void res();void res_name();void res_num();void del(int i);void modify(int i);void fileopen();void filesave();int n=0;struct studentchar num15;char name30;char sex2;char age5;char sub30;stu100;/定义全局变量n,代表信息条数 /定义结构体数组stu100void main()fileopen();menu();filesave();/主函数/调用menu()函数,打开主界面void fileopen()FILE *fp;int i;if(fp=fopen("data","r+")=NULL) fp=fopen("data","w+"); for(i=0;i<100;i+)/打开data文件/若无data文件,则新建/读取数据fread(&stui,sizeof(struct student),1,fp);fread(&n,4,1,fp);fclose(fp);/主菜单void menu()int flag=1;定义标志标量flagsystem("cls");/ 清屏函数printf("* printf(" printf(" printf(" printf(" printf(" printf(" pnntf("欢迎登录学生信息管理系统1. 添加新的学生信息2. 浏览所有学生信息3. 检索学生信息4. 保存并退出系统*n");*n");n");n");n");n");/主界面n");n");by rlk | n");*n");/防止用户误选导致退出/用switch分支选择语有;getch()获取用户键入值while(flag)switch(getch()case '1':flag=0;add();break;case '2':flag=0;scan();break;case '3':flag=0;res();break;case '4':flag=0;printf保存成功!"); /当用户选择4时,调用flag()函数,退出系统 break;/当用户选择1时,调用add()函数,添加新的学生信息/当用户选择2时,调用scan()函数,浏览所有学生信息/当用户选择3时,调用res()函数,检索学生信息default:printf(-错误!请重新输入.n"); 其它输入,提示错误 void add()信息添加函数int flag=1;system("cls");清屏函数printf("*%2d*n",n+1);逐一输入各项数据printf("*添加新的学生信息*n");printf("学号:");scanf("%s”,&stun.num); printf("姓名:");scanf("%s”,&stun.name); printf("性别:");scanf("%s”,&stun.sex); printf("年龄:");scanf("%s”,&stun.age);printf("专业:");scanf("%s”,&stun.sub);printf(printf("nv添加成功!nn+;while(flag)switch(getch()n");请选择:1.继续添加2.返回主菜单n");/总信息量增加一项case '1':flag=0;add();break;case '2':flag=0;menu();break;default:printf("错误!请重新输入.n");/选择'1'选择'2'重新调用add()调用menu(),返回主菜单/其它输入,提示错误void print(int i) /学生信息打印函数*%2d*n",i+1); 学号:sn”,stu 姓名:sn",stu 性别:sn",stu 年龄:sn”,stu 专业:sn”,stuprintf(" printf(" printf(" printf(" printf(" printf(" printf("*n");.num);.name);.sex);.age);.sub)void scan()信息浏览函数int i,flag=1;system("cls");_if(n=0)当n=0时,信息库中无记录printf(printf("当前信息库记录为0!n");printf*n");printf("请选择:1.添加新的学生信息2.返回主案单n");while(flag)switch(getch()case '1':flag=0;add();break;case '2':flag=0;menu();break;default:printf("错误!请重新输入.n");/当n不为0时,打印信息elseprintf("* 目前信息库里共有d 条记录.*n",n);for(i=0;i<n;i+)print(i); _printf("请选择:1.检索信息库2.添加新的学生信息n");printf(-3.删除所有记录4.返回主菜单n");while(flag)switch(getch()case '1':flag=0;res();break;case '2':flag=0;add();break;case '3':flag=0;_printf("n!警告:您将删除信息库所有记录!n");printf(-、请选择:1.确认删除2.返回n");flag=1;while(flag)switch(getch()case '1':flag=0;n=0;printf("V 已删除!n");system("PAUSE");scan();break;case '2':flag=0;scan();default:printf("错误!请重新输入.n");break;case '4':flag=0;menu();break;default:printf("错误!请重新输入.n");void modify(int i) int flag=1;/信息修改函数*n2信息修改界面printf("请输入你想修改的内容:n");printf("1.学号2.姓名3.性别4.年龄5.专业n");printf(" *n");while(flag)switch(getch()case '1':flag=0;printf("请重新输入学号:");scanf("%s”,&stui.num);break;case '2':flag=0;printf("请重新输入姓名:");scanf("%s”,&stui.name);break;case '3':flag=0;printf("请重新输入性别:");scanf("%s”,&stui.sex);break;case '4':flag=0;printf("请重新输入年龄:");scanf("%s”,&stui.age);break;case '5':flag=0;printf("请重新输入专业:");scanf("%s”,&stui.sub);break;default:printf("错误!请重新输入.”);printf("V修改成功!n修改后的学生信息:n");print(i);system("PAUSE");/暂停函数:按任意键继续printf(%请选择:1.继续修改此学生信息2.查看下一条相关信息3.返回主 菜单n");flag=1;while(flag)switch(getch()case '1':flag=0;modify(i);break;case '2':flag=0;break;case '3':flag=0;menu();default:printf("错误!请重新输入.n");/信息删除函数 void del(int i)int a,flag=1;_printf("n!警告:您将删除此条学生信息!");printf(-n请输入:1.继续删除");printf(-n2.不删除,返回主菜单n");while(flag)switch(getch()case '1':/拷贝后一个学生信息到前一个人上flag=0;for(a=i;a<n-1;a+).num,stua+1.num);.name,stua+1.name);.sex,stua+1.sex);.xi,stua+1.age);.ban,stua+1.sub);a a a a astrcpy(stustrcpy(stustrcpy(stustrcpy(stu strcpy(stun-; _printf("V删除成功!n");总信息量减少一项system("PAUSE");menu();break;case '2':flag=0;system("PAUSE");暂停函数:按任意键继续menu();返回主菜break;default:printf("错误!请重新输入.n");/按学号检索函数*n");字符串比较函数记录下相关的信息信息库中没查找到所需信息void res_num() 一int i,j=0,flag=1,log100;char xh15;printf(-n请输入要检索的学号:"); scanf("%s”,&xh);for(i=0;i<n;i+)if(!strcmp(stui.num,xh) while(j<100)logj=i;j+;break; if(!j)system("cls");printf(-对不起,信息库里没要你想要查找的信息!n");printf("n*n");printf(-n请选择:1.继续查找2.返回主菜单n");while(flag)switch(getch()case '1':flag=0;res();break;case '2':flag=0;menu();break;default:printf("错误!请重新输入.n");elseprintf("n在信息库中共找到d条相关信息.n”,j);for(i=0;i<j;i+)flag=1;printf("n 第d n",i+1);print(logi);printf("n*n");printf("n请选择:1.修改此学生信息2.删除此学生信息n");printf("3.继续查找下一条4.返回主菜单n");while(flag)switch(getch()case '1':flag=0;modify(logi);break;case '2':flag=0;del(logi);break;case '3':flag=0;break;case '4':flag=0;menu();break;printf("n已到最后一条相关信息.n");default:printf("错误!请重新输入.n");system("PAUSE"); menu();/暂停函数:按任意键继续/按姓名检索函数void res_name()( 一int i,j=0,flag=1,log100;char mz20;system("cls");”*n”);printf(printf("n请输入要检索的姓名:");scanf("%s”,&mz);for(i=0;i<n;i+)if(!strcmp(stui.name,mz) while(j<100)logj=i;j+;break; if(!j)字符串比较函数记录下相关的信息信息库中没查找到所需信息printf(-对不起,信息库里没要你想要查找的信息!n");printf("n*n");printf(-n请选择:1.继续查找2.返回主菜单n");while(flag)switch(getch()case '1':flag=0;res();break;case '2':flag=0;menu();break;default:printf("错误!请重新输入.n");elseprintf("n在信息库中共找到d条相关信息.n”,j);for(i=0;i<j;i+)flag=1;printf("n 第d n",i+1);print(logi);printf("n*n");printf("n请选择:1.修改此学生信息2.删除此学生信息n");printf("3.继续查找下一条4.返回主菜单n");while(flag)switch(getch()case '1':flag=0;modify(logi);break;case '2':flag=0;del(logi);break;case '3':flag=0;break;case '4':flag=0;menu();break;default:printf("错误!请重新输入.n");printf("n已到最后一条相关信息.n");system("PAUSE");menu();void res()int flag=1;system("cls");n");printf("*检索模式选择*n");printf("1.按学号检索n");printf(-2.按姓名检索n");printf("3.返回主菜单n");printf("*n");/检索函数检索界面while(flag) switch(getch() case '1':flag=0;res_num();调用 res_num()函数,按学号检索break;case '2':、flag=0;res_name();调用 res_name()函数,按姓名检索break;case '3':flag=0;menu();调用menu()函数,返回主菜单break;default:printf("错误!请重新输入.n");void filesave()/保存 data 文件int i;FILE *fp;fp=fopen("data","r+");for(i=0;i<100;i+)fwrite(&stui,sizeof(struct student),1,fp);fwrite(&n,4,1,fp);fclose(fp);第七章心得体会通过这次C程序课程设计,我感受到了编程是一项非常烦琐周密的活动,它 不但需要一个人周密的思考问题的能力,处理问题的能力,还需要有足够的耐心 和严谨治学的作风,来不得半点马虎,一点小的错误就可能导致整个程序不能运 行。我初步学会了课程设计的基本方法,学会了怎样去借鉴别人的方法和经验, 知道如何去查找资料和整合处理这些资料的能力,使我收益最大的是享受到了一 种成功的喜悦。因为C语言底子比较差,我选择的是相对容易的学生信息管理系统。先开始, 比较快速的把大体程序代码写出来了,然后是进行编译,这个环节是一个非常痛 苦和艰难的,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之路 中,但失败的越多,对人的考验就越多,在编译运行成功之后的享受成功的喜悦 也就越多,另外在调试程序的过程中不断的思考和运用已经学到的知识,这对于 自己是有很大的提高的。由于所学的知识不多,自己的编程经验不足,仍存在一些问题,如不能实现 模糊查找等功能。按现有的知识水平有些东西暂时还无法解决,还有待于在以后 的学习中不断提高和改进!第八章参考文献1李丽娟C语言程序设计教程(第二版)M 人民邮电出版社,2009年3月2李丽娟C语言程序设计教程习题答案与实验指导(第二版)M人民邮电出版社

    注意事项

    本文(华东交通大学理工学院学生信息管理系统.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开