搜档网
当前位置:搜档网 › c语言程序设计课程学籍管理系统源代码

c语言程序设计课程学籍管理系统源代码

c语言程序设计课程学籍管理系统源代码
c语言程序设计课程学籍管理系统源代码

附表1.程序源码

#include

#include

#include

#include

#define N 100

struct student

{

char num[13];

char name[18];

float math;

float english;

float cprogram;

float circuit;

float law;

float pingjun;

float score[5];

};

void mainprint();

void scoreprint();

void studentprint();

void scoreInput();

void scoreStat();

void studentStatus();

void bukao(); /*生成并打印补考通知单*/

void tuixue(); /*生成并打印退学通知单*/

void xinmingdan(); /*生成并打印新名单*/

void sortAnhao(); /*按学号排序*/

void jisuanPingjun(); /*计算平均分并排序*/

void tongjiFenshu(); /*统计分数段*/

void fenxi(); /*分析学生成绩,算出不及格门数*/\

void mynew(); /*创新功能*/

void outstudent();

void outdanke();

void teshutuixue();

void main()

{

char choose='\0',yes_no='\0';

do

{

system("color 4f");

system("cls");

mainprint();

printf(" ");

choose=getche( );

switch(choose)

{

case'1':scoreInput();break; /*成绩录入*/

case'2':scoreStat();break;

case'3':studentStatus();break;

case'4':mynew();break;

case'0':break;

default:printf("\n %c是非法选项!\n"); break;

}

if(choose=='0') break;

printf("\n 即将进入主菜单,要继续选择吗(Y/N)?\n");

do

{

yes_no=getche( );

}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

}while(yes_no=='y'||yes_no=='Y');

}

void mainprint()

{ printf(" |******************************************|\n");

printf(" | 欢迎使用学籍管理系统|\n");

printf(" |******************************************|\n");

printf(" | 请输入选项编号(0~4) |\n");

printf(" |------------------------------------------|\n");

printf(" | 1--录入成绩|\n");

printf(" | 2--统计成绩|\n");

printf(" | 3--处理学籍|\n");

printf(" | 4--创新功能|\n");

printf(" | 0-- 退出|\n");

printf(" |------------------------------------------|\n");

}

void scoreInput()

{ int i=0;char yes_no='\0';

struct student ex1[N]={0};

FILE *fp=NULL;

system("color 5f");

system("cls");

fp=fopen("d:\\学生基本信息.txt","w");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

printf("\n欢迎进入成绩录入系统\n");

printf("\n 请输入第%d个记录:\n",i+1);

printf("\n输入学生学号:(用#结束程序)");

scanf("%s",ex1[i].num);

printf("\n输入学生姓名:(用#结束程序)");

scanf("%s",ex1[i].name);

printf("\n请依次输入学生的数学、英语、c编程、电路设计和法律基础的成绩:\n");

scanf("%f%f%f%f%f",&ex1[i].math,&ex1[i].english,&ex1[i].cprogram,&ex1[i].circuit,&ex1[i].law);

while(ex1[i].num[0]!='#'&&ex1[i].name[0]!='#')

{

fprintf(fp,"%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f\n",i,ex1[i].num,ex1[i].name,ex1[i].math,ex1[i].engl ish,ex1[i].cprogram,ex1[i].circuit,ex1[i].law);

i++;

printf("\n 请输入第%d个记录:\n",i+1);

printf("\n输入学生学号:(用#结束程序)");

scanf("%s",ex1[i].num);

printf("\n输入学生姓名:(用#结束程序)");

scanf("%s",ex1[i].name);

printf("\n请依次输入学生的数学、英语、c编程、电路设计和法律基础的成绩:\n");

scanf("%f%f%f%f%f",&ex1[i].math,&ex1[i].english,&ex1[i].cprogram,&ex1[i].circuit,&ex1[i].law);

}

fclose(fp);

}

void scoreStat()

{ char choose='\0',yes_no='\0';

system("color 9f");

do

{

system("cls");

printf("\n 欢迎选择成绩统计系统\n"); /*显示菜单*/

printf("\n |------------------------|");

printf("\n | 请输入选项编号(0~4) |");

printf("\n |------------------------|");

printf("\n | 1--按学号排序|");

printf("\n | 2--按平均分数排序|");

printf("\n | 3--统计分数段|");

printf("\n | 4--返回|");

printf("\n | 0--退出系统|");

printf("\n |------------------------|\n");

choose=getch();

switch(choose)

{

case'1':sortAnhao();break;

case'2':jisuanPingjun();break;

case'3':tongjiFenshu();break;

case'4':main(); break;

case'0':break;

default:printf("\n %c是非法选项!\n");break;

}

if(choose=='0') break;

printf("\n 要继续选择吗(Y/N)?\n");

do

{ yes_no=getche();

}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

}while(yes_no=='y'||yes_no=='Y');

}

void sortAnhao()

{ int i=0,j=0,n=0;

struct student ex2[N]={0},temp={0};

FILE *fp=NULL;

system("color 9f");

fp=fopen("d:\\学生基本信息.txt","r");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

printf("\n 欢迎进入按学号排序系统\n");

while(feof(fp)==0)

{ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,&ex2[i].num,ex2[i].name,&ex2[i].math,&ex2[i].english, &ex2[i].cprogram,&ex2[i].circuit,&ex2[i].law);

i++; n++; }

fclose(fp);

for(i=0;i

for(j=i+1;j

if(strcmp(ex2[i].num,ex2[j].num)>0)

{ temp=ex2[i];

ex2[i]=ex2[j];

ex2[j]=temp;

}

fp=fopen("d:\\按学号排序.txt","w");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

fprintf(fp,"序号学号姓名高数英语编程电路法律\n");

for(i=0;i

fprintf(fp,"%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f\n",i,ex2[i].num,ex2[i].name,ex2[i].math,ex2[i].engl ish,ex2[i].cprogram,ex2[i].circuit,ex2[i].law);

printf("\n 文件已保存至D:\\按学号排序.txt\n");

fclose(fp);

}

void jisuanPingjun()

{ int i=0,j=0,n=0;

char c='\0';

struct student ex2[N]={0},temp={0};

FILE *fp=NULL;

system("color 9f");

fp=fopen("d:\\学生基本信息.txt","r");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

printf("\n 欢迎使用按学号排序系统\n");

while(feof(fp)==0)

{ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,ex2[i].num,ex2[i].name,&ex2[i].math,&ex2[i].english,&e x2[i].cprogram,&ex2[i].circuit,&ex2[i].law);

i++; n++; }

fclose(fp);

for(i=0;i

ex2[i].pingjun=(ex2[i].math+ex2[i].english+ex2[i].cprogram+ex2[i].circuit+ex2[i].law)/5;

for(i=0;i

for(j=i+1;j

if(ex2[i].pingjun

{ temp=ex2[i];

ex2[i]=ex2[j];

ex2[j]=temp;

}

fp=fopen("d:\\按平均成绩排序.txt","w");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

fprintf(fp,"序号学号姓名高数英语编程电路法律平均\n");

for(i=0;i

fprintf(fp,"%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f%7.1f\n",i,ex2[i].num,ex2[i].name,ex2[i].math,ex2[i ].english,ex2[i].cprogram,ex2[i].circuit,ex2[i].law,ex2[i].pingjun);

printf("\n 文件已保存至D:\\按平均成绩排序.txt\n");

fclose(fp);

}

void tongjiFenshu()

{ int i=0,j=0,t=0,n=0,e=0,a[5][5]={0}; char yes_no='\0';

float list[5][5]={0};

struct student ex2[N]={0};

FILE *fp=NULL;

system("color 9f");

fp=fopen("d:\\学生基本信息.txt","r");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

printf("\n 欢迎进入分数段统计系统!");

while(feof(fp)==0)

{ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,ex2[i].num,ex2[i].name,&list[i][0],&list[i][1],&list[i][2], &list[i][3],&list[i][4]);

i++; n++; }

fclose(fp);

for(j=0;j<5;j++)

a[0][j]=0;

for(j=0;j<5;j++)

for(i=0;i

{ if(list[i][j]>100||list[i][j]<0) e++;

else {t=(int)list[i][j]/10;

switch(t)

{ case 10:a[j][0]++;break;

case 9:a[j][0]++;break;

case 8:a[j][1]++;break;

case 7:a[j][2]++;break;

case 6:a[j][3]++;break;

default:a[j][4]++;break;

} }

}

printf("\n\n\n\n 各门课、个分数段学生人数");

printf("\n ------------------------------------------------------------------------");

printf("\n | 90分以上| 80~89分| 70~79分| 60~69分| 60分以下");

printf("\n ------------------------------------------------------------------------");

printf("\n 高数| %3d | %3d | %3d | %3d | %3d ",a[0][0],a[0][1],a[0][2],a[0][3],a[0][4]);

printf("\n ------------------------------------------------------------------------");

printf("\n 英语| %3d | %3d | %3d | %3d | %3d ",a[1][0],a[1][1],a[1][2],a[1][3],a[1][4]);

printf("\n ------------------------------------------------------------------------");

printf("\n 编程| %3d | %3d | %3d | %3d | %3d ",a[2][0],a[2][1],a[2][2],a[2][3],a[2][4]);

printf("\n ------------------------------------------------------------------------");

printf("\n 电路| %3d | %3d | %3d | %3d | %3d ",a[3][0],a[3][1],a[3][2],a[3][3],a[3][4]);

printf("\n ------------------------------------------------------------------------");

printf("\n 法律| %3d | %3d | %3d | %3d | %3d ",a[4][0],a[4][1],a[4][2],a[4][3],a[4][4]);

printf("\n ------------------------------------------------------------------------");

if(e!=0) printf("\n 有%d个错误的成绩,请检查。\n",e);

}

void studentStatus()

{ int i=1; char choose='\0',yes_no='\0';

struct student ex3[N]={0};

FILE *fp=NULL;

fp=fopen("d:\\学生基本信息.txt","r");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

system("color 2f");

do

{

system("cls");

printf (" |---------------------------------------|\n");

printf (" | 请输入选项编号(0-4) |\n");

printf (" |---------------------------------------|\n");

printf (" | 1----------生成并打印补考通知单|\n");

printf (" | 2----------生成并打印退学通知单|\n");

printf (" | 3----------生成并打印新名册|\n");

printf (" | 4----------返回|\n");

printf (" | 0----------退出系统|\n");

printf (" |---------------------------------------|\n");

choose=getche();

while(choose!='0'&&choose!='1'&&choose!='2'&&choose!='3'&&choose!='4')

{ printf(" %c为非法选项!请重新输入:",choose);

choose=getchar();

}

switch(choose)

{ case '1':bukao(); break;

case '2':tuixue(); break;

case '3':xinmingdan(); break;

case '4':main(); break;

case '0':break;

}

if(choose=='0')

{

printf("\n");

printf("感谢您的使用!\n");

break;

}

printf("\n 要继续选择吗(Y/N)?\n");

do

{ yes_no=getche( );

} while(yes_no!='Y' && yes_no!='y'&& yes_no!='N' && yes_no!='n');

} while(yes_no=='Y' || yes_no=='y');

}

void bukao()

{ int i=0,j=0,count=0,n=0; char time[5][10]={""},site[5][15]={""},sbj[5][10]={"高数","英语","c语言编程","电路设计","法律基础"};

struct student ex3[N]={0};

FILE *fp=NULL;

system("color 2f");

fp=fopen("d:\\学生基本信息.txt","r");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

printf("\n 欢迎进入生成并打印补考通知单系统!\n");

while(feof(fp)==0)

{ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,ex3[i].num,ex3[i].name,&ex3[i].score[0],&ex3[i].score[1 ],&ex3[i].score[2],&ex3[i].score[3],&ex3[i].score[4]);

i++; n++; }

fclose(fp);

for(i=0;i<5;i++)

{ printf("\n请输入%s的补考时间、地点:",sbj[i]);

scanf("%s%s",&time[j],&site[j]);

}

for(i=0;i<4;i++)

for(j=i+1;j<5;j++)

while(strcmp(time[i],time[j])==0&&strcmp(site[i],site[j])==0)

{ printf("\n\n%s科目与%s科目相冲突,请重新输%s的考试时间、地点:",sbj[i],sbj[j],sbj[j]);

scanf("%s%s",&time[j],&site[j]);

}

for(i=0;i

{ for(j=0;j<5;j++)

if(ex3[i].score[j]<60){ count++;

if(count>0&&count<3)

{ printf("\n\n");

printf("\n%15s学生%d门课不及格,补考科目、时间、地点:",ex3[i].name,count);

for(j=0;j<5;j++)

if(ex3[i].score[j]<60)

switch(j)

{ case 0:printf("\n高数:%3.1f,时间%s, 地点%s",ex3[i].score[j],time[j],site[j]);break;

case 1:printf("\n英语:%3.1f,时间%s, 地点%s",ex3[i].score[j],time[j],site[j]);break;

case 2:printf("\nc语言编程:%3.1f,时间%s, 地点%s",ex3[i].score[j],time[j],site[j]);break;

case 3:printf("\n电路设计:%3.1f,时间%s, 地点%s",ex3[i].score[j],time[j],site[j]);break;

case 4:printf("\n法律基础:%3.1f,时间%s, 地点%s",ex3[i].score[j],time[j],site[j]);break;

}

} } }

}

void tuixue()

{ int i=0,j=0,count=0,n=0,k=0;

struct student ex3[N]={0};

FILE *fp=NULL;

system("color 2f");

fp=fopen("d:\\学生基本信息.txt","r");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

printf("\n 进入生成并打印退学通知单系统!\n");

while(feof(fp)==0)

{ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,ex3[i].num,ex3[i].name,&ex3[i].score[0],&ex3[i].score[1 ],&ex3[i].score[2],&ex3[i].score[3],&ex3[i].score[4]);

i++; n++; }

fclose(fp);

for(i=0;i

{ count=0;

for(j=0;j<5;j++)

if(ex3[i].score[j]<60) count++;

if(count>=4)

{ printf("\n\n%15s同学,您本学期共%d门不及格科目,满足退学标准。请尽快处理\n",ex3[i].name,count);

for(j=0;j<5;j++)

if(ex3[i].score[j]<60)

switch(j)

{ case 0:printf("高数:%-7.1f",ex3[i].score[j]);break;

case 1:printf("英语:%-7.1f",ex3[i].score[j]);break;

case 2:printf("c语言编程:%-7.1f",ex3[i].score[j]);break;

case 3:printf("电路设计:%-7.1f",ex3[i].score[j]);break;

case 4:printf("法律基础:%-7.1f",ex3[i].score[j]);break;

}

printf("\n");

for(k=i;k

}

}

fp=fopen("d:\\升学名单.txt","w");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

for(i=0;i

fprintf(fp,"%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f\n",i,ex3[i].num,ex3[i].name,ex3[i].score[0],ex3[i].s core[1],ex3[i].score[2],ex3[i].score[3],ex3[i].score[4]);

fclose(fp);

}

void xinmingdan()

{ int i=0;

struct student ex3[N]={0};

FILE *fp=NULL;

system("color 2f");

fp=fopen("d:\\升学名单.txt","r");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

printf("\n 欢迎进入生成并打印新名册系统!\n");

printf("\n序号学号姓名高数英语编程电路法律\n");

while(feof(fp)==0)

{ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,ex3[i].num,ex3[i].name,&ex3[i].score[0],&ex3[i].score[1 ],&ex3[i].score[2],&ex3[i].score[3],&ex3[i].score[4]);

printf("%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f\n",i,ex3[i].num,ex3[i].name,ex3[i].score[0],ex3[i].scor e[1],ex3[i].score[2],ex3[i].score[3],ex3[i].score[4]);

i++; }

fclose(fp);

}

void mynew()

{ char choose='\0',yes_no='\0';

do

{

system("color 8f");

system("cls");

printf("\n |******************************|");

printf("\n | 欢迎进入创新部分|");

printf("\n |******************************|");

printf("\n | 1--查找学生|");

printf("\n | 2--输出单科成绩|");

printf("\n | 3--特殊原因退学|");

printf("\n | 0--退出|");

printf("\n |------------------------------|");

printf("\n输入你的选择:");

scanf("%s",&choose);

while(choose!='1'&&choose!='2'&&choose!='3'&&choose!='0')

{ printf("\n请正确输入的您选择:");

scanf("%c",&choose);

}

switch(choose)

{ case'1':outstudent();break;

case'2':outdanke();break;

case'3':teshutuixue();break;

case'0':break;

}

if(choose=='0') break;

printf("\n 要继续选择吗(Y/N)?\n");

do

{ yes_no=getche();

}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

}while(yes_no=='y'||yes_no=='Y');

}

void outstudent()

{ int i=0,j=0,count=0,n=0;

char ch[20]="",yes_no='\0';

struct student ex4[N]={0};

FILE *fp=NULL;

fp=fopen("d:\\学生基本信息.txt","r");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

while(feof(fp)==0)

{ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,ex4[i].num,ex4[i].name,&ex4[i].score[0],&ex4[i].score[1 ],&ex4[i].score[2],&ex4[i].score[3],&ex4[i].score[4]);

i++; n++; }

fclose(fp);

do

{

system("color 8f");

system("cls");

printf("\n 欢迎进入查询学生系统!\n");

printf("\n请输入要查学的学生的姓名:");

scanf("%s",&ch);

for(i=0;i

if(strcmp(ex4[i].name,ch)==0)

{ printf("\n 您查询的是学号为%s的学生,他的成绩如下:",ex4[i].num);

printf("\n 高数:%-7.1f,英语:%-7.1f,c语言编程:%-7.1f,电路设计:%-7.1f,法律基础:%-7.1f\n",ex4[i].score[0],ex4[i].score[1],ex4[i].score[2],ex4[i].score[3],ex4[i].score[4]);

break;}

if(i==n)printf("\n 查无此人.......\n");

printf("\n 要继续选择查询学生吗(Y/N)?\n");

do

{

yes_no=getche();

}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

}while(yes_no=='y'||yes_no=='Y');

}

void outdanke()

{ int i=0,j=0,count=0,n=0; char sbj[5][10]={"math","english","cprogram","circuit","law"};

char ch[20]="",yes_no='\0';

struct student ex4[N]={0};

FILE *fp=NULL;

fp=fopen("d:\\学生基本信息.txt","r");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

while(feof(fp)==0)

{ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,ex4[i].num,ex4[i].name,&ex4[i].score[0],&ex4[i].score[1 ],&ex4[i].score[2],&ex4[i].score[3],&ex4[i].score[4]);

i++; n++; }

fclose(fp);

do

{

system("color 8f");

system("cls");

printf("\n 欢迎进入查询单科成绩系统!\n");

printf("\n备选科目名称:math,english,cprogram,circuit,law\n");

printf("\n请输入要查寻的科目名称:");

scanf("%s",&ch);

for(i=0;i<5;i++)

if(strcmp(sbj[i],ch)==0)

{ j=i;

printf("\n序号学号姓名%s ",sbj[j]);

for(i=0;i

printf("\n%3d%15s%16s%7.1f",i,ex4[i].num,ex4[i].name,ex4[i].score[j]);

break;}

if(i==5)

printf("\n 您的输入有误!\n");

printf("\n 要继续选择输出单科成绩吗(Y/N)?\n");

do

{

yes_no=getche();

}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

}while(yes_no=='y'||yes_no=='Y');

}

void teshutuixue()

{ int i=0,j=0,count=0,n=0;

char ch[20]="",yes_no='\0';

struct student ex4[N]={0};

FILE *fp=NULL;

fp=fopen("d:\\学生基本信息.txt","r");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

while(feof(fp)==0)

{ fscanf(fp,"%3d%15s%16s%f%f%f%f%f\n",&i,ex4[i].num,ex4[i].name,&ex4[i].score[0],&ex4[i].score[1 ],&ex4[i].score[2],&ex4[i].score[3],&ex4[i].score[4]);

i++; n++; }

fclose(fp);

do

{

system("color 8f");

system("cls");

printf("\n 欢迎进入其他原因退学系统!\n");

printf("\n请输入要查学的学生的学号:");

scanf("%s",&ch);

for(i=0;i

if(strcmp(ex4[i].num,ch)==0)

{ for(j=i;j

ex4[j]=ex4[j+1];

n--;

break;

}

if(i==n)printf("\n 查无此人.......\n");

printf("\n 要继续选择退学学生吗(Y/N)?\n");

do

{

yes_no=getche();

}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

}while(yes_no=='y'||yes_no=='Y');

fp=fopen("d:\\学生基本信息.txt","w");

if(fp==NULL)

{ printf("\n 打开文件失败!\n"); return; }

for(i=0;i

fprintf(fp,"%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f%7.1f\n",i,ex4[i].num,ex4[i].name,ex4[i].score[0],e x4[i].score[1],ex4[i].score[2],ex4[i].score[3],ex4[i].score[4]);

printf("\n 文件已更新\n");

fclose(fp);

}

高校学生学籍管理系统的设计与实现-计算机毕业设计(含源代码).

高校学生学籍管理系统的设计与实现-计算机毕业设计(含源代码),计算机论文怎么写 内容摘要:1.1 问题的提出及研究意义人类社会已经踏入21 世纪的门槛,蓦然回首:20 世纪90 年代以来,全球信息技术发展明显加快。由于芯片技术、电脑软件技术突飞猛进地提高,电脑功能正日趋强大。随 着Internet 的出现,人们已经认识到,周围的一切正在发生异乎寻常的变化:&ld...OTnews_ads('ot017');1.1 问题的提出及研究意义人类社会已经踏入21 世纪的门槛,蓦然回首:20 世纪 90 年代以来,全球信息技术发展明显加快。由于芯片技术、电脑软件技术突飞猛进地提高,电脑功能正日趋强大。随着 Internet 的出现,人们已经认识到,周围的一切正在发生异乎寻常的变化:“奔腾”赞歌唱遍各个角落;多媒体计算机迅速走进家庭;上网已成为人们日常生活的一部分;WWW 浏览使你足不出户便知天下事;各种应用软件更是应有尽有。事实证明:网络的普及及应用大大推动了计算机应用的发展。从国防军事、交通运输,财政金融、科学教育等大型系统,到一个企业、一个机关、一所学校、一座饭店的内部管理,几乎都采用了计算机网络管理。网络发展已经超越了国界,跨越了地域,使地球上的人们似乎生活在一个“地球村”里。在新的世纪里,信息技术迅猛发展,而网络技术和数据库技术又是信息技术最主要的核心。于是,基于 Web 的数据库也就应运而生了。随着 Internet/Intranet 技术的发展,开发基于 Web 的应用程序势在必行,数据库技术更是需要和 Web 技术相结合,才有更为广阔的前景。ASP 作为微软推出的新兴 Web 应用程序开发技术,在数据库应用方面发挥着越来越重要的作用,同时浏览器/服务器模式的数据库体系也正逐渐成为数据库结构的主流。 Internet 的普及和应用使人们的现代生活方式发生了深刻的变化,学校总是处于接受新知识的最前沿地带,于是校园网的应用和管理系统的开发也正蓬勃发展并发挥着巨大的作用,远程教育、网上查询成绩、网上招生等等对于我们已不再陌生。目前随着高校招生规模的不断扩大,各类学生的档案信息日趋庞大,对学生档案信息进行管理的工作量非常大,特别是在成绩和学籍管理的过程中,需要对大量表格重复操作,如录入、修改、查询和统计等。然而,目前仍有很多高校的学生管理仍然采用的是传统的管理模式:分发试卷给学生考试、老师领表手工登录成绩、学生查询成绩还必须到教学管理部门,事实证明:这种传统的原始管理模式既浪费人力资源,又不利于提高工作效率。另外随着因特网的普及和校园网的建设,学生也希望通过网络,在家中或者宿舍就可查到自己的信息。这就要求对学生信息进行计算机储存管理并提供网上查询功能,以达到使用高效、安全存储的目的。于是,开发一套完善的高校学生学籍管理系统很有一定的必要性和实用价值,已经迫在眉睫。基于上述原因,我们设计并开发了这套学生学籍管理系统。 1.2 国内外研究现状当前国内外已有不少大学和科研机构开发了一些教学管理系统和学生管理系统,但这些系统或多或少都存在以下问题:用户界面复杂;使用方式较分散;成本较高。最重要的是至目前为止还没有一套将学生在校管理、毕业成绩资格自动审核、毕业信息管理和学生学籍管理相结合的完整系统。特别是随着高校招生规模的不断扩大,高校每年的毕业生急剧增加,准确和高效地对毕业生学业成绩资格的进行审核显得更加重要。因此,设计完善现有的学籍管理系统势在必行。同时,

学籍管理系统(内含源代码)

XX学院计算机科学与技术系 实验报告 课程名称程序设计基础实验(2) 实验项目应用系统的面向对象设计与分析实验类型综合性实验 完成人 所在班级 指导教师 完成日期2009年11月 30日

实验报告正文 一.实验报告简表 实验课题名称学籍管理系统 综合性实验项目应用系统的面向对象设计与分析 服务课程程序设计基础实验(2) 实验小组组长 指导教师 参与实验人员及其在实验课题中承担的主要任务(包括组长) 学号小组成员姓名班级在实验课题中的主要作用 二.设计内容与要求 设计内容:设计基于文件结构的学籍管理系统 设计要求: (1)录入学生基本信息的功能界面 (2)修改学生基本信息的功能界面 (3)查询学生基本信息的功能界面 (4)删除学生基本信息的功能界面

三.总体设计,包括需求分析、功能描述、设计工具与运行环境、类及类间关系描述等 a、Student.java:程序的入口。初始化主界面,使主界面位于屏幕中 间,且用户不能改变其大小。 b、MainFrame.java:程序的主界面。由菜单、登陆界面和操作选项所 构成。其中菜单的“文件”中各操作项必须在登陆后方可选择, 输入用户名和密码点击“进入”,提示登陆成功之后(用户名和密 码在数据库的Admin表中,如果用户填的密码或用户名错误或没 填都会产生相应的警告框),登陆界面消失,出现“添加信息”、“修 改信息”、“信息查询”和“删除信息”四个按钮,且菜单中的操 作项也被激活。点击要操作的按钮或菜单项,进入要操作的界面 (窗口出现在屏幕左上角)。 c、AddInf.java:添加信息界面。按照要求添入基本信息,如果用户 填错或没填,提示错误信息(如不能添加已经注册的学号)。填写 完整后,点击“增加”按钮,将信息加入数据库的BaseInf表中。 d、ChangeInf.java:修改信息界面。按照提示输入要修改信息的学生 学号,点击“下一步”(如果数据库无此学号,则提示“无此对应 信息”),从数据库中将该学生的完整信息读出,用户修改之后点 击“修改”即可。注意:为了防止意外,修改学生信息时,程序 禁止了对学号的修改。(为了程序设计方便和代码重用,修改信息 的代码是先删此该生所有信息,再将修改后的信息全部添加到数 据库,这也是数据库修改的原理) e、SeachInf.java:查询信息界面。输入要查询的学生的学号或姓名 (也可两项都填写),点击“查询”,将提示“查无对应信息”或 将查询到的学生完整信息显示出来,如果有多条对应信息,“下一 条”按钮可选,单击之后可查看下一满足条件的信息,查找准确 的学生信息。 f、DelInf.java:删除信息界面。输入要删除信息的学生的学号,单 击“下一步”,程序给出该生的完整信息,点击“删除”,提示是 否确定删除对话框,仔细查看信息确认无误后,单击“确定”完 成删除,否则单击“取消”。 四.详细设计,包括类图及代码等 Student.java: import javax.swing.UIManager;

C语言程序设计第三版谭浩强课后习题答案完整版

1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。 课后习题答案完整版 第一章 1.5 请参照本章例题,编写一个C 程序,输出以下信息: ************************** Very Good! ************************** 解:mian() {int a,b,c,max; printf( “请输入三个数a,b,c:\n ” ); scanf( “%d,%d,%”d ,&a,&b,&c); C语言程序设计第三版谭浩强 解: mian() {printf( ”); “************************** printf( “”X “ n” ); printf( “Very Good!” \ n”); printf( “”X “ n” ); printf( “************************** ); max=a; if(max

{char #include c1='a',c2='b',c3= 'c',c4= ' \101 ',c5= ' 116'; printf( “a%cb%c n”,c1,c2,c 3); printf( “ b%c %c” ,c4,c5); } 解: aa 口bb 口口口cc 口口口口口口abc A 口N 3.7 要将"China" 译成密码,译码规律是:用原来字母后面的第 4 个字母代替原来的字母.例如,字母"A" 后面第 4 个字母是"E" . "E"代替"A"。因此,"China"应译为"Glmre" 。请编一程序,用赋初值的方法使cl 、c2、c3、c4、c5 五个变量的值分别为, ' C'、h'、i '、n'、a'经过运算,使cl、c2、c3、c4、c5分别变为'G'、' I '、' m >' r'、’ e',并输出。main() { char c1=' C' ,c2=' h' ,c3= ' i ' ,c4= ' n' ,c 5=' a' ; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(" 密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是GImre 3.9 求下面算术表达式的值。 解: 1 )x+a%3*(int)(x+y)%2/4

C语言程序设计习题答案(1-5章)

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 4. 求1×2×3×…×10的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

JAVA+SQL学生学籍管理系统代码及实验报告

学生学籍管理系统 1课程设计目的、设计内容与需求分析 1.1 课程设计目的 通过本次课程设计的实践操作,能够让学生懂得Java、SQL的各种相关知识的使用,真正的提高学生独立开发设计Java程序,把课堂上的知识运用在实践上,一门编程语言只有在不断实践操作和练习上才会有进步。 1.2软件设计内容 学生学籍管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成添加,查询,修改,删除的操作。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。 SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。系统可供输入的属性有“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。 该系统实现的大致功能: 1.管理员登陆界面。该界面可以输入管理员号,登陆密码。用户通过验证通过后方可进入管理系统。一定程度上保证了信息安全性,防止他人未经允许篡改学生信息。 2.查询学生信息。可以选择由用户选择“显示系统中当前的所有学生信息”。也可以选择按照“某一个学号查询该学号的学生信息”。查询到的信息会在窗口中依次显示出来。 3.添加学生信息。可以按照图形的界面的显示依次输入新学生的“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。完成新纪录的添加。 4.修改学生信息。可以选择按照“学号”或者“姓名”找到该学生的学生信息并输

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言实用程序设计100例流程图

C语言实用程序100例 第一篇基础与提高 实例1利用库函数编写基本显示程序 实例2变量属性 实例3运算符与类型 实例4关于程序结构 实例5显示函数曲线图 实例6二分法选代的应用 实例7多变的立方体 实例8一维整型数组应用(1) 实例9一维整型数组应用(2) 实例10一维整型数组应用(3) 实例11一维整型数组应用(4) 实例12二维数组应用(1)——显示杨辉三角实例13二维数组应用(2)——魔方阵 实例14字符数组应用(1)——逻辑判断 实例15字符数组应用(2)——数据模拟 实例16二维数组应用——字符比较 实例17利用指针进行数据处理 实例18指针与字符串 实例19利用指针处理二维数组 实例20一级指针 实例21利用指针传递参数值 实例22结构体的应用 实例23链表的应用(1)

实例24链表的应用(2) 实例25链表的应用(3) 实例26共用体的应用 实例27枚举类型应用 实例28位运算 买例29义件加密 实例30文件的按记录随机读写 第二篇图形与多媒体 实例31改变文字背景色 实例32及本颜色设置 实例33制作表格 实例34制作多样的椭圆 实例35美丽的透视图形 实例36错位窗口 实例37能移动的矩形 实例38多变的填充矩形 实例39黄黑相间的矩形与圆 实例40六叶图案 实例41特殊图案 实例42国际象棋棋盘 实例43制作楼梯 实例44使用线类型函数设置多个汉字实例45彩色群点 实例46饼图 买例47产品折线图 实例48直方图 实例49变大变色的拒形与国

实例50多变的填充多边形 实例51流星球 实例52小球动态碰撞 买倒53多,曲线 实例54多变的圆与环 实例55优美的球体 实例56运动的小车 实例57统计动画消失次数 实例58运行的时钟 实例59直升飞机 实例60演绎“生命游戏” 实例61猜猜看 买例62艺术清屏 买倒63制作火焰 实例64动态绘制256条不同颜色的直线实例65红绿蓝三原色渐变 第三篇综合小程序 实例66两个矩阵相乘 实例67艺术钟 实例68家庭财务管理小程序 实例69用系统时间实现随机数 实例70闪动的多彩圆 实例71检查系统有无鼠标 实例72圆形光盘与矩形 实例73动态渐变图案 实例74往返两地间的小车 实例75飘扬的红旗

高校学籍管理系统C++程序设计

VC++课程设计---高校学籍管理系统 源程序 一、课程设计题目:学籍管理系统 二、目的与要求: 1、目的: (1)要求学生达到熟练掌握C++语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次; (3)在系统的设计中,至少要用到面向对象的一种机制。 3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。4、写出设计说明书 三、设计法和基本原理: 1、功能要求 要求完成以下功能: 1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。 2)能够将指定的信息从文件中删除。 3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。 4)可以统计全部学生的总成绩,及其在班上的排名。 5)能够统计各科的平均成绩及及格率。 6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。 7)如果检索不到相应的信息应提示用户。 2、问题的解决案: 根据系统功能要求,可以将问题解决分为以下步骤: a) 写出需求分析(做什么) b) 分析系统中的各个实体之间的关系及其属性和行为;

c) 根据问题描述,设计系统的类层次; d) 完成类层次中各个类的描述(包括属性和法); e) 完成类中各个成员函数的定义; f) 用户界面的设计 g) 分析系统功能模块(系统流程图) h) 代码编写 i) 功能调试; j) 完成系统总结报告以及系统使用说明书。 源程序代码如下: [code]/* course.dat-课程列表(只读) student.dat-学生信息 */ #include #include #include #include class COURSE //课程类 { private: static int coursenum; //课程数量 static char (*coursename)[20]; //课程名称 public: static void LoadCourse() //从文件COURSE.DAT装入课程信息 { ifstream f("course.dat"); f>>coursenum; coursename=new char[coursenum][20]; for(int i=0; i>coursename; f.close(); }

C语言学籍管理系统(内含源代码)..

学籍管理系统 一、系统简介 设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作。 二、需求分析 学籍管理系统应该实现以下功能: 1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。 2、能根据输入的学号查询学生,进行信息的修改。 3、能根据输入的学号从结构体数组中删除学生的记录。 4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。

5、能在屏幕上以列表的方式输出所有学生的信息。 三、概要设计 1、系统功能 根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。系统功能机构图如下: 学生档案管理系统 输出学生信息 查询学生信息系 退出系统 删除学生信息 修改学生信息 录入学生信息 按学号查询 按班级 查询

2、重要数据的数据结构设计 学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday分别代表学生的学号、专业、年级、性别和出生日期,其中birthday类型为自定义的结构体类型Date. Struct stumessage { Char stuno[11]: //学号 Char name[9]: //姓名 Char spec[2]: //专业 Char grade: //年级 Char sex://性别 Stuct date birthday: //出生日期 }; 日期类型date包括三个属性,分别代表年、月、日。Struct date {int year : //年 Int month: //月 Int day: //日 }; 3、函数设计

学生学籍管理系统(含java源代码)

学生学籍管理系统(含j a v a 源代码) -标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

学生学籍管理详细设计 学号:____________ 姓名:____________ 班级:____________ 一、设计题目: 学生学籍管理 二:设计内容: 设计GUI学生学籍管理界面,用户可以加入学生信息,并对基本信息进行修改,添加,查询,删除。 三:设计要求: 进行简单的学生信息管理。 四:总体设计 (1)登陆界面的设计 (2)主窗体的设计 (3)添加学生信息窗体 (4)查询学生信息窗体

(5)修改学生信息窗体 (6)删除学生信息窗体 (7)事件响应的处理 五:具体设计 (1)程序结构的说明: A.入口程序:student.java; B.登陆界面程序:mainframe.java; C.主窗体程序:interfac.java; D.添加信息窗口程序:tj.java; E.修改信息窗口程序:xg.java; F.查询信息窗口程序:cx.java; G.删除信息窗口程序:sc.java; H.程序数据连接:DatabaseConn.java; (2)程序代码及分析说明 A.程序源代码(已提交) B.Student.java是程序的入口。使登录窗口位于窗口中间,并且不可改变窗口大小。 C.mainframe.java是程序的登陆窗体。输入用户名和密码(用户名和密码在数据库的password表中)点击“进入系统”,然后登陆界面消失;出现要操作的界面(屏幕左上角)。 D.tj.java是添加信息界面。添加基本信息后,点击“添加信息”按钮,将信息加入xinxi表中。

学籍管理系统流程图

1、学生学籍管理系统数据流图 一、顶层: 二、0层: 三、1层

返回排名和成绩输入新的科目和成绩 1、学生学籍管理系统数据字典 1.数据流条目 数据流名称:全部记录 别名:无 简述:最新更新后所有关于学生学籍的记录 来源:数据库 去向:加工“记录筛选” 数据流量:不限 组成:学号+姓名+家庭住址+马哲+英语+毛概+邓理+成绩+排名 ①数据存储条 数据存储名称:学生成绩记录 别名:无 简述:存放学生所有可供查询的成绩信息 组成:学号+姓名+成绩+排名等 组织方式:索引文件,以学学号为关键字 查询要求:要求能立即查询 ②数据存储条 数据存储名称:个人信息记录 别名:无 简述:存放学生所有可供查询的个人信息 组成:学号+姓名+家庭住址等 组织方式:索引文件,以学学号为关键字 查询要求:要求能立即查询 ③数据存储条 数据存储名称:用户密码记录 别名:无 简述:存放所有用户可供查询的用户密码信息

组成:学号+姓名+用户名等 组织方式:索引文件,以学学号为关键字 查询要求:要求能立即查询 2 数据项条目 ①数据项名称:学号 别名:无 简述:所有学校学生的学号 类型:字符串 取值范围及含义:第1-4位:入学年份 第5-6 位:院系代码 第7-8 位:专业代码 第9-10 位:班级号 第10-11位:班内编号 ②数据项名称:用户名 别名:无 简述:所有用户的用户名 类型:字符串 取值范围及含义:26个英文字母和0-9十个数字组合,不含特殊符号③数据项名称:家庭住址 别名:无 简述:所有学校学生的家庭住址 类型:字符串 取值范围及含义:汉字,26个英文字母和0-9十个数字组合 ④数据项名称:新考试科目 别名:无 简述:所有学校学生的新加考试科目 类型:字符串 取值范围及含义:汉字,26个英文字母和0-9十个数字组合 3 加工条目 ①加工名:更改的记录 激发条件:学生成绩记录,个人信息记录以及用户密码记录被改动 优先级:普通 输入:新记录 输出:更新数据、数据未改动 加工逻辑:根据现有数据库 if 新记录<>旧记录 then 更新数据else 数据未改动 endif ②加工名:更改的记录 激发条件:学生成绩记录,个人信息记录以及用户密码记录被删除 优先级:普通 输入:删除记录 输出:数据已删除、数据不存在 加工逻辑:根据现有数据库

C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案 第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题 1. 判断条件 2. 面向过程编程 3. 结构化 4. 程序 5. 面向对象的程序设计语言 6. 基本功能操作、控制结构 7. 有穷性 8. 直到型循环结构 9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分

习题 一、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题 1. 主 2. C编译系统 3. 函数、函数 4. 输入输出 5. 头 6. .OBJ 7. 库函数 8. 文本 第三章 习题 一、单项选择题 1. D 2. B 3. A

5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题 1. 补码 2. 308 10 - ±

~)308 10 ,15 —6 2. 308 10 - ± (~)308 10 ,15

6 3. 逻辑 4. 单目,自右向左 5. 函数调用 6. a 或 b ( 题目有错 , 小括号后面的 c<=98 改成( c>=97&&c<=98 )就可以得到所给的答案了) 7.

8. 65 , 89 第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D 6. B 7. A 8. C 9. B 10.B 二、填空题 1. 一

C语言程序设计课程设计报告

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 掷骰子游戏 (5) 射击游戏 (7) 计算存款本息之和 (8) 肇事逃逸 (10) 礼炮 (12) 汽车加油 (14) 大优惠 (16) 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。 这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式

③必须上机调试通过 二、方案实现与调试 掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 调试过程及实验结果

学籍信息管理系统设计源代码

#include #define N 50 #define M 200 int stumax=0,scoremax=0; FILE *fp; struct student { char num[9]; //学号 char name[20]; //姓名 int sex; //性别 int room; //宿舍号码 long int tel; //电话号码 }stu[N]; struct stuscore { char num[9]; //学号 char coursenum[10]; //课程编号 char course[15]; //课程名称 float point; //学分 int nscore; //平时成绩 int expscore; //实验成绩 int examscore; //卷面成绩 int comscore; //综合成绩 float getpoint;//实得学分 }score[M],score1[M]; void enter_stu(); void input_stu(int j); void enter_score(); void input_score(int i); void com_score(int i); void browse_stu(); void browse_score(); void search(); void search_stu(); void search_num(); void search_name(); void search_room(); void search_score();

void printf_onestu_score(char snum[]); void delete_one(); void order(); void order_course_num(); void order_course(); void order_printf(int k); /***********菜单***********/ void menu() { int w1; char n; /*变量n保存选择菜单数字,w1判断输入的数字是否在功能菜单对应数字范围内*/ system("cls"); do { puts("**************************************************************** \n\n"); puts("\t ***************** 总菜单*****************\n\n"); puts("\t*** 1.输入学生的基本信息***"); puts("\t*** 2.浏览学生的基本信息***"); puts("\t*** 3.输入学生的成绩基本信息***"); puts("\t*** 4.浏览学生的成绩基本信息***"); puts("\t*** 5.查询信息功能***"); puts("\t*** 6.删除信息功能***"); puts("\t*** 7.排序:按综合成绩或实得学分***"); puts("\t*** 8.退出***"); puts("\n\n************************************************************* ***"); printf("\n选择要进行的功能代号(1-8):[ ]\b\b"); scanf("%c",&n); if(n<'1'||n>'8') /*对选择的数字作判断*/ { w1=1; printf("\n\n??? 请输入数字1~8!\n\n"); } else { w1=0; /*选择功能*/ switch(n)

学生学籍管理信息系统

学生学籍管理信息系统集团档案编码:[YTTR-YTPT28-YTNTL98-UYTYNN08]

学生学籍管理信息Array系统 专业班级:ZB信管162 姓名:张彦龙 学号: 2017年12月

一、系统需求分析 (一)功能需求 学生信息管理系统是具有统计,管理学生和老师各种在校相关信息,方便学校对于学生信息的统一管理的系统。学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,为了解决学生管理数据信息量大,修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。 面向的用户有:学校的系统人员、管理人员、教师、学生。 1.管理员对功能的需求 管理员权限最大,可以对学生的所以情况进行统一的管理,细分如下: (1)超级管理员可增加,修改,删除普通管理员 (2)学生信息的浏览,添加修改和删除 (3)学校基本课程的浏览添加修改和删除 (4)学生课程的浏览与统计,可按成绩范围对成绩进行统计 (5)学生选课信息的管理,包括查询,修改与删除 2.学生对功能的需求 学生利用此系统进行与自己有关的信息查询与输入,细分如下: (1)浏览个人基本信息,修改登录密码,浏览课程信息 (2)浏览在校期间的奖惩情况浏览个人学分信息 (3)利用个人账户进行查询选修课程基本信息与选修课程的选择和退出 (4)浏览个人选课情况 3.教师对功能的需求 教师对所带班级学生的信息查询与修改,细分如下: (1)教师可利用此系统查询班级成员的基本信息 (2)教师可查询班级成员在校期间的奖惩 (3)查询、录入与修改班级成员的成绩信息选课情况

(二)功能要求 1.功能划分和描述 数据查询、数据插入、数据删除、编辑、修改等其相应的功能。 模块名称:学籍管理? 输入数据流:学籍控制信息?? 输出数据流:学籍返回信息 模块名称:成绩管理 输入数据流:成绩控制信息 输出数据流:成绩返回信息 2.具体功能介绍如下:? (1)注册? 实现功能:创建一条学生记录,由学生自己填写个人信息并保存,实现统一管理? (2)用户登录? 实现功能:用户注册后可直接登录,使用查询信息,选课,退课等功能? (3)修改密码? 实现功能:输入旧密码,输入两次新密码,如旧密码正确且两次新密码一致则用新密码覆盖旧密码,否则重新输入旧密码或者两次新密码不一致重新输入新密码? (4)查询个人信息? 实现功能:在此显示学生的个人信息? (5)查询成绩? 实现功能:显示入学以来所修课程的所有成绩和学分等信息? (6)选课(退课)? 实现功能:在学校规定时间内为学生提供网上选课及退课功能以及查看个人选课信息?

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

c语言程序设计流程图详解

c语言程序设计流程图详解 介绍常见的流程图符号及流程图的例子。 本章例1-1的算法的流程图如图1-2所示。本章例1-2的算法的流程图如图1-3所示。 在流程图中,判断框左边的流程线表示判断条件为真时的流程,右边的流程线表示条件为假时的流程,有时就在其左、右流程线的上方分别标注“真”、“假”或“T、”“F或”“Y、”“N”注“真”、“假”或“T、”“F或”“Y、”“N”

另外还规定,流程线是从下往上或从右向左时,必须带箭头,除此以外,都不画箭头,流程线的走向总是从上向下或从左向右。 2.算法的结构化描述 早期的非结构化语言中都有goto语句,它允许程序从一个地方直接跳转到另一个地方去。 执行这样做的好处是程序设计十分方便灵活,减少了人工复杂度,但其缺点也是十分突出的,一大堆跳转语句使得程序的流程十分复杂紊乱,难以看懂也难以验证程序的正确性,如果有错,排起错来更是十分困难。这种转来转去的流程图所表达的混乱与复杂,正是软件危机中程序人员处境的一个生动写照。而结构化程序设计,就是要把这团乱麻理清。 经过研究,人们发现,任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构这三种基本结构组成,因此,我们构造一个算法的时候,也仅以这三种基本结构作为“建筑 单元”,遵守三种基本结构的规范,基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。正因为整个算法都是由三种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证,易于纠错,这种方法,就是结构化方法。遵循这种方法的程序设计,就是结构化程序设计。 相应地,只要规定好三种基本结构的流程图的画法,就可以画出任何算法的流程图。 (1)顺序结构 顺序结构是简单的线性结构,各框按顺序执行。其流程图的基本形态如图1-4所示,语句 的执行顺序为:A→B→C。 (2)选择(分支)结构 这种结构是对某个给定条件进行判断,条件为真或假时分别执行不同的框的内容。其基本形状有两种,如图1-5a)、b)所示。图1-5a)的执行序列为:当条件为真时执行A,否则执 行B;图1-5b)的执行序列为:当条件为真时执行A,否则什么也不做。 (3)循环结构 循环结构有两种基本形态:while型循环和do-while型循环。 a.while型循环 如图1-6所示。 其执行序列为:当条件为真时,反复执行A,一旦条件为假,跳出循环,执行循环紧后的语句。 b.do-while型循环 如图1-7所示。

相关主题