用C语言实现学生信息管理系统设计及源代码_第1页
用C语言实现学生信息管理系统设计及源代码_第2页
用C语言实现学生信息管理系统设计及源代码_第3页
用C语言实现学生信息管理系统设计及源代码_第4页
用C语言实现学生信息管理系统设计及源代码_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、

课程设计目的让学生综合应用所学的计算机基础知识和所掌握的程序设计语言(C语言),自主实现一个较为完整的小型管理信息系统的设计与开发。其主要目的是使学生通过系统分析、系统设计、编程调试,写实验报告等环节,初步掌握软件系统设计的方法和步骤,训练灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平,培养必要的工程实践动手二、课程设计内容序号阶段名称具体内容要求1数据录入录入系统所需的数据用链表或结构体数组组织数据2数据存储数据读写将录入的数据存储,对数据进行读写操作用文件的形式将录入的数据存储,并进行读写操作3数据修改对数据进行更新操作可以进行新数据的插入,旧数据的修改操作4数据删除对数据进行删除操作根据具体题目将对应记录删除5数据查询按要求对数据进行查询含简单查询及组合查询6数据统计按要求对数据进行统计含简单统计及综合统计7数据排序按要求对数据进行排序含升序排序及降序排序8数据报表按要求对数据打印报表依规定的报表格式对数据打印报表9界面设计总体菜单界面简单菜单、下拉式或弹出式三、需求分析(1)学生信息管理系统是用结构体数组来实现,该结构体数组中包括整型,字符型及其数组,实现系统功能的调用函数。(2)学生信息系统的功能是对学生的学生信息的录入、显示、修改、添加、删除、查询、排序、保存、读取来对学生信息进行管理。(3)该学生信息管理程序的要求是:结构清晰,书写规范;各种信息都保存在文件中;界面采用最简单的菜单,层次清楚,操作方便。四、概要设计 1.系统结构图(功能模块图)主函数主函数读入信息保存信息删除信息查找信息修改信息排序信息验证密码输出信息读取文件读入信息保存信息删除信息查找信息修改信息排序信息验证密码输出信息读取文件 退出主函数退出主函数2.功能模块说明<1>录入信息模块:将要入库的学生信息加到信息数据中。它包括学生的学号、姓名、性别、班级、年龄、电话、家庭地址等。<2>.显示学生信息:分为两个模块(1)显示学生基本信息。它包括学生的学号、姓名、性别、班级、年龄、家庭住址、电话等。(2)显示学生成绩信息。它包括学生的学号、姓名、数学、物理、英语、C语言成绩。<3>.查找信息模块:分为两个模块(1)根据学生学号进行查找。(2)根据学生姓名进行查找。包括学号、姓名、成绩等。<4>.修改信息模块:对现存的学生信息进行修改分为两个模块(1)根据学生学号进行修改。(2)根据学生姓名进行修改。它包括各科成绩。<5>.删除信息模块:同样分为按学号与姓名进行把某学生的学生信息删除。<6>.学生信息排序模块:把已存在的学生信息按照学号进行排序。<7>.信息查询统计模块:输入学号后,显示该生学生信息。<8>.退出模块:退出程序。五、详细设计及运行结果1:主函数流程图开始开始 输入密码进入菜单 输入密码进入菜单 Switch()Switch()Case1读取文件Case1读取文件 输入学号输入学号姓名性别年龄电话家庭地址生日Case2输入信息Case2输入信息显示基本信息Case3显示基本信息Case3显示基本信息输出结果Case4显示成绩信息 输出结果Case4显示成绩信息显示排序信息Case5排序信息显示排序信息Case5排序信息显示需要修改项目显示需要修改项目 显示需要修改项目显示需要修改项目输入选项(1、2)Case6修改信息 输入选项(1、2)Case6修改信息输入学号或姓名Case7查询信息 输入学号或姓名Case7查询信息显示信息显示信息输入学号/输入学号/姓名Case8删除信息删除处理删除处理Case9Case9储存信息 Case0Case0break结束结束2.按学号查找流程图选择7选择7进入输入学号输入学号numberi=N;i=0;i<i=N;i=0;i<N;i++;noStu[i].noStu[i].num=num?输入错误;输入错误;yesyes输出这个学生的信息输出这个学生的信息结束结束六、调试情况,设计技巧及体会(1).这次课程设计和以前所做题目截然不同,在这之前,以前从未尝试过写一个较大的程序,由于上学期C语言学得不是很好,所以设计过程中遇到好多问题,比如没有思路、算法分析、不知如何下手等。但是通过查阅资料和咨询同学终于有了想法。所以自己就慢慢设计了这个程序。但是程序设计有些简单,没有运用链表知识,只应用了结构体和数组。而且设计中还存在很多问题,管理系统不够完善,实现的功能不够详尽,没有实现自己想要实现的那么复杂和完善的功能。(2)在这两周的课程设计过程中,我感触颇深,让我深刻感受到知识总是在用的时候才知道匮乏,以前觉得自己C语言考试过了,就是合格了,对自己要求太低,以至于这次实习遇到很大的麻烦.基础知识不够扎实是我最大的问题,对很多知识点是只知其一,不知其二,或是只知其然而不知其所以然,自己的知识真的很浅薄,而且动手能力,分析问题、解决问题的的能力很差,以后一定要增加自己的知识储备,努力锻炼自己的实践能力。在实践过程中也遇到好多困难想要放弃,但又一想这样就放弃了以后还如何面多更大地挑战,终于还是坚持下来了,虽然自己做的不是很好,但是自己也用心努力了,我相信只要自己肯努力结果就一定不会太差!一份耕耘一份收获,两个星期的C语言实习,我终于又重新拾起了渐以模糊的C语言知识和概念,通过上机调试程序,不但熟悉了C语言的一些基本知识,而且熟练了上机实践,通过实践,又掌握了一些在书本上学不到的解决实际问题的方法本次的课程设计不仅让我学会了如何使用C语言编程,更多的我学会了如何持之以恒,细心的去做完一件事,我深信,只要我能一直坚持实习这段时间的精神,相信我也一定会到达成功的彼岸!七、参考文献1.王曙燕主编,C语言程序设计,科学出版社,2005年2.谭浩强,《C程序设计》,清华大学出版社2002年八、附录:源代码(略,详见电子版实验报告)#include<stdio.h>#include<dos.h>#include<conio.h>#include<string.h>#defineMAX50/*studentbasicinformationstruct*/typedefstruct{intnumber;charname[10];charsex[2];intage;charkind[20];chardormitory[10];charaddress[30];charphone[11];intscore1;intscore2;intscore3;intscore4;intsum;doubleaverage;}STUDENT;voidpassword(void);voidinput(void);voidsort();voiddisplaybasic(void);voiddisplayscore(void);voidrevise(void);voidrevise_num(void);voidrevise_name(void);voidinquire(void);voidinquire_number(void);voidinquire_name(void);voiddel(void);voiddel_number(void);voiddel_name(void);voidsave(void);voidread(void);STUDENTstudent[MAX];intcount=0;voidmain(){intselect=-1;password();while(select!=0){ printf("\n"); printf("========================================\n"); printf("=1---read\n"); printf("=2---Input\n");printf("=3---Displaybasic\n");printf("=4---Displayscore\n");printf("=5---sort\n"); printf("=6---Revise\n"); printf("=7---inquire\n"); printf("=8---delete\n");printf("=9---save\n");printf("=0---Exit\n");printf("========================================\n");printf("Pleaseinputselect(0-9):\n");scanf("%d",&select);switch(select){ case1: read(); break;case2: input(); break;case3: displaybasic(); break;case4:displayscore(); break;case5: sort(); break; case6: revise(); break; case7: inquire(); break; case8: del(); break; case9:save(); break; case0: break;}}}/*inputthesecretcodefunction*/voidpassword(){inti;charn[8],m[8];m[0]='0';m[1]='4';m[2]='0';m[3]='8';m[4]='2';m[5]='0';m[6]='3';m[7]='7';printf("\n\n\n\n\n\t-----Welcometothestudent'sstatusmanagesystem-----\n\n\n\n\n\n\n\n");printf("\n\n\n\n\n\t\t\tPleaseinputthesecretcode:");do{for(i=0;i<8;i++){n[i]=getch();if(n[i]>='0'||n[i]<='9'||n[i]>='a'||n[i]<='z'||n[i]>='A'||n[i]<='Z')putchar('*');}getch();if(n[0]==m[0]&&n[1]==m[1]&&n[2]==m[2]&&n[3]==m[3]&&n[4]==m[4]&&n[5]==m[5]&&n[6]==m[6]&&n[7]==m[7]){ system("cls"); printf("=================================================================\n");printf("\n\n\n\n\n\n\t-----Thesecretcodeisright!---\n\n");printf("\t\t\t-------------Wellcometouse!-----\n\n\n\n\n\n"); printf("===============================================================\n");getchar();printf("pressanykeycontiue!"); break;}else{system("cls");printf("\t\tSorry!thesecretcodeiswrong!pleaseinputagain!:\n");continue;}}while(1);}/*informationinputfunction*/voidinput(void){printf("pleaseinputstudentbasicintormation:\n");printf("number:");scanf("%d",&student[count].number);printf("name:");scanf("%s",student[count].name);printf("sex:");scanf("%s",student[count].sex);printf("age:");fflush(stdin);scanf("%d",&student[count].age);printf("kind:");scanf("%s",student[count].kind);printf("dormitory:");scanf("%s",student[count].dormitory);printf("address:");scanf("%s",student[count].address);printf("phone:");scanf("%s",student[count].phone);printf("pleaseinputnumberbetween0~100:\n");printf("math:\n");scanf("%d",&student[count].score1);printf("physics:\n");scanf("%d",&student[count].score2);printf("c:\n");scanf("%d",&student[count].score3);printf("English:\n");scanf("%d",&student[count].score4);student[count].sum=student[count].score1+student[count].score2+student[count].score3+student[count].score4;student[count].average=student[count].sum/4.0;count++;}/*displaythebasicinformationfunction*/voiddisplaybasic(void){inti;if(count==0){printf("notinputbefore!\n");getch();return;}printf("StudentInformationasfollows:\n");printf("================================================================\n");printf("number\tname\tsex\tkind\tage\tdormitory\taddress\tphone\n");for(i=0;i<count;i++){printf("%d\t",student[i].number);printf("%s\t",student[i].name);printf("%s\t",student[i].sex);printf("%s\t",student[i].kind);printf("%d\t",student[i].age);printf("%s\t",student[i].dormitory);printf("%s\t",student[i].address);printf("%s\n",student[i].phone);}printf("================================================================\n");printf("Pressanykeytocontinue!\n");getch();}/*resultdisplay*/voiddisplayscore(void){inti;printf("studentresultasfollows:\n");printf("Number\tName\tMath\tPhysic\tC\tEnglish\tEverage\n");for(i=0;i<count;i++){printf("%d\t",student[i].number);printf("%s\t",student[i].name);printf("%d\t",student[i].score1);printf("%d\t",student[i].score2);printf("%d\t",student[i].score3);printf("%d\t",student[i].score4);student[i].sum=student[i].score1+student[i].score2+student[i].score3+student[i].score4;student[i].average=student[i].sum/4.0; printf("%f\n",student[i].average);}printf("pressanykeytocometothemenu!");getch();}/*sortdependonthenumber*/voidsort(void){ inti,j;STUDENTt; for(j=0;j<count-1;j++)for(i=j+1;i<count;i++)if(student[i].number<student[j].number) {t=student[i];student[i]=student[j];student[j]=t; } printf("theresultyouwanttoknowasfollows:\n"); printf("================================================================\n");printf("number\tname\tsex\tkind\tage\tdormitory\taddress\tphone\n");for(i=0;i<count;i++){ printf("%d\t",student[i].number);printf("%s\t",student[i].name);printf("%s\t",student[i].sex);printf("%s\t",student[i].kind);printf("%d\t",student[i].age);printf("%s\t",student[i].dormitory);printf("%s\t",student[i].address);printf("%s\n",student[i].phone); } printf("number\tname\tmath\tphysic\tC\tEnglish\tsum\taverage\n"); for(i=0;i<count;i++) { printf("%d\t",student[i].number); printf("%s\t",student[i].name);printf("%d\t",student[i].score1);printf("%d\t",student[i].score2);printf("%d\t",student[i].score3);printf("%d\t",student[i].score4);printf("%d\t",student[i].sum);printf("%f\n",student[i].average); } printf("================================================================\n"); printf("\n");}/*revisestudentresultfunction*/voidrevise(){ intin; do { printf("---pleasechoicethenumberrevisenumber----\n"); printf("=============================================\n"); printf("-1inquirerevisedependonnumber-\n"); printf("-2inquirerevisedependonname-\n");printf("-3nottorevise-\n"); printf("=============================================\n"); printf("\n"); printf("pleasechoicebetween(1~3)\n"); scanf("%d",&in); fflush(stdin); if(in<1||in>3) { printf("theinputiswrong!pleaseinputagain!"); continue; } elsebreak; }while(1); switch(in) { case1: revise_num(); break; case2: revise_name(); break;case3: break; }}/*revisethescoredependonthenumber*/voidrevise_num(void){ inti=0,choice,flag,revise_num; do { printf("pleaseinputtherevisenumber:\n"); scanf("%d",&revise_num); for(i=0;i<count;i++) { if(student[i].number==revise_num) { printf("thestudentresultinformationasfollows:\n"); printf("\nchoicebetween(0~8)\n"); printf("pleasechoicethenumberyouwanttorevise\n"); printf("===========================================\n"); printf("-1reviseMath-\n"); printf("-2revisePhysic-\n"); printf("-3reviseC-\n"); printf("-4reviseEnglish-\n"); printf("===========================================\n"); scanf("%d",&choice); switch(choice) { case1: printf("inputtherevisemathscore:\n"); scanf("%d",&student[i].score1); break; case2: printf("inputtherevisephysic:\n"); scanf("%d",&student[i].score2); break; case3: printf("inputthereviseC:\n"); scanf("%d",&student[i].score3); break;case4: printf("inputthereviseEnglish:\n"); scanf("%d",&student[i].score4); break; } } if(i==MAX) { printf("\nhavenothestudent:"); getch(); } } printf("\n\ngoingonrevise?(y/n)"); choice=getch(); if(choice=='y'||choice=='Y') { flag=1; printf("\npleasecontiue!\n"); } else flag=0; }while(flag==1); printf("\nprintfanykeytothemenu:"); getch();}/*revisethescoredependonthename*/voidrevise_name(void){ inti=0,choice,flag; charrevise_name[10]; do { printf("pleaseinputtherevisename:\n"); scanf("%s",revise_name); for(i=0;i<count;i++) { if((strcmp(student[i].name,revise_name)==0)) { printf("thestudentresultinformationasfollows:\n"); printf("\nchoicebetween(0~8)\n"); printf("pleasechoicethenumberyouwanttorevise\n"); printf("===========================================\n"); printf("-1reviseMath-\n"); printf("-2revisePhysic-\n"); printf("-3reviseC-\n"); printf("-4reviseEnglish-\n"); printf("===========================================\n"); scanf("%d",&choice); switch(choice) { case1: printf("inputtherevisemathscore:\n"); scanf("%d",&student[i].score1); break; case2: printf("inputtherevisephysic:\n"); scanf("%d",&student[i].score2); break; case3: printf("inputthereviseC:\n"); scanf("%d",&student[i].score3); break;case4: printf("inputthereviseEnglish:\n"); scanf("%d",&student[i].score4); break; } } if(i==MAX) { printf("\nhavenothestudent:"); getch(); } } printf("\n\ngoingonrevise?(y/n)"); choice=getch(); if(choice=='y'||choice=='Y') { flag=1; printf("\npleasecontiue!\n"); } else flag=0; }while(flag==1); printf("\nprintfanykeytothemenu:"); getch();}/*inquirethestudent'sinformation*/voidinquire(){ intin; do { printf("---pleasechoicethenumberinquirenumber----\n"); printf("=============================================\n"); printf("-1inquireresultdependonnumbe-\n"); printf("-2inquireresultdependonname-\n");printf("-3nottoinquire-\n"); printf("=============================================\n"); printf("\n"); printf("pleasechoicebetween(1~3)\n"); scanf("%d",&in); fflush(stdin); if(in<1||in>3) { printf("theinputiswrong!pleaseinputagain!"); continue; } elsebreak; }while(1); switch(in) { case1: inquire_number(); break; case2: inquire_name(); break;case3: break; }}/*inquireresultdependonnumber*/voidinquire_number(){ intno; inti; printf("\npleaseinputthestudentnumberyouwanttoinquire\n"); printf("thenumberis:"); scanf("%d",&no); for(i=0;i<count;i++) { if(student[i].number==no) { printf("theresultyouwanttoknowisfollows:\n"); printf("================================================================\n");printf("number\tname\tsex\tkind\tage\tdormitory\taddress\tphone\n");printf("%d\t",student[i].number);printf("%s\t",student[i].name);printf("%s\t",student[i].sex);printf("%s\t",student[i].kind);printf("%d\t",student[i].age);printf("%s\t",student[i].dormitory);printf("%s\t",student[i].address);printf("%s\n",student[i].phone); printf("number\tname\tmath\tphysic\tC\tEnglish\tsum\taverage\n"); printf("%d\t",student[i].number); printf("%s\t",student[i].name);printf("%d\t",student[i].score1);printf("%d\t",student[i].score2);printf("%d\t",student[i].score3);printf("%d\t",student[i].score4);printf("%d\t",student[i].sum);printf("%f\n",student[i].average); printf("================================================================\n"); printf("\n"); } }}/*inquireresultdependonname*/voidinquire_name(){ charname[10]; inti; printf("pleaseinputthenameyouwanttoinquire:\n"); fflush(stdin); scanf("%s",name); for(i=0;i<count;i++) { if((strcmp(student[i].name,name))==0){ printf("theresultyouwanttoknowisfollows:\n"); printf("================================================================\n");printf("number\tname\tsex\tkind\tage\tdormitory\taddress\tphone\n");printf("%d\t",student[i].number);printf("%s\t",student[i].name);printf("%s\t",student[i].sex);printf("%s\t",student[i].kind);printf("%d\t",student[i].age);printf("%s\t",student[i].dormitory);printf("%s\t",student[i].address);printf("%s\n",student[i].phone); printf("number\tname\tmath\tphysic\tC\tEnglish\tsum\taverage\n"); printf("%d\t",student[i].number); printf("%s\t",student[i].name);printf("%d\t",student[i].score1);printf("%d\t",student[i].score2);printf("%d\t",student[i].score3);printf("%d\t",student[i].score4);printf("%d\t",student[i].sum);printf("%f\n",student[i].average); printf("================================================================\n"); printf("\n"); } }}/*deletestudentinformationfunction*/voiddel(){ intin; do { printf("=============================================\n"); printf("---pleasechoicethenumberdeletenumber----\n"); printf("-1deletedependonnumber-\n"); printf("-2deletedependonname-\n");printf("-3nottodelete-\n"); printf("=============================================\n"); printf("\n"); printf("pleasechoicebetween(1~3)\n"); scanf("%d",&in); fflush(stdin); if(in<1||in>3) { printf("theinputiswrong!pleaseinputagain!"); continue

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论