C语言课设之学生学籍管理系统.docx

上传人:牧羊曲112 文档编号:3155492 上传时间:2023-03-11 格式:DOCX 页数:7 大小:39.16KB
返回 下载 相关 举报
C语言课设之学生学籍管理系统.docx_第1页
第1页 / 共7页
C语言课设之学生学籍管理系统.docx_第2页
第2页 / 共7页
C语言课设之学生学籍管理系统.docx_第3页
第3页 / 共7页
C语言课设之学生学籍管理系统.docx_第4页
第4页 / 共7页
C语言课设之学生学籍管理系统.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言课设之学生学籍管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课设之学生学籍管理系统.docx(7页珍藏版)》请在三一办公上搜索。

1、C语言课设之学生学籍管理系统题目:学生学籍管理系统 目录: 一.个人简介。 二.报告摘要。 三.报告目录。 四.报告正文。 1、系统需求分析 2、系统总体设计 3、系统详细设计 六.总结。 二.报告摘要 这个C语言课程设计是关于学生学籍管理系统的设计,题目要求能够录入数据,查询,删除和排序的功能。报告依次以主函数板块、数据录入板块、查询板块、删除板块、排序板块的顺序进行。 三.报告目录 1 主函数 2 数据录入 3 查询 4 删除 5 排序 四.报告正文 1 系统需求分析 根据题目需求,在程序中要求浏览学生的信息,应该提供数据录入、查询、删除、排序的操作。题目要求实得成绩、实得学分根据条件自动

2、运算,应该提供求综合成绩和实得学分的算法,另外还应该提供键盘式选择菜单实现功能选择。 2 系统总体设计 学生学籍管理系统 数据排序 删除数据 数据查询 数据录入 3 系统详细设计 主函数 负责提供输入、处理和输出部分的函数调用,其中各功能模块用菜单方式选择。 程序: void menu int n,w; do puts(tt*MENU*nn); puts(tttt1.enter new data-student); puts(tttt2.search by name); puts(tttt3.search by learn number); puts(tttt4.delete data); p

3、uts(tttt5.insert data); puts(tttt6.enter new data-sorce); puts(tttt6.exit); puts(nntt*n); printf(choice your number(1-9):bb); scanf(%d,&n); if(n9) w1=1;getchar; else w1=0; while(w1=1); switch(n) case 1:enter;break case 2:search by name;break; case 3:search by learn number;break; case 4:del;break; ca

4、se 5:insert:break; case 6:exit(0);break; main menu; 数据录入板块 数据信息中学号、姓名等是字符型,采用字符型数组,分数、号码、等为整数,可以采用整型数组,实得学分可能为小数,采用实型。采用结构体数组存放学生数据信息到文件。 程序: /*/ #define N 10 struct student int num; char name20; char sex; char tel20; char domi3; stuN; viod enter new data-student int i,n; printf(hou many students(0-

5、%d)?:,n-1); for(n=1;n10;n+) printf(n enter data nownn); for(i=0;in;i+) printf(n input%dth student record.n,i+1); input(i); if(i!=0) save(n); printf_back; #define N 10 struct course int num; int course_num; char coursename; int normalsorce int normal;平时成绩 int lab;实验成绩 int text;考试成绩 int ture;综合成绩 floa

6、t act;实得学分 couN void enter new data-sorce int i,n,z,c; float s; printf(how many num(0-%d)?: N-1); for(n=1;n10;n+) printf(n enter data nownn); for(i=0;in;i+) print(n input%dth record.n,i+1); input(i); if(i!=0) save(n); printf_back; if(cou1.lab=-1) cou1.true=cou1.normal*0.3+cou1.text*0.7; else cou1.tr

7、ue=cou1.lab*0.15+cou1.normal*0.15+cou1.text*0.7; if(c=100) s=cou1.normalsorce*1; else c=cou1.text/10; switch(c) case 10: case 9:s=cou1.normalsorce*0.9;break; case 8:s=cou1.normalsorce*0.8;break; case 7:s=cou1.normalsorce*0.75;break; case 6:s=cou1.normalsorce*0.6;break; case 5: case 4: case 3: case 2

8、: case 1: case 0:s=0;break; default:printf(errorn); coui.act=s; 删除数据 题目要求在删除A.TXT中一个学生信息时,B.TXT中相应的信息也要被删除。 程序: /*/ void del struct student s sturct course c; FILE*fp; int i,n,k w0=1,w1,w2=0; n=load; do k=-1; printf_face; for(i=0,in;i+) if(i!=0)&(i%10=0) printf(nnremember no. which needed delete.Pas

9、s any key to contiune.); getch puts(nn); printf_one(i); do printf(nnenter no. That you want to delete! no.); scanf(%s,s.num); for(i=0;in;i+) if(strcmp(s.num,stui.mum=0) k=i; s=stui; for(i=0,in,i+) if(strcmp(coui=stui) if(k=-1)printf(nnno exist!Please again); while(k=-1); printf_face;printf_one(k); w

10、1=delete_data(k,n); if(w1=1) Printf(nsuccessful !nnare you delete another ?nnt1)yes 2)back with savetbb); scanf(%d,&w0); w2=1; else w0=0; if(w2=1) stuk=s if(w0!=1&w2=1) save(n); while(w0=1); menu 数据排序 能实现选择按综合成绩或实得学分升序或降序排序并显示数据。 程序: /*/ void order int i,j,k; int m,n,p; struct course s; struct cours

11、e c; for(i=0;i9;i+) k=i; for(j=i+1;jcouk.true) k=j; s=coui.true;coui.true=couj.true;couj.true=s; for(m=0;m9;m+) p=m for(n=m+1;ncou.Actp)p=n; c= cou.actm;cou.actm=cou.atcn;cou.actn=c; 公共函数/* void printf_face1 /每次要输出文件1数据的时候用到 printf(n 学号 姓名 性别 宿舍号码 电话号码n); /* void printf_face /每次要输出文件2数据的时候用到 printf(

12、n 学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得分数n); /* void printf_back /返回函数 int w; printf(nnt数据输入成功_nn); printf(选择需要实现的功能nnt1).浏览输入的数据t2).返回主菜单: bb); scanf(%d,&w); if(w=1) browse; else menu; /* int save(int n) /保存输入的数据到txt文档 FILE *fp; int i; if(fp=fopen(Pro.txt,wb)=NULL) printf(nCannot open filen); return NULL; for(i=0;i9) puts(Input error!Only be made up of(0-9).Please reinput!n); w1=1;break; if(w1!=1) for(k=0;kn;k+) if(k!=i&strcmp(coursek.num,coursei.num)=0) /判断此编号是否存在 puts(This record is exist.please reinput!n); while(w1=1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号