学生学籍信息管理系统---C语言设计(共34页).doc
《学生学籍信息管理系统---C语言设计(共34页).doc》由会员分享,可在线阅读,更多相关《学生学籍信息管理系统---C语言设计(共34页).doc(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 学生学籍信息管理系统 目录1.设计目的与要求2.总体设计3.详细设计4.调试分析5.总结6.答辩记录7.教师意见8.附录主程序专心-专注-专业 1.设计目的与要求:1.1 【要求】:使用下面的数据,设计一个简单的学籍信息管理系统。学生基本信息文件(A.TXT)及其内容:A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成学号 姓名 性别 宿舍号码 电话号码01 张成成 男 501 02 李成华 女 101 03 王成凤 女 101 04 张明明 男 502 05 陈东 男 501 06 李果 男 502 07 张园园 女 102 学生成绩基本信息文件(B.TX
2、T)及其内容学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 学分01 A01 大学物理 3 66 78 8202 B03 高等数学 4 78 -1 9001 B03 高等数学 4 45 -1 8802 C01 VF 3 65 76 66功能要求及说明:(1) 数据录入功能: 对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综合成绩、学分由程序根据条件自动运算。(2) 综合成绩的计算: 如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%; 如果实验成绩不为-1,表示本课
3、程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70%。实综合成绩在90-100之间 ,应得学分=学分*100%得学分的计算: 采用等级学分制.综合成绩在80-90之间 ,应得学分=学分*80%综合成绩在70-80之间 ,应得学分=学分*75%综合成绩在60-70之间 ,应得学分=学分*60%综合成绩在60以下 ,应得学分=学分*0%(2)查询功能:分为学生基本情况查询和成绩查询两种 A:学生基本情况查询:A1-输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。A2-输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。B:成绩查询:B1:输入一个学号
4、时,查询出此生的所有课程情况,格式如下:学 号:xx 姓 名:xxxxx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx共修:xx科,实得总学分为: xxx (3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。 (4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据1.2 【目的】:实现对于学生学籍信息的查询以及管理。自动录入,方便快捷。数据录入功能,综合成绩的计算,
5、查询功能(学生基本情况查询,成绩查询),删除功能,排序功能等为一体。使学生学籍和成绩等信息实现信息化快捷管理。2.总体设计: 经过分析整个系统,可以将系统分为五大模块:信息输入模块,信息修改模块,信息排序模块,设备查找模块和退出模块。其中主要是前五大个模块。所 用 到 的 各 个 子 函 数读取数据、计算菜 单 显 示数 据 录 入排 序查 询按 实 际 学 分按 综 合 成 绩查 询 成 绩查询 学生 信息3.详细设计:3.1主函数:/*主函数*#include #include #include #include #include void menu() int c,w1; do puts
6、(tt*MENU*nn); puts(tttt 1.Input data); /*输入模块*/ puts(tttt 2.Search data); /*查找模块*/ puts(tttt 3.Delete data); /*删除模块*/ puts(tttt 4.Sort data); /*排序模块*/ puts(tttt 5.Exit); /*退出*/ puts(nntt*n); printf(Choice number(1-5): bb); scanf(%d,&c); if(c6) w1=1; getchar(); else w1=0; while(w1=1); switch(c) case
7、1:enter();break; case 2:search();break; case 3:del();break; case 4:sort();break; case 5:exit(0);break; void main() menu(); 3.2 公共函数:所用到的六个公共函数一个函数结束时的选择浏览还是返回的函数显示数据结构项目的函数保存文件B函数加载文件B函数保存文件A函数加载文件A函数int load_info() /*A文件加载函数*/ int i; FILE *fp; if(fp=fopen(A.txt,r)=NULL) printf(nCannot open filen);
8、return 0; for(i=0;!feof(fp);i+) fscanf(fp,%s%s%s%s%s,stui.num,stui.name,stui.sex,stui.room,stui.tel); fclose(fp); return(i);int save_info(int n) /*A文件保存函数*/ int i; FILE *fp; if(fp=fopen(A.txt,w)=NULL) printf(nCannot open filen); return 0; for(i=0;in;i+) if(strcmp(stui.num,-1)!=0) fprintf(fp,%s %s %s
9、 %s %sn,stui.num,stui.name,stui.sex,stui.room,stui.tel); fclose(fp);int load_score() /*B文件加载函数*/ float ca_mark(int i);void ca_score(int i); int i,j; FILE *fp; if(fp=fopen(B.txt,r)=NULL) printf(nCannot open filen); return 0; for(i=0;!feof(fp);i+) fscanf(fp,%s%s%s%d,scri.num,scri.subnum,scri.subject,&
10、scri.oscore); for(j=0;j3;j+) fscanf(fp,%d,&scri.markj); ca_mark(i); ca_score(i); fclose(fp); return(i);int save_score(int m) /*B文件保存函数*/ int i,j; FILE *fp; if(fp=fopen(B.txt,w)=NULL) printf(nCannot open filen); return 0; for(i=0;im;i+) if(strcmp(scri.num,-1)!=0) fprintf(fp,%s %s %s %d %d %d %d %d %d
11、n,scri.num,scri.subnum,scri.subject,scri.oscore,scri.mark0,scri.mark1,scri.mark2,(int)scri.totalmark,(int)scri.gscore); fclose(fp);void printone(int i) /*显示数据结构项目的函数(公共函数)*/ printf(nt%-4st%-6st%-4st%-8st%-8s,stui.num,stui.name,stui.sex,stui.room,stui.tel);void printface() /*公共函数,一个函数结束时的选择浏览还是返回的函数*
12、/ printf(nt学号t姓名 t性别t宿舍号码t电话号码n);3.3 功能模块的设计: /* 信 息 删 除 模 块*开始数据删除结束输入学号void del() /删除模块 void menu(); int i,j,c,flag=0;char s6; printface(); for(i=0;in;i+) printone(i); puts(nn); printf(nInput the delete number: ); scanf(%s,s);printf(nnSure?t1).Suret2).Not3).Backt bb); scanf(%d,&c); if(c=1) for(i=0
13、;in;i+) if(judge(s,stui.num) flag=1; strcpy(stui.num,-1); for(j=0;jm;j+) if(judge(s,scri.num) strcpy(scri.num,-1); break; if(flag=0) puts(ntNot exist!n);choice_menu(5); if(c=2) puts(nn);del(); if(c=3) puts(nn);menu(); save_info(n); save_score(m); load_info(); load_score(); puts(nntSuccessfully!._.n)
14、; choice_menu(5);/* 开始数据排序X=1?实际学分排序综合成绩排序结束YN 信 息 排 序 模 块*void sort() /排序模块 void menu(); int c,k,v;printf(nnChoice number: 1).综合成绩t2).实得学分t bb); scanf(%d,&c); list_subject(); scanf(%d,&k); printf(nnChoice: 1).从高到低t2).从低到高t bb); scanf(%d,&v); sortmark(c,k,v);void sortmark(int c,int k,int v)char *num
15、_name(char s); int judge(char a,char b);char s4; int i,j=0,i1,j1,k1;struct score *p100,*t; switch(k) case 1:strcpy(s,A01);break; case 2:strcpy(s,B03);break; case 3:strcpy(s,C01);break; case 4:strcpy(s,D02);break; for(i=0;im;i+) pi=NULL; for(i=0;im;i+) if(judge(s,scri.subnum) pj=&scri;j+; for(i1=0;i1
16、j-1;i1+) k1=i1; if(c=1) for(j1=i1+1;j1totalmarktotalmark) k1=j1; if(c=2) for(j1=i1+1;j1gscoregscore) k1=j1; if(i1!=k1)t=pi1;pi1=pk1;pk1=t; puts(n名次 姓名t平时成绩 实验成绩 卷面成绩 综合成绩 实得学分); if(v=1) for(i=0;inum),pi-mark0,pi-mark1,pi-mark2,pi-totalmark,pi-gscore); if(v=2) for(i=j-1;i=0;i+) printf(%-4d %-8s &%-8d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 学籍 信息管理 系统 语言 设计 34
限制150内