c语言课程设计报告及其源代码
C语言课程设计报告+源代码(成绩管理系统)
课程设计报告(专科)课程:C语言程序设计学号:0810720070姓名:班级:08级计算机应用师范专科班教师:时间:2009.6.8~2009.6.19计算机科学与技术系附录:源程序代码#include"stdio.h"#include"string.h"#include "conio.h"void input(struct class_list cla[6]);void total(struct class_list cla[6]);void search(struct class_list cla[6]);void modify(struct class_list cla[6]);void display(struct class_list cla[6]);int i,j,a=0,b[11]; //定义为全局变量struct student{char sex[5];char name[20];int num;double score;};struct class_list{struct student stu[50];}cla[10];int main(){int choice;printf("------------欢迎使用C语言成绩管理系统------------\n\n\n");do{printf("1.录入成绩2.统计成绩3.成绩查询4.修改学生信息5.显示成绩单0.退出\n");printf("请输入你的选择:");scanf("%d",&choice);if(choice<0||choice>5){printf("无效选择,请重选:");scanf("%d",&choice);}printf("\n");switch(choice){case 1:printf("只能使用一次此功能,请不要重复使用!!\n");input(cla); //成绩录入break;case 2:total(cla); //统计成绩break;case 3:search(cla); //成绩查询break;case 4:modify(cla); //修改学生信息break;case 5:display(cla); //显示成绩单break;case 0:break;}}while(choice!=0);printf("谢谢使用!\n");return 0;}void input(struct class_list cla[]) //成绩录入{int date; //学期printf("请输入学期:");scanf("%d",&date);printf("请输入班级的个数:");scanf("%d",&a);for(i=0;i<a;i++){printf("class:%d\n",i+1); //输出班级号printf("请输入学生的个数:");scanf("%d",&b[i]);printf("\n学号不能重复\n");for(j=0;j<b[i];j++)//输入学生的信息{printf("学号:");scanf("%d",&cla[i].stu[j].num);printf("姓名:");scanf("%s",cla[i].stu[j].name);printf("性别:");scanf("%s",cla[i].stu[j].sex);printf("C语言成绩:");scanf("%lf" ,&cla[i].stu[j].score);}if(j>=b[i])printf("人数已满\n");}if(i>=a)printf("班级已满\n\n");}void total(struct class_list cla[]){double sum,average;for(i=0;i<a;i++){sum=0;average=0;for(j=0;j<b[i];j++)sum=sum+cla[i].stu[j].score;average=sum/b[i];printf("班级:%d 总分:%.2lf 平均分:%.2lf\n",i+1,sum,average);}}void search(struct class_list cla[]){int choice2,num2,flag;char name2[20];do{printf("1.按姓名查找2.按学号查找3.查找学生不及格名单0.退出\n");printf("请输入你的选择:");scanf("%d",&choice2);switch(choice2){case 1:flag=0;printf("请输入你要查找的学生姓名:");scanf("%s",name2);for(i=0;i<a;i++)for(j=0;j<b[i];j++)if(strcmp(name2,cla[i].stu[j].name)==0){printf("班级:%d 学号:%d 姓名:%s 性别:%s c语言成绩:%.2f\n",i+1,cla[i].stu[j].num,cla[i].stu[j].name, cla[i].stu[j].sex,cla[i].stu[j].score);flag=1;}if(flag==0)printf("没有此学生信息!\n");break;case 2:flag=0;printf("请输入你要查找的学生学号:");scanf("%d",&num2);for(i=0;i<a;i++)for(j=0;j<b[i];j++)if(num2==cla[i].stu[j].num){printf("班级:%d 学号:%d 姓名:%s 性别:%s C语言成绩:%.2lf\n",i+1,cla[i].stu[j].num,cla[i].stu[j].name, cla[i].stu[j].sex,cla[i].stu[j].score);flag=1;}if(flag==0)printf("没有此学生信息!\n");break;case 3:flag=0;for(i=0;i<a;i++)for(j=0;j<b[i];j++){if(cla[i].stu[j].score<60)printf("班级:%d 学号:%d 姓名:%s 性别:%s c语言成绩:%.2lf\n",i+1,cla[i].stu[j].num,cla[i].stu[j].name,cla[i].stu[j].sex,cla[i].stu[j].score);flag=1;}if(flag==0)printf("没有学生不及格!\n");break;case 0:break;}}while(choice2!=0);}void modify(struct class_list cla[]) //修改学生信息{int choice2,num2,num3;int k,p,flag;float score2;char name2[20],name3[20],ch;if(a==0){printf("无班级,无人数,无法修改!\n");return ;}do{printf("1.增加学生信息 2.删除学生信息 3.修改姓名 4.修改学号 5.修改C语言成绩 6.退出\n");printf("请输入你的选择:");scanf("%d",&choice2);if(choice2<1||choice2>9){printf("无效选择,请重选:");scanf("%d",&choice2);}switch(choice2){case 1: //插入学生printf("请输入想插入的班级号1~10:");scanf("%d",&p);if(p>a){printf("无此班级,请重新输入:");printf("班级数为1~%d:",a);scanf("%d",&p);}b[p-1]++; //人数增加printf("请输入学生信息:\n");printf("学号:");scanf("%d",&cla[p-1].stu[b[p]].num);printf("姓名:");scanf("%s",cla[p-1].stu[b[p]].name);printf("c语言:");scanf("%lf",&cla[p-1].stu[b[p]].score);printf("性别:");scanf("%s",&cla[p-1].stu[b[p]].sex);printf("班级:%d 学号:%d 姓名:%s 性别:%s C语言成绩:%.2lf \n\n",p,cla[p-1].stu[b[p]].num,cla[p-1].stu[b[p]].name,cla[p-1].stu[b[p]].sex,cla[p-1].stu[b[p]].score);break;case 2: //删除学生printf("请输入要删除的学生姓名:");scanf("%s",name3);for(i=0;i<a;i++)for(j=0;j<b[i];j++){if(strcmp(name3,cla[i].stu[j].name)==0){flag=1;printf("班级:%d 学号:%d 姓名:%s 性别:%s c语言成绩:%.2\nf",i+1,cla[i].stu[j].num,cla[i].stu[j].name,cla[i].stu[j].sex,cla[i].stu[j].score);printf("你确认要删除此学生吗?<y/n> ");ch=getch();if(ch=='y'){for(k=j;k<b[i];k++){strcpy(cla[i].stu[k].name,cla[i].stu[k+1].name);strcpy(cla[i].stu[k].sex,cla[i].stu[k+1].sex);cla[i].stu[k].score=cla[i].stu[k+1].score;cla[i].stu[k].num=cla[i].stu[k+1].num;b[i]--;}printf("你已成功删除!\n");}else {flag=1;printf("删除未完成!\n");}if(b[i]==0)printf("班级%d为空!\n\n",i+1);}if(flag==0)printf("没有此学生!\n");}break;case 3: //修改的学生姓名flag=0;printf("请输入要修改的学生姓名:");scanf("%s",name2);for(i=0;i<a;i++){for(j=0;j<b[i];j++){if(strcmp(cla[i].stu[j].name,name2)==0){printf("请输入修改后的学生姓名:");scanf("%s",name3);strcpy(cla[i].stu[j].name,name3);flag=1;}}}if(flag==0)printf("无此人信息\n");break;case 4: //修改的学生学号flag=0;printf("请输入要修改的学生学号:");scanf("%d",&num2);for(i=0;i<a;i++){for(j=0;j<b[i];j++){if(cla[i].stu[j].num==num2){printf("请输入修改后的学生学号:");scanf("%d",&num3);cla[i].stu[j].num=num3;flag=1;}}}if(flag==0)printf("无此人信息\n");break;case 5: //修改学生的c语言成绩flag=0;printf("请输入要修改的C语言成绩的学生姓名:");scanf("%s",name2);for(i=0;i<a;i++){for(j=0;j<b[i];j++){if(strcmp(cla[i].stu[j].name,name2)==0){printf("请输入修改后的C语言成绩:");scanf("%f",&score2);cla[i].stu[j].score=score2;flag=1;}}}if(flag==0)printf("无此人信息\n");break;case 6:printf("\n");break;}}while(choice2!=6);}void display(struct class_list cla[]) //输出成绩单{if(a==0){printf("无班级,无人数,无法输出\n");return ;}for(i=0;i<a;i++){printf("班级:%d\n",i+1);for(j=0;j<b[i];j++)printf("学号:%d 姓名:%s 性别:%s c语言成绩:%.2lf\n",cla[i].stu[j].num,cla[i].stu[j].name,cla[i].stu[j].sex,cla[i].stu[j].score);}printf("\n");}。
c语言课设实验报告-记事本程序(含源码)
C语言课设实验报告[记事本程序]班级:学号:姓名:指导老师:C语言课设实验报告#define key_down 80#define key_up 72#define key_esc 1#define key_alt_f 33#define key_alt_x 45#define key_enter 28#define key_alt_e 18int get_key();void box(int startx,int stary,int high,int width);{int i,key,x,y,l;char *w=NULL,*d=NULL,*s=NULL;FILE *fp;char *menu[]={ "File ", "Edit ","Format","View","Help"};char *red[]={ "F", "E","F","V","H"};char *f[]={ "New ", "Open" , "Save", "Another","Quit alt_x"};char *e[]={"Search","Search next","Replace","Date"};char buf[16*10*2],buf1[16*2];textbackground(3);clrscr();window(1,1,80,1);textbackground(WHITE);textcolor(BLUE);clrscr();window(1,1,80,2);for(i=0, l=0; i <5;i++){x=wherex();y=wherey();textcolor(BLACK);cprintf( " %s ",menu[i]);l=strlen(menu[i]);gotoxy(x,y); x.y等的头文件*//*功能键的扫描码的定义*//* i为循环次数的序数,key为从键盘输入的功能键,x,y 为光标的坐标,l为菜单栏中菜单的字符长度*//*w是存放输入的内容(记录的事情)的指针,*s是存放输入的文件名的指针,*d是存放输入要定时的文件的文件名的指针*/ /*菜单栏中各个菜单的定义*//*菜单栏中菜单开头要标颜色的字母的定义*//* file 子菜单中项目的定义*//*edit子菜单的定义*/ /*缓冲区的定义*//*整个大窗口的背景颜色设置*//*创建菜单栏窗口*/ /*设置菜单栏窗口背景颜色为白色,字体颜色为蓝色*//*利用循环输出menu菜单栏,有多少个菜单循环多少次。
课程设计报告模板c语言
课程设计报告模板c语言一、课程目标知识目标:1. 理解C语言的基本语法结构,掌握变量定义、数据类型、运算符等基础知识;2. 学会使用控制结构,如顺序结构、分支结构和循环结构;3. 掌握函数定义、声明和调用的方法,理解局部变量和全局变量的概念;4. 了解数组、字符串和指针的使用,并能运用它们解决实际问题。
技能目标:1. 能够运用C语言编写简单的程序,解决问题;2. 培养良好的编程习惯,如规范命名、合理注释、代码缩进等;3. 学会使用编译器进行程序编译、调试和运行;4. 能够阅读和分析简单的C程序代码,提高编程能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情;2. 培养学生的逻辑思维能力,提高问题解决能力;3. 培养学生的团队协作意识,学会与他人分享编程经验;4. 培养学生严谨、细心的学习态度,养成良好的编程习惯。
课程性质:本课程为初中年级的信息技术课程,旨在让学生掌握C语言编程的基本知识和技能。
学生特点:初中学生具有较强的逻辑思维能力和学习兴趣,但对编程知识了解较少。
教学要求:结合学生特点,注重理论与实践相结合,通过实例分析、编程实践等方式,使学生能够掌握C语言的基本知识,提高编程能力。
在教学过程中,关注学生的情感态度,激发学习兴趣,培养良好的编程习惯。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. C语言基础知识- 变量定义、数据类型和运算符- 输入输出函数的使用- 顺序结构程序设计2. 控制结构- 分支结构(if、if-else、switch)- 循环结构(for、while、do-while)3. 函数- 函数定义、声明和调用- 局部变量和全局变量- 递归函数4. 数组、字符串与指针- 数组的使用和操作- 字符串的基本操作- 指针的概念和用法5. 编程实践- 编写简单程序,解决问题- 分析实例代码,提高编程能力- 调试程序,找出并修复错误教学内容安排与进度:第一周:C语言基础知识,顺序结构程序设计第二周:控制结构(分支、循环)第三周:函数的定义和调用,递归函数第四周:数组、字符串与指针第五周:编程实践与总结教材章节关联:教学内容与教材相应章节紧密关联,确保学生能够在学习过程中系统地掌握C 语言知识。
c语言课程设计设计报告
c语言课程设计设计报告c语言课程设计设计报告「篇一」c语言课程设计实验报告第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。
(]1.2 实验要求在报告中记录建立、保存C程序实习过程。
1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main{printf (“Hello World! ”);}2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。
第二章数据类型2.1 实验目的(1)掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。
()(2)通过编程进一步理解和掌握运算符的确切含义和功能。
2.2 实验要求(1)在报告中记录建立、保存C程序实习过程。
(2)完成典型题目,分析遇到的困难和实验中的收获。
2.3 实验基本内容输入程序,观察输出结果 1>./*test2.1c*/1)编译如下程序: #includevoid main{char ch; int k;ch='a',k='b';printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d ",k) }2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
2>./*test2.2c*/1)编译如下程序: #includevoid main{float a1,a2; double b1,b2; a1=1234.12; a2=0.000001; b1=1234.12; b2=0.000001;printf("%f,%l f ",a1+a2,b1+b2);}2)链接。
c语言实验报告参考源代码
实验5三种基本结构的综合应用4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的个数。
#include "stdio.h"main(){int i,j,k,m,p,q,n=0;for(i=100;i<=999;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i) /*三位数是素数时*/{k=i%100; /*去掉百位数字*/if(k>=10) /*十位数字不是0时*/{for(m=2;m<k;m++)if(k%m==0)break;if(m>=k) /*两位数是素数时*/{p=i%10; /*p为个位数字*/for(q=2;q<p;q++)if(p%q==0)break;if(q>=p)n++;}}}}printf("%d\n",n);}Key:575.求[2,400]中相差为10的相邻素数对的对数。
#include "stdio.h"main(){int i,j,k,m,p,q,n=0;for(i=2;i<=400;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i) /*i是素数时*/{for(k=i+1;k<i+10;k++){for(m=2;m<k;m++)if(k%m==0)break;/*k不是素数时终止if语句的内层循环*/if(m>=k)break;} /*k是素数时终止if语句的外层循环*/if(k>=i+10) /*[i+1,i+9]不是素数时*/{for(q=2;q<k;q++)if(k%q==0)break;if(q>=k) /*i+10是素数时*/n++;}}}printf("%d\n",n);}Key:56.求[1,21]范围内的梅森尼数#include "math.h"main(){long n,k=2,m,p,q;for(n=2;n<=21;n++){ k=k*2; p=k-1;m=sqrt(p);for(q=2;q<=m;q++)if(p%q==0) break;if(q>m) printf("%5ld",n);}}Key: 2 3 5 7 13 17 197.求1000以内的亲密数对main(){int a,b,n,m,q,p;for(a=1;a<1000;a++){n=0;for(q=1;q<=a/2;q++)if(a%q==0) n+=q;for(b=a;b<=1000;b++){ m=0;for(p=1;p<=b/2;p++)if(b%p==0) m+=p;if(a==m&&b==n) printf("%5d%5d",a,b);}}}/*Key:6 6 28 28 220 284 496 496*/实验6 数组及其应用3.由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。
c语言课程设计+报告+源代码
西安郵電大學C语言课程设计报告题目: 职工工资管理系统院系名称: 计算机学院专业名称: 软件工程班级:学生姓名:学号(8位):指导教师:设计起止时间: 2013年06月03日~2013年06月12日一.设计目的1.通过本课程设计, 强化上机动手能力, 使学生在理论和实践的基础上进一步巩固《c语言程序设计》课程学习的内容, 掌握工程软件设计的基本方法.2.学会将知识应用于实际的方法, 提高分析和解决问题的能力, 增加综合能力.3.为后续各门计算机课程的学习打下坚实基础; 为毕业设计和以后工作打下必要基础。
二.设计内容本设计主要包括了用户登录和主菜单,其中用户登录包括了一下几个功能1.新用户的注.2.用户登.3。
用户密码的修改。
而主菜单包括: 1.职工信息的录.2.职工信息的修.3.选择性排.4.统计人数和工.5. 输出现有的信.6.自定义查询信息。
三. 概要设计1. 功能模块图;1.2. 各个模块详细的功能描述。
2.修改密码的时候, 需要输入原密码, 并且输入两次新的密码必须相同才能完成密码的修改。
3.用户登录: 需要输入用户名和密码, 如果用户名不存在或密码错误会给出相应的提醒, 当输入正确的时候会进入主菜单。
4.新用户注册:需要输入注册的用户和密码, 如果用户明已被注册过会给出相应的提醒。
5.职工信息的输入:是从无开始输入职工的信息, 同样也会给出输入内容的提醒, 当输入最后一次职工的信息为零时结束输入, 同是会将输入的信息写入到文件里。
6.修改职工信息其中包括a.添加职工信息和输入职工信息相同在添加完会提醒是否继续添加。
b.修改员工信息: 此时会出现选择性修改职工的哪项信息,先进行选择再进行修改。
C.删除员工信息: 需要输入所要删除员工的姓名或id进行删除!如果删除不成功或者删除者不存在会给出相应的提醒。
7.统计信息: 会自动的统计现有员工的总人数和现有员工的总工资。
8.输出现有职工的信息: 会显示现在记录的职工的各项信息。
c语言课程设计及源代码
c语言课程设计及源代码一、教学目标本课程旨在让学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的程序设计能力。
通过本课程的学习,学生将能够:1.理解C语言的基本语法和编程规则;2.熟练使用C语言进行简单的程序设计;3.掌握常用的数据结构和算法;4.培养良好的编程习惯和问题解决能力。
二、教学内容教学内容将按照教材的章节进行,主要包括:1.C语言的基本语法和编程规则;2.数据类型的定义和运算;3.控制语句和函数的使用;4.常用的数据结构和算法;5.指针和内存管理;6.文件操作和编程实践。
三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法:1.讲授法:通过讲解和演示,让学生掌握C语言的基本语法和编程规则;2.讨论法:通过小组讨论和实践,让学生深入理解和运用数据结构和算法;3.案例分析法:通过分析实际案例,让学生学会解决实际编程问题;4.实验法:通过上机实验,让学生动手实践,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,将准备以下教学资源:1.教材:选用权威、实用的C语言教材;2.参考书:提供相关的参考书籍,供学生自主学习;3.多媒体资料:制作PPT和教学视频,辅助讲解和演示;4.实验设备:提供计算机实验室,让学生进行上机实验。
通过以上教学设计,相信学生能够顺利完成本课程的学习,掌握C语言编程的基本技能。
五、教学评估为了全面、客观、公正地评估学生的学习成果,将采用多种评估方式:1.平时表现:通过课堂参与、提问和讨论,评估学生的学习态度和理解程度;2.作业:布置适量的作业,评估学生的编程能力和实践能力;3.考试:进行期中和期末考试,评估学生对课程知识的掌握程度;4.项目实践:课程项目,让学生综合运用所学知识解决问题,评估学生的综合能力。
六、教学安排教学安排将根据课程内容和学生的实际情况进行设计:1.教学进度:按照教材的章节顺序,合理安排每一节课的教学内容;2.教学时间:根据学生的作息时间,选择合适的时间段进行授课;3.教学地点:选择适宜的教室或实验室,保证教学环境的舒适和设施的齐全;4.教学活动:结合学生的兴趣爱好,安排一些实践活动,提高学生的学习积极性。
c语言课程设计源代码
学校运动会管理系统问题描述:(1) 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;(2) 各项目名次取法有如下几种:取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1;(3) 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
(4) 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。
程序代码:#include<stdio.h>#include<string.h>#define N 3#define M 3#define W 3char* n_number[3]={"1","院系2","院系3"};char* m_number[3]={"1","男项2","男项3"};char* w_number[3]={"女项1","女项2","女项3"};int size=2;struct student{char num[10];char name[20];char xiangmu[20];int score;char ximing[20];}stu[100],temp;void input() //输入原始数据//{int temp = 0;printf("\t************输入界面************\n");printf("请输入:\n运动员号码,姓名,项目名,成绩,系名:\n");for(int i=0;i<size;i++){scanf("%s%s%s%d%s",&stu[i].num,&stu[i].name,&stu[i].xia ngmu,&stu[i].score,&stu[i].ximing);// if(strcmp(stu[i].ximing,n_number[0])==0)// printf(stu[i].ximing);//printf("%s\n",n_number[0]);for(int h=0;h<N;h++)if(strcmp(stu[i].ximing,n_number[h])==0)for(int s=0;s<M;s++){if(strcmp(stu[i].xiangmu,m_number[s])==0)temp = 1;else{for(int k=0;k<M;k++)if(strcmp(stu[i].xiangmu,w_number[k])==0)temp = 1;}}if(temp==0){i=i-1;printf("%s\n","输入信息有误,请重新输入!");}elseprintf("%s\n","本条信息录入完毕!");}printf("%s\n","所有信息录入完毕!");printf("输出:\n运动员号码,姓名,项目名,成绩,系名:\n");for(i=0;i<size;i++)printf("%s\t%s\t%s\t%d\t%s\n",stu[i].num,stu[i].name,st u[i].xiangmu,stu[i].score,stu[i].ximing);}void find() //查找函数//{int temp =0;int scorez = 0;printf("\t************查找界面************\n");printf("\t************1.查询院系比赛成绩************\n");printf("\t************2.查询个人比赛成绩************\n");char fs[20];while(1){int tt=0;printf("请输入编号:");scanf("%d",&tt);switch(tt){case 1:{temp =0;scorez = 0;printf("输入要查询的院系名称:");scanf("%s",&fs);printf("输出:\n系名,运动员号码,姓名,项目名,成绩:\n");for(int j=0;j<size;j++){if(strcmp(stu[j].ximing,fs)==0){temp =1;printf("%s\t%s\t%s\t%s\t%d\n",stu[j].ximing,stu[j].num, stu[j].name,stu[j].xiangmu,stu[j].score);scorez = scorez +stu[j].score;}}if(temp==0)printf("没有找到相应的院系:\n");elseprintf("学院总成绩为:%d\n",scorez);break;}default:temp =0;printf("输入你要查找运动员的号码:");scanf("%s",&fs);printf("输出:\n运动员号码,姓名,项目名,成绩,系名:\n");for(int i=0;i<size;i++){if(strcmp(stu[i].num,fs)==0){temp =1;printf("%s\t%s\t%s\t%d\t%s\n",stu[i].num,stu[i].name,&s tu[i].xiangmu,stu[i].score,stu[i].ximing);}}if(temp==0){printf("你要找的运动员未找到:\n");printf("该运动员缺赛或不存在!\n");}}}}void main(){input() ;find() ;}。
c语言课程设计报告及其源代码
西安郵電學院C语言课程设计报告书系部名称通信工程系学生姓名王子源专业名称通信工程专业班级通工0901班学号03091001指导教师衡霞2010年06月07日至时间2010年06月18日实验题目学生宿舍管理系统一、实验目的通过进行计算机实践,更加系统地理解和掌握C语言的基本概念、语言特点和编程技巧。
利用系统提供的标准函数和自定义函数进行程序设计,培养利用C语言设计综合程序的能力。
二、实验内容在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握各种函数的应用。
三、需求分析本学生信息管理系统包含输入记录,显示记录,按房间号排序并显示,按学号排序并显示,插入一条记录按学号排序并显示,按姓名查找,删除一条记录,查找并显示一个记录,查找并修改一个记录,从文件中读入数据,循环写入数据等功能.需求分析:输入记录(Input)显示记录(Display)按房间号排序并显示(Sort_by_roomnum)按学号排序并显示(Sort_by_num)插入一条记录按学号排序并显示(Insert_a_record)按姓名查找,删除一条记录(Delete_a_record)查找并显示一个记录(Query_a_record)查找并修改一个记录(Change_a_record)从文件中读入数据(AddfromText)循环写入数据(WritetoText)四.概要设计1.系统分析功能模块图:总目录以及下属的各个模块,这样可以使得程序的书写脉络清晰流畅。
程序结构图2、模块功能说明(1)输入记录模块(Input):用于输入学生的各项信息(2)显示记录模块(Display):按照输入的顺序显示出每个学生的各项信息(3)按房间号排序并显示模块(Sort_by_roomnum):按照房间号顺序显示每个学生信息(4)按学号排序并显示模块(Sort_by_num):按照学号顺序显示每个学生信息(5)插入一条记录按学号排序并显示模块(Insert_a_record):插入一条记录并按学号显示出所有记录。
c语言课程设计源代码
c语言课程设计源代码一、课程目标知识目标:1. 理解C语言课程设计中源代码编写的基本原理和方法;2. 学会运用C语言的基本语法,掌握函数、控制结构、数据类型等知识点的综合运用;3. 掌握C语言程序调试和错误处理的方法。
技能目标:1. 能够独立完成C语言课程设计的源代码编写,具备实际编程能力;2. 学会使用集成开发环境(IDE)进行代码编写、调试和运行;3. 能够运用所学知识解决实际问题,提高问题分析和解决能力。
情感态度价值观目标:1. 培养学生对C语言的兴趣,激发学习热情,树立编程自信心;2. 培养学生团队协作精神,学会与他人分享、讨论和解决问题;3. 增强学生的创新意识和实践能力,培养良好的编程习惯。
课程性质分析:本课程为C语言课程设计,侧重于实践操作。
学生需具备一定的C语言基础知识,能够运用所学知识进行源代码编写。
学生特点分析:1. 学生处于具备一定编程基础知识的阶段,需要通过实践提高编程能力;2. 学生对编程有一定的兴趣,但可能存在畏难情绪,需要鼓励和指导;3. 学生个体差异较大,需要因材施教,关注每个学生的学习进度。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际编程能力;2. 强化课堂互动,关注学生个体差异,进行针对性指导;3. 创设实际编程场景,激发学生学习兴趣,培养创新意识和实践能力。
二、教学内容1. C语言基础知识回顾:变量、数据类型、运算符、表达式;2. 控制结构:顺序结构、分支结构、循环结构;3. 函数:函数定义、调用、参数传递、递归;4. 数组:一维数组、二维数组、字符串;5. 指针:指针的定义、使用、指针与数组、指针与函数;6. 结构体与共用体:结构体的定义、使用,共用体的概念;7. 文件操作:文件打开、关闭、读写、定位;8. 课程设计案例:分析案例需求,设计源代码框架,编写、调试和优化代码;9. 编程规范和技巧:命名规则、注释、代码组织、调试方法。
教学内容安排与进度:1. C语言基础知识回顾(1课时);2. 控制结构(2课时);3. 函数(2课时);4. 数组(2课时);5. 指针(3课时);6. 结构体与共用体(2课时);7. 文件操作(2课时);8. 课程设计案例(4课时);9. 编程规范和技巧(1课时)。
c课程设计源代码
c 课程设计 源代码一、课程目标知识目标:1. 学生能理解源代码的基本概念,掌握编程语言的基本语法结构。
2. 学生能运用所学知识编写简单的程序,实现基础的计算和控制功能。
3. 学生了解编程中的顺序、选择和循环三种基本结构,并能运用到实际编程中。
技能目标:1. 学生能运用编程工具进行代码编写、调试和运行,具备基本的编程能力。
2. 学生能通过分析问题,设计简单的算法,并将其转化为源代码实现。
3. 学生能通过课堂讨论和小组合作,提高问题解决和团队协作能力。
情感态度价值观目标:1. 学生对编程产生兴趣,培养探索精神和创新意识。
2. 学生在学习过程中,养成严谨、细心的良好习惯,提高自我纠错能力。
3. 学生通过编程学习,认识到信息技术在生活中的应用,增强社会责任感和使命感。
课程性质:本课程为信息技术学科的基础课程,旨在培养学生的编程兴趣和基本技能,为后续学习打下基础。
学生特点:六年级学生具备一定的逻辑思维能力,对新事物充满好奇,但注意力容易分散,需要通过生动的教学方式激发学习兴趣。
教学要求:结合学生特点,采用任务驱动、案例教学等方法,注重实践操作,鼓励学生主动探索,提高编程能力。
同时,关注学生的情感态度,培养良好的学习习惯和价值观。
通过分解课程目标,为教学设计和评估提供依据,确保课程目标的实现。
二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. 源代码基本概念:介绍源代码的定义、作用以及编程语言的发展历程。
- 教材章节:第一章 计算机编程基础2. 编程语言基本语法结构:讲解变量、数据类型、运算符、表达式等基本概念。
- 教材章节:第二章 Python语言基础3. 程序设计基本结构:学习顺序、选择(条件)、循环三种基本结构。
- 教材章节:第三章 程序设计结构4. 编程工具使用:学会使用编程软件(如IDLE)进行代码编写、调试和运行。
- 教材章节:第四章 Python编程环境5. 简单算法设计:通过实例,引导学生学习如何分析问题并设计简单算法。
c课程设计源代码
c 课程设计源代码一、教学目标本章节的教学目标是使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,培养学生编写简单C程序的能力,并培养学生的逻辑思维和解决问题的能力。
具体来说,知识目标包括:1.掌握C语言的基本语法和规则。
2.掌握基本数据类型、运算符和表达式。
3.掌握顺序结构、分支结构和循环结构。
4.掌握函数的定义和调用。
技能目标包括:1.能使用C语言编写简单的程序。
2.能利用C语言进行基本的输入输出操作。
3.能运用控制结构解决简单的问题。
情感态度价值观目标包括:1.培养学生对计算机科学的兴趣和热情。
2.培养学生独立思考、解决问题的能力。
3.培养学生团队协作、交流分享的良好习惯。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识。
具体安排如下:1.第一课时:C语言概述,基本语法和规则。
2.第二课时:基本数据类型、运算符和表达式。
3.第三课时:顺序结构、分支结构和循环结构。
4.第四课时:函数的定义和调用。
三、教学方法为了激发学生的学习兴趣和主动性,本章节将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
具体安排如下:1.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构和函数等基础知识。
2.讨论法:引导学生分组讨论实际编程中遇到的问题,培养学生的团队协作和沟通能力。
3.案例分析法:分析典型的C程序案例,帮助学生理解编程思想和方法。
4.实验法:让学生动手编写C程序,巩固所学知识,提高实际编程能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《C程序设计语言》(K&R)或《C语言入门教程》等。
2.参考书:《C Primer Plus》、《C专家编程》等。
3.多媒体资料:教学PPT、视频教程、在线编程练习平台等。
4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
《C语言程序设计基础》课程设计报告(包含源文件和源代码)
为了更好的帮助同学们学习,此文档还包含全部的源文件和源代码,有需要的同学请进本作者的百度空间!《程序设计基础》课程设计报告题目:学院教学信息管理系统日期:2013.5.21班级:计算机科学与技术1202班学号:************姓名:******一.设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计基础(C语言)》课程后进行的一次全面的综合练习。
本课程设计的目的:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二.课程设计任务书题目:学院教学信息管理系统学院教学信息管理系统,每一条记录包括一位教师的职工号、姓名、职称、性别、3门课程教学效果、综合评分。
系统要求实现以下功能:1、输入:输入每一位教师记录,将其信息写入文件中。
2、显示:显示每位教师记录。
3、排序:按职工号或教学效果综合评分进行排序,并显示。
4、查找:完成按姓名或职工号查找教师的相关记录,并显示。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。
2、建立一个文件,将每位教师的相关(教学)信息写入文件中并能显示于屏幕上。
3、完成排序(按职工号、姓名、职称等)、查找等功能。
要求:1、用C语言实现程序设计;2、利用结构体数组或者链表实现教师信息的数据结构设计;3、系统的各个功能模块要求用函数实现;4、界面友好(良好的人机交互),程序加必要的注释。
三.系统设计方案用到数据结构的定义:在此程序中用到了结构体的定义,结构体数组的定义以及变量的申明,还用到了外部函数的申明及调用。
在主函数中,输出教师信息的函数是贯穿在程序始终的,例如要实现教师的排序这一模块时,排完序后就需要用输出信息的函数来输出排序后的信息。
这就得需要多个函数共同实现这一个模块。
c课课程设计以及源代码
c 课课程设计以及源代码一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,培养学生编程思维和解决问题的能力。
具体目标如下:1.知识目标:(1)理解C语言的基本语法,包括变量、数据类型、运算符、表达式等;(2)掌握函数的定义和调用,了解作用域规则;(3)熟悉数组的声明和使用,理解字符串的基本操作;(4)了解指针的概念和应用,掌握指针与数组、指针与函数的关系;(5)学习结构体和联合体,掌握文件操作的基本方法。
2.技能目标:(1)能够运用C语言编写简单的程序,实现输入输出、数据处理等功能;(2)学会使用调试工具,能够发现和解决程序中的错误;(3)掌握常用的算法,如排序、查找、递归等,并能够灵活运用;(4)具备一定的编程规范和编程习惯,能够阅读和理解他人的代码。
3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和好奇心,激发学生主动学习的动力;(2)培养学生团队合作的精神,学会与他人交流和分享;(3)培养学生勇于面对困难和挑战,培养解决问题的能力;(4)培养学生具有良好的职业操守,注重诚信和责任心。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个方面:1.C语言的基本语法:变量、数据类型、运算符、表达式、函数等;2.数据结构:数组、字符串、指针、结构体、联合体等;3.算法:排序、查找、递归等常用算法;4.文件操作:文件的打开、关闭、读写等基本操作;5.编程实践:编写简单的程序,锻炼编程能力和解决问题的能力。
三、教学方法为了达到课程目标,本课程将采用多种教学方法,包括:1.讲授法:通过讲解和演示,使学生掌握C语言的基本语法和数据结构;2.讨论法:学生进行小组讨论,培养学生的团队合作能力和解决问题的能力;3.案例分析法:分析典型的编程案例,使学生了解C语言在实际应用中的重要性;4.实验法:让学生动手编写程序,培养学生的编程能力和实践能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料;2.参考书:提供相关的参考书籍,丰富学生的知识体系;3.多媒体资料:制作课件、教学视频等,增强课堂教学的趣味性和生动性;4.实验设备:提供计算机实验室,让学生进行编程实践和实验操作。
c课程设计源代码
c 课程设计源代码一、课程目标知识目标:1. 学生能理解并掌握课程内容相关的核心概念,如基本算法原理和编程逻辑。
2. 学生能够掌握并运用C语言的基本语法结构,如变量定义、数据类型、运算符、控制结构等。
3. 学生能够运用所学知识,独立编写并调试简单的C语言程序。
技能目标:1. 学生能够通过本课程的学习,培养逻辑思维能力和问题解决能力。
2. 学生能够运用C语言进行基本的程序设计,具备初步的编程能力。
3. 学生能够通过团队合作,共同完成复杂的编程任务,提高沟通与协作能力。
情感态度价值观目标:1. 学生对编程产生兴趣,培养对计算机科学的热爱和好奇心。
2. 学生在编程过程中,养成严谨、细心的学习态度,培养面对困难的勇气和毅力。
3. 学生通过编程解决问题,体会科技对社会发展的贡献,树立正确的价值观。
课程性质:本课程为信息技术学科,以实践操作为主,注重培养学生的动手能力和实际应用能力。
学生特点:六年级学生具有一定的逻辑思维能力,对新事物充满好奇心,但注意力容易分散,需要通过生动有趣的教学方法激发学习兴趣。
教学要求:结合学生特点,教师应采用任务驱动、案例教学等方法,引导学生主动探索、实践,确保课程目标的实现。
在教学过程中,注重个体差异,关注学生的学习进展,及时调整教学策略,确保每个学生都能达到预期的学习成果。
通过本课程的学习,使学生能够将理论知识与实际应用相结合,为后续学习打下坚实基础。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. C语言基础知识:变量、数据类型、常量和变量、运算符、表达式等。
- 教材章节:第一章《C语言概述》2. C语言控制结构:顺序结构、分支结构(if-else)、循环结构(for、while)等。
- 教材章节:第二章《C语言基本控制结构》3. 函数:函数的定义、调用、参数传递、返回值等。
- 教材章节:第三章《函数》4. 数组:一维数组、二维数组、数组的初始化、数组的应用等。
- 教材章节:第四章《数组》5. 指针:指针的定义、指针与数组、指针与函数等。
C程序设计 课程设计源代码
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#define SIZE1 7long a;//学生学号int m,n,all;//统计所用的全局变量char s[30];//学生姓名FILE *C;//课程信息文件指针FILE *S;//学生信息文件指针struct course//课程信息结构体{int num;//课程编号char name[30];//课程名称int score;//课程学分char nianji[30];//面向的年级char zhuanye[30];//面向的专业int yixuan;//已选的人数int shangxian;//选课的人数上限}course[SIZE1],*P;struct student//学生信息结构体{int number;//学生学号char name[30];//学生姓名char banji[30];//学生班级}student[100],*Q;void zhucaidan()//主菜单{printf("\n");printf("************************************************************************* *******");printf("\n\t\t\t欢迎使用学生选课系统\n");printf("1.录入课程信息\n");printf("2.录入学生信息\n");printf("3.学生选课\n");printf("4.退出系统\n");printf("************************************************************************* *******");printf("\n请输入你要选择的菜单项:");}void filecourse()//从文件录入课程信息{int i;FILE *W;P=course;printf("课程编号课程名称\t课程学分年级\t 专业已选人数上限\n");W=fopen("课程信息文件","rb");for (i=0;i<SIZE1;i++){fread(&course[i],sizeof(struct course),1,W);printf("%d\t%8s\t %d \t%8s\t%8s\t%d \t%d\n",P[i].num,P[i].name,P[i].score,P[i].nianji,P[i].zhuanye,P[i].yixuan,P[i].shangxian);}fclose(W);}void keycourse()//从键盘录入课程信息{int k;P=course;printf("输入#结束录入\n");if ((C=fopen("课程信息文件","wb+"))==NULL){printf("不能打开文件");exit(1);}printf("课程名称课程编号\t课程学分\t面向的年级\t面向的专业\t人数上限\n");for (k=0;k<SIZE1;k++){scanf("%s",&P[k].name);if(strcmp(P[k].name,"#")==0) break;scanf("%d%d%s%s%d",&P[k].num,&P[k].score,&P[k].nianji,&P[k].zhuanye,&P[k].shangxian);if (fwrite(&course[k],sizeof(struct course),1,C)!=1)printf("文件写入错误");}fclose(C);}void keystudent()//从键盘录入学生信息{int i;Q=student;printf("输入#结束录入\n");if ((S=fopen("学生课息文件","wb+"))==NULL){printf("不能打开文件");exit(1);}printf("学生姓名\t学生学号\t学生班级\n");for (i=0;i<10;i++,all=i){scanf("%s",&Q[i].name);if(strcmp(Q[i].name,"#")==0) break;scanf("%d%s",&Q[i].number,&Q[i].banji);if (fwrite(&student[i],sizeof(struct student),1,S)!=1)printf("文件写入错误");}fclose(S);}void filestudent()//从文件录入学生信息{int i;printf("学生学号学生姓名学生班级\n");for (i=0;i<all;i++){fread(&student[i],sizeof(struct student),1,S);printf("%d\t\t%8s\t%8s\n",Q[i].number,Q[i].name,Q[i].banji);}fclose(S);}void zstudent()//录入学生信息子程序{int i;system("cls");printf("\t\t\t录入学生信息\n");printf("1.从键盘录入\n");printf("2.从文件录入\n");printf("3.返回主菜单\n");printf("请输入你要选择的选项:");scanf("%d",&i);switch (i){case(1):keystudent();break;case(2):filestudent();break;case(3):zhucaidan();break;}}void zcourse()//选课函数目录{int j;system("cls");printf("\t\t\t录入课程信息\n");printf("1.从键盘录入\n");printf("2.从文件录入\n");printf("3.返回主菜单\n");printf("\n请输入你要选择的菜单项:");scanf("%d",&j);switch (j){case(1):keycourse();break;case(2):filecourse();break;case(3):system("cls");break;}}void xuanke()//选择课程函数{FILE *Y;Y=fopen("选课.txt","w+");if(Y==NULL){printf("不能打开文件!\n");exit(1);}fanhui:printf("请输入你要选择的第一门课程编号:");scanf("%d",&m);fprintf(Y,"%d",m);if(m<1||m>7){printf("警示:不存在此课程,请重新输入\n");goto fanhui;}switch(m){case(1):printf("你选择了1.< dianlu >\n");break;case(2):printf("你选择了2.< Cyuyan >\n");break;case(3):printf("你选择了3.< xiandai >\n");break;case(4):printf("你选择了4.< daxuewuli >\n");break;case(5):printf("你选择了5.< dianji >\n");break;case(6):printf("你选择了6.< heike >\n");break;case(7):printf("你选择了7.< wanye >\n");break;}printf("请输入你要选择的第二门课程编号:");scanf("%d",&n);fprintf(Y,"%d",n);if(n<1||n>7){printf("警示:不存在此课程,请重新输入\n");goto fanhui;}switch(n){case(1):printf("你选择了1.< dianlu >\n");break;case(2):printf("你选择了2.< Cyuyan >\n");break;case(3):printf("你选择了3.< xiandai >\n");break;case(4):printf("你选择了4.< daxuewuli >\n");break;case(5):printf("你选择了5.< dianji >\n");break;case(6):printf("你选择了6.< heike >\n");break;case(7):printf("你选择了7.< wangye >\n");break;}fclose(Y);}void courselist()//课程列表{int i;printf("编号课程名称\t 课程学分\t 已选人数\t 人数上限\n");for (i=0;i<7;i++)printf("%d\t%8s\t\t%d\t%8d\t\t%d\n",course[i].num,course[i].name,course[i].score,course[i].yixua n,course[i].shangxian);xuanke();}void k2course()//课程列表2{int i;FILE *W;printf("\n你最多只能选择以下课程中的两门课程\n\n");P=course;printf("课程编号课程名称\t课程学分年级\t 专业已选人数上限\n");W=fopen("课程信息文件","rb");for (i=0;i<SIZE1;i++){fread(&course[i],sizeof(struct course),1,W);printf("%d\t%8s\t %d \t%8s\t%8s\t%d \t%d\n",P[i].num,P[i].name,P[i].score,P[i].nianji,P[i].zhuanye,P[i].yixuan,P[i].shangxian);}fclose(W);xuanke();}void chakanc()//查看已选课程{switch(m){case(0):break;case(1):printf("你选择了1.< dianlu >");break;case(2):printf("你选择了2.< Cyuyan >");break;case(3):printf("你选择了3.< xiandai >");break;case(4):printf("你选择了4.< daxuewuli >");break;case(5):printf("你选择了5.< dianji >");break;case(6):printf("你选择了6.< heike >");break;case(7):printf("你选择了7.< wangye >");break;}switch(n){case(0):break;case(1):printf("和1.< dianlu >\n");break;case(2):printf("和2.< Cyuyan >\n");break;case(3):printf("和3.< xiandai >\n");break;case(4):printf("和4.< daxuewuli >\n");break;case(5):printf("和5.< dianji >\n");break;case(6):printf("和6.< heike >\n");break;case(7):printf("和7.< wangye >\n");break;}}void delcourse()//删除课程{int i;chakanc();restart:printf("请输入你要删除的课程编号:");scanf("%d",&i);if(i==m)switch(m){case(0):break;case(1):m=0;printf("你删除了1.< dianlu >");break;case(2):m=0;printf("你删除了2.< Cyuyan >");break;case(3):m=0;printf("你删除了3.< xiandai >");break;case(4):m=0;printf("你删除了4.< daxuewuli >");break;case(5):m=0;printf("你删除了5.< dianji >");break;case(6):m=0;printf("你删除了6.< heike >");break;case(7):m=0;printf("你删除了7.< wangye >");break;}else if(i==n)switch(n){case(0):break;case(1):n=0;printf("你删除了1.< dianlu >");break;case(2):n=0;printf("你删除了2.< Cyuyan >");break;case(3):n=0;printf("你删除了3.< xiandai >");break;case(4):n=0;printf("你删除了4.< daxuewuli >");break;case(5):n=0;printf("你删除了5.< dianji >");break;case(6):n=0;printf("你删除了6.< heike >");break;case(7):n=0;printf("你删除了7.< wangye >");break;}else{printf("警示:请输入正确的课程编号\n");goto restart;}}void k1course()//课程列表目录{int i;if (a>0&&a<=10){printf("\t\t\t请选择你要进入的项目\n");printf("1.查看可选课程\n");printf("2.课程选择\n");printf("3.查看已选课程\n");printf("4.删除课程\n");printf("5.返回到主菜单\n");printf("请选择:");scanf("%d",&i);switch (i){case(1):filecourse();break;case(2):k2course();break;case(3):chakanc();break;case(4):delcourse();break;case(5):zhucaidan();break;}}elseprintf("请输入正确的学号");}void zchoose()//输入基本的选课所需要的信息{system("cls");printf("\t\t\t学生选课\n");printf("请输入你的学号:");scanf("%d",&a);printf("请输入你的姓名:");scanf("%s",s);k1course();}void main()//主函数{int i;while (1){zhucaidan();scanf("%d",&i);if (i<0||i>4)printf("警示:请输入正确的菜单选项\n");switch (i){case(1):zcourse();break;case(2):zstudent();break;case(3):zchoose();break;case(4):{printf("\n\t\t\t谢谢使用本选课系统\n");printf("\n\t\t\t\t\t制作人:熊林杨云龙程星吴傲寒\n");exit(1);}}}}。
C语言课程设计实践报告——《学生选课管理系统》[内附程序源代码]
C语言大型作业实践报告计算机1001制作者:李菁华张兆丰秦恒加2011年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。
学生可按要求(如总学分不能少于20学分)选课。
▪课程信息维护,如录入、修改、删除等,课程信息用文件保存。
▪课程信息浏览—输出。
▪学生选课功能。
▪查询功能包括:按学分、课程性质、学生等查询。
▪统计功能。
统计各门课程的选修人数。
▪本系统要有通用性、界面美观、操作方便。
要考虑系统安全。
具体算法流程设计思路(流程图):程序源代码:#include<stdio.h>#include<time.h>#include<string.h>#include<conio.h>main(){intx,xi,choice2,choice3,choice4,choice8,q=0,filein=0,limit=0,i,num,tonum,tcnum,ecnum ,score,term,student,A,io=0,screen=0;/*-----变量定义区-----,x为现有选修课数量,目前不能超过10,后续与主程序合并时移动到定义区,xi为选修课信息录入循环变量*/char choice1,choice5,choice6,choice7,name[10],kind[10];int carenum[10]={0,0,0,0,0,0,0,0,0,0}; /*用于统计每门课程选修人数*/int o,change=0,delatenum,e,u,stui=0,stuc=0;struct elective /*选修课程信息结构体*/{int electivenum; /*选修课编号*/char electivename[10]; /*选修课课名*/char electivekind[10]; /*选修课性质,暂定考试考查之分*/int totalclassnum; /*总课时*/int techclassnum; /*授课课时*/int expclassnum; /*实验课时*/int credits; /*学分*/int classterm; /*开课学期*/int students; /*此门课选修人数*/};struct muticlass /*学生选择的课程信息结构体*/{int stuchoice;int stuclassnum;char stuclassname;};struct student /*学生信息结构体*/{char stuname[10];long stunum;int stucredits;struct muticlass mutichoice[20]; /*暂定每名学生最多选20门课*/ /*本结构体为嵌套结构体,完善功能时请注意嵌套结构*/};struct student studentcare[100]; /*暂定最多可以有100名学生选课*/struct elective electivedata[10]; /*最多10门选修课*/FILE *electivefp; /*选修课程信息文件指针*/FILE *stufp; /*学生信息文件指针*/FILE *outfp; /*课程信息输出文件指针*/FILE *find;long now,midkey; /*now为密码算法中间变量,midkey为密码算法最终结果*/int chancenum=0,m; /*chancenum为输入密码错我次数计数变量,m为主目录选择判断变量*/unsigned long password,password2;struct tm *timenow; /*timenow为标准系统时间提取指针*/textcolor(WHITE);system("cls");gotoxy(20,12);cprintf("Welcome to the Elective management system"); /*一级主菜单*/gotoxy(1,24);system("pause");t2:system("cls");gotoxy(24,11);cprintf("1.Students elective course system");gotoxy(24,12);cprintf("2.Elective information output");gotoxy(24,13);cprintf("3.Elective course information searching");gotoxy(24,14);cprintf("4.I'm the administrator!");gotoxy(24,15);cprintf("5.Exit the system");gotoxy(24,16);scanf("%d",&choice8);switch(choice8){case 1: limit=0;goto students1;case 2: goto x11;case 3: goto x12;case 4: goto x7;case 5: goto x3;default: system("cls");gotoxy(20,12);cprintf("wrongchoice");gotoxy(1,24);system("pause");goto t2;}x7:textcolor(YELLOW); /*-----密码判断模块-----*/time(&now);midkey=now;midkey=midkey/100;password=midkey;return2:system("cls");gotoxy(22,15);cprintf("Enter 1 to refresh the password.");gotoxy(25,12);cprintf("Please enter your password\n");gotoxy(25,13);scanf("%ld",&password2); /*password2为用户输入的密码变量*/ if(chancenum<4) /*用户输入密码错误次数判断*/{if(password2==password){limit=1;goto x4;}else{if(password2==1){goto x7;}else{system("cls");gotoxy(22,12);textcolor(RED);cprintf("password error");gotoxy(18,13);cprintf("please enter the right password");gotoxy(20,14);cprintf("You have only %d chances",3-chancenum);gotoxy(1,24);system("pause");if(chancenum==3) /*连续4次输入错误密码判断*/{goto x6;}chancenum=chancenum+1;goto return2;}}}x6:system("cls");gotoxy(20,12);cprintf(" Sorry,you have null chance.");gotoxy(1,24);goto x5; /*-----密码判断模块结束-----*/x4:switch(limit){case 0: textcolor(YELLOW);goto students1;case 1: textcolor(GREEN);goto t3;default: textcolor(RED);system("cls");gotoxy(20,12);cprintf("None Limited");gotoxy(1,24);system("pause");textcolor(WHITE);goto t2;}t3:textcolor(GREEN); /*-----主程序开始-----*/system("cls");gotoxy(20,12);cprintf("Welcome to the Elective management system"); /*一级主菜单*/gotoxy(1,24);system("pause");return1:system("cls");gotoxy(24,3);cprintf("Elective management system"); /*选修课管理系统*/gotoxy(24,11);cprintf("1.Students elective course system."); /*学生选课系统*/gotoxy(24,12);cprintf("2.Elective course maintenance system."); /*课程信息维护系统*/gotoxy(24,13);cprintf("3.Exit the system."); /*退出系统*/gotoxy(24,14);scanf("%d",&o);switch(o){case 1: goto students1;case 2: goto electivemans1;case 3: goto x3;default: system("cls");gotoxy(12,12);cprintf("error choice,please make your choice again\n");gotoxy(1,24);system("pause");goto return1;}electivemans1:system("cls");change=0;gotoxy(24,3);cprintf("Elective management system"); /*二级主菜单*/gotoxy(24,11);cprintf("1.New elective database"); /*新建选修课程信息*/gotoxy(24,12);cprintf("2.Maintain elective database"); /*修改选修课程信息*/gotoxy(24,13);cprintf("3.Show the number of statistical electives"); /*统计每门课程选修人数*/gotoxy(24,14);cprintf("4.Elective information output"); /*课程信息输出*/gotoxy(24,15);cprintf("5.Return to the main menu"); /*返回主菜单*/gotoxy(24,16);scanf("%d",&m);switch(m) /*主目录跳转判断*/{case 1: goto x1;case 2: goto x2;case 3: goto x8;case 4: goto x11;case 5: goto return1;default: system("cls");gotoxy(12,12);cprintf("error choice,please make your choice again\n");gotoxy(1,24);system("pause");goto electivemans1;}x3:system("cls");gotoxy(25,12);cprintf("Thanks for using thissystem");gotoxy(1,24);goto x5;x1:electivefp=fopen("elective.dat","w+"); /*-----选修课程信息新建模块-----*/ if((electivefp=fopen("elective.dat","w+"))==NULL){gotoxy(12,12);cprintf("connot open this file");gotoxy(11,13);cprintf("Please debug this program");gotoxy(12,17);system("pause");goto z1;}system("cls");gotoxy(12,12);cprintf("Please according to clew input elective course information");gotoxy(1,24);system("pause");a1:system("cls");gotoxy(12,12);cprintf("Please input the elective quantity,Up to 10."); /*输入此次录入选修课程门数*/gotoxy(14,13);scanf("%d",&x); /*输入选修课总课程数*/if(x>10) /*总课程数小于10判断*/{system("cls");gotoxy(12,12);cprintf("Up to 10");gotoxy(1,24);system("pause");goto a1;}for(xi=0;xi<x;xi++) /*课程信息录入*/{r1:system("cls"); /*课程信息开始录入*/gotoxy(12,11);cprintf("Please enter the No.%d elective course numbers",xi+1);gotoxy(12,12);scanf("%d",&electivedata[xi].electivenum);if(q==1){goto z4;}r2:system("cls");gotoxy(12,11);cprintf("Please input the name of the No.%d elective course class",xi+1);gotoxy(12,12);scanf("%s",&electivedata[xi].electivename);if(q==1){goto z4;}r3:system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective properties,\"exam\" or \"examines\"",xi+1);gotoxy(12,12);scanf("%s",&electivedata[xi].electivekind);if(q==1){goto z4;}r4:system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective total class number",xi+1);gotoxy(12,12);scanf("%d",&electivedata[xi].totalclassnum);if(q==1){goto z4;}r5:system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective lecture class number",xi+1);gotoxy(12,12);scanf("%d",&electivedata[xi].techclassnum);if(q==1){goto z4;}r6:system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective the experiment class number",xi+1);gotoxy(12,12);scanf("%d",&electivedata[xi].expclassnum);if(q==1){goto z4;}r7:system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective credits",xi+1);gotoxy(12,12);scanf("%d",&electivedata[xi].credits);if(q==1){goto z4;}r8:system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective course semesters",xi+1);gotoxy(12,12);scanf("%d",&electivedata[xi].classterm);if(q==1){goto z4;}if(xi<(x-1)){system("cls");gotoxy(12,12);cprintf("This elective information recorded success, please enter the next");gotoxy(1,24);system("pause");}} /*课程信息录入结束*/z4:system("cls"); /*课程信息输入正确性判断*/gotoxy(12,12);cprintf("If information recorded correctly?");gotoxy(14,13);cprintf("Enter \"y\" for Yes,\"n\" for No");gotoxy(14,14);scanf("%c",&choice1);switch(choice1){case 121: goto z2;case 110: goto z3;default: system("cls");gotoxy(12,12);cprintf("Wrong choicePlease make it again.");gotoxy(1,24);system("pause");goto z4;}z3:{ /*错误信息定位*/system("cls");gotoxy(8,5);cprintf("What message entry errors?");gotoxy(12,6);cprintf("1.elective course numbers");gotoxy(12,7);cprintf(" of elective course class");gotoxy(12,8);cprintf("3.elective properties");gotoxy(12,9);cprintf("4.elective total class number");gotoxy(12,10);cprintf("5.elective lecture class number");gotoxy(12,11);cprintf("6.elective experiment class number");gotoxy(12,12);cprintf("7.elective credits");gotoxy(12,13);cprintf("8.elective course semesters");gotoxy(12,14);cprintf("9.Add a elective course lesson.");gotoxy(12,15);cprintf("10.Delate a elective course lesson.");gotoxy(12,16);scanf("%d",&choice2); /*错误项目定位*/system("cls");if(choice2==9){goto r9;}elseif(choice2==10){goto r10;}else{goto z6;}z6:system("cls");gotoxy(12,12);cprintf("Which group of curriculum information need to modify?"); gotoxy(12,13);scanf("%d",&choice3); /*错误组别定位*/if(choice3<x+1&&choice3>0){goto z7;}else{system("cls");gotoxy(12,12);cprintf("Wrong group,please enter again");gotoxy(1,24);system("pause");goto z6;}z7:xi=choice3-1;switch(choice2) /*错误信息修改*/{case 1: q=1;goto r1;case 2: q=1;goto r2;case 3: q=1;goto r3;case 4: q=1;goto r4;case 5: q=1;goto r5;case 6: q=1;goto r6;case 7: q=1;goto r7;case 8: q=1;goto r8;case 9: q=1;goto r9;case 10: q=1;goto r10;default: system("cls");gotoxy(12,12);cprintf("Wrong choice.Please make it again.");gotoxy(1,24);system("pause");goto z3;}}z2:if(change==0){goto write1;}else{remove("elective.dat");electivefp=fopen("elective.dat","w+");goto write1;}write1:fprintf(electivefp,"%d \n",x);for(xi=0;xi<x;xi++) /*将完善的课程信息以文件的形式保存在磁盘上*/{electivedata[xi].students=0;fprintf(electivefp,"%d %s %s %d %d %d %d %d %d\n",electivedata[xi].electivenu m,electivedata[xi].electivename,electivedata[xi].electivekind,electivedata[xi].totalcla ssnum,electivedata[xi].techclassnum,electivedata[xi].expclassnum,electivedata[xi].cr edits,electivedata[xi].classterm,electivedata[xi].students);}filein=1;z1:{system("cls");gotoxy(12,12);cprintf("Elective course information input success!");gotoxy(1,24);system("pause");}goto return1; /*返回主菜单*/x2:change=1;if(filein==1){goto z3;}electivefp=fopen("elective.dat","r+");fscanf(electivefp,"%d \n",&x);for(xi=0;xi<x;xi++){fscanf(electivefp,"%d %s %s %d %d %d %d %d %d\n",&electivedata[xi].electiven um,&electivedata[xi].electivename,&electivedata[xi].electivekind,&electivedata[xi].t otalclassnum,&electivedata[xi].techclassnum,&electivedata[xi].expclassnum,&electiv edata[xi].credits,&electivedata[xi].classterm,&electivedata[xi].students);}goto z3;r9:x=x+1;system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective course numbers",x);gotoxy(12,12);scanf("%d",&electivedata[x-1].electivenum);system("cls");gotoxy(12,11);cprintf("Please input the name of the No.%d elective course class",x);gotoxy(12,12);scanf("%s",&electivedata[x-1].electivename);system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective properties,\"exam\" or \"examines\"",x);gotoxy(12,12);scanf("%s",&electivedata[x-1].electivekind);system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective total class number",x);gotoxy(12,12);scanf("%d",&electivedata[x-1].totalclassnum);system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective lecture class number",x);gotoxy(12,12);scanf("%d",&electivedata[x-1].techclassnum);system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective the experiment class number",x); gotoxy(12,12);scanf("%d",&electivedata[x-1].expclassnum);system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective credits",x);gotoxy(12,12);scanf("%d",&electivedata[x-1].credits);system("cls");gotoxy(12,11);cprintf("Please enter the No.%d elective course semesters",x);gotoxy(12,12);scanf("%d",&electivedata[x-1].classterm);goto z4;r10:system("cls");gotoxy(12,12);cprintf("Which group of elective do you want to delate?");gotoxy(12,13);scanf("%d",&delatenum);if(delatenum>0||delatenum<x){for(e=0;e<x-delatenum;e++){electivedata[delatenum+e-1]=electivedata[delatenum+e];}x=x-1;remove("elective.dat");electivefp=fopen("elective.dat","w+");}else{system("cls");gotoxy(12,12);cprintf("we do not have that group of elective information");gotoxy(1,24);system("pause");goto r10;}goto z4;students1:{electivefp=fopen("elective.dat","r+");fscanf(electivefp,"%d \n",&x);for(xi=0;xi<x;xi++){fscanf(electivefp,"%d %s %s %d %d %d %d %d %d\n",&electivedata[xi].electivenum, &electivedata[xi].electivename,&electivedata[xi].electivekind,&electivedata[xi].total classnum,&electivedata[xi].techclassnum,&electivedata[xi].expclassnum,&electiveda ta[xi].credits,&electivedata[xi].classterm,&electivedata[xi].students);}stufp=fopen("stu.dat","r+");return4:system("cls");gotoxy(12,12);cprintf("Please enter your name");gotoxy(12,13);scanf("%s",&studentcare[stui].stuname);system("cls");gotoxy(12,12);cprintf("Please enter your student ID");gotoxy(12,13);scanf("%ld",&studentcare[stui].stunum);care2:system("cls");gotoxy(3,2);cprintf("Existing elective");for(u=0;u<x;u++){gotoxy(5,u+3);cprintf("%d.num:%dname:%s\n",u+1,electivedata[u].electivenum,electivedata[u].electivename);}gotoxy(5,x+4);cprintf("Which are you interested?");gotoxy(5,x+5);scanf("%d",&choice4);return3:system("cls");gotoxy(3,2);cprintf("Elective information");gotoxy(4,4);cprintf("Num:%d",electivedata[choice4-1].electivenum);gotoxy(4,5);cprintf("Name:%s",electivedata[choice4-1].electivename);gotoxy(4,6);cprintf("Kind:%s",electivedata[choice4-1].electivekind);gotoxy(4,7);cprintf("Total class:%d",electivedata[choice4-1].totalclassnum);gotoxy(4,8);cprintf("Tech class:%d",electivedata[choice4-1].techclassnum);gotoxy(4,9);cprintf("Exp class:%d",electivedata[choice4-1].expclassnum);gotoxy(4,10);cprintf("Credits:%d",electivedata[choice4-1].credits);gotoxy(4,11);cprintf("Class term:%d",electivedata[choice4-1].classterm);gotoxy(4,14);cprintf("Sure to choose this course? enter \"y\" for yes,\"n\" for no");gotoxy(4,15);scanf("%c",&choice5);switch(choice5){case 121: goto care1;case 110: goto care2;default: system("cls");gotoxy(12,12);cprintf("wrong choice");goto return3;}care1:if(stuc>0){for(xi=0;xi<stuc+1;xi++){if(choice4==studentcare[stui].mutichoice[xi].stuclassnum){system("cls");gotoxy(12,12);cprintf("Connot repeat courses");gotoxy(1,24);system("pause");goto care2;}}}carenum[choice4-1]++;electivedata[choice4-1].students=carenum[choice4-1];studentcare[stui].mutichoice[stuc].stuchoice=choice4;studentcare[stui].stucredits=studentcare[stui].stucredits+electivedata[choice4-1 ].credits;studentcare[stui].mutichoice[stuc].stuclassnum=electivedata[choice4-1].elective num;studentcare[stui].mutichoice[stuc].stuclassname=electivedata[choice4-1].electiv ename;x10:system("cls");gotoxy(12,12);cprintf("Course whether end? enter \"y\" for yes,\"n\" for no");gotoxy(12,13);scanf("%c",&choice6);switch(choice6){case 121: goto x9;case 110: stuc++;goto care2;default: system("cls");gotoxy(12,12);cprintf("wrongchoice");gotoxy(1,24);system("pause");goto x10;}x9:if(studentcare[stui].stucredits<20){system("cls");gotoxy(12,12);cprintf("Attention!Total credits less than 20!");gotoxy(1,24);system("pause");goto x10;}else{remove("stu.dat");stufp=fopen("stu.dat","a+");fprintf(stufp,"%d \n",stui);system("cls");gotoxy(12,12);cprintf("Elective success!");gotoxy(1,24);system("pause");return6:system("cls");gotoxy(12,12);cprintf("If others need courses? enter \"y\" for yes,\"n\" for no");gotoxy(12,13);scanf("%c",&choice7);switch(choice7){case 121: stui++;goto return4;case 110: goto return5;default: system("cls");gotoxy(12,12);cprintf("wrong choice");gotoxy(1,24);system("pause");goto return6;}return5: for(u=0;u<stui+1;u++){fprintf(stufp,"%s %ld %d\n",studentcare[u].stuname,studentcare[u].stunum,studentcare[u].stucredits);for(xi=0;xi<stuc+1;xi++){fprintf(stufp,"%d %d %s\n",studentcare[u].mutichoice[xi].stuchoice,studentcare[u].mutichoice[xi].stuclassnu m,studentcare[u].mutichoice[xi].stuclassname);}}remove("elective.dat");electivefp=fopen("elective.dat","w+");fprintf(electivefp,"%d \n",x);for(xi=0;xi<x;xi++) /*将完善的课程信息以文件的形式保存在磁盘上*/{fprintf(electivefp,"%d %s %s %d %d %d %d %d %d\n",electivedata[xi].electivenum,el ectivedata[xi].electivename,electivedata[xi].electivekind,electivedata[xi].totalclassnu m,electivedata[xi].techclassnum,electivedata[xi].expclassnum,electivedata[xi].credits ,electivedata[xi].classterm,electivedata[xi].students);}switch(limit){case 1: goto return1;case 0: goto t2;default: goto t2;}}}x8:electivefp=fopen("elective.dat","r+");fscanf(electivefp,"%d \n",&x);for(xi=0;xi<x;xi++){fscanf(electivefp,"%d %s %s %d %d %d %d %d %d\n",&electivedata[xi].electivenum, &electivedata[xi].electivename,&electivedata[xi].electivekind,&electivedata[xi].total classnum,&electivedata[xi].techclassnum,&electivedata[xi].expclassnum,&electiveda ta[xi].credits,&electivedata[xi].classterm,&electivedata[xi].students);}system("cls");gotoxy(3,4);cprintf("Elective toll");for(u=0;u<x;u++){gotoxy(3,u+6);cprintf("%s : %d",electivedata[u].electivename,electivedata[u].students);}gotoxy(1,18);system("pause");goto electivemans1;x11:system("cls"); /*-----查找模块-----*/electivefp=fopen("elective.dat","r+");fscanf(electivefp,"%d \n",&x);for(xi=0;xi<x;xi++){fscanf(electivefp,"%d %s %s %d %d %d %d %d %d\n",&electivedata[xi].electivenum, &electivedata[xi].electivename,&electivedata[xi].electivekind,&electivedata[xi].total classnum,&electivedata[xi].techclassnum,&electivedata[xi].expclassnum,&electiveda ta[xi].credits,&electivedata[xi].classterm,&electivedata[xi].students);}outfp=fopen("electiveinformation.doc","w+");fprintf(outfp,"选修课程信息\n\n\n\n");for(xi=0;xi<x;xi++){fprintf(outfp,"课程编号:%d \n课程名:%s \n课程种类:%s \n总课时:%d \n教学课时:%d \n实验课时:%d \n学分:%d \n开课学期:%d \n已选人数:%d\n\n\n",electivedata[xi].electivenum,electivedata[xi].electivename,electivedat a[xi].electivekind,electivedata[xi].totalclassnum,electivedata[xi].techclassnum,electiv edata[xi].expclassnum,electivedata[xi].credits,electivedata[xi].classterm,electivedata [xi].students);}switch(limit){case 1: goto electivemans1;case 0: goto t2;default: goto t2;}x12:{find=fopen("elective.dat","r+");fscanf(find,"%d \n",&x);for(i=0;i<x;i++){fscanf(find,"%d %s %s %d %d %d %d %d %d\n",&electivedata[i].electivenum,&el ectivedata[i].electivename,&electivedata[i].electivekind,&electivedata[i].totalclassnu m,&electivedata[i].techclassnum,&electivedata[i].expclassnum,&electivedata[i].credi ts,&electivedata[i].classterm,&electivedata[i].students);}xx:io=0;system("cls");gotoxy(7,3);printf("a:search by electivenum;\n b:search by electivename;\nc:search by electivekind;\n d:search by totalclassnum;\n e:search by techclassnum;\n f:search by expclassnum;\n g:search by credits;\n h:search by classterm;\n i:search by students\n");gotoxy(7,12);cprintf("j:Return to the main menu");gotoxy(7,13);scanf("%c",&A);switch(A){case 97: goto a;case 98: goto b;case 99: goto c;case 100: goto d;case 101: goto e;case 102: goto f;case 103: goto g;case 104: goto h;case 105: goto i;case 106: goto t2;default: system("cls");gotoxy(24,12);cprintf("wrongchoice\n");system("pause");goto xx;}a:screen=0;{system("cls");gotoxy(24,12);cprintf("Please write down the electivenum\n");gotoxy(24,13);scanf("%d",&num);system("cls");for(i=0; i<x; i++){if(electivedata[i].electivenum==num){if(screen>0){system("pause");system("cls");}cprintf("Here is the information you want:\n");cprintf("num:%d\n",electivedata[i].electivenum);cprintf("name:%s\n",electivedata[i].electivename);cprintf("kind:%s\n",electivedata[i].electivekind);cprintf("class:%d\n",electivedata[i].totalclassnum);cprintf("techclass:%d\n",electivedata[i].techclassnum);cprintf("expclass:%d\n",electivedata[i].expclassnum);cprintf("credits:%d\n",electivedata[i].credits);cprintf("term:%d\n",electivedata[i].classterm);cprintf("students:%d\n",electivedata[i].students);io=1;screen=screen+1;} }if(io==0){system("cls");cprintf("wrong number");gotoxy(1,24);system("pause");goto xx;}system("pause");goto xx;}b:screen=0;{system("cls");gotoxy(24,12);cprintf("Please write down the electivename\n");gotoxy(24,13); scanf("%s",&name);system("cls");for(i=0; i<x; i++){if(strcmp(electivedata[i].electivename,name)==0){if(screen>0){system("pause");system("cls");}cprintf("Here is the information you want:\n");cprintf("num:%d\n",electivedata[i].electivenum);cprintf("name:%s\n",electivedata[i].electivename);cprintf("kind:%s\n",electivedata[i].electivekind);cprintf("class:%d\n",electivedata[i].totalclassnum);cprintf("techclass:%d\n",electivedata[i].techclassnum);cprintf("expclass:%d\n",electivedata[i].expclassnum);cprintf("credits:%d\n",electivedata[i].credits);cprintf("term:%d\n",electivedata[i].classterm);cprintf("students:%d\n",electivedata[i].students);io=1;screen=screen+1;}}if(io==0){system("cls");cprintf("wrong number");gotoxy(1,24);system("pause");goto xx;}system("pause");goto xx;}c:screen=0;{system("cls");gotoxy(24,12);cprintf("Please write down the electivenkind\n");gotoxy(24,13); scanf("%s",&kind);system("cls");for(i=0; i<x; i++){if(strcmp(electivedata[i].electivekind,kind)==0){if(screen>0){system("pause");system("cls");}cprintf("Here is the information you want:\n");cprintf("num:%d\n",electivedata[i].electivenum);cprintf("name:%s\n",electivedata[i].electivename);cprintf("kind:%s\n",electivedata[i].electivekind);cprintf("class:%d\n",electivedata[i].totalclassnum);cprintf("techclass:%d\n",electivedata[i].techclassnum);cprintf("expclass:%d\n",electivedata[i].expclassnum);cprintf("credits:%d\n",electivedata[i].credits);cprintf("term:%d\n",electivedata[i].classterm);cprintf("students:%d\n",electivedata[i].students);io=1; screen=screen+1;} }if(io==0){system("cls");cprintf("wrong number");gotoxy(1,24);system("pause");goto xx;}system("pause");goto xx;}d:screen=0;{system("cls");gotoxy(24,12);cprintf("Please write down the totalclassnum\n");gotoxy(24,13); scanf("%d",&tonum);system("cls");for(i=0; i<x; i++){if(electivedata[i].totalclassnum==tonum){if(screen>0){system("pause");system("cls");}cprintf("Here is the information you want:\n");cprintf("num:%d\n",electivedata[i].electivenum);cprintf("name:%s\n",electivedata[i].electivename);cprintf("kind:%s\n",electivedata[i].electivekind);cprintf("class:%d\n",electivedata[i].totalclassnum);cprintf("techclass:%d\n",electivedata[i].techclassnum);cprintf("expclass:%d\n",electivedata[i].expclassnum);cprintf("credits:%d\n",electivedata[i].credits);cprintf("term:%d\n",electivedata[i].classterm);cprintf("students:%d\n",electivedata[i].students);io=1;screen=screen+1;} }if(io==0){system("cls");cprintf("wrong number");gotoxy(1,24);system("pause");goto xx;}system("pause");goto xx;}e:screen=0;{system("cls");gotoxy(24,12);cprintf("Please write down the techclassnum\n");gotoxy(24,13); scanf("%d",&tcnum);system("cls");for(i=0; i<x; i++){if(electivedata[i].techclassnum==tcnum){if(screen>0){system("pause");system("cls");}cprintf("Here is the information you want:\n");cprintf("num:%d\n",electivedata[i].electivenum);。
课程设计c语言代码
课程设计c语言代码一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,培养学生编写简单程序的能力,使学生了解计算机编程的基本思想和方法,培养学生解决实际问题的能力。
具体来说,知识目标包括:掌握C语言的基本语法、数据结构、运算符、控制结构、函数等;技能目标包括:能够使用C语言编写简单的程序,解决实际问题;情感态度价值观目标包括:培养学生对计算机编程的兴趣和热情,培养学生独立思考、解决问题的能力。
二、教学内容教学内容主要包括C语言的基本语法、数据结构、算法和编程方法。
具体安排如下:1.C语言的基本语法:包括变量、数据类型、运算符、控制结构等,这部分内容主要通过讲解和编程实践来让学生掌握。
2.数据结构:包括数组、链表、栈、队列等,这部分内容主要通过讲解和编程实践来让学生掌握。
3.算法:包括排序算法、查找算法等,这部分内容主要通过讲解和编程实践来让学生掌握。
4.编程方法:包括结构化编程、面向对象编程等,这部分内容主要通过讲解和编程实践来让学生掌握。
三、教学方法本课程采用讲授法、讨论法、案例分析法、实验法等多种教学方法。
通过讲授法,向学生传授C语言的基本语法、数据结构、算法和编程方法;通过讨论法,让学生在课堂上积极参与,提出问题、解决问题;通过案例分析法,让学生通过分析实际案例,掌握C语言编程的方法和技巧;通过实验法,让学生亲自动手编写程序,提高编程能力。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。
教材选用《C程序设计语言》作为主教材,参考书选用《C语言程序设计》等。
多媒体资料包括PPT、视频等,用于辅助讲解和演示。
实验设备包括计算机、网络等,用于学生编程实践和实验。
五、教学评估教学评估主要通过以下方式进行:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的30%。
2.作业:包括课后练习、编程作业等,占总评的30%。
3.考试:包括期中考试和期末考试,占总评的40%。
c语言课程设计源码
c语言课程设计源码一、教学目标本课程旨在通过C语言的学习,让学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生编程思维和解决问题的能力。
1.理解C语言的基本语法和规则;2.掌握基本数据类型、运算符和表达式;3.学会使用控制结构进行程序流程控制;4.理解函数的定义和调用;5.熟悉数组、指针和字符串的使用。
6.能够使用C语言编写简单的程序;7.能够阅读和理解C语言代码;8.能够运用C语言解决实际问题;9.能够进行程序的调试和优化。
情感态度价值观目标:1.培养学生的编程兴趣,激发学生学习编程的热情;2.培养学生解决问题的能力和创新精神;3.培养学生团队协作和沟通的能力;4.培养学生良好的编程习惯和道德规范。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
1.C语言的基本语法和规则;2.基本数据类型、运算符和表达式;3.控制结构:条件语句、循环语句;4.函数的定义和调用;5.数组、指针和字符串的使用。
教学内容将按照教材的章节进行安排和进度,确保学生能够系统地学习和掌握C语言的基本知识。
三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:通过教师的讲解,让学生掌握C语言的基本语法和规则;2.讨论法:通过小组讨论,让学生深入理解C语言的知识点;3.案例分析法:通过分析实际案例,让学生学会运用C语言解决实际问题;4.实验法:通过上机实验,让学生动手编写C语言程序,提高编程能力。
四、教学资源本课程将使用教材《C程序设计语言》作为主要教学资源,同时提供参考书、多媒体资料和实验设备等辅助教学资源。
1.教材:《C程序设计语言》;2.参考书:C语言编程参考手册;3.多媒体资料:C语言教学视频、PPT课件;4.实验设备:计算机、编程软件、实验器材等。
教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验,提高学生的学习效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安郵電學院C语言课程设计报告书系部名称通信工程系学生姓名王子源专业名称通信工程专业班级通工0901班学号03091001指导教师衡霞2010年06月07日至时间2010年06月18日实验题目学生宿舍管理系统一、实验目的通过进行计算机实践,更加系统地理解和掌握C语言的基本概念、语言特点和编程技巧。
利用系统提供的标准函数和自定义函数进行程序设计,培养利用C语言设计综合程序的能力。
二、实验内容在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握各种函数的应用。
三、需求分析本学生信息管理系统包含输入记录,显示记录,按房间号排序并显示,按学号排序并显示,插入一条记录按学号排序并显示,按姓名查找,删除一条记录,查找并显示一个记录,查找并修改一个记录,从文件中读入数据,循环写入数据等功能.需求分析:输入记录(Input)显示记录(Display)按房间号排序并显示(Sort_by_roomnum)按学号排序并显示(Sort_by_num)插入一条记录按学号排序并显示(Insert_a_record)按姓名查找,删除一条记录(Delete_a_record)查找并显示一个记录(Query_a_record)查找并修改一个记录(Change_a_record)从文件中读入数据(AddfromText)循环写入数据(WritetoText)四.概要设计1.系统分析功能模块图:总目录以及下属的各个模块,这样可以使得程序的书写脉络清晰流畅。
程序结构图2、模块功能说明(1)输入记录模块(Input):用于输入学生的各项信息(2)显示记录模块(Display):按照输入的顺序显示出每个学生的各项信息(3)按房间号排序并显示模块(Sort_by_roomnum):按照房间号顺序显示每个学生信息(4)按学号排序并显示模块(Sort_by_num):按照学号顺序显示每个学生信息(5)插入一条记录按学号排序并显示模块(Insert_a_record):插入一条记录并按学号显示出所有记录。
(6)按姓名查找,删除一条记录模块(Delete_a_record):查找一个姓名,并删除该模块(7)查找并显示一个记录模块(Query_a_record):查找一条记录并显示该记录(8)查找并修改一个记录模块(Change_a_record):按姓名查找并修改某个其中一个记录模块(9)从文件中读入数据模块(AddfromText):用fscanf语句从文件读取信息(10)循环写入数据模块(WritetoText):用fprintf语句向已知(未知)文件读取信息,并返回读取信息五.详细设计及运行结果主程序流程图函数调用关系按房间号排序并显示按学号排序并显示插入一条记录并按学号排序按姓名查找删除一条记录查找并显示一个记录查找并修改一个记录从文件中读入数据循环写入数据源代码以及运行结果:程序设计编码见附录详细运行结果1)登陆界面输入密码:错误了,成功输入界面2)进入主菜单3)输入记录后显示记录4)按房间号排序5)学号排序6)插入记录并按学号排序7)删除记录8)查找并显示9)查找并修改记录修改成功文件及内容保存成功!文件读取成功!六、调试情况,设计技巧及体会测试数据原始数据:房间号床位号学号姓名班级性别146 045 03091002 haha 0908 man103 045 03091005 huha 0901 man235 004 03091033 dfgh 0902 woman102 045 03091055 woyu 0901 man165 008 03091065 tata 0904 man105 004 03091068 tagi 0902 woman113 008 03091088 jijk 0904 man458 008 03091089 aabb 0904 man404 004 03098656 shaz 0985 woman按房间号排序后数据:房间号床位号学号姓名班级性别102 045 03091055 woyu 0901 man103 045 03091005 huha 0901 man105 004 03091068 tagi 0902 woman113 008 03091088 jijk 0904 man146 045 03091002 haha 0908 man165 008 03091065 tata 0904 man235 004 03091033 dfgh 0902 woman404 004 03098656 shaz 0985 woman458 008 03091089 aabb 0904 man按学号排序后数据:房间号床位号学号姓名班级性别146 045 03091002 haha 0908 man103 045 03091005 huha 0901 man235 004 03091033 dfgh 0902 woman102 045 03091055 woyu 0901 man165 008 03091065 tata 0904 man105 004 03091068 tagi 0902 woman113 008 03091088 jijk 0904 man458 008 03091089 aabb 0904 man404 004 03098656 shaz 0985 woman个人总结通过这次的C语言程序设计,从总共两个星期的时间,其中选题花了我将近3天的时间,最终还是决定选择学生宿舍管理系统,紧接着就确定了功能模块,总共确立了十个功能模块,相对比较繁琐,但是由于时间还是比较紧的,所以没有能进一步修改。
这次程序设计过程中,我觉得最难的就是每个模块的逻辑分析过程,尤其是函数的返回值问题,例如,在数据添加后,用以下函数int Input(Student room[],int n) /*输入若干条记录*/{int i=0;char sign; /*x[10]为清除多余的数据所用*/while(sign!='n'&&sign!='N') /*判断*/{system("cls");printf("\t\t房间号:"); /*交互输入*/scanf("\t\t%s",&room[n+i].roomnum);printf("\t\t床位号:");scanf("\t\t%s",&room[n+i].bednum);printf("\t\t学号:");scanf("\t\t%s",&room[n+i].num);printf("\t\t班级:");scanf("\t\t%s",&room[n+i].classnum);printf("\t\t姓名:");scanf("\t\t%s",&room[n+i].name);printf("\t\t性别:");scanf("\t\t%s",&room[n+i].sex);printf("\t\t是否继续输入?(Y/N)");scanf("\t\t%c",&sign); /*输入判断*/i++;}return(n+i);}其中返回值是的是i还是i++我花费了很长时间才分析出来,最后还是在纸笔的计算下,完成了这个模块。
其次,在程序模块简化过程中,我也意识到了要熟练掌握C语言各项基本只是才能简化,例如,在排序模块中,一开始我用的是以下代码{strcpy(t,room[j+1].roomnum);strcpy(room[j+1].roomnum,room[j].roomnum);strcpy(room[j].roomnum,t);strcpy(t,room[j+1].bednum);strcpy(room[j+1].bednum,room[j].bednum);strcpy(room[j].bednum,t);strcpy(t,room[j+1].num);strcpy(room[j+1].num,room[j].num);strcpy(room[j].num,t);strcpy(t,room[j+1].name);strcpy(room[j+1].name,room[j].name);strcpy(room[j].name,t);strcpy(room[j+1].classnum,room[j].classnum);strcpy(room[j].classnum,t);strcpy(room[j+1].sex,room[j].sex);strcpy(room[j].sex,t);}然后再老师的提醒下,我才发现,可以定义另一个结构体Student t;然后用T= room[j];room[j]= room[j+1];room[j+1]=t简单三行就解决了上面的麻烦,这更让我领会到了C语言的魅力..另外,还学习到了system(“pause”);语句就是在屏幕上按任意键继续的意思,相当与{printf(“按任意键继续”);getch();}所以,我还有许多要改进的地方。
当然,我还更加体会到了团队的力量,当我有问题的时候要勇于和同学探讨问题,自己也要能帮助不明白的同学,在这样的情况下,大家才能更加熟练地学习自己还不懂得知识。
所以,这更是一个团队互相帮助的成果。
以后,要想把计算机方面的知识学好,一定要更加努力!!结束语这次C语言程序实习让我渐渐体会到了编程的乐趣,但是也意识到了自己的不足,一个人的成功是靠努力换来的,只有付出了,才会有收获!参考文献:《C语言程序设计》(第二版)王曙燕科学出版社最后,感谢机房各位老师对我的监督辅导!七、源程序清单(略)#include<stdio.h> /*引用库函数*/#include<stdlib.h>#include<ctype.h>#include<string.h>#include<conio.h>typedef struct /*定义结构体数组*/{char roomnum[4]; /*房间号*/char bednum[4]; /*床位号*/char classnum[10]; /*班级*/char num[10]; /*学号*/char name[20]; /*姓名*/char sex[10]; /*性别*/}Student;Student room1[1000]; /*结构体数组变量*/int menu_select() /*菜单函数*/{int c;do{system("cls"); /*运行前清屏*/printf("\t\t★★★★★★学生宿舍管理系统★★★★★★\n"); /*菜单选择*/printf("\t\t§1. 输入记录§\n");printf("\t\t§2. 显示记录§\n");printf("\t\t§3. 按房间号排序并显示§\n");printf("\t\t§4. 按学号排序并显示§\n");printf("\t\t§5. 插入一条记录按学号排序并显示§\n");printf("\t\t§6. 按姓名查找,删除一条记录§\n");printf("\t\t§7 查找并显示一个记录§\n");printf("\t\t§8 查找并修改一个记录§\n");printf("\t\t§9. 从文件中读入数据§\n");printf("\t\t§10. 循环写入数据§\n");printf("\t\t§0. 结束程序§\n");printf("\t\t★★★★★★★★★★★★★★★★★★★★\n");printf("\t\t请选择您要运行的选项按(0-10):");scanf("%d",&c); /*读入选择*/}while(c<0||c>10);return(c); /*返回选择*/}int Input(Student room[],int n) /*输入若干条记录*/{int i=0;char sign; /*x[10]为清除多余的数据所用*/while(sign!='n'&&sign!='N') /*判断*/{system("cls");printf("\t\t房间号:"); /*交互输入*/scanf("\t\t%s",&room[n+i].roomnum);printf("\t\t床位号:");scanf("\t\t%s",&room[n+i].bednum);printf("\t\t学号:");scanf("\t\t%s",&room[n+i].num);printf("\t\t班级:");scanf("\t\t%s",&room[n+i].classnum);printf("\t\t姓名:");scanf("\t\t%s",&room[n+i].name);printf("\t\t性别:");scanf("\t\t%s",&room[n+i].sex);printf("\t\t是否继续输入?(Y/N)");scanf("\t\t%c",&sign); /*输入判断*/i++;}return(n+i);}void Display(Student room[],int n) /*显示所有记录*/{int i;printf("\t\t------------------------------------------------------------\n"); /*格式头*/printf("\t\t房间号床位号学号姓名班级性别\n");printf("\t\t------------------------------------------------------------\n");for(i=1;i<n+1;i++) /*循环输入*/{printf("\t\t%-10s%-10s%-10s%-10s%-10s%-20s\n",room[i-1].roomnum,room[i-1].bednum,room[i-1].num,room[i-1].name,room[i-1].classnum,room[i-1].sex);}printf("\t\t");system("pause");}void Sort_by_num(Student room[],int n) /*按学号排序*/{int i,j;Student t;for(i=0;i<n-1;i++) /*冒泡法排序*/for(j=0;j<n-i-1;j++)if(strcmp(room[j].num,room[j+1].num)>0){t=room[j+1];room[j+1]=room[j];room[j]=t;}}void Sort_by_roomnum(Student room[],int n) /*按房间号排序*/{int i,j;Student t;for(i=0;i<n-1;i++) /*冒泡法排序*/for(j=0;j<n-1-i;j++)if(strcmp(room[j].roomnum,room[j+1].roomnum)>0){t=room[j+1];room[j+1]=room[j];room[j]=t;}}int Insert_a_record(Student room[],int n) /*插入一条记录*/{printf("\t\t学生房间号:"); /*交互式输入*/scanf("\t\t%s",&room[n].roomnum);printf("\t\t学生床位号:");scanf("\t\t%s",&room[n].bednum);printf("\t\t学生学号:");scanf("\t\t%s",&room[n].num);printf("\t\t学生姓名:");scanf("\t\t%s",&room[n].name);printf("\t\t学生班级:");scanf("\t\t%s",&room[n].classnum);printf("\t\t学生性别:");scanf("\t\t%s",&room[n].sex);n++;printf("\n");system("pause");Sort_by_num(room,n); /*调用排序函数*/printf("\t\t插入记录成功!\n"); /*返回成功信息*/return(n);}int Delete_a_record(Student room[],int n) /*按姓名查找,删除一条记录*/{char s[20];int i=0,j;printf("\t\t输入他(她)的姓名:"); /*交互式问寻*/scanf("%s",s);while(strcmp(room[i].name,s)!=0&&i<n) i++; /*查找判断*/if(i==n){printf("\t\t对不起没找到该学生!\n"); /*返回失败信息*/return(n);}for(j=i;j<n-1;j++) /*删除操作*/{room[j]=room[j+1];}printf("\t\t删除记录成功!\n"); /*返回成功信息*/return(n-1);}void Query_a_record(Student room[],int n) /*查找并显示一个记录*/{char s[20];int i=0;printf("\t\t输入他(她)的姓名:"); /*输入*/scanf("\t\t%s",&s);while(strcmp(room[i].name,s)!=0&&i<n) i++; /*查找判断*/if(i==n){printf("\t\t对不起没找到该学生!\n"); /*输入失败信息*/return;}printf("\t\t他(她)的房间号:%s\n",room[i].roomnum); /*输出该学生信息*/printf("\t\t他(她)的床位号:%s\n",room[i].bednum);printf("\t\t他(她)的学号:%s\n",room[i].num);printf("\t\t他(她)的班级:%s\n",room[i].classnum);printf("\t\t他(她)的性别:%s\n",room[i].sex);}void Change_a_record(Student room[],int n) /*查找并修改一个信息*/{ char s[20],m[4];int i=0;int c;printf("\t\t输入他的姓名:");scanf("\t\t%s",&s);while(strcmp(room[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t\t对不起没找到该学生!\n");system("pause");return;}//dosystem("cls");printf("\t\t★★★★★★修改项目内容信息★★★★★★\n"); /*菜单选择*/printf("\t\t§1. 房间号§\n");printf("\t\t§2. 床位号§\n");printf("\t\t§3. 学号§\n");printf("\t\t§4. 姓名§\n");printf("\t\t§5. 班级§\n");printf("\t\t§6. 性别§\n");printf("\t\t★★★★★★★★★★★★★★★★★★★★\n");printf("\t\t请选择您要修改的选项按(0-6):");scanf("%d",&c); /*读入选择*/switch(c){case 1: printf("\t\t请输入你要修改后的房间号:");scanf("%s",&m);/*录入选择*/strcpy(room[i].roomnum,m);/*覆盖信息*/printf("恭喜你,修改成功!\n");system("pause");break;case 2: printf("\t\t请输入你要修改后的床位号:");scanf("%s",&m);strcpy(room[i].bednum,m);printf("恭喜你,修改成功!\n");system("pause");break;case 3: printf("\t\t请输入你要修改后的学号:");scanf("%s",&m);strcpy(room[i].num,m);printf("恭喜你,修改成功!\n");system("pause");break;case 4: printf("\t\t请输入你要修改后的姓名:");scanf("%s",&m);strcpy(room[i].name,m);printf("恭喜你,修改成功!\n");system("pause");break;case 5: printf("\t\t请输入你要修改后的班级:");scanf("%s",&m);strcpy(room[i].classnum,m);printf("恭喜你,修改成功!\n");system("pause");break;case 6: printf("\t\t请输入你要修改后的性别:");scanf("%s",&m);strcpy(room[i].sex,m);printf("恭喜你,修改成功!\n");system("pause");break;case 0: printf("\t\t安全退出修改系统!");system("pause");break;}}int AddfromText(Student room[],int n) /*从文件中读入数据*/ {int i=0;FILE *fp; /*定义文件指针*/char filename[20]; /*定义文件名*/printf("\t\t输入文件名:");scanf("\t\t%s",&filename); /*输入文件名*/if((fp=fopen(filename,"rt"))==NULL) /*打开文件*/{printf("\t\t无法打开该文件\n"); /*打开失败信息*/printf("\t\t");system("pause");return(n);}while(fscanf(fp,"%s%s%s%s%s%s",room[n+i].roomnum,room[n+i].bednum,r oom[n+i].num,room[n+i].name,room[n+i].classnum,room[n+i].sex)!=EOF)/*循环读入数据*/{i++;}fclose(fp); /*关闭文件*/printf("\t\t读入成功!\n");printf("\t\t");system("pause");return(n+i);}void WritetoText(Student room[],int n) /*将所有记录写入文件*/{int i=0;FILE *fp; /*定义文件指针*/char filename[100]; /*定义文件名*/ printf("\t\t输入文件名:"); /*输入文件名*/scanf("\t\t%s",&filename);if((fp=fopen(filename,"w"))==NULL) /*打开文件*/{printf("\t\t无法打开该文件\n");system("pause");return;}while(i<n){fprintf(fp,"%-10s%-10s%-10s%-10s%-10s%-10s\n",room[i].roomnum,room[i]. bednum,room[i].num,room[i].name, room[i].classnum,room[i].sex);i++;}fclose(fp); /*关闭文件*/printf("写入成功!\n"); /*返回成功信息*/}void main() /*主函数*/{int n=0,i,j;int c[3];for(i=0;i<3;i++){printf(" \n\n\n\t\t★★★★★★★★★★★★★★\n");printf(" \t\t============================\n\n");printf(" \t\t欢迎您进入学生宿舍管理系统!\n\n");printf(" \t\t请输入管理员密码(三位):");for(j=0;j<3;j++){c[j]=getch();printf("*");}getch();if (c[0]=='1'&&c[1]=='2'&&c[2]=='3'){printf("\n\t\t恭喜你登陆成功!");printf("\n");system("pause");break;}else{if(2-i==0){printf("对不起,错误达到三次,程序自动退出!");printf("\n");exit(1);}elseprintf("\n");printf("\n\t\t对不起,账号密码输入错误,请重新输入!(你还有%d 次机会)\n",2-i);system("pause");system("cls");}}for(;;){switch(menu_select()) /*选择判断*/{case 1:printf("\t\t输入记录\n"); /*输入若干条记录*/n=Input(room1,n);break;case 2:printf("\t\t显示记录\n"); /*显示所有记录*/Display(room1,n);break;case 3:printf("\t\t按房间号排序并显示\n");Sort_by_roomnum(room1,n); /*按房间号排序*/printf("\t\t排序成功!\n");Display(room1,n);printf("\t\t");break;case 4:printf("\t\t按学号排序并显示\n");Sort_by_num(room1,n); /*按学号排序*/printf("\t\t\t排序成功!\n");Display(room1,n);printf("\t\t");break;case 5:printf("\t\t插入一条记录按学号排序并显示\n");n=Insert_a_record(room1,n); /*插入一条记录*/system("cls");Display(room1,n);printf("\t\t");break;case 6:printf("\t\t按姓名查找,删除一条记录\n");n=Delete_a_record(room1,n); /*按姓名查找,删除一条记录*/printf("\t\t");system("pause");break;case 7:printf("\t\t查找并显示一个记录\n");Query_a_record(room1,n); /*查找并显示一个记录*/printf("\t\t");system("pause");break;case 8:printf("\t\t查找并修改一个记录\n");Change_a_record(room1,n);printf("\t\t"); /*查找并修改一个记录*/break;case 9:printf("\t\t从文件中读入数据\n");n=AddfromText(room1,n); /*从文件中读入数据*/printf("\t\t");break;case 10:printf("\t\t循环写入数据\n");WritetoText(room1,n); /*循环写入数据*/printf("\t\t");system("pause");break;case 0:printf("\t\t谢谢使用,祝您好运,再见!\n"); /*结束程序*/printf("\t\t");exit(0);}}}。