欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    学生信息管理系统设计.doc

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

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

    学生信息管理系统设计.doc

    中 国 地 质 大 学本科生课程论文封面课程名称 C语言课程设计 教师姓名 武进霞 本科生姓名 _ 本科生学号 本科生专业 资源勘查与工程基地班所在院系 资源学院 类别: 报告 日期: 2010年2月22日 课程论文题目学生信息管理系统设计 程序设计思路学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:系统以文本菜单方式工作,学生信息录入功能(学生信息最好用文件保存)-输入学生信息浏览功能-输出显示高考一本考生信息查询、排序功能-算法按学号查询按姓名查询学生信息的删除与修改(可选项)根据以上要求,设计程序时需要用到多个调用函数来实现各个功能,因此在main函数中将学生信息录入过后,通过switch语句来实现进入并运行各个功能模块。在程序功能设计之前,将学生信息以结构体的形式存入;在各功能模块中,通过if、for语句来实现判断、循环功能,实现信息浏览、查询、排序等功能。功能模块图学生信息管理系统信息录入信息查询删除某个学生信息将信息按学号排序信息浏览显示一本考生信息按姓名查询按学号查询数据结构设计题目中学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等,在程序中可以通过设计学生信息的结构体来实现学生信息的录用;再考虑到学生数量的大小,我通过建立一个数组来表示各个学生。开始(进入界面)算法设计输入功能选项“1”:继续输入添加学生信息输入学生信息判断是否继续输入信息输入功能选项“2”:显示所有学生信息输入“2”:按学号查找信息输入功能选项“3”:查找学生信息进入功能模块界面输入“1”:按姓名查找信息输入功能选项“4”:输出学生信息结束输入功能选项“5”:按学号排序输入功能选项“6”:退出程序1. main函数(功能界面) void main() int change,n; printf("=学生信息管理系统=n"); printf("ttt 请输入学生信息n"); shuru(); do system("cls"); printf("=学生信息管理系统=n"); printf("ttt一: 输入学生信息n"); printf("ttt二: 显示学生信息n"); printf("ttt三: 查找学生信息n"); printf("ttt四: 删除学生信息n"); printf("ttt五: 按学号排序信息n"); printf("ttt六: 退出程序n"); fflush(stdin); printf("ttt请输入功能选项:"); scanf("%d",&change); switch(change) case 1:shuru(); break; case 2: xianshi(); break; case 3: printf("请输入您的学号或姓名,输入姓名请按1,输入学号请按2。(输入后按enter键)n"); printf("输入选择: "); scanf("%d",&n); getchar();switch(n)case 1:chaxingming(); break;case 2:chaxuehao();break;break; case 4: shanchu(); break; case 5: paixu(); break; case 6: break; getch(); while(change!=6);2. 输入学生信息void shuru() /输入学生信息 char a; do printf("n请输入学号:"); scanf("%d",&sti.id); fflush(stdin); printf("n请输入姓名:"); gets(sti.name); printf("n请输入年龄:"); scanf("%d",&sti.age); printf("n请输入性别:"); scanf("%s",&sti.sex); fflush(stdin); printf("n请输入出生年,月:"); scanf("%d,%d",&sti.birthday); printf("n请输入电话号码:"); scanf("%d",&sti.phone); fflush(stdin); printf("n请输入地址:"); scanf("%s",&sti.address); printf("n请输入email:"); scanf("%s",&sti.email); printf("n是否继续输入另外一个学生信息?(y/n)"); fflush(stdin); a=getchar(); i+; while(a=y && i<=50); 3. 先是学生信息void xianshi() /显示学生信息 int j; for(j=0;j<i;j+) printf("学号t%dnn姓名t%snn年龄t%dnn性别t%snn出生年月t%dnn电话号码t%dnn地址t%snnemailt%snn",stj.id,stj.name,stj.age,stj.sex,stj.birthday,stj.phone,stj.address,stj.email);4. 查找信息void chaxuehao() /按学号查找学生的信息 int a,num; char c; do printf("n请输入想查找的学生学号:"); fflush(stdin); scanf("%d",&num); for(a=0;a<i;a+) if(num=sta.id) printf("ntt您查找的学生在第%d个位置找到了!n",a+1); break; if(a>=50) printf("ntt没有找到这个学生!n"); else printf("学号t%dn姓名t%sn年龄t%dn性别t%sn出生年月t%dn电话号码t%dn地址t%snemailt%sn",sta.id,sta.name,sta.age,sta.sex,sta.birthday,sta.phone,sta.address,sta.email); printf("n是否查找另一个学生的信息?(y/n)"); fflush(stdin); c=getchar(); while(c=y);void chaxingming() /根据姓名查询 int m,k; k=0; /用K来反映该生姓名是否重名 char name20,b; do printf("请输入姓名:"); scanf("%s",&name); for(m=0;m<50;m+) if(strcmp(stm.name,name)=0) /检索该姓名人数 k+; if(k>1) /k>1,重名 printf(" 因您与某同学重名,请输入考号查询n"); chaxuehao(); /调用学号查询函数 else / 不重名情况 for(m=0;m<50;m+) if(strcmp(stm.name,name)=0) printf("ntt您查找的学生在第%d个位置找到了!n",m+1);break; if(k=0) printf("n 没有找到该学生n"); if(m>50) printf("ntt没有找到这个学生!n"); else printf("学生t%dn姓名t%sn年龄t%dn性别t%sn出生年月t%dn电话号码t%dn地址t%snemailt%sn",stm.id,stm.name,stm.age,stm.sex,stm.birthday,stm.phone,stm.address,stm.email); printf("n是否查找另一个学生的信息?(y/n)"); fflush(stdin); b=getchar(); while(b=y);5. 删除void shanchu() /删除学生信息 int p,number; char c; do printf("n请输入要删除的学生学号:n"); fflush(stdin); scanf("%d",&number); for(p=0;p<i;p+) if(stp.id=number) break; for(number=p;number<i;number+) stnumber=stnumber+1; if(p>i) printf("tt没有找到这个学生!n"); else i-; xianshi(); printf("n是否继续删除另一个学员信息?(y/n) "); fflush(stdin); c=getchar(); while(c=y);6. 排序void paixu() /按学号从大到小排序 int j,k,id1,age1,birthday1,phone1; char name110,sex13,address1100,email1100; for(j=0;j<i;j+) for(k=0;k<i-1-j;k+) if(stk.id>stk+1.id) id1=stk.id; stk.id=stk+1.id; stk+1.id=id1; strcpy(name1,stk.name);/name1=stk.name;strcpy() strcpy(stk.name,stk+1.name); strcpy(stk+1.name,name1);strcpy(sex1,stk.sex); strcpy(stk.sex,stk+1.sex); strcpy(stk+1.sex,sex1);age1=stk.age; stk.age=stk+1.age; stk+1.age=age1;birthday1=stk.birthday; stk.birthday=stk+1.birthday; stk+1.birthday=birthday1;phone1=stk.phone; stk.phone=stk+1.phone; stk+1.phone=phone1;strcpy(address1,stk.address); strcpy(stk.address,stk+1.address); strcpy(stk+1.address,address1);strcpy(email1,stk.email); strcpy(stk.email,stk+1.email); strcpy(stk+1.email,email1); xianshi(); 程序代码#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>struct studentint id;char name10;int age;char sex3;int birthday;int phone;char address100;char email100;st50;int i=0;void shuru() /输入学生信息 char a; do printf("n请输入学号:"); scanf("%d",&sti.id); fflush(stdin); printf("n请输入姓名:"); gets(sti.name); printf("n请输入年龄:"); scanf("%d",&sti.age); printf("n请输入性别:"); scanf("%s",&sti.sex); fflush(stdin); printf("n请输入出生年,月:"); scanf("%d,%d",&sti.birthday); printf("n请输入电话号码:"); scanf("%d",&sti.phone); fflush(stdin); printf("n请输入地址:"); scanf("%s",&sti.address); printf("n请输入email:"); scanf("%s",&sti.email); printf("n是否继续输入另外一个学生信息?(y/n)"); fflush(stdin); a=getchar(); i+; while(a=y && i<=50); void xianshi() /显示学生信息 int j; for(j=0;j<i;j+) printf("学号t%dnn姓名t%snn年龄t%dnn性别t%snn出生年月t%dnn电话号码t%dnn地址t%snnemailt%snn",stj.id,stj.name,stj.age,stj.sex,stj.birthday,stj.phone,stj.address,stj.email);void paixu() /按学号从大到小排序 int j,k,id1,age1,birthday1,phone1; char name110,sex13,address1100,email1100; for(j=0;j<i;j+) for(k=0;k<i-1-j;k+) if(stk.id>stk+1.id) id1=stk.id; stk.id=stk+1.id; stk+1.id=id1; strcpy(name1,stk.name);/name1=stk.name;strcpy() strcpy(stk.name,stk+1.name); strcpy(stk+1.name,name1);strcpy(sex1,stk.sex); strcpy(stk.sex,stk+1.sex); strcpy(stk+1.sex,sex1);age1=stk.age; stk.age=stk+1.age; stk+1.age=age1;birthday1=stk.birthday; stk.birthday=stk+1.birthday; stk+1.birthday=birthday1;phone1=stk.phone; stk.phone=stk+1.phone; stk+1.phone=phone1;strcpy(address1,stk.address); strcpy(stk.address,stk+1.address); strcpy(stk+1.address,address1);strcpy(email1,stk.email); strcpy(stk.email,stk+1.email); strcpy(stk+1.email,email1); xianshi(); void chaxuehao() /按学号查找学生的信息 int a,num; char c; do printf("n请输入想查找的学生学号:"); fflush(stdin); scanf("%d",&num); for(a=0;a<i;a+) if(num=sta.id) printf("ntt您查找的学生在第%d个位置找到了!n",a+1); break; if(a>=50) printf("ntt没有找到这个学生!n"); else printf("学号t%dn姓名t%sn年龄t%dn性别t%sn出生年月t%dn电话号码t%dn地址t%snemailt%sn",sta.id,sta.name,sta.age,sta.sex,sta.birthday,sta.phone,sta.address,sta.email); printf("n是否查找另一个学生的信息?(y/n)"); fflush(stdin); c=getchar(); while(c=y);void chaxingming() /根据姓名查询 int m,k; k=0; /用K来反映该生姓名是否重名 char name20,b; do printf("请输入姓名:"); scanf("%s",&name); for(m=0;m<50;m+) if(strcmp(stm.name,name)=0) /检索该姓名人数 k+; if(k>1) /k>1,重名 printf(" 因您与某同学重名,请输入考号查询n"); chaxuehao(); /调用学号查询函数 else /不重名情况 for(m=0;m<50;m+) if(strcmp(stm.name,name)=0) printf("ntt您查找的学生在第%d个位置找到了!n",m+1);break; if(k=0) printf("n 没有找到该学生n"); if(m>50) printf("ntt没有找到这个学生!n"); else printf("学生t%dn姓名t%sn年龄t%dn性别t%sn出生年月t%dn电话号码t%dn地址t%snemailt%sn",stm.id,stm.name,stm.age,stm.sex,stm.birthday,stm.phone,stm.address,stm.email); printf("n是否查找另一个学生的信息?(y/n)"); fflush(stdin); b=getchar(); while(b=y);void shanchu() /删除学生信息 int p,number; char c; do printf("n请输入要删除的学生学号:n"); fflush(stdin); scanf("%d",&number); for(p=0;p<i;p+) if(stp.id=number) break; for(number=p;number<i;number+) stnumber=stnumber+1; if(p>i) printf("tt没有找到这个学生!n"); else i-; xianshi(); printf("n是否继续删除另一个学员信息?(y/n) "); fflush(stdin); c=getchar(); while(c=y);void main() int change,n; printf("=学生信息管理系统=n"); printf("ttt 请输入学生信息n"); shuru(); do system("cls"); printf("=学生信息管理系统=n"); printf("ttt一: 输入学生信息n"); printf("ttt二: 显示学生信息n"); printf("ttt三: 查找学生信息n"); printf("ttt四: 删除学生信息n"); printf("ttt五: 按学号排序信息n"); printf("ttt六: 退出程序n"); fflush(stdin); /shuru(); printf("ttt请输入功能选项:"); scanf("%d",&change); switch(change) case 1:shuru(); break; case 2: xianshi(); break; case 3: printf("请输入您的学号或姓名,输入姓名请按1,输入学号请按2。(输入后按enter键)n"); printf("输入选择: "); scanf("%d",&n); getchar();switch(n)case 1:chaxingming(); break;case 2:chaxuehao();break;break; case 4: shanchu(); break; case 5: paixu(); break; case 6: break; getch(); while(change!=6);程序运行结果进入界面:先输入学生信息输入一个学生的信息后,界面出现“是否继续输入另一学生的信息”的判断将学生信息输入完毕后,enter,进入学生信息管理功能选项界面:选择功能2:显示学生信息选择功能3,进入查找学生功能模块:1) .按姓名查找:A当不与其他学生重名时:B.与其他学生重名时:当与其他学生重名时,按学号查询信息选择功能4,进入删除学生功能模块:删除完成后,再次显示学生排序:选择功能5,进入排序功能:编程中遇到的困难及解决方法这个题目拿到的时候脑中立刻浮现出一个清晰的界面思路,但是在调试程序仍然遇到许多问题:1. 在设计学生信息数据的结构体过程中,其出生年月一开始以另以结构体的形式输入,但是这样一来在后续的表达中比较麻烦,于是及时将学生出生年月分别以单独的学生结构体成员名的形式表达:sti.year,sti.month。2. 信息录入过程中由于一次只能录入一个学生信息,不能实现题目要求,因此在此基础上需要一个循环体来实现重复操作,因此加上一个do while 语句,判断时输入y便继续当前功能模块运行,输入n即便结束当前模块运行返回信息管理功能界面。这在下面的各个功能模块中都以同一原理进行编写操作。3. 如何实现在界面功能模块中运行功能后继续运行其他?设计dowhile和for语句,先运行程序,在输入功能选项数字时通过switch语句在结束此功能模块后跳出选择体,再判断输入的数字是否满足功能数字再次进行运行。4. 查找功能中一开始只考虑到按学号查找,此时不存在找到多个学生的问题,但是查找学生还可以通过姓名查找,此时就存在重名问题:在按姓名查找功能模块后,将所查学生姓名存入数组name中,赋值i=0,通过for语句循环,若strcmp(stm.name,name)=0,则k自增,当循环体结束时,若k=0,则直接输出学生信息,若k>1,则按学号查找。5. 在排序过程中,一开始通过学号排序,运行结果确实将学号从小到大排序,但是仔细一看却发现只有学号排序,学生信息已与原来的不匹配:在学生结构建立时另建立student1的空结构体,作为将每次循环中学生信息临时存储空间,从而实现学生所有信息在排序时与其学号捆绑在一起。课程论文题目高考招生录取程序程序设计思路高考招生录取程序已知文本文件f1.txt中存放了某个省当年参加高考的1000个考生的数据(考号、姓名、性别和考试成绩),存放格式是每行存放一个考生的数据,每个数据之间用空格隔开。假定当年该省的招生计划是:一类本科招生计划为10;二类本科招生计划为15;三类本科招生计划为20;四类高职高专招生计划为25。请编写程序,实现以下功能:(1)划定各批次录取分数线,结果可屏幕显示,也可存入文件。(2)能够统计各批次中男生,女生的录取比例。统计结果可屏幕显示,也可存入文件。(3)确定每名学生的录取情况及录取批次。(4)考生可以根据考号或姓名(支持重名)查询自己的成绩及录取情况;说明: 统程序要有界面存入文件的数据,每行存一种数据,每行之间的不同信息用空格分隔。这个程序相对于学生信息管理新增了文件的模块,而且思路几乎与学生信息管理一致。根据以上要求,设计程序时需要用到多个调用函数来实现各个功能,因此在main函数中通过fopen语句打开考生信息文件并读取,接着打开写文件再通过switch语句来实现进入并运行各个功能模块。在程序功能设计之前,将考生信息以结构体的形式存入;在各功能模块中,通过if、for语句来实现判断、循环功能,实现显示、查询等功能。功能模块图高考信息查询系统读取文件中考生信息打开“各批次录取分数线”文件,并将分数线写入文件进入查询系统选项打开“各批次男女比例”文件,并将比例写入文件显示一本考生信息按姓名查询考生信息按考好查询考生信息数据结构设计题目中考生信息包括:考号,姓名,年龄,性别,分数,在程序中可以通过设计考生信息的结构体来实现考生信息的读取;再考虑到考生数量的大小,我通过建立一个数组来表示各个考生。算法设计高考信息查询系统读取文件中考生信息打开“各批次录取分数线”文件,并将分数线写入文件进入查询系统选项打开“各批次男女比例”文件,并将比例写入文件输入“1”输入“3”输入“2”显示一本考生信息按姓名查询考生信息按考好查询考生信息程序代码#include<stdio.h>#include<string.h>struct student int num; char name20; char sex10; int score;student1;struct student stu1000;void Reorder(struct student *st,int n);void fenshuxian();void bili(struct student stu1000);void function1();void function2();void function3();void function4();void function5();void main() int i,n;char q; FILE *fp; if(fp=fopen("f1.txt","r")=NULL)printf("cannot open filen");return; for(i=0;i<1000;i+) fscanf(fp,"%d%s%s%d",&stui.num,stui.name, stui.sex,&stui.score); fclose(fp); Reorder(stu,1000); function3(); function4(); printf(" 欢迎进入高考录取查询系统nn"); fenshuxian(); bili(stu); do printf("请输入您的考号或姓名,输入考号请按1,输入姓名请按2,显示一本考生请按3。(输入后按enter键)n 请输入选择:"); scanf("%d",&n); getchar();switch(n)case 1:function1();break; case 2:function2();break;case 3:function5();break; getchar(); while(n!=3); void fenshuxian() /划定分数线printf("各批次录取分数线:

    注意事项

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

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




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开