c语言课程设计学籍管理系统(含源代码)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“学籍管理系统c语言版”。
课 程 设 计 课程设计名称: C语言程序设计 题 目:学籍管理系统 学 生 姓 名: 学生学号 : 学 院(系): 软件学院 专 业 班 级: 112021 指 导 教 师:
设计时间: 2012 年 9 月 日 2012 年 9月_ 14 日
实验题目:学籍管理系统一、实验目的综合应用所学的C语言程序设计知识,自行设计并实现一个较为完整的小型管理信息系统。通过系统分析、系统设计、编程实现,写实验报告等环节,初步掌握软件系统的设计方法和步骤,提高灵活运用程序语言进行软件开发的技能,提高程序设计水平和分析问题、解决问题的能力。
二、实验内容
1):熟悉C语言的开发环境,按照给定的上机步骤练习完成;
2):熟悉C程序的编辑,编译,链接和运行的过程。3):编译一个应用系统程序,形成一个软件系统。
三.实验要求
1.1、分析系统功能
(1)用户进入主菜单后,就会在看到,菜单选项中添加有系统的各项功能,进入的应的选项就可进行相应的操作.其主要功能有:
1、录入学生信息
2、删除学生信息
3、查询学生信息
4、学生信息排序
5、改学生信息
6、保存退出系统
(2)用户选择所需操作的选项,进入相应的操作界面,在这里用户就可开始进行操作。
四、使用说明
学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。
1,用户打开程序,进入主界面,输入学生信息如图
2,按回车进入主菜单,列出各项功能如图
输入1,是查询整个班级的学生的信息,如图
输入2,是查询个别学生的信息,如查询第一学生的信息,如图
输入3,是删除个别学生的信息,如删除第一个学生,如图
输入4,是插入某些学生的信息,如插入第三个,如图
输入5,是修改某个同学的信息,如删除第一个,如图
三、心得体会
两周的课程过起来其实也是很快的。这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。
正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。并不是这些问题多难,而是不够心细。因此做课程设计、编程时,它还考验并锻炼我们的心细程度。
经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。
四,程序编码
/*做一个学生的学籍管理系统,有输入,查询,删除,增加,修改等功能*/ #include /*程序需要的头文件*/ #include
#include #include #include #define SIZE 4
/*声明数组的大小,可以任意改动*/ int board[50][50];/*声明一个表格的数组*/ int cur_x, cur_y;/*定义坐标*/
void init();/*声明一个初始化界面的函数*/ void clear();/*清除界面的函数*/
void draw_board();/*声明一个函数画表格*/ struct student{/*创建一个学生的结构体*/
char stuNo[8];
/*学生的学号*/
char name[10];/*学生的姓名*/
char sex[2];/*学生的性别*/
char score[4];
/*学生的分数*/
char addre[10];/*学生的地址*/ };void init()/*初始化函数*/ {
int gdriver, gmode, i, j;
gdriver = DETECT;/*图形界面的驱动声明*/
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver, &gmode, “”);
for(i = 0;i
for(j = 0;j
board[i][j] = 0;
cur_x = 1;
cur_y = 1;}
void destroy()/*关闭图形驱动器*/ {
closegraph();}
void draw_board(int n)/*画表格的函数*/ {
int i, j;
for(i = 20;i
{
line(i, 20, i,(n+1)*60+20);
}
for(i = 20;i
{
line(20, i, 5*110+10, i);
} }
void main(){
struct student stu[SIZE],stu_temp;/*声明结构体变量*/
FILE *fp;
/*声明文件型的指针*/
int i,j,n,m,h;
int c=1;/*c为循环次数*/
h=0;
fp=fopen(“c:list.txt”,“wb+”);/*打开写入文件*/
init();/*调用函数*/
draw_board(SIZE);
if(fp==NULL)/*验证文件是否为空*/
{
printf(“cannot open this filen”);
exit(0);
}
printf(“input all %d students's data.n”,SIZE);/*画输入学生信息的表*/
gotoxy(17,4);
printf(“stuNo”);
gotoxy(29,4);
printf(“name”);
gotoxy(41,4);
printf(“sex”);
gotoxy(52,4);
printf(“score”);
gotoxy(63,4);
printf(“addre”);
for(i=0;i
{
gotoxy(7,4*(i+2));
printf(“%d”,i);
gotoxy(17,4*(i+2));
scanf(“%s”,&stu[i].stuNo);
gotoxy(29,4*(i+2));
scanf(“%s”,&stu[i].name);
gotoxy(41,4*(i+2));
scanf(“%s”,&stu[i].sex);
gotoxy(52,4*(i+2));
scanf(“%s”,&stu[i].score);
gotoxy(63,4*(i+2));
scanf(“%s”,&stu[i].addre);
}
for(i=0;i
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
{
printf(“file write error!”);
exit(0);
}
rewind(fp);
clrscr();
for(c=1;c
{
textbackground(0);
textcolor(1);
gotoxy(29,7);
printf(“read->1”);
gotoxy(29,9);
printf(“find->2”);
gotoxy(29,11);
printf(“delete->3”);
gotoxy(29,13);
printf(“insert->4”);
gotoxy(29,15);
printf(“modify->5”);
gotoxy(29,17);
printf(“plese enter j= ”);
scanf(“%d”,&j);
clrscr();
if(j==1)/*当输入为1时,显示整个班级
{的学生信息*/
draw_board(SIZE);
gotoxy(17,4);
printf(“stuNo”);
gotoxy(29,4);
printf(“name”);
gotoxy(41,4);
printf(“sex”);
gotoxy(52,4);
printf(“score”);
gotoxy(63,4);
printf(“addre”);
for(i=0;i
{
fread(&stu_temp,sizeof(struct student),1,fp);出每个学生的信息*/
gotoxy(7,4*(i+2));
printf(“%d”,i);
gotoxy(17,4*(i+2));
printf(“%s”,stu[i].stuNo);
gotoxy(29,4*(i+2));
printf(“%s”,stu[i].name);
gotoxy(41,4*(i+2));
printf(“%s”,stu[i].sex);
gotoxy(52,4*(i+2));
printf(“%s”,stu[i].score);
gotoxy(63,4*(i+2));
printf(“%s”,stu[i].addre);
}
fclose(fp);
/*关闭文件*/
getch();/*留在当前界面*/
clrscr();/*清屏*/
}
if(j==2)/*当输入为2时,查找某个学生的{信息*/
rewind(fp);/*移动指针到最前*/
printf(“look up the nth(n
scanf(”%d“,&i);位置*/
clrscr();
draw_board(1);/*画表格*/
gotoxy(17,4);
printf(”stuNo“);
gotoxy(29,4);
printf(”name“);
gotoxy(41,4);
printf(”sex“);
gotoxy(52,4);
printf(”score“);
gotoxy(63,4);
printf(”addre“);
fseek(fp,(i-1)*sizeof(struct student),0);/*打开文件查找,读出信
fread(&stu_temp,sizeof(struct student),1,fp);息*/
gotoxy(7,8);
printf(”%d“,i);
gotoxy(17,8);
printf(”%s“,stu[i].stuNo);
gotoxy(29,8);
printf(”%s“,stu[i].name);
gotoxy(41,8);
printf(”%s“,stu[i].sex);
gotoxy(52,8);
printf(”%s“,stu[i].score);
gotoxy(63,8);
printf(”%s“,stu[i].addre);
}
fclose(fp);
getch();
clrscr();
if(j==3)/*当输入为3,删除某个学生的信息*/
{
h=h-1;/*表格少画一格*/
printf(”you want delete nth student,plese enter n= “);
scanf(”%d“,&n);
draw_board(SIZE+h);/*调用函数画表格*/
gotoxy(17,4);
printf(”stuNo“);
gotoxy(29,4);
printf(”name“);
gotoxy(41,4);
printf(”sex“);
gotoxy(52,4);
printf(”score“);
gotoxy(63,4);
printf(”addre“);
for(m=n;m
{
strcpy(stu[m].stuNo,stu[m+1].stuNo);
strcpy(stu[m].name,stu[m+1].name);
strcpy(stu[m].sex,stu[m+1].sex);
strcpy(stu[m].score,stu[m+1].score);
strcpy(stu[m].addre,stu[m+1].addre);
}
for(i=0;i
{
fread(&stu_temp,sizeof(struct student),1,fp);个表格*/
gotoxy(7,4*(i+2));
printf(”%d“,i);
gotoxy(17,4*(i+2));
printf(”%s“,stu[i].stuNo);
gotoxy(29,4*(i+2));
printf(”%s“,stu[i].name);
gotoxy(41,4*(i+2));
printf(”%s“,stu[i].sex);
gotoxy(52,4*(i+2));
printf(”%s“,stu[i].score);
gotoxy(63,4*(i+2));
printf(”%s“,stu[i].addre);
}
fclose(fp);
getch();
clrscr();
} if(j==4)/*当输入为4时,增加一个学生
{信息*/
h=h+1;
printf(”you want insert nth student,plese enter n= “);
scanf(”%d“,&n);
for(m=n;m
{息*/
strcpy(stu[m+1].stuNo,stu[m].stuNo);
strcpy(stu[m+1].name,stu[m].name);
strcpy(stu[m+1].sex,stu[m].sex);
strcpy(stu[m+1].score,stu[m].score);
strcpy(stu[m+1].addre,stu[m].addre);
}
draw_board(1);/*调用函数画表格*/
gotoxy(7,4*2);
printf(”%d“,n);
gotoxy(17,4);
printf(”stuNo“);
gotoxy(29,4);
printf(”name“);
gotoxy(41,4);
printf(”sex“);
gotoxy(52,4);
printf(”score“);
gotoxy(63,4);
printf(”addre“);
gotoxy(17,8);/*输入一个新学生的scanf(”%s“,&stu[n].stuNo);信息*/
gotoxy(29,8);
scanf(”%s“,&stu[n].name);
gotoxy(41,8);
scanf(”%s“,&stu[n].sex);
gotoxy(52,8);
scanf(”%s“,&stu[n].score);
gotoxy(63,8);
scanf(”%s“,&stu[n].addre);
gotoxy(7,8);
printf(”%d“,i);
gotoxy(17,8);
printf(”%s“,stu[n].stuNo);
gotoxy(29,8);
printf(”%s“,stu[n].name);
gotoxy(41,8);
printf(”%s“,stu[n].sex);
gotoxy(52,8);
printf(”%s“,stu[n].score);
gotoxy(63,8);
printf(”%s“,stu[n].addre);
clrscr();
draw_board(SIZE+h);
gotoxy(17,4);
printf(”stuNo“);
gotoxy(29,4);
printf(”name“);
gotoxy(41,4);
printf(”sex“);
gotoxy(52,4);
printf(”score“);
gotoxy(63,4);
printf(”addre“);
for(i=0;i
{
fread(&stu_temp,sizeof(struct student),1,fp);表格*/
gotoxy(7,4*(i+2));
printf(”%d“,i);
gotoxy(17,4*(i+2));
printf(”%s“,stu[i].stuNo);
gotoxy(29,4*(i+2));
printf(”%s“,stu[i].name);
gotoxy(41,4*(i+2));
printf(”%s“,stu[i].sex);
gotoxy(52,4*(i+2));
printf(”%s“,stu[i].score);
gotoxy(63,4*(i+2));
printf(”%s“,stu[i].addre);
}
fclose(fp);
getch();
clrscr();
}
if(j==5)/*当输入为5,修改某个学生
{信息*/
printf(”you want to modify nth student information,plese enter n= “);
scanf(”%d“,&n);
/*输入修改的学生的位置*/
draw_board(1);
draw_board(1);
gotoxy(7,4*2);
printf(”%d“,n);
gotoxy(17,4);
printf(”stuNo“);
gotoxy(29,4);
printf(”name“);
gotoxy(41,4);
printf(”sex“);
gotoxy(52,4);
printf(”score“);
gotoxy(63,4);
printf(”addre“);
gotoxy(17,8);
/*输入新的学生信息*/
scanf(”%s“,&stu[n].stuNo);
gotoxy(29,8);
scanf(”%s“,&stu[n].name);
gotoxy(41,8);
scanf(”%s“,&stu[n].sex);
gotoxy(52,8);
scanf(”%s“,&stu[n].score);
gotoxy(63,8);
scanf(”%s“,&stu[n].addre);
gotoxy(7,8);
clrscr();
draw_board(SIZE);
gotoxy(17,4);
printf(”stuNo“);
gotoxy(29,4);
printf(”name“);
gotoxy(41,4);
printf(”sex“);
gotoxy(52,4);
printf(”score“);
gotoxy(63,4);
printf(”addre“);
for(i=0;i
{
fread(&stu_temp,sizeof(struct student),1,fp);
gotoxy(7,4*(i+2));
printf(”%d“,i);
gotoxy(17,4*(i+2));
printf(”%s“,stu[i].stuNo);
gotoxy(29,4*(i+2));
printf(”%s“,stu[i].name);
gotoxy(41,4*(i+2));
printf(”%s“,stu[i].sex);
gotoxy(52,4*(i+2));
printf(”%s“,stu[i].score);
gotoxy(63,4*(i+2));
printf(”%s",stu[i].addre);
}
fclose(fp);/*关闭文件*/
getch();/*保留在这个界面上*/
clrscr();/*清屏*/
}
}
}