C语言课程设计报告选课管理系统Word文档格式.docx
《C语言课程设计报告选课管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告选课管理系统Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
在不知如何进行的时候有一种不自信,总想别人正在做什么,这些不足既然被发现就得在以后的做事中注意,争取改掉。
经过一周的努力我掌握了一些基本的C语言进行程序设计的技巧,更深的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方法,同时学会了一些调试一个较长程序的基本方法,提高了书写程序设计开发文档的能力(书写课程设计报告)。
这一周的实践让我受益匪浅,在此我要感谢孜孜不倦指导我们的老师,感谢在我困惑时给我帮助的同学,感谢学校给我们一个这样动手动脑的机会,使我们在理论与实践相结合方面又得到了一次很好的锻炼,让我们得到很大的收获。
程序的源代码
#include<
stdio.h>
conio.h>
#include<
stdlib.h>
string.h>
#defineM1000
voidinsert();
voiddel();
voidaverage();
voidfind();
voidsave();
voidread();
voiddel_file();
voidmodify();
intnow_no=0;
structstudent
{
intno;
charname[20];
floatscore1;
floatscore2;
floatscore3;
floatsort;
floatave;
floatsum;
};
structstudentstu[M],*p;
voidmain()
intas;
charch;
do
{
printf("
\t欢迎使用\n\n\n"
);
printf("
\t\t\t1.添加学生信息\t\t2.删除学生信息\t\t\t\t\n"
\t\t\t3.修改学生信息\t\t4.查询学生信息\t\t\t\t\n"
\t\t\t5.从文件读入学生信息\t6.删除文件中学生信息\t\t\t\t\n"
\t\t\t7.保存学生信息\t\t8.退出\n\n"
\n\n\n\n\t\t选择功能选项(输入所选功能前的数字):
"
fflush(stdin);
scanf("
%d"
&
as);
switch(as)
case1:
system("
cls"
insert();
break;
case2:
del();
case3:
modify();
case4:
find();
case5:
read();
case6:
del_file();
case7:
save();
case8:
exit"
exit(0);
default:
}
}while
(1);
}
voidinput()
inti=0;
do
\t\t\t\t1.录入学生信息\n输入第%d个学生的信息\n"
i+1);
\n输入2位的学生学号:
%u"
stu[i].no);
\n输入学生姓名:
gets(stu[i].name);
\n输入课程1学分:
%f"
stu[i].score1);
\n输入课程2学分:
stu[i].score2);
\n输入课程3学分:
stu[i].score3);
\n\n"
i++;
now_no=i;
是否继续输入?
(Y/N)"
ch=getch();
system("
while(ch!
='
n'
&
ch!
N'
}
voidsort()
structstudenttemp;
inti,j;
average();
for(i=1;
i<
now_no;
i++)
for(j=1;
j<
=now_no-i;
j++)
if(stu[j-1].ave<
stu[j].ave)
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
排序已完成进入功能2可进行显示\n"
pause"
voidsort1()
if(stu[j-1].score1<
stu[j].score1)
voidsort2()
if(stu[j-1].score2<
stu[j].score2)
voidsort3()
if(stu[j-1].score3<
stu[j].score3)
voiddisplay()
inti;
charas;
\t\t\t班级学生信息列表\n"
学号\t\t姓名\t课程1学分课程2学分课程3学分平均学分\n"
for(i=0;
now_no&
stu[i].name[0];
%u\t\t%s\t%.2f\t%.2f\t%.2f%.2f\n"
stu[i].no,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
\n\n\n按任意键返回主菜单"
as=getch();
while(!
voiddisplay1()
\t学号\t姓名\t学分1\n"
sort1();
\t%u%s\t%.2f\t\n"
stu[i].no,stu[i].name,stu[i].score1);
\t学号\t姓名\t学分2\n"
sort2();
stu[i].no,stu[i].name,stu[i].score2);
\t学号\t姓名\t学分3\n"
sort3();
stu[i].no,stu[i].name,stu[i].score3);
\t\t\t按任意键返回主菜单"
voidinsert()
\n\t\t输入插入学生信息\n"
\n输入学生学号:
stu[now_no].no);
gets(stu[now_no].name);
stu[now_no].score1);
stu[now_no].score2);
stu[now_no].score3);
now_no=now_no+1;
sort();
voiddel()
{longinum;
输入要删除学生的学号:
inum);
if(stu[i].no==inum)
if(i==now_no)now_no-=1;
else
stu[i]=stu[now_no-1];
now_no-=1;
voidsave()
FILE*fp;
charfilepath[20];
输入要保存的文件路径:
gets(filepath);
if((fp=fopen(filepath,"
w"
))==NULL)
\n保存失败!
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp,"
\t%u%s\t%.2f\t%.2f\t%.2f\t%.2f\n"
fclose(fp);
学生信息已保存在%s中!
\n"
filepath);
voidfind()
charstr[20],as;
输入要查询的学生姓名:
gets(str);
if(!
strcmp(stu[i].name,str))
\t学号\t\t姓名\t课程1学分\t课程2学分\t课程3学分\t平均学分\n"
\t%u\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n"
voidaverage()
voidmodify()
charstr[20];
输入要修改的学生姓名:
\n\t\t输入修改后学生信息\n"
voidread()
输入要读入的文件路径:
r"
找不到%s文件!
now_no=0;
M&
!
feof(fp);
fscanf(fp,"
\t%d\t%s\t%f\t%f\t%f\t%f\n"
stu[i].no,stu[i].name,&
stu[i].score1,&
stu[i].score2,&
stu[i].score3,&
stu[i].ave);
now_no++;
保存的在文件%s中的所有信息已经读入!
voiddel_file()
输入要删除的文件路径:
fp=fopen(filepath,"
保存的在文件%s中的所有信息已经删除!