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

上传人:b****2 文档编号:16970363 上传时间:2023-07-20 格式:DOCX 页数:13 大小:22.69KB
下载 相关 举报
C语言课设之学生学籍管理系统.docx_第1页
第1页 / 共13页
C语言课设之学生学籍管理系统.docx_第2页
第2页 / 共13页
C语言课设之学生学籍管理系统.docx_第3页
第3页 / 共13页
C语言课设之学生学籍管理系统.docx_第4页
第4页 / 共13页
C语言课设之学生学籍管理系统.docx_第5页
第5页 / 共13页
C语言课设之学生学籍管理系统.docx_第6页
第6页 / 共13页
C语言课设之学生学籍管理系统.docx_第7页
第7页 / 共13页
C语言课设之学生学籍管理系统.docx_第8页
第8页 / 共13页
C语言课设之学生学籍管理系统.docx_第9页
第9页 / 共13页
C语言课设之学生学籍管理系统.docx_第10页
第10页 / 共13页
C语言课设之学生学籍管理系统.docx_第11页
第11页 / 共13页
C语言课设之学生学籍管理系统.docx_第12页
第12页 / 共13页
C语言课设之学生学籍管理系统.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

 

 

题目:

学生学籍管理系统

 

 

 

 

目录:

一.个人简介。

二.报告摘要。

三.报告目录。

四.报告正文。

1、系统需求分析

2、系统总体设计

3、系统详细设计

六.总结。

 

二.报告摘要

这个C语言课程设计是关于学生学籍管理系统的设计,题目要求能够录入数据,查询,删除和排序的功能。

报告依次以主函数板块、数据录入板块、查询板块、删除板块、排序板块的顺序进行。

 

三.报告目录

1主函数

2数据录入

3查询

4删除

5排序

四.报告正文

1系统需求分析

根据题目需求,在程序中要求浏览学生的信息,应该提供数据录入、查询、删除、排序的操作。

题目要求实得成绩、实得学分根据条件自动运算,应该提供求综合成绩和实得学分的算法,另外还应该提供键盘式选择菜单实现功能选择。

2系统总体设计

 

数据录入

数据查询

删除数据

数据排序

 

3系统详细设计

(1)主函数

负责提供输入、处理和输出部分的函数调用,其中各功能模块用菜单方式选择。

程序:

voidmenu()

{intn,w;

do

{

puts("\t\t****************MENU******************\n\n");

puts("\t\t\t\t1.enternewdata-student");

puts("\t\t\t\t2.searchbyname");

puts("\t\t\t\t3.searchbylearnnumber");

puts("\t\t\t\t4.deletedata");

puts("\t\t\t\t5.insertdata");

puts("\t\t\t\t6.enternewdata-sorce");

puts("\t\t\t\t6.exit");

puts("\n\n\t\t************************************\n");

printf("choiceyournumber(1-9):

[]\\b\b");

scanf("%d",&n);

if(n<1||n>9)

{w1=1;getchar();}

elsew1=0;

}while(w1==1);

switch(n)

{case1:

enter();break

case2:

searchbyname();break;

case3:

searchbylearnnumber();break;

case4:

del();break;

case5:

insert():

break;

case6:

exit(0);break;

}

}

main()

{menu();

}

(2)数据录入板块

数据信息中学号、姓名等是字符型,采用字符型数组,分数、号码、等为整数,可以采用整型数组,实得学分可能为小数,采用实型。

采用结构体数组存放学生数据信息到文件。

程序:

/*************************************************/

#defineN10

structstudent

{

intnum;

charname[20];

charsex;

chartel[20];

chardomi[3];

}stu[N];

viodenternewdata-student()

{inti,n;

printf("houmanystudents(0-%d)?

:

",n-1);

for(n=1;n<10;n++)

printf("\nenterdatanow\n\n");

for(i=0;i

{printf("\ninput%dthstudentrecord.\n",i+1);

input(i);

}

if(i!

=0)save(n);

printf_back();

}

#defineN10

structcourse

{

intnum;

intcourse_num;

charcoursename[];

intnormalsorce[]

intnormal;\\平时成绩

intlab;\\实验成绩

inttext;\\考试成绩

intture[];\\综合成绩

floatact[];\\实得学分

}cou[N]

voidenternewdata-sorce()

{inti,n,z,c;

floats;

printf("howmanynum(0-%d)?

:

"N-1);

for(n=1;n<10;n++)

printf(\nenterdatanow\n\n");

for(i=0;i

{print("\ninput%dthrecord.\n",i+1);

input(i);

}

if(i!

=0)save(n);

printf_back();

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

elsecou[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;

elsec=cou[1].text/10;

switch(c)

{case10:

case9:

s=cou[1].normalsorce*0.9;break;

case8:

s=cou[1].normalsorce*0.8;break;

case7:

s=cou[1].normalsorce*0.75;break;

case6:

s=cou[1].normalsorce*0.6;break;

case5:

case4:

case3:

case2:

case1:

case0:

s=0;break;

default:

printf("error\n");}

cou[i].act=s;

}

(3)数据查询

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

程序:

/*******************************************************/

Search()

{inti,n,k;

Structstudents;

Structcoursec;

n=load();

do

{

do{k=-1;

printf("\n\nenternamethatyouwanttosearch!

name:

");

scanf("%s",s.name);

printf_face();}

do{n=-1;

Printf("\n\nenterdomithatyouwanttosearch!

domi:

")

scanf("%d",s.domi);

printf_face();}

do{i=-1;

printf("\n\nenternumthatyouwanttosearch!

num");

scanf("%d%c%d%f",c.num,c.coursename,c.ture,c.act);

printf_face();}

}

}

(4)删除数据

题目要求在删除A.TXT中一个学生信息时,B.TXT中相应的信息也要被删除。

程序:

/*********************************************************/

voiddel()

{structstudents

sturctcoursec;

FILE*fp;

inti,n,kw0=1,w1,w2=0;

n=load();

do

{

k=-1;

printf_face();

for(i=0,i

if(i!

=0)&&(i%10==0)

{printf("\n\nrememberno.whichneededdelete.Passanykeytocontiune...");

getch()

puts("\n\n");

}

printf_one(i);

}

do

{printf("\n\nenterno.Thatyouwanttodelete!

no.");

scanf("%s",s.num);

for(i=0;i

if(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\nnoexist!

Pleaseagain");

}

while(k==-1);

printf_face();printf_one(k);

w1=delete_data(k,n);

if(w1==1)

Printf("\nsuccessful!

\n\nareyoudeleteanother?

\n\n\t1)yes2)backwithsave\t\b\b");

scanf("%d",&w0);

w2=1;

}

else

{w0=0;

if(w2==1)

stu[k]=s

}

if(w0!

=1&&w2==1)

save(n);

}

while(w0==1);

menu()

}

(5)数据排序

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

程序:

/*************************************************************/

voidorder()

{inti,j,k;

intm,n,p;

structcourses;

structcoursec;

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)公共函数//***********************************************************************

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

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

}

//***********************************************************************

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

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

}

//***********************************************************************

voidprintf_back()//返回函数

{intw;

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

printf("选择需要实现的功能\n\n\t1).浏览输入的数据\t2).返回主菜单:

[]\b\b");

scanf("%d",&w);

if(w==1)browse();

elsemenu();

}

//***********************************************************************

intsave(intn)//保存输入的数据到txt文档

{FILE*fp;

inti;

if((fp=fopen("Pro.txt","wb"))==NULL)

{printf("\nCannotopenfile\n");

returnNULL;}

for(i=0;i

if(course[i].num!

=0)

if(fwrite(&course[i],sizeof(structcourse),1,fp)!

=1)printf("filewriteerror\n");

fclose(fp);return0;

}

//***********************************************************************

voidno_input(inti,intn)//检查输入数据是否存在以及编号是否正确

{intj,k,w1;

do

{w1=0;

for(j=0;course[i].num[j]!

='\0';j++)//判断输入编号格式是否正确

if(course[i].num[j]>'9')

{puts("Inputerror!

Onlybemadeupof(0-9).Pleasereinput!

\n");

w1=1;break;}

if(w1!

=1)

for(k=0;k

=i&&strcmp(course[k].num,course[i].num)==0)//判断此编号是否存在

{puts("Thisrecordisexist.pleasereinput!

\n");}

}while(w1==1);

}

 

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2