学生选修课程系统.docx
- 文档编号:6274821
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:20
- 大小:18.40KB
学生选修课程系统.docx
《学生选修课程系统.docx》由会员分享,可在线阅读,更多相关《学生选修课程系统.docx(20页珍藏版)》请在冰点文库上搜索。
学生选修课程系统
//该程序在实现过程中必须建立一下几个TXT文本文档
//adminstor.course.Linshi.Selected.student
#include
#include
#include
#include
//课程信息
structcourse{
charcoursenumber[20];
charcoursename[20];
intxuefen;
intstulimit;
};
//管理员所执行的函数
intadministor_login(char*un,char*pw)
{
FILE*fp;
charusername[20];
charpassword[20];
//打开文件
if((fp=fopen("adminstor.txt","r"))==NULL)
{
printf("打开文件失败!
\n");
exit(0);
}
//找到相匹配的学生姓名和密码
while(!
feof(fp))
{
fscanf(fp,"%s%s",username,password);
//判断用户名和密码是否相同
if(strcmp(username,un)==0)
if(strcmp(password,pw)==0)
{
if(fclose(fp))
{
printf("关闭文件失败!
\n");
exit(0);
}
printf("登陆成功!
\n\n");
return1;
}
else
{
if(fclose(fp))
{
printf("关闭文件失败!
\n");
exit(0);
}
printf("密码错误!
请重新登陆!
\n");
return0;
}
}
if(fclose(fp))
{
printf("关闭文件失败!
");
exit(0);
}
return0;
printf("用户名不存在!
\n");
};
//学生所执行的函数
intstudent_login(char*un,char*pw)
{
FILE*fp;
charusername[20];
charpassword[20];
//打开文件
if((fp=fopen("student.txt","r"))==NULL)
{
printf("打开文件失败!
\n");
exit(0);
}
//找到相匹配的学生姓名和密码
while(!
feof(fp))
{
fscanf(fp,"%s%s",username,password);
//判断用户名和密码是否相同
if(strcmp(username,un)==0)
if(strcmp(password,pw)==0)
{
if(fclose(fp))
{
printf("关闭文件失败!
\n");
exit(0);
}
printf("登陆成功!
\n\n");
return2;
}
else
{
if(fclose(fp))
{
printf("关闭文件失败!
\n");
exit(0);
}
printf("密码错误!
请重新登陆!
\n");
return0;
}
}
if(fclose(fp))
{
printf("关闭文件失败!
");
exit(0);
}
return0;
printf("用户名不存在!
\n");
};
//显示菜单
voidadmin_menu()
{
printf("请按照提示进行操作!
\n");
printf("************************\n");
printf("**\n");
printf("*1-查看课程信息*\n");
printf("*2-增加课程信息*\n");
printf("*3-修改课程信息*\n");
printf("*4-删除课程信息*\n");
printf("*5-显示菜单*\n");
printf("*0-退出*\n");
printf("**\n");
printf("************************\n");
}
//浏览课程信息
voidscancourse()
{
coursep;
FILE*fp;
if((fp=fopen("course.txt","r"))==NULL){
printf("打开文件失败!
");
exit(0);
}
printf("*************************************\n");
printf("课程号课程名学分限选人数\n");
while(!
feof(fp)){
fscanf(fp,"%s%s%d%d",p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
printf("%-s%-s%-d%-d\n",p.coursenumber,p.coursename,p.xuefen,p.stulimit);
};
printf("*************************************\n");
if(fclose(fp)){
printf("关闭文件失败!
");
exit(0);
}
}
//增加课程信息
voidadmin_addcourse()
{
coursep;
FILE*fp;
if((fp=fopen("course.txt","a"))==NULL){
printf("打开文件失败!
");
exit(0);
}
printf("\n请输入\n");
printf("课程号课程名称学分限选人数\n");
scanf("%s%s%d%d",p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
fprintf(fp,"\n%-s%-s%-d%-d",p.coursenumber,p.coursename,p.xuefen,p.stulimit);
if(fclose(fp)){
printf("关闭文件失败!
");
exit(0);
}
printf("\n增加课程信息成功!
\n");
}
//删除课程信息
voidadmin_delcourse()
{
FILE*fp,*fp1,*fp2,*fp3;
coursep;
chardelnumber[20];
printf("\n请输入你所要删除的课程号:
\n");
scanf("%s",delnumber);
if((fp=fopen("course.txt","r"))==NULL){
printf("打开文件失败!
");
exit(0);
}
if((fp1=fopen("linshi.txt","w"))==NULL){
printf("打开文件失败!
");
exit(0);
}
while(!
feof(fp)){
fscanf(fp,"%s%s%d%d",p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
if(strcmp(delnumber,p.coursenumber)!
=0){
fprintf(fp1,"\n%-s%-s%-d%-d",p.coursenumber,p.coursename,p.xuefen,p.stulimit);
}
}
if(fclose(fp1)){
printf("关闭文件失败!
");
exit(0);
}
if(fclose(fp)){
printf("关闭文件失败!
");
exit(0);
}
if((fp2=fopen("linshi.txt","r"))==NULL){
printf("打开文件失败!
");
exit(0);
}
if((fp3=fopen("course.txt","w"))==NULL){
printf("打开文件失败!
");
exit(0);
}
while(!
feof(fp)){
fscanf(fp2,"%s%s%d%d",p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
fprintf(fp3,"\n%-s%-s%-d%-d",p.coursenumber,p.coursename,p.xuefen,p.stulimit);
}
if(fclose(fp3)){
printf("关闭文件失败!
");
exit(0);
}
if(fclose(fp2)){
printf("关闭文件失败!
");
exit(0);
}
printf("\n删除成功!
\n");
}
//修改课程
voidadmin_alertcourse()
{
coursep,q;
FILE*fp,*fp1,*fp2,*fp3;
charcoursenum[20];
printf("\n请输入你所要修改的课程号:
\n");
scanf("%s",coursenum);
if((fp=fopen("course.txt","r+"))==NULL){
printf("打开文件失败!
");
exit(0);
}
if((fp1=fopen("linshi.txt","w"))==NULL){
printf("打开文件失败!
");
exit(0);
}
printf("\n课程号课程名学分限选人数\n");
while(!
feof(fp)){
fscanf(fp,"%s%s%d%d",p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
if(strcmp(coursenum,p.coursenumber)==0){
printf("%-s%-s%-d%-d\n",p.coursenumber,p.coursename,p.xuefen,p.stulimit);
printf("\n请按照上述格式输入你所修改的内容:
\n");
scanf("%s%s%d%d",q.coursenumber,q.coursename,&q.xuefen,&q.stulimit);
fprintf(fp1,"\n%-s%-s%-d%-d",q.coursenumber,q.coursename,q.xuefen,q.stulimit);
}
else
fprintf(fp1,"\n%-s%-s%-d%-d",p.coursenumber,p.coursename,p.xuefen,p.stulimit);
}
if(fclose(fp1)){
printf("关闭文件失败!
");
exit(0);
}
if(fclose(fp)){
printf("关闭文件失败!
");
exit(0);
}
if((fp2=fopen("linshi.txt","r"))==NULL){
printf("打开文件失败!
");
exit(0);
}
if((fp3=fopen("course.txt","w"))==NULL){
printf("打开文件失败!
");
exit(0);
}
while(!
feof(fp2)){
fscanf(fp2,"%s%s%d%d",p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
fprintf(fp3,"\n%-s%-s%-d%-d",p.coursenumber,p.coursename,p.xuefen,p.stulimit);
}
if(fclose(fp3)){
printf("关闭文件失败!
");
exit(0);
}
if(fclose(fp2)){
printf("关闭文件失败!
");
exit(0);
}
printf("\n修改成功!
\n");
}
//管理员操作主函数
voidadmin_main()
{
intselect2;
admin_menu();
do{
printf("\n请输入你的选择:
");
scanf("%d",&select2);
switch(select2){
case1:
scancourse();
break;
case2:
admin_addcourse();
break;
case3:
admin_alertcourse();
break;
case4:
admin_delcourse();
break;
case5:
admin_menu();
break;
case0:
break;
default:
printf("请输入正确选项!
\n");
}
}while(select2!
=0);
}
//学生操作菜单显示
voidstudent_menu()
{
printf("请按照提示进行操作!
\n\n");
printf("************************\n");
printf("**\n");
printf("*1-查询课程信息*\n");
printf("*2-正选*\n");
printf("*3-查看已选*\n");
printf("*4-退选*\n");
printf("*5-显示菜单*\n");
printf("*0-退出*\n");
printf("**\n");
printf("************************\n");
}
//检查cno是否为合法课程号
intstudent_iscourse_exist(char*cn)
{
FILE*fp;
coursep;
if((fp=fopen("course.txt","r"))==NULL)
{
printf("打开course.txt文件出错.\n");
exit(0);
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%d%d",p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
if(strcmp(p.coursenumber,cn)==0)
{
if(fclose(fp))
{
printf("关闭文件course.txt出错.\n");
exit(0);
}
return1;//表示存在课程cno
}
}
if(fclose(fp))
{
printf("关闭文件course.txt出错.\n");
exit(0);
}
return0;//非法课号
}
//是否已选
intstudent_isselected(char*sn,char*cn){
FILE*fp;
coursep;
charstudentnumber[20];
if((fp=fopen("selected.txt","r+"))==NULL)
{
printf("打开selected.txt文件出错.\n");
exit(0);
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%d%d",studentnumber,p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
if(strcmp(studentnumber,sn)==0&&strcmp(p.coursenumber,cn)==0)
{
if(fclose(fp))
{
printf("关闭文件selected.txt出错.\n");
exit(0);
}
return0;//表示已选
}
}
if(fclose(fp))
{
printf("关闭文件selected.txt出错.\n");
exit(0);
}
return1;//表示还未选
}
//正选
voidstudent_zhengxuan(char*stunumber1)
{
FILE*fp,*fp1;
coursep;
charcoursenumber[20];
printf("\n请输入你所选的课程号:
\n");
scanf("%s",coursenumber);
//判断课程号是否存在
if(student_iscourse_exist(coursenumber)){
//判断是否已选
if(student_isselected(stunumber1,coursenumber)){
if((fp=fopen("course.txt","r"))==NULL){
printf("打开course.txt文件失败!
");
exit(0);
}
while(!
feof(fp)){
fscanf(fp,"%s%s%d%d",p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
if(strcmp(coursenumber,p.coursenumber)==0){
if((fp1=fopen("selected.txt","a+"))==NULL){
printf("打开selected.txt文件出错.\n");
exit(0);
}
fprintf(fp1,"\n%-s%-s%s%-d%-d",stunumber1,p.coursenumber,p.coursename,p.xuefen,p.stulimit);
if(fclose(fp1))
{
printf("关闭文件selected.txt出错.\n");
exit(0);
}
}
}
if(fclose(fp)){
printf("关闭course.txt文件失败!
");
exit(0);
}
printf("\n选课成功!
\n");
}
else{
printf("\n你已经选过该课程!
\n");
}
}
else{
printf("\n你输入的课程号不存在!
\n");
}
}
//显示已选课程
voidstudent_showselected(char*stunumber2)
{
FILE*fp;
coursep;
charnamel[20];
if((fp=fopen("selected.txt","r"))==NULL){
printf("打开文件失败!
");
exit(0);
}
printf("\n姓名课程号课程名称学分可选人数\n");
while(!
feof(fp)){
fscanf(fp,"%s%s%s%d%d\n",namel,p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
if(strcmp(stunumber2,namel)==0){
printf("%-s%-s%s%-d%-d\n",namel,p.coursenumber,p.coursename,p.xuefen,p.stulimit);
}
}
if(fclose(fp)){
printf("关闭文件失败!
");
exit(0);
};
}
//退选课程
voidstudent_tuixuan(char*stunumber3)
{
FILE*fp,*fp1,*fp2,*fp3;
coursep;
chardelnumber[20];
charnamel[20];
printf("\n请输入你所要退选的课程号:
\n");
scanf("%s",delnumber);
if((fp=fopen("selected.txt","r"))==NULL){
printf("打开文件失败!
");
exit(0);
}
if((fp1=fopen("linshi.txt","w"))==NULL){
printf("打开文件失败!
");
exit(0);
}
while(!
feof(fp)){
fscanf(fp,"%s%s%s%d%d\n",namel,p.coursenumber,p.coursename,&p.xuefen,&p.stulimit);
if(strcmp(delnumber,p.coursenumber)==0&&strcmp(stunumber3,namel)==0){
continue;
}
fprintf(fp1,"\n%-s%-s%-s%-d%-d",namel,p.coursenumber,p.coursename,p.xuefen,p.stulimit);
}
if(fclose(fp1)){
printf("关闭文件失败!
");
exit(0);
}
if(fclose(fp)){
printf("关闭文件失败!
");
exit(0);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选修 课程 系统