《程序设计基础c语言》课程设计.docx

上传人:b****8 文档编号:12590981 上传时间:2023-06-06 格式:DOCX 页数:32 大小:266.14KB
下载 相关 举报
《程序设计基础c语言》课程设计.docx_第1页
第1页 / 共32页
《程序设计基础c语言》课程设计.docx_第2页
第2页 / 共32页
《程序设计基础c语言》课程设计.docx_第3页
第3页 / 共32页
《程序设计基础c语言》课程设计.docx_第4页
第4页 / 共32页
《程序设计基础c语言》课程设计.docx_第5页
第5页 / 共32页
《程序设计基础c语言》课程设计.docx_第6页
第6页 / 共32页
《程序设计基础c语言》课程设计.docx_第7页
第7页 / 共32页
《程序设计基础c语言》课程设计.docx_第8页
第8页 / 共32页
《程序设计基础c语言》课程设计.docx_第9页
第9页 / 共32页
《程序设计基础c语言》课程设计.docx_第10页
第10页 / 共32页
《程序设计基础c语言》课程设计.docx_第11页
第11页 / 共32页
《程序设计基础c语言》课程设计.docx_第12页
第12页 / 共32页
《程序设计基础c语言》课程设计.docx_第13页
第13页 / 共32页
《程序设计基础c语言》课程设计.docx_第14页
第14页 / 共32页
《程序设计基础c语言》课程设计.docx_第15页
第15页 / 共32页
《程序设计基础c语言》课程设计.docx_第16页
第16页 / 共32页
《程序设计基础c语言》课程设计.docx_第17页
第17页 / 共32页
《程序设计基础c语言》课程设计.docx_第18页
第18页 / 共32页
《程序设计基础c语言》课程设计.docx_第19页
第19页 / 共32页
《程序设计基础c语言》课程设计.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《程序设计基础c语言》课程设计.docx

《《程序设计基础c语言》课程设计.docx》由会员分享,可在线阅读,更多相关《《程序设计基础c语言》课程设计.docx(32页珍藏版)》请在冰点文库上搜索。

《程序设计基础c语言》课程设计.docx

《程序设计基础c语言》课程设计

 

《程序设计基础(C语言)》

课程设计

学院:

生命科学学院

班级:

高分子二班

学号:

20102412930

姓名:

李雷

日期:

2014年5月

《C语言程序设计》

题目名称:

学生评教系统

 

算法分析:

使用循环结构、判断结构、结构体、文件流、数组指针等要素,完成简单的系统。

流程设计:

1、先调用教师初始化和学生初始化函数,初始化数据。

2、显示评教系统界面,提供功能选择。

3、输入学生学号密码,进入系统。

4、

 

代码设计:

#include

#include

#include

#include

structteacher

{

charnum[12];

charname[20];

charxueyuan[30];

charxingbie[15];

charkecheng[15];

intchengji;

};

structstudent

{

charnum[12];

charname[20];

charxueyuan[30];

charxingbie[15];

charbanji[15];

};

#defineTEACNUM1000

#defineSTEAC_LENsizeof(structteacher)

structteacherTEAC[TEACNUM];

#defineSTUDNUM1000

#defineSTEAC_lensizeof(structstudent)

structstudentSTUD[STUDNUM];

//教师成绩管理模块的函数声明

voidManagerLogin(inttn);

voidInputoneteacher(inti);

intLoadteachers(void);

voidSaveoneteacher(inti);

voidSaveallteachers(inttn);

intOriginalteacher(void);

voidModifyteacher(inttn);

intAddteacher(inttn);

intDelteacher(inttn);

voidOutputoneteacher(inti);

voidOutputallteachers(inttn);

voidSequence(inttn);

 

//教师成绩查询模块的函数声明

//voidChack(inttn);

voidSearchMenu(inttn);

voidSearchnum(inttn);

voidSearchname(inttn);

voidSearchXueyuan(inttn);

voidSearchKecheng(inttn);

 

//教师成绩分数段的函数声明

voidFenduan(inttn);

voidSort(inttn);

//学生信息模块的函数声明

voidInputonestudent(inti);

intLoadstudents(void);

voidSaveonestudent(inti);

voidSaveallstudents(intsn);

intOriginalstudent(void);

voidOutputonestudent(inti);

voidOutputallstudents(intsn);

 

//学生评教登陆系统

voidStudentLogin(inttn,intsn);

voidPingjiao(inttn);

voidmain()

{

intselect,tn,sn;

tn=Loadteachers();

if(tn==0)

{

printf("教师信息为空,请初始化数据!

\n");

tn=Originalteacher();

}

Sequence(tn);

Saveallteachers(tn);

sn=Loadstudents();

if(sn==0)

{

printf("学生信息为空,请初始化数据!

\n");

sn=Originalstudent();

}

Sequence(sn);

Saveallstudents(sn);

while

(1)

{

printf("\n");

printf("**************************************\n");

printf("*评教系统*\n");

printf("**************************************\n");

printf("--------------------------------------\n");

printf("*1.学生评教系统*\n");

printf("*2.教师信息查询管理系统*\n");

printf("*0.退出系统*\n");

printf("\n请选择您需要的服务(0-2):

");

scanf("%d",&select);

getchar();

switch(select)

{

case1:

StudentLogin(tn,sn);break;

case2:

ManagerLogin(tn);break;

case0:

exit

(1);

default:

printf("\n按键错误,请重新选择!

\n");

}//endswitch

}//endwhile

}

voidStudentLogin(inttn,intsn)

{

intj,m=-1;

charsnum[15];

charpassword[5];

if(sn==0)

{

printf("\n学生信息为空,无法执行操作!

\n");

return;

}

while

(1)

{

printf("\n请输入你的学号:

\n");

gets(snum);

for(j=0;j

if(strcmp(STUD[j].num,snum)==0)

{

m=j;

break;

}

if(m<0)

printf("\n学号错误,请重新输入!

\n");

else

printf("\n请输入你的密码:

\n");

gets(password);

if(strcmp(password,"123")!

=0)

{

printf("\n密码错误!

\n");

exit(0);

}

else

{printf("/n同学你好!

/n");

Pingjiao(tn);

return;

}

}

printf("\n按任意键继续!

\n");

getchar();

}

voidManagerLogin(inttn)

{

intselect;

printf("\n");

printf("**************************************\n");

printf("*教师信息查询管理系统*\n");

printf("**************************************\n");

printf("--------------------------------------\n");

printf("*1.教师信息初始化*\n");

printf("*2.增加教师信息*\n");

printf("*3.删除教师信息*\n");

printf("*4.修改教师信息*\n");

printf("*5.教师信息查询*\n");

printf("*0.退出系统*\n");

scanf("%d",&select);

printf("\n请选择您需要的服务(0-5):

");

getchar();

switch(select)

{

case1:

tn=Originalteacher();break;

case2:

Addteacher(tn);break;

case3:

Delteacher(tn);break;

case4:

Modifyteacher(tn);break;

case5:

SearchMenu(tn);break;

case0:

exit

(1);

default:

printf("\n按键错误,请重新选择!

\n");

}

Saveallteachers(tn);

}

voidInputoneteacher(inti)

{

printf("请输入编号:

");

gets(TEAC[i].num);

printf("\n请输入姓名:

");

gets(TEAC[i].name);

printf("\n请输入学院:

");

gets(TEAC[i].xueyuan);

printf("\n请输入性别:

");

gets(TEAC[i].xingbie);

printf("\n请输入所教课程:

");

gets(TEAC[i].kecheng);

}

intLoadteachers(void)//判断是否有教师信息文件

{

FILE*fb;

inttn=0;

if((fb=fopen("teacher.dat","rb+"))==NULL)

{

printf("can'topenfile\n");

return(tn);

}

while(!

feof(fb))

if(fread(&TEAC[tn],STEAC_LEN,1,fb))

tn++;

fclose(fb);

return(tn);

}

voidSaveoneteacher(inti)

{

FILE*fb;

if((fb=fopen("teacher.dat","rb+"))==NULL)

{

printf("can'topenfile");

exit

(1);

}

fseek(fb,STEAC_LEN*i,0);

fwrite(&TEAC[i],STEAC_LEN,1,fb);

fclose(fb);

}

voidSaveallteachers(inttn)

{

FILE*fb;

if((fb=fopen("teacher.dat","wb"))==NULL)

{

printf("can'topenfile");

exit

(1);

}

fwrite(TEAC,STEAC_LEN,tn,fb);

fclose(fb);

}

intOriginalteacher()

{

intn;

charch='y';

for(n=0;ch=='y'||ch=='Y';n++)

{

printf("\n请输入教师%d的信息:

\n",n+1);

Inputoneteacher(n);

printf("\n继续输入请按'y',停止请按'n':

");

ch=getchar();

getchar();

while((ch!

='y')&&(ch!

='Y')&&(ch!

='n')&&(ch!

='N'))

{

printf("指令错误,请重新输入!

");

ch=getchar();getchar();

}

}

Saveallteachers(n);

return(n);

}

voidSequence(inttn)

{

inti,j;

structteacherchange;

for(i=0;i

{

for(j=0;j

if(TEAC[j].num

{

change=TEAC[j];

TEAC[j]=TEAC[j+1];

TEAC[j+1]=change;

}

}

}

voidOutputoneteacher(inti)

{

printf("\n");

printf("编号:

");

puts(TEAC[i].num);

printf("姓名:

");

puts(TEAC[i].name);

printf("学院:

");

puts(TEAC[i].xueyuan);

printf("性别:

");

puts(TEAC[i].xingbie);

printf("所教课程:

");

puts(TEAC[i].kecheng);

printf("评教成绩:

");

printf("%d\n",TEAC[i].chengji);

}

voidOutputallteachers(inttn)

{

inti;

printf("\n全部教师的详细信息:

\n");

for(i=0;i

{

Outputoneteacher(i);

}

printf("全部教师信息输出完毕。

");

printf("\n按任意键继续!

\n");

getch();

}

intAddteacher(inttn)

{

charch='y';

FILE*fb;

if((fb=fopen("teacher.dat","a+"))==NULL)

{

printf("can'topenfile!

\n");

exit

(1);

}

while(ch=='y'||ch=='Y')

{

printf("%d+++++++",tn);

printf("\n请输入新增教师的信息:

\n");

Inputoneteacher(tn);

Saveallteachers(tn+1);

tn++;

printf("\n继续输入请按'y',退出请按'n'");

ch=getchar();getchar();

if((ch!

='y')&&(ch!

='Y')&&(ch!

='n')&&(ch!

='N'))

{

printf("指令错误,请重新输入");

ch=getchar();getchar();

}

}

for(inti=0;i

printf("%d",TEAC[i].num);

Sequence(tn);

printf("\n按任意键继续!

\n");

getch();

fclose(fb);

return(tn);

}

intDelteacher(inttn)

{

inti,k=-1;

charnumber[12],c1='y',c2;

if(tn==0)

{

printf("\n教师信息为空,无法执行操作!

\n");

return(tn);

}

while(c1=='y'||c1=='Y')

{

c2='n';

printf("\n请输入要删除的编号:

");

gets(number);

for(i=0;i

if(strcmp(TEAC[i].num,number)==0)

{

k=i;

break;

}

if(k<0)

printf("\n输入的编号有误,请重新输入!

\n");

else

{

printf("\n显示该教师的信息:

\n");

Outputoneteacher(k);

printf("\n确认要删除该教师的全部信息吗?

(y/n)");

c2=getchar();getchar();

if(c2=='y')

{

for(i=k;i

TEAC[i]=TEAC[i+1];

tn--;

printf("\n删除成功!

\n");

}

else

printf("\n取消删除!

\n");

}

printf("\n继续删除其他教师的信息吗?

(y/n)");

c1=getchar();getchar();

}

Saveallteachers(tn);

printf("\n按任意键继续!

\n");

getch();

return(tn);

}

voidModifyteacher(inttn)

{

intselect,k=-1,i;

charnumber[12],c1='y',c2;

if(tn==0)

{

printf("\n教师信息为空,无法执行操作!

\n");

return;

}

while(c1=='y'||c1=='Y')

{

c2='y';

printf("请输入要修改的教师的编号:

");

gets(number);

for(i=0;i

if(strcmp(TEAC[i].num,number)==0)

{

k=i;

break;

}

if(k<0)

printf("\n输入的编号有误,请重新输入!

\n");

else

{

printf("\n显示该教师信息:

\n");

Outputoneteacher(k);

while(c2=='y'||c2=='Y')

{

printf("\n教师信息包括以下数据项\n");

printf("-------------------------------------\n");

printf("1.编号2.姓名\n");

printf("3.学院4.性别\n");

printf("5.所教课程6.评教成绩\n");

printf("\n请选择要修改的数据项(1-6):

");

scanf("%d",&select);getchar();

switch(select)

{

case1:

printf("编号:

");

gets(TEAC[k].num);

break;

case2:

printf("姓名:

");

gets(TEAC[k].name);

break;

case3:

printf("学院:

");

gets(TEAC[k].xueyuan);

break;

case4:

printf("性别:

");

gets(TEAC[k].xingbie);

break;

case5:

printf("所教课程:

");

gets(TEAC[k].kecheng);

break;

case6:

printf("评教成绩:

");

scanf("%d",&TEAC[k].chengji);

break;

default:

printf("\n按键错误,请重新输入!

\n");

}

printf("\n还要修改该教师的其他信息吗?

(y/n)\n");

c2=getchar();getchar();

}

}

Saveoneteacher(k);

printf("\n还要修改其他教师的信息吗?

(y/n)");

c1=getchar();getchar();

}

printf("\n按任意键继续!

\n");

getch();

}

voidSearchMenu(inttn)

{

intselect;

while

(1)

{

printf("\n欢迎使用教师查询服务\n");

printf("--------------------------------------\n");

printf("1.按编号查询2.按姓名查询\n");

printf("3.按学院查询4.成绩段人数查询\n");

printf("5.按课程查询\n");

printf("0.退出查询服务\n");

printf("\n请选择查询方式:

(0-5)");

scanf("%d",&select);getchar();

switch(select)

{

case1:

Searchnum(tn);break;

case2:

Searchname(tn);break;

case3:

SearchXueyuan(tn);break;

case4:

Fenduan(tn);break;

case5:

SearchKecheng(tn);break;

case0:

return;

default:

printf("\n按键错误,请重新输入!

\n");

}

}

}

voidSearchnum(inttn)

{

inti,k;

charnumber[12],ch='y';

while(ch=='y'||ch=='Y')

{

k=-1;

printf("\n请输入编号:

");

gets(number);

for(i=0;i

if(strcmp(TEAC[i].num,number)==0)

{

k=i;

break;

}

if(k<0)

printf("\n输入的编号有误,请重新输入!

\n");

else

{

printf("\n显示该教师的信息:

\n");

Outputoneteacher(k);

getchar();

}

printf("\n继续查询其他教师的信息吗?

(y/n)");

ch=getchar();getchar();

}

printf("\n按任意键继续!

\n");

getch();

}

voidSearchname(inttn)

{

inti,j,k;

chartname[20],ch

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

当前位置:首页 > 自然科学 > 物理

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

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