欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    学籍信息管理系统.docx

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

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

    学籍信息管理系统.docx

    1、学籍信息管理系统C 语 言 课 程 实 习 报 告(一) 题目要求 使用下面的数据,设计一个简单的学籍管理系统。 学生基本信息文件(A.TXT)及内容: 学号 姓名 性别 宿舍号码 电话号码 01 张成城 男 501 87732111 02 李成华 女 101 87723112 . . . . 学生成绩基本信息文件(B.TXT) 及内容: 学号 课程编号 课程名称 学分 平时成绩 试验成绩 卷面成绩 综合成绩 实得学分01 A01 大学物理 3 66 78 82 02 B03 高等数学 4 78 -1 90 . . 功能要求及说明:(1) 数据录入功能:录入每个学生的学号,课程编号,课程名称,

    2、学分,平时成绩,试验成绩,卷面成绩共7个数据.综合成绩,实得学分根据条件自动运算.综合成绩的计算: a 如果本课程的试验成绩为-1,则表示无实验,综合成=平时成绩*30%+卷面成绩*70%; b 如果试验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70%。 实得学分的计算:采用登记学分制。 a 综合成绩在90100之间,应得学分=学分*100% b 综合成绩在8090之间,应得学分=学分*80% c 综合成绩在7080之间,应得学分=学分*75% d 综合成绩在6070之间,应得学分=学分*60% e 综合成绩在60以下,应得学分=学分*0%(2)

    3、查询功能:分为学生基本情况查询和成绩查询两种a 学生基本情况查询:输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。b 成绩查询:输入一个学号时,查询出此生的所有课程情况,格式如下:学号:XX 姓名:XXX课程编号:XXX 课程名称:XXX 综合成绩:X X实得学分:X课程编号:XXX 课程名称:XXX 综合成绩:XX 实得学分:X共修:XX 科,实得总学分为:XX(3) 删除功能:当在A.TXT 中删除一个学生时,自动地在B.TXT 中删除此人所有信息.(4) 排序功能:能实现选择按综合成绩或实得学分升序或降序排序并

    4、显示数据。 (二)总体设计学生学籍管理系统根据上面的需求分析,可以将这个系统的设计分为如下四大模块:数据的录入及计算,查询,删除,排序。排序删除查询录入及计算(三)详细设计1 .全局变量的声明定义#define N 50#define k 3#include #include #include #include #include /*定义结果体*/struct stud char pro_num10; char pro_name20; int x; int usual; int papsco; int emp; int score; int sco;struct student char nu

    5、m10; char name20; char male7; char room5; char telnum10; struct stud stk;stuN; 2 .函数这里主函数提供各功能的选择 【流程图】【程序】void menu() int n,w1; /*变量n保存选择菜单数字,w1判断输入是否在菜单上有的功能*/ do puts(tt*MENU*nn); puts(tttt 1.Enter new data); /*输入学生信息*/ puts(tttt 2.Search); /*查找学生信息*/ puts(tttt 3.Delete data); /*删除学生信息*/ puts(ttt

    6、t 4.Orde by score); /*学生信息排序*/ puts(tttt 5.Exit); /*退出*/ puts(tt*n); printf(Choice your number(1-5): bb); scanf(%d,&n); if(n5) /*对选择的数字做判断*/ w1=1; getchar(); else w1=0; while(w1=1); /*选择功能*/ switch(n) case 1:enter();break; case 2:search();break; case 3:del();break; case 4:orde();break; case 5:exit(0

    7、); int main() menu();4 .各功能模块设计(1)输入模块/*输入模快*/*算综合成绩函数*/ void score(int i,int j) if(stui.stj.emp=-1) stui.stj.score=stui.stj.usual*3/10 + stui.stj.papsco*7/10; else stui.stj.score=(stui.stj.usual + stui.stj.emp)*15/100 + stui.stj.papsco*7/10;/*求实得学分函数*/void sco(int i,int j) int p; p=stui.stj.papsco/

    8、10; if(p6) p=5; if(p=10) p=9; switch(p) case 5: stui.stj.sco= 0; case 6: stui.stj.sco= stui.stj.x * 60 / 100; case 7: stui.stj.sco= stui.stj.x * 75 / 100; case 8: stui.stj.sco= stui.stj.x * 80/ 100; case 9: stui.stj.sco= stui.stj.x ; /*输入成绩信息*/void score_input (int i) int j; for(j=0;jk;j+) scanf(%s%

    9、s%d%d%d%d,stui.stj.pro_num,stui.stj.pro_name,&stui.stj.x,&stui.stj.usual,&stui.stj.papsco,&stui.stj.emp); score(i,j); /*调用综合成绩函数*/ sco(i,j); /*调用实得学分函数*/ /*学号记录函数*/void no_input(int i,int n) /*加载记录或可以记录个数的函数*/ int j,s,w1; do w1=0; printf(NO.:); scanf(%s,stui.num); for(j=0;stui.numj!=0;j+) /*学号输入函数,作

    10、了严格的规定*/ if(stui.numj9) /*判断学号是否为数字*/ puts(Inout error!Only be made up of(0-9).Please reinput!n); w1=1; break; if(w1!=1) for(s=0;sn;s+) /*比较第n个学生*/ /*排除第i个学生记录即你要修改的*/ if(s!=0&strcmp(stus.num,stuj.num)=0) /*判断学号是否有雷同*/ puts(This record is exisit.Please reinput!n); w1=1; break; while(w1=1);/*输入一个记录*/

    11、void intput(int i) no_input(i,i); /*调用学号记录函数*/ printf(name:); scanf(%s,stui.name); printf(male:); scanf(%s,stui.male); printf(room:); scanf(%s,stui.room); printf(tlenum:); scanf(%s,stui.telnum); printf(now intput score:); score_input(i); /*调用分数输入函数*/*输入函数*/ void enter() int i,n; system(cls); printf(

    12、hao many student(0-%d)?:,N-1); scanf(%d,&n); printf(nEnter data nownn); for(i=0;in;i+) printf(n Input%dth student record.n,i+1); intput(i); if(i!=0) save(n,0); /*调用保存函数*/ printf_back(); /*调用返回函数*/ (2)查询模块 /*查询模块*/*通过名字或学号查询基本信息函数*/ Y Nvoid search1(int n) int i,flog=0; char s20; printf(nnplease scanf

    13、 the num or name which you want search: ); scanf(%s,s.name); /*通过名字查询并输出*/ for(i=0;in;i+) if(strcmp(s,stui.name)=0) printf(nnnum:%stname:%stmale:%stroom:%sttelunm:%snn,stui.num, stui.name,stui.male,stui.room,stui.telnum); flog=1; else if(strcmp(s,stui.num)=0) printf(nnnum:%stname:%stmale:%stroom:%st

    14、telunm:%snn,stui.num, stui.name,stui.male,stui.room,stui.telnum); flog=1; if(flog=0) printf(Can not find this member);/*通过宿舍号查询该宿舍所有同学的基本信息函数*/void search2(int n) int i,flog=0; char r5; printf(nnplease scanf room which you want search: ); scanf(%s,r); for(i=0;in;i+) if(strcmp(r,stui.room)=0) /*查找并输出

    15、成绩信息*/ printf(nnnum:%stname:%stmale:%stroom:%sttelunm:%snn,stui.num, stui.name,stui.male,stui.room,stui.telnum); flog=1; if(flog=0) printf(Can not find this member); /*通过学号查询成绩信息函数*/void search3(int n) int i,j,s=0,flog=0; char m20; printf(nnplease scanf the num which you want search: ); scanf(%s,&m)

    16、; for(i=0;in;i+) if(strcmp(m,stui.num)=0) /*查找所要查找的同学*/ for(j=0;jk;j+)/*输出成绩信息*/ printf(npto_unm:%stpro_name:%stx:%dtusual:%dnpapsco:%dtemp:%dtscore:%dtsco:%dn,stui.stj.pro_num,stui.stj.pro_name, stui.stj.x,stui.stj.usual,stui.stj.papsco,stui.stj.emp,stui.stj.score,stui.stj.sco); s+=stui.stj.sco; pr

    17、intf(Project:%dtAll sco:%d,j,s); flog=1; break; if(flog=0) printf(Can not find this member); void search() int n,m,w1;/*;*/ system(cls); n=open_fp(); /*调用将文件里的内容输到结果体函数,并得到学生个数*/ do /*功能选择*/ printf(what do you want to do?nnt1).search by name or num 2).search menmber by room 3).search scorce by num);

    18、 printf(Choice your number(1-3): bb); scanf(%d,&m); if(m3) /*对选择的数字做判断*/ w1=1; printf(nnyou choice is error,choice again.nn); else w1=0; while(w1=1); switch(m) case 1:search1(n);break; /*调用通过名字或学号查询基本信息函数*/ case 2:search2(n);break;/*调用通过宿舍号查询该宿舍所有同学的基本信息函数*/ case 3:search3(n);break; /*调用通过学号查询成绩信息函数

    19、*/ printf_back();/*;*/*/ (3)删除模块【程序】/*删除模快*/void del() /*修改数据函数,修改第i个记录*/ FILE *fp1,*fp2; int i,j,n,d; char num10; system(cls); n=open_fp(); if(fp2=fopen(A.TXT,wb)=NULL) /*以输出打开方式,在此前的记录被覆盖 */ printf(n Cannot open filen); exit(0); if(fp1=fopen(B.TXT,wb)=NULL) /*以输出打开方式,在此前的记录被覆盖 */ printf(n Cannot o

    20、pen filen); exit(0); printf(please input the number witch you want delete: bb);/*;*/ scanf(%s,num); for(i=0;in;i+) if(strcmp(num,stui.num)!=0) /*strcmp(num,stui.num)=0表示此记录已删除*/ fprintf(fp2,n%s %s %s %s %sn,stui.num,stui.name,stui.male, stui.room,stui.telnum); for(j=0;jk;j+) fprintf(fp1,n%s %s %d %d

    21、 %d %d %d %dn,stui.stj.pro_num,stui.stj.pro_name, stui.stj.x,stui.stj.usual,stui.stj.papsco,stui.stj.emp,stui.stj.score,stui.stj.sco); fclose(fp1); fclose(fp2); printf_back();(4)排序模块【流程图】【程序】/*排序模快*/void orde()/*对每个学生的成绩按学分或综合得分排序函数*/ int i,j,f,n,w1; struct stud t; system(cls); n=open_fp();/*调用将文件里的

    22、内容输到结果体函数,并得到学生个数*/ printf(Choice whitch methud do you wantnnt1).Orde by scoret2).Orde by sconn); printf(please input the number witch you want delete: bb); scanf(%d,&w1); if(w1=1) for(i=0;in;i+)/*对每个学生的成绩综合得分排序*/ for(f=1;fk;f+) for(j=0;jstui.stj+1.score) exchange(&t,&stui.stj); exchange(&stui.stj,&

    23、stui.stj+1); exchange(&stui.stj+1,&t); if(w1=2) for(i=0;in;i+) /*对每个学生的成绩按学分排序*/ for(f=1;fk;f+) for(j=0;jstui.stj+1.sco) exchange(&t,&stui.stj); exchange(&stui.stj,&stui.stj+1); exchange(&stui.stj+1,&t); save(n,1); /*排序后调用保存信息函数*/ for(i=0;in;i+)/*排序后输出每个学生信息*/ printf(nnnum:%stname:%stmale:%stroom:%sttelunm:%snn,stui.num, stui.name,stui.male,stui.room,stui.telnum); for(j=0;jpro_num,t-pro_num); strcpy(s-pro_name,t-pro_name); s-x=t-x; s-usual=t-usual; s-papsco=t-papsco; s-emp=t-emp; s-score=t-score; s-sco=t-sco;void printf_back() /*一个任务结束时返回开始*/ void menu(); printf(nntSuccessful._


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开