《2022年C语言课设之学生学籍管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言课设之学生学籍管理系统 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、题 目 : 学 生 学 籍 管 理 系 统目录:一 . 个人简介。二 . 报告摘要。三 . 报告目录。四 . 报告正文。 1、系统需求分析 2、系统总体设计 3、系统详细设计六 . 总结。二 . 报告摘要这个 C语言课程设计是关于学生学籍管理系统的设计,题目要求能够录入数据,查询,删除和排序的功能。报告依次以主函数板块、数据录入板块、查询板块、删除板块、排序板块的顺序进行。三 . 报告目录 1 主函数 2 数据录入 3 查询 4 删除 5 排序四 . 报告正文 1 系统需求分析名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师
2、精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 根据题目需求,在程序中要求浏览学生的信息,应该提供数据录入、查询、删除、排序的操作。 题目要求实得成绩、实得学分根据条件自动运算,应该提供求综合成绩和实得学分的算法,另外还应该提供键盘式选择菜单实现功能选择。 2 系统总体设计 3 系统详细设计(1)主函数负责提供输入、处理和输出部分的函数调用,其中各功能模块用菜单方式选择。程序: void menu() int n,w; do puts(tt*MENU*nn); puts(tttt1.enter new data-student); puts(
3、tttt2.search by name); puts(tttt3.search by learn number); puts(tttt4.delete data); puts(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(); 数据录入数据查询删除数据数据排序学生学籍管理系统名师资料总结 - - -精品资料欢迎下载 - - - -
4、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 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; case 5:insert():break; case 6:exit(0);break; main() menu(); (2)数据录入板块数据信息中
5、学号、姓名等是字符型,采用字符型数组,分数、号码、等为整数,可以采用整型数组,实得学分可能为小数,采用实型。 采用结构体数组存放学生数据信息到文件。程序:/*/ #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-%d)?:,n-1); for(n=1;n10;n+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - -
6、- - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 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 平时成绩实验成绩考试成绩综
7、合成绩实得学分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); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,
8、共 10 页 - - - - - - - - - printf_back(); if(cou1.lab=-1) cou1.true=cou1.normal*0.3+cou1.text*0.7; else cou1.true=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;bre
9、ak; case 7:s=cou1.normalsorce*0.75;break; case 6:s=cou1.normalsorce*0.6;break; case 5: case 4: case 3: case 2: case 1: case 0:s=0;break; default:printf(errorn); coui.act=s; (3) 数据查询这个模块要求a. 输入一个学号或姓名查讯学生的基本信息并显示输出;输入一个宿舍号码,可查出本室所有学生的基本信息并显示输出; c. 输入一个学号时,查出此学生所有课程情况。程序:/*/ Search() int i,n,k; Struct
10、 student s; Struct course c; n=load(); do 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - do k=-1; printf(nnenter name that you want to search! name:); scanf(%s,s.name); printf _face(); do n=-1; Printf(nnenter domi that you want to search!
11、 domi:) scanf(%d,s.domi); printf_ face(); do i=-1; printf(nnenter num that you want to search! num ); scanf(%d%c%d%f,c.num,c.coursename,c.ture,c.act); printf_face(); (4)删除数据题目要求在删除A.TXT 中一个学生信息时,B.TXT 中相应的信息也要被删除。程序:/*/ void del() struct student s sturct course c; FILE*fp; int i,n,k w0=1,w1,w2=0; n=
12、load(); do k=-1; printf_face(); for(i=0,in;i+) if(i!=0)&(i%10=0) printf(nnremember no. which needed delete.Pass any key to contiune.); getch() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - puts(nn); printf_one(i); do printf(nnenter no. T
13、hat 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); w1=delete_data(k,n); if(w1=1) Printf(nsuccessful !nnare you delete another ?nn
14、t1)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); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - menu() (5)数据排序能实现选择按综合成绩或实得学分升序或降序排序并显示数据。程序:/*/ void order() int i,j,k; int
15、m,n,p; struct course s; struct course 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; (6)公共函数/* void printf_face1() / 每次要输出文件1 数据的时候用到(打印到数据的第一排,提示作用) printf(n 学号 姓名性别
16、 宿舍号码电话号码 n); /* void printf_face() /每次要输出文件2 数据的时候用到(打印到数据的第一排,提示作用) printf(n 学号 课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得分数 n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - /* void printf_back() /返回函数 int w; printf(nnt数据输入成功 _nn); printf(选择需要实现的功能
17、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); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -
限制150内