1、装订线长 春 大 学 课程设计纸一、设计目的通过对高级语言程序设计课程设计的学习,来验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单的C语言程序设计.希望通过项目实践,熟悉巩固所学知识,以使自己熟练掌握高级语言程序设计,为日后学习计算机科学技术的专业知识能有进一步深入了解,奠定基础。二、设计内容1、 问题描述:设计一个学生信息管理系统设计。学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,Email等。2、 功能要求:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文件保存)输入3、学生信息浏览功能输出4、学生信息查询功能算法按学号查询按姓名查询5、学生信息的删除
2、与修改(可选项)三、详细设计 1、菜单:void menu()2、建立信息:void readfile()3、 查找:void seek()4、 修改信息:void modify()5、 插入函数:void insert()6、 删除信息:void del()7、 浏览信息:void display()8、 保存:void save()四、 调试与测试1、 系统功能菜单2、 选择菜单“0,进入系统帮助及说明功能3、 选择菜单“4,添加学生信息 (1)输入增加人数 (2)依次输入学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail (3)录入完毕,弹出菜单4、 选择菜单“3”,修改学生
3、信息:输入被修改者学号 (1)选择子菜单“1”,修改姓名 (2)选择子菜单“2,修改年龄 (3)选择子菜单“3”,修改性别 (4)选择子菜单“4”,修改出生年月 (5)选择子菜单“5”,修改地址 (6)选择子菜单“6”,修改电话 (7)选择子菜单“7”,修改E-mail5、 选择菜单“2”,查询学生信息 (1)选择子菜单“1,按学号查询 (2)选择子菜单“2”,按姓名查询 (3)选择子菜单“3”,退出子菜单,弹出主菜单6、选择菜单“6,显示当前信息7、选择菜单“5”,按学号删除信息 (1)输入要删除的学生学号 (2)再次输入“6”,确认是否删除该学生信息五、源程序清单源程序代码如下includ
4、estdio。h #includestdlib。h#includestring.h#define BUFLEN 100define LEN 15 #define N 100 struct record char codeLEN+1; char nameLEN+1; int age; char sex3; char timeLEN+1; char add30; char telLEN+1; char mail30; stuN;int k=1,n,m; void readfile();void seek();void modify();void insert();void del();void d
5、isplay();void save();void menu(); int main() while(k)menu();system(”pause”);return 0; void help() printf(”n0.欢迎使用系统帮助!n”);printf(”n1.进入系统后,先刷新学生信息,再查询;n);printf(n2.按照菜单提示键入数字代号;n”);printf(”n3。增加学生信息后,切记保存按;n);printf(”n4。谢谢您的使用!n); void readfile()char p=”student.txt”;FILE fp;int i=0;if ((fp=fopen(”st
6、udent.txt”,”r”)=NULL) printf(Open file s error! Strike any key to exit!”,p);system(pause”);exit(0);while(fscanf(fp,%s %sd%s %s s %s s”,stui.code,stui.name,stui。age,stui.sex,stui.time,stui。add,stui.tel,stui。mail)=8)i+;i=i;fclose(fp);n=i;printf(”录入完毕!n”); void seek() int i,item,flag;char s121; printf(
7、”-n);printf(”-1.按学号查询-n”);printf(”-2。按姓名查询-n);printf(-3。退出本菜单-n”);printf(-n);while(1)printf(”请选择子菜单编号:);scanf(”d,item);flag=0;switch(item)case 1:printf(”请输入要查询的学生的学号:n);scanf(”%s”,s1);for(i=0;in;i+)if(strcmp(stui。code,s1)=0)flag=1;printf(学生学号 学生姓名 年龄 性别 出生年月 地址 电话 Emailn);printf(”-n”);printf(”6s %7s
8、 %6d %5s %9s 8s 10s 14sn”,stui。code,stui.name,stui。age,stui。sex,stui。time,stui.add,stui。tel,stui.mail);if(flag=0)printf(该学号不存在!n”); break;case 2:printf(请输入要查询的学生的姓名:n”);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui。name,s1)=0)flag=1;printf(”学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn”);printf(”-n);printf(”6s 7s
9、%6d 5s %9s 8s 10s 14sn”,stui.code,stui.name,stui。age,stui.sex,stui。time,stui。add,stui。tel,stui.mail);if(flag=0)printf(该姓名不存在!n”); break;case 3:return;default:printf(请在3之间选择n”); void modify() int i,item,num;char sex13,s1LEN+1,s2LEN+1; printf(”请输入要要修改的学生的学号:n);scanf(”s,s1);for(i=0;in;i+)if(strcmp(stui
10、。code,s1)=0) num=i;printf(”-n”);printf(1.修改姓名n”);printf(”2。修改年龄n”);printf(”3.修改性别n);printf(4.修改出生年月n”);printf(5。修改地址n”);printf(6。修改电话号码n”);printf(”7。修改Email地址n”);printf(”8.退出本菜单n);printf(-n”);while(1)printf(请选择子菜单编号:”);scanf(d,item);switch(item)case 1:printf(”请输入新的姓名:n);scanf(s”,s2);strcpy(stunum。na
11、me,s2); break;case 2:printf(”请输入新的年龄:n);scanf(d,stunum。age);break;case 3:printf(”请输入新的性别:n);scanf(%s”,sex1);strcpy(stunum.sex,sex1); break;case 4:printf(”请输入新的出生年月:n”);scanf(s,s2);strcpy(stunum。time,s2); break;case 5:printf(”请输入新的地址:n);scanf(%s”,s2);strcpy(stunum.add,s2); break;case 6:printf(请输入新的电话
12、号码:n”);scanf(”s,s2);strcpy(stunum.tel,s2); break;case 7:printf(”请输入新的E-mail地址:n”);scanf(%s,s2);strcpy(stunum。mail,s2); break;case 8:return;default:printf(”请在8之间选择n); void sort()int i,j,p,q,s; char temp10;for(i=0;ii;j-)if(strcmp(stuj1.code,stuj.code)0)strcpy(temp,stuj1。code);strcpy(stuj-1.code,stuj。c
13、ode);strcpy(stuj.code,temp);strcpy(temp,stuj-1.name);strcpy(stuj1.name,stuj.name);strcpy(stuj.name,temp);strcpy(temp,stuj-1.sex);strcpy(stuj1.sex,stuj。sex);strcpy(stuj。sex,temp);strcpy(temp,stuj-1。time);strcpy(stuj-1。time,stuj。time);strcpy(stuj.time,temp);strcpy(temp,stuj-1。add);strcpy(stuj1。add,stu
14、j.add);strcpy(stuj。add,temp);strcpy(temp,stuj1.tel);strcpy(stuj-1。tel,stuj.tel);strcpy(stuj。tel,temp);strcpy(temp,stuj-1.mail);strcpy(stuj1。mail,stuj。mail);strcpy(stuj。mail,temp); p=stuj-1。age; q=&stuj.age; s=q; q=p; p=s; void insert() int i=n,j,flag;printf(”请输入待增加的学生数:n”);scanf(d,m);do flag=1;while
15、(flag)flag=0;printf(请输入第%d 个学生的学号:n,i+1);scanf(”%s,stui。code);for(j=0;ji;j+)if(strcmp(stui。code,stuj。code)=0)printf(”已有该学号,请检查后重新录入!n);flag=1;break; printf(请输入第d 个学生的姓名:n”,i+1);scanf(s,stui。name);printf(”请输入第d 个学生的年龄:n”,i+1);scanf(”%d”,&stui.age);printf(请输入第d 个学生的性别:n”,i+1);scanf(%s,stui.sex);printf
16、(请输入第d 个学生的出生年月:(格式:年.月)n”,i+1);scanf(%s”,stui.time);printf(请输入第d 个学生的地址:n”,i+1);scanf(s,stui。add);printf(请输入第%d 个学生的电话:n,i+1);scanf(s”,stui.tel);printf(请输入第%d 个学生的E-mail:n”,i+1);scanf(”s”,stui。mail);if(flag=0) i=i;i+;while(in+m);n+=m;printf(录入完毕!nn);sort(); void del()int i,j,flag=0;char s1LEN+1;pri
17、ntf(请输入要删除学生的学号:n”);scanf(”%s”,s1);for(i=0;in;i+)if(strcmp(stui。code,s1)=0) flag=1;for(j=i;jn1;j+)stuj=stuj+1;if(flag=0)printf(该学号不存在!n);if(flag=1)printf(删除成功,显示结果请选择菜单n);n-; void display() int i;printf(所有学生的信息为:n”);printf(学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn”);printf(”-n);for(i=0;in;i+) printf(”6s 7s
18、 %5d %5s %9s %8s %10s %14sn”,stui。code,stui.name,stui.age,stui.sex,stui。time,stui.add,stui.tel,stui。mail); void save()int i;FILE *fp;fp=fopen(”student。txt,w”); for(i=0;in;i+)fprintf(fp,”%s %s %d %s s %s s sn”,stui。code,stui.name,stui。age,stui。sex,stui.time,stui.add,stui。tel,stui.mail);fclose(fp); vo
19、id menu()int num;printf( nn 学生信息管理系统 nn”);printf(”*系统功能菜单* n);printf(”友情提示:查询前请先刷新系统!n);printf( - - n);printf(” * n);printf( 0.系统帮助及说明 * 1。刷新学生信息 * n”);printf( * n”); printf(” * 2。查询学生信息 * 3.修改学生信息 n);printf( * n);printf( 4.增加学生信息 * 5.按学号删除信息 * n);printf(” * n”);printf( 6.显示当前信息 * * 7.保存当前学生信息* n);p
20、rintf(” * * n);printf( * 8.退出系统 n);printf( * n);printf( - - n);printf(请选择菜单编号:);scanf(d,num);switch(num) case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf(”请在-8之间选择n);共 10 页 第 10 页
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100