C语言程序报告学生学籍信息管理系统(共21页).doc
《C语言程序报告学生学籍信息管理系统(共21页).doc》由会员分享,可在线阅读,更多相关《C语言程序报告学生学籍信息管理系统(共21页).doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C语言课程设计院系:工程学院姓名:刘若愚学号:班号:指导教师:王老师日期:2007年9月 C语言程序设计报告第一部分 题目要求 程序设计题目:学生学籍信息管理系统设计【要求】使用下面的数据,设计一个简单的学籍信息管理系统。学生基本信息文件(A.TXT)及其内容:学号 姓名 性别 宿舍号码 电话号码01 张成成 男 501 02 李成华 女 101 03 王成凤 女 101 04 张明明 男 502 05 陈东 男 501 06 李果 男 502 07 张园园 女 102 . . . .学生成绩基本信息文件(B.TXT)及其内容:学号 课程编号 课程名称 学分 平时成绩
2、 试验成绩 卷面成绩 01 A01 大学物理 3 66 78 8202 B03 高等数学 4 78 -1 9001 B03 高等数学 4 45 -1 8802 C01 VF 3 65 76 66. . . . . .功能要求及说明:数据录入功能:录入每个学生的学号、课程编号、课程名称、学分、平时成绩、试验成绩、卷面成绩共7个数据。综合成绩、实得分根据条件自动运算。综合成绩的计算:如果本课程的试验成绩为-1,则表示无试验,综合成绩=平时成绩*30%+卷面成绩*70%;如果试验成绩不为-1,表示本课程有试验,综合成绩=平时成绩*15%+试验成绩*15%+卷面成绩*70%。实得学分的计算:采用等级学
3、分制。综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=-学分*80%;综合成绩在70-80之间,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下,应得学分=学分*0%。(2)查询功能;分为学生基本情况查询和成绩查询两种 1学生基本情况查询: 输入一个学生的学号活姓名,查出此生的基本信息并显示输出。 输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。成绩查询: 输入一个学号时,查询出此生的所有课程情况,格式如下:学号: 姓名;课程编号: 课程名称: 综合成绩: 实得学分:课程编号: 课程名称: 综合
4、成绩: 实得学分:课程编号; 课程名称: 综合成绩: 实得学分: . 共修:XX科, 实得总学分为:XXX删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有的信息排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。第二部分 需求分析根据题目要求,由于学生信息是存放在文件中,所以应该提供文件的输入、输出等操作;在程序中要浏览学生的信息,应提供显示、查找、排序等操作;另外还应该提供键盘式选择菜单实现功能选择。第三部分 总体设计根据上面的需求分析,可以将这个系统的设计分为以下几个模块:数据输入学生成绩管理系统数据显示数据查找数据插入成绩排序第四部分 详细设计主函
5、数主函数设计一般要简单,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。【流程图】显示一系列功能选项输入n,判断n是否是0-7根据n的值调用各功能模块函数NY程序#includevoid menu() int n,w;do puts(tt*MENU*nn); puts(t 1.browse 2.enter 3.Search ); puts(t 4.browse2 5.enter2 6.Search2); puts(t 7.exit ); puts(nntt*n); printf(Choice your number(1-7): bbbb); scanf(%d,&n); if
6、(n7) /对选择的数字作判断/ w=1;getchar(); else w=0;while (w=1);switch(n) case 1: browse();break; /浏览模块/ case 2: enter();break; /输入模块/ case 3: search();break; /查找模块/ case 4: browse2();break; /浏览模块/ case 5: enter2();break; /输入模块/ case 6: search2();break; /查找模块/ case 7: exit(0);break; /退出/main() menu();2各功能模块设计输
7、入模块:先采用结构体数组存储数据struct a int xuehao; char name15; char sex10; int shushenum; int telenum; a10;struct bint xuehao;int kechenghao;char kechengming15;int xuefen;int pingshichengji;int shiyanchengji;int juanmianchengji;int zonghechengji;int shidechengji;b10; a10.b10 中每个数组元素对应一个学生 void jisuan()int i, n,n
8、1, n2, n3,n4;for(i=0;i90&bi.zonghechengji80&bi.zonghechengji70&bi.zonghechengji60&bi.zonghechengji70) n1=bi.xuefen; bi.shidechengji=(n1)*0.7; break;else if (bi.zonghechengji60) n=bi.xuefen; bi.shidechengji=n*0; break; 此简单程序计算综合成绩与实得学分【程序】enter() int i,n; printf(How many chengjijibenxinxi datas(0-%d)
9、?:,10); scanf(%d,&n); printf(n Enter data now nn); for(i=0;in;i+) printf(nInput %dth chengjijibenxinxi record.n,i+1); input(i); 调用输入函数 if(i!=0) save(n); 调用保存函数 printf_back(); 一个任务结束时让用户选择是浏览还是返回 浏览模块:该模块的功能是显示所有学生记录信息。【流程图】显示学生记录 按任意键显示下一屏按任意键返回主菜单 【程序】browse() 浏览全部模块 int i,j,n; n=load(); 加载记录 print
10、f_face(); 调用显示数据结构项目函数 for(i=0;in;i+) if(i%10=0) printf(nnPass any key to contiune.); 目的是分屏显示 getch(); puts(nn); printf_one(i); printf(n); 调用显示一个记录的函数 printf(tThere are %d record.n,n); printf(nPass any key to back.); getch(); 按任意键 menu(); browse2() 该浏览模块的功能是显示所有学生的成绩基本信息 int i,j,n; n=load2(); printf
11、_face2(); for(i=0;in;i+) if(i%10=0) printf(nnPass any key to contiune.); getch(); puts(nn); printf_one2(i); printf(n); printf(tThere are %d record.n,n); printf(nPass any key to back.); getch(); menu(); 查找模块;该模块的功能是根据输入的学生姓名查找对应的记录,找到以后,增加删除功能。【流程图】输入学生的名字是否找到此生记录显示找到的记录提示没有找到YN询问用户是否继续查找返回主菜单让用户选择1)
12、。查找另一个2)。修改 3).删除 4)返回主菜单YN【程序】search() 查找学生基本信息的模块 int i,n,k,w1=1,w2,w3,w4;struct a s;n=load();do do k=-1; printf(nnEnter number that you want to search! number); scanf(%d,&s.xuehao); 输入要修改的数据的学号 printf_face(); 调用显示数据结构项目函数 for(i=0;in;i+) 查找要修改的数据 if(s.xuehao=ai.xuehao) k=i; printf_one(k);break; 调用
13、显示一个记录的函数 if(k=-1) printf(nnNo exist!please); printf(nnAre you again?nt 1).Again 2)No and back bbb ); scanf(%d,&w1);保证在第一次找的的基础上再查找找不到时能退出 while(k=-1&w1=1); 如果W1不等于1时直返回search2() 查找学生成绩基本信息的模块 int i,n,k,w1=1,w2,w3,w4;struct a s;n=load2();do do k=-1; printf(nnEnter number that you want to search! num
14、ber); scanf(%d,&s.xuehao); printf_face2(); for(i=0;in;i+) if(s.xuehao=ai.xuehao) k=i; printf_one2(k);break; if(k=-1) printf(nnNo exist!please); printf(nnAre you again?nt 1).Again 2)No and back bbb ); scanf(%d,&w1); while(k=-1&w1=1);删除模块:该模块的功能是先显示所有学生的信息,考虑到记录的数据较多,建议采用分屏显示【程序】Void del()排序模块:该功能模块的功
15、能是要求将学生记录的综合成绩或实得分升序或降序排序并显示数据。假设这里采用选择法排序。【流程图】 用选择法排序保存返回主菜单【程序】Void order() 排序模块int I,j,n;Struct student s;n=load();For(i=0;in-1;i+)Save(n);Puts(“nn”);Printf_back();设计出的程序如下#includevoid menu() int n,w;do puts(tt*MENU*nn); puts(t 1.browse 2.enter 3.Search ); puts(t 4.browse2 5.enter2 6.Search2); p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 报告 学生 学籍 信息管理 系统 21
限制150内