《程序设计基础c语言》课程设计.docx
- 文档编号:12590981
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:32
- 大小:266.14KB
《程序设计基础c语言》课程设计.docx
《《程序设计基础c语言》课程设计.docx》由会员分享,可在线阅读,更多相关《《程序设计基础c语言》课程设计.docx(32页珍藏版)》请在冰点文库上搜索。
《程序设计基础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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计基础c语言 程序设计 基础 语言 课程设计
文档标签
- 程序设计基础课程设计报告
- C#程序设计基础入门教程C#程序设计基础
- 课程设计语言设计一个
- 语言程序设计课程设计小结
- C语言程序设计基础语言程序设计基础上机
- C语言程序设计课程设计语言程序设计课程设计题目
- 程序设计语言基础知识
- C语言基础选择结构程序设计语言基础
- 软件设计基础C#软件设计基础课程设计
- IDL语言基础程序设计
- 语言程序课程设计数字
- 程序设计基础课程设计
- C++程序设计基础程序
- 语言程序设计基础
- C++程序设计基础C++程序设计基础
- C语言程序设计语言程序设计基本知识点
- C语言程序设计A语言程序设计课程形成
- 程序设计基础C程序设计基础实验
- 程序设计基础课程在线
- C语言程序的设计课程设计语言程序设计
- 程序设计基础
- VC++程序设计基础VC程序设计基础
- 程序设计基础
- 程序设计基础
- VisualBasic程序设计基础VisualBasic程序设计基础
- 程序设计基础Ⅲ50403004程序设计基础
- VBA程序设计基础
- 程序课程设计报告Bezier