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

    语言课程设计学生信息管理系统.doc

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

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

    语言课程设计学生信息管理系统.doc

    C语言课程设计实验报告一、设计目的:学生信息包括:学号、姓名、性别、系名、班级名、出生年月、住址、电话号码。设计一学生信息管理系统,使之能提供以下功能:1.系统以菜单方式工作;2.学生信息录入功能(输入);3.学生信息浏览功能(输出);4.学生信息检索功能;5.学生信息的删除与修改功能;二、总体设计思路:1>程序设计组成框图主菜单添加新的学生信息浏览所有学生信息检索学生信息按学号检索按姓名检索修改此同学信息删除此同学信息检索信息库添加新的学生信息删除所有记录保存并退出2>N-S流程图case 4case 3Case 2case 1结束调用add()添加新的学生信息fileopen()Menu()输入选择x调用scan()浏览所有学生信息退出系统调用res()检索学生信息x开始filesave()三、详细设计说明:1>头文件#include <>#include<>#include<>#include<>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();保存文件;2>调用关系add()menu() add()fileopen()res()add()menu()scan()menu()main()modify(int i)res_name()res()del(int i)menu()res_num()filesave()4.调试与测试:Ø 编译工具C+程序设计学习与实验系统+均通过调试!Ø 主菜单Ø 添加新的学生信息Ø 浏览所有学生信息Ø 检索信息库Ø 继续查找下一条Ø 修改学生信息Ø 删除信息库所有记录五、调试中所遇到的问题及解决方法1>问题:程序退出后,再次打开,上次输入的数据无法保存。 解决:调用fileopen()与filesave()保存文件数据,方便第二次打开程序时仍能调用上次输入的数据。2>问题:跳出的界面与选择分支中的对应项不符合。 解决:改getchar()为getch(),头文件中加”.因为getchar()从输入输出流中一次只能读取一个字符,而且需要以回车来确认输入。本文件中多次用到getchar(),键盘缓冲区的n会被下次调用getchar()时接收。而getch()则不会,从键盘上读入一个数据,不给回显,不需要回车确认,按下键就实现了函数。 3>问题:误输入X,导致退出。 解决:加标志变量flag=1,用while(flag)循环switch语句,当正确输入时,flag=1,跳出循环。4>问题:检索时只能查到第一个学生信息。 解决:定义数组log(100)记录符合的结构体数组。循环打印。5>问题:不能刷新界面。 解决:调用system(“cls”)清屏函数。6>问题:删除某项信息,返回主函数时不能暂停。 解决:调用system(“PAUSE”)暂停函数。六、程序源码#include ""#include ""#include ""#include ""void menu(); 加新的学生信息 n"); printf(" 2.浏览所有学生信息 n"); printf(" 3.检索学生信息 n"); printf(" 4.保存并退出系统 n"); printf(" n"); printf(" by rlkn"); printf("n"); while(flag) n"); um);printf(" 姓名:");scanf("%s",&stun.name);printf(" 性别:");scanf("%s",&stun.sex);printf(" 系名:");scanf("%s",&stun.xi);printf(" 班级名:");scanf("%s",&stun.ban); printf(" 出生年月:"); scanf("%s",&stun.birth); printf(" 住址:"); scanf("%s",&stun.address); printf(" 电话号码:"); scanf("%s",&stun.tel); printf("n"); printf("n添加成功!nn 请选择 : 1.继续添加 2.返回主菜单n"); n+; n"); um); printf(" 姓名:%sn",stui.name); printf(" 性别:%sn",stui.sex); printf(" 系名:%sn",stui.xi); printf(" 班级名:%sn",stui.ban); printf(" 出生年月:%sn",stui.birth); printf(" 住址:%sn",stui.address); printf(" 电话号码:%sn",stui.tel); printf("n");void scan() 加新的学生信息 2.返回主菜单n"); while(flag) switch(getch() case '1':flag=0;add();break;case '2':flag=0;menu();break;default:printf("错误!请重新输入.n"); else *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(" n 请选择 : 1.确认删除 2.返回n"); flag=1; while(flag) switch(getch() case '1':flag=0;n=0;printf("已删除!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) 号 2.姓名 3.性别 4.系名n");printf(" 5.班级名 6.出生年月 7.住址 8.电话号码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.xi);break;case '5':flag=0;printf("请重新输入班级名:");scanf("%s",&stui.ban);break; case '6':flag=0;printf("请重新输入出生年月:");scanf("%s",&stui.birth);break; case '7':flag=0;printf("请重新输入住址:");scanf("%s",&stui.address);break; case '8':flag=0;printf("请重新输入电话号码:");scanf("%s",&stui.tel);break; default:printf("错误!请重新输入."); printf("修改成功!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) 续删除");printf("n 2.不删除,返回主菜单n"); while(flag) switch(getch()case '1': flag=0; for(a=i;a<n-1;a+) um,stua+1.num); strcpy(stua.name,stua+1.name); strcpy(stua.sex,stua+1.sex);strcpy(stua.xi,stua+1.xi);strcpy(stua.ban,stua+1.ban);strcpy(stua.birth,stua+1.birth);strcpy(stua.address,stua+1.address);strcpy(stua.tel,stua+1.tel); n-; printf("删除成功!n");; menu(); n");void res_num() um,xh) 续查找 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_name() ame,mz) 续查找 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() 学号检索n");printf(" 2.按姓名检索n");printf(" 3.返回主菜单n");printf(" n");while(flag)switch(getch()case '1':flag=0;res_num();break; 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语言底子比较差,我选择的是相对容易的学生信息管理系统。先开始,比较快速的把大体程序代码写出来了,然后是进行编译,这个环节是一个非常痛苦和艰难的,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之路中,但失败的越多,对人的考验就越多,在编译运行成功之后的享受成功的喜悦也就越多,另外在调试程序的过程中不断的思考和运用已经学到的知识,这对于自己是有很大的提高的。 由于所学的知识不多,自己的编程经验不足,仍存在一些问题,如不能实现模糊查找等功能。按现有的知识水平有些东西暂时还无法解决,还有待于在以后的学习中不断提高和改进!

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开