c语言课设报告学籍管理系统含源代码.docx
- 文档编号:26397692
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:21
- 大小:93.92KB
c语言课设报告学籍管理系统含源代码.docx
《c语言课设报告学籍管理系统含源代码.docx》由会员分享,可在线阅读,更多相关《c语言课设报告学籍管理系统含源代码.docx(21页珍藏版)》请在冰豆网上搜索。
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,是查询个别学生的信息,如查询第一学生的信息,如图
输入3,是删除个别学生的信息,如删除第一个学生,如图
输入4,是插入某些学生的信息,如插入第三个,如图
输入5,是修改某个同学的信息,如删除第一个,如图
、心得体会
两周的课程过起来其实也是很快的。
这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。
带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。
做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。
也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。
我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。
而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。
正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。
它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。
在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。
并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。
并不是这些问题多难,而是不够心细。
因此做课程设计、编程时,它还考验并锻炼我们的心细程度。
经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。
,程序编码
/*做一个学生的学籍管理系统,有输入,查询,删除,增加,修改等功能*/
#include
#include
#include
#include
#include
#defineSIZE4/*声明数组的大小,可以任意改动*/
intboard[50][50];/*声明一个表格的数组*/
intcur_x,cur_y;/*定义坐标*/
voidinit();/*声明一个初始化界面的函数*/
voidclear();/*清除界面的函数*/
voiddraw_board();/*声明一个函数画表格*/
structstudent{/*创建一个学生的结构体*/
charstuNo[8];/*学生的学号*/
charname[10];/*学生的姓名*/
charsex[2];/*学生的性别*/
charscore[4];/*学生的分数*/
charaddress[10];/*学生的地址*/
};
voidinit()/*初始化函数*/
{
intgdriver,gmode,i,j;
gdriver=DETECT;/*图形界面的驱动声明*/
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver,&gmode,"");
for(i=0;i<10;i++)
for(j=0;j<10;j++)/*声明坐标的间距*/
board[i][j]=0;
cur_x=1;
cur_y=1;
}
voiddestroy()/*关闭图形驱动器*/
{
closegraph();
}
voiddraw_board(intn)/*画表格的函数*/
{
inti,j;
for(i=20;i<=5*160+80;i+=90)/*划横线的循环*/
{
line(i,20,i,(n+1)*60+20);
}
for(i=20;i<=(n+1)*60+30;i+=60)/*划纵线的循环*/
{
line(20,i,5*110+10,i);
}
}
voidmain()
{
structstudentstu[SIZE],stu_temp;/*声明结构体变量*/
FILE*fp;/*声明文件型的指针*/
inti,j,n,m,h;
intc=1;/*c为循环次数*/
h=0;
fp=fopen("c:
\list.txt","wb+");/*打开写入文件*/
init();/*调用函数*/
draw_board(SIZE);
if(fp==NULL)/*验证文件是否为空*/
{
printf("cannotopenthisfile\n");
exit(0);
}
printf("inputall%dstudents\'sdata.\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("address");
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].address); } for(i=0;i if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) {printf("filewriteerror! "); exit(0); } rewind(fp); clrscr(); for(c=1;c<100;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("pleseenterj="); 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("address"); for(i=0;i {fread(&stu_temp,sizeof(structstudent),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].address); } fclose(fp);/*关闭文件*/ getch();/*留在当前界面*/ clrscr();/*清屏*/ } if(j==2)/*当输入为2时,查找某个学生的 {信息*/ rewind(fp);/*移动指针到最前*/ printf("lookupthenth(n<4)student,pleseentern=: \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("address"); fseek(fp,(i-1)*sizeof(structstudent),0);/*打开文件查找,读出信 fread(&stu_temp,sizeof(structstudent),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].address); } fclose(fp); getch(); clrscr(); if(j==3)/*当输入为3,删除某个学生的信息*/ { h=h-1;/*表格少画一格*/ printf("youwantdeletenthstudent,pleseentern="); 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("address"); 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].address,stu[m+1].address); } for(i=0;i {fread(&stu_temp,sizeof(structstudent),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].address); } fclose(fp); getch(); clrscr(); } if(j==4)/*当输入为4时,增加一个学生 {信息*/ h=h+1; printf("youwantinsertnthstudent,pleseentern="); 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].address,stu[m].address); } 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("address"); 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].address); 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].address); 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("address"); for(i=0;i {fread(&stu_temp,sizeof(structstudent),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].address); } fclose(fp); getch(); clrscr(); } if(j==5)/*当输入为5,修改某个学生 {信息*/ printf("youwanttomodifynthstudentinformation,pleseentern="); 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("address"); 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].address); 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("address"); for(i=0;i {fread(&stu_temp,sizeof(structstudent),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].address); } fclose(fp);/*关闭文件*/ getch();/*保留在这个界面上*/ clrscr();/*清屏*/ } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 报告 学籍 管理 系统 源代码