您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页C语言课设之学生学籍管理系统

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

来源:爱go旅游网


题目:学生学籍管理系统

目录:

一.个人简介。 二.报告摘要。 三.报告目录。 四.报告正文。

1、系统需求分析 2、系统总体设计 3、系统详细设计 六.总结。

二.报告摘要

这个C语言课程设计是关于学生学籍管理系统的设计,题目要求能够录入数据,查询,删除和排序的功能。报告依次以主函数板块、数据录入板块、查询板块、删除板块、排序板块的顺序进行。

三.报告目录 1 主函数 2 数据录入 3 查询 4 删除 5 排序

四.报告正文

1 系统需求分析

整理为word格式

根据题目需求,在程序中要求浏览学生的信息,应该提供数据录入、查询、删除、排序的操作。题目要求实得成绩、实得学分根据条件自动运算,应该提供求综合成绩和实得学分的算法,另外还应该提供键盘式选择菜单实现功能选择。

2 系统总体设计

学生学籍管理系统

数据排序 删除数据 数据查询 数据录入

3 系统详细设计 (1)主函数

负责提供输入、处理和输出部分的函数调用,其中各功能模块用菜单方式选择。 程序: void menu() {int n,w; do {

puts(\"\\****************MENU******************\\n\\n\"); puts(\"\\\\1.enter new data-student\"); puts(\"\\\\2.search by name\"); puts(\"\\\\3.search by learn number\"); puts(\"\\\\4.delete data\"); puts(\"\\\\5.insert data\");

puts(\"\\\\6.enter new data-sorce\"); puts(\"\\\\6.exit\");

puts(\"\\n\\n\\************************************\\n\"); printf(\"choice your number(1-9):[]\\\\b\\b\"); scanf(\"%d\ if(n<1||n>9) {w1=1;getchar();}

整理为word格式

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)数据录入板块

数据信息中学号、姓名等是字符型,采用字符型数组,分数、号码、等为整数,可以采用整型数组,实得学分可能为小数,采用实型。采用结构体数组存放学生数据信息到文件。 程序:

/*************************************************/ #define N 10 struct student {

int num; char name[20]; char sex; char tel[20]; char domi[3]; }stu[N];

viod enter new data-student() {int i,n;

printf(\"hou many students(0-%d)?:\ for(n=1;n<10;n++)

整理为word格式

printf(\"\\n enter data now\\n\\n\"); for(i=0;i{printf(\"\\n input%dth student record.\\n\ 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[];\\\\综合成绩 float act[];\\\\实得学分 }cou[N]

void enter new data-sorce() {int i,n,z,c; float s;

printf(\"how many num(0-%d)?: \"N-1); for(n=1;n<10;n++)

printf(\\n enter data now\\n\\n\"); for(i=0;i{print(\"\\n input%dth record.\\n\ input(i); }

if(i!=0) save(n);

整理为word格式

printf_back();

if(cou[1].lab==-1) cou[1].true=cou[1].normal*0.3+cou[1].text*0.7; else cou[1].true=cou[1].lab*0.15+cou[1].normal*0.15+cou[1].text*0.7;

if(c=100) s=cou[1].normalsorce*1; else c=cou[1].text/10; switch(c) {case 10:

case 9:s=cou[1].normalsorce*0.9;break; case 8:s=cou[1].normalsorce*0.8;break; case 7:s=cou[1].normalsorce*0.75;break; case 6:s=cou[1].normalsorce*0.6;break; case 5: case 4: case 3: case 2: case 1:

case 0:s=0;break;

default:printf(\"error\\n\"); } cou[i].act=s; }

(3)数据查询

这个模块要求a.输入一个学号或姓名查讯学生的基本信息并显示输出;输入一个宿舍号码,可查出本室所有学生的基本信息并显示输出; c.输入一个学号时,查出此学生所有课程情况。 程序:

/*******************************************************/ Search() {int i,n,k; Struct student s; Struct course c; n=load(); do {

整理为word格式

do {k=-1;

printf(\"\\n\\nenter name that you want to search! name:\"); scanf(\"%s\ printf _face();}

do {n=-1;

Printf(\"\\n\\nenter domi that you want to search! domi:\") scanf(\"%d\ printf_ face();}

do {i=-1;

printf(\"\\n\\nenter num that you want to search! num \");

scanf(\"%d%c%d%f\ 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=load(); do { k=-1;

printf_face(); for(i=0,iif(i!=0)&&(i%10==0)

{printf(\"\\n\\nremember no. which needed delete.Pass any key to contiune...\");

整理为word格式

getch() puts(\"\\n\\n\"); }

printf_one(i); } do

{printf(\"\\n\\nenter no. That you want to delete! no.\"); scanf(\"%s\ for(i=0;iif(strcmp(s.num,stu[i].mum==0)) {k=i; s=stu[i]; }

[for(i=0,i{if(strcmp(cou[i]==stu[i]))

if(k==-1)printf(\"\\n\\nno exist!Please again\"); }

while(k==-1);

printf_face();printf_one(k); w1=delete_data(k,n); if(w1==1)

Printf(\"\\nsuccessful !\\n\\nare you delete another ?\\n\\n\1)yes 2)back with save\\\b\\b\");

scanf(\"%d\ w2=1; } else {w0=0; if(w2==1) stu[k]=s }

if(w0!=1&&w2==1) save(n); }

整理为word格式

while(w0==1); menu() }

(5)数据排序

能实现选择按综合成绩或实得学分升序或降序排序并显示数据。 程序:

/*************************************************************/ void order() {int i,j,k; int m,n,p; struct course s; struct course c; for(i=0;i<9;i++) {k=i;

for(j=i+1;j<10;j++) if(cou[j].true>cou[k].true) k=j; s=cou[i].true;cou[i].true=cou[j].true;cou[j].true=s; }

for(m=0;m<9;m++) {p=m

for(n=m+1;n<10;n++) if(cou.act[n]>cou.Act[p])p=n; c= cou.act[m];cou.act[m]=cou.atc[n];cou.act[n]=c; }

(6)公共函数

//*********************************************************************** void printf_face1() //每次要输出文件1数据的时候用到(打印到数据的第一排,提示作用)

{ printf(\"\\n 学号 姓名 性别 宿舍号码 电话号码\\n\"); }

//*********************************************************************** void printf_face() //每次要输出文件2数据的时候用到(打印到数据的第一排,提示作用)

整理为word格式

{ printf(\"\\n 学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得分数\\n\"); }

//*********************************************************************** void printf_back() //返回函数 { int w;

printf(\"\\n\\n\数据输入成功^_^\\n\\n\");

printf(\"选择需要实现的功能\\n\\n\1).浏览输入的数据\2).返回主菜单: [ ]\\b\\b\"); scanf(\"%d\ if(w==1) browse(); else menu(); }

//*********************************************************************** int save(int n) //保存输入的数据到txt文档 {FILE *fp; int i;

if((fp=fopen(\"Pro.txt\ {printf(\"\\nCannot open file\\n\"); return NULL; } for(i=0;iif(fwrite(&course[i],sizeof(struct course),1,fp)!=1) printf(\"file write error\\n\");

fclose(fp); return 0; }

整理为word格式

//*********************************************************************** void no_input(int i,int n) //检查输入数据是否存在以及编号是否正确 {int j,k,w1;

do {w1=0;

for(j=0;course[i].num[j]!='\\0';j++) //判断输入编号格式是否正确 if(course[i].num[j]>'9')

{puts(\"Input error!Only be made up of(0-9).Please reinput!\\n\"); w1=1;break; } if(w1!=1)

for(k=0;k{puts(\"This record is exist.please reinput!\\n\"); } } while(w1==1); }

友情提示:本资料代表个人观点,如有帮助请下载,谢谢您的浏览!

整理为word格式

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务