大一c语言课程设计作业,C语言课程设计
大一c语言课程设计作业,C语言课程设计详细介绍
本文目录一览: 大一C语言课程设计
#include
#include
#include
#include
#include
#define MAX 80void input();void sort();void average();void find();void total();int now_no=0;struct student{ int no; char name[20]; char sex[4]; float score1; float score2; float score3; float sort; float sum;};struct student stu[MAX],*p;void main()/*主函数*/{ int as; /*一下为功能选择模块*/ do { printf("\n\t\t\t欢迎使用学生成绩管理系统\n"); printf("\n\t\t\t\t1.信息输入(INPUT)\n\t\t\t\t2.总分统计(COUNT)\n\t\t\t\t3.总分排序(SORT)\n\t\t\t\t4.查询(QUERY)\n"); printf("\t\t\t\t选择功能选项:"); fflush(stdin); scanf("%d",&as); switch(as) { case 1:system("cls");input();break; case 2:system("cls");total();break; case 3:system("cls");sort();break; case 4:system("cls");find();break; default:break; } }while(1); /*至此功能选择结束*/}void input()/*原始数据录入模块*/{ int i=0; char ch; do { printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1); printf("\n输入学生学号:"); scanf("%d",&stu[i].no); fflush(stdin); printf("\n输入学员姓名:"); fflush(stdin); gets(stu[i].name); printf("\n输入学员性别:"); fflush(stdin); gets(stu[i].sex); printf("\n输入学员成绩(FOX):"); fflush(stdin); scanf("%f",&stu[i].score1); printf("\n输入学员成绩(C):"); fflush(stdin); scanf("%f",&stu[i].score2); printf("\n输入学员成绩(ENGLISH):"); fflush(stdin); scanf("%f",&stu[i].score3); printf("\n\n"); i++; now_no=i; printf("是否继续输入?(Y/N)"); fflush(stdin); ch=getch(); system("cls"); } while(ch!='n'&&ch!='N'); system("cls");}void sort()/*排序数据函数*/{ struct student temp; int i,j; char as; for(i=0;i
<now_no;i++) { stu[i].sum="stu[i].score1+stu[i].score2+stu[i].score3;" } for(i="0;i<now_no&&stu[i].name[0];i++)" for(j="1;j<=now_no-i;j++)" if(stu[j-1].sum<stu[j].sum) temp="stu[j];" stu[j]="stu[j-1];" stu[j-1]="temp;" do{ printf("\t\t\t班级学员信息列表\n"); printf("\t学号\t姓名\t性别\tfox成绩\tc成绩\teng成绩\t总分\n"); printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum); printf("\t\t按任意键返回主菜单."); fflush(stdin); as="getch();" while(!as); system("cls");}void find() *查询函数* int i,str; char as; do printf("输入要查询的学生学号:"); scanf("%d",&str); if(stu[i].no="=str)" printf("\t学号\t姓名\t性别\tfox成绩\tc成绩\teng成绩\n"); printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3); total() *求总分* i; system("cls");}
30RMB接受吗
我是大一的学生 老师让我们做一个c语言课程设计 现在给出三道 希望大家 帮帮忙 编写一个工资管理的程序。
#include
#include
#include
#include
#include
#define MAX 80
void input();
void sort();
void display();
void insert();
void del();
void average();
void find();
void save();
void read();
void del_file();
void average();
void modify();
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()/*主函数*/
{
int as;
start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n");
/*一下为功能选择模块*/
do
{
printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.修改学员信息\n\t\t\t\t7.查询学员信息\n\t\t\t\t8.从文件读入学员信息\n\t\t\t\t9.删除文件中学员信息\n\t\t\t\t10.保存学员信息\n\t\t\t\t11.退出\n");
printf("\t\t\t\t选择功能选项:");
fflush(stdin);
scanf("%d",&as);
switch(as)
{
case 1:system("cls");input();break;
case 2:system("cls");display();break;
case 3:system("cls");sort();break;
case 4:system("cls");insert();break;
case 5:system("cls");del();break;
case 6:system("cls");modify();break;
case 7:system("cls");find();break;
case 8:system("cls");read();break;
case 9:system("cls");del_file();break;
case 10:system("cls");save();break;
case 11:system("exit");exit(0);
default:system("cls");goto start;
}
}while(1);
/*至此功能选择结束*/
}
void input()/*原始数据录入模块*/
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);
printf("\n输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}
void sort()/*排序数据函数*/
{
struct student temp;
int i,j;
average();
for(i=1;i
<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave
<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void display()/*显示数据函数*/
{
int i;
char as;
average();
do
{
printf("\t\t\t班级学员信息列表\n");
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
for(i=0;i
<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void insert()/*插入数据函数*/
{
char ch;
do
{
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
}
void del()/*删除数据函数*/
{
int inum,i,j;
printf("输入要删除学员的编号:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i
<now_no;i++)
{
if(stu[i].no==inum)
{
if(i==now_no)now_no-=1;
else
{
stu[i]=stu[now_no-1];
now_no-=1;
}
sort();
break;
}
}
system("cls");
}
void save()/*保存数据函数*/
{
FILE *fp;
int i;
char filepath[20];
printf("输入要保存的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失败!");
exit(0);
}
for(i=0;i
<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
fclose(fp);
printf("学生信息已保存在%s中!\n",filepath);
system("pause");
system("cls");
}
void find()/*查询函数*/
{
int i;
char str[20],as;
do
{
printf("输入要查询的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i
<now_no;i++)
if(!strcmp(stu[i].name,str))
{
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void average()/*求平均数*/
{
int i;
for(i=0;i
<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
}
}
void modify()/*修改数据函数*/
{
int i;
char str[20],as;
printf("输入要修改的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i
<now_no;i++)
if(!strcmp(stu[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
fflush(stdin);
scanf("%d",&stu[i].no);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
sort();
break;
}
system("cls");
}
void read()
{
FILE *fp;
int i;
char filepath[20];
printf("输入要读入的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
system("pause");
exit(0);
}
now_no=0;
for(i=0;i
<max&&!feof(fp);i++)
{
fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i].no,stu[i].name,stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave);
now_no++;
}
fclose(fp);
printf("保存的在文件%s中的所有信息已经读入!\n",filepath);
system("pause");
system("cls");
}
void del_file()
{
FILE *fp;
char filepath[20];
printf("输入要删除的文件路径:");
fflush(stdin);
gets(filepath);
fp=fopen(filepath,"w");
fclose(fp);
printf("保存的在文件%s中的所有信息已经删除!\n",filepath);
system("pause");
system("cls");
}
void input();
void sort();
void display();
void insert();
void del();
void average();
void find();
void save();
void read();
void del_file();
void average();
void modify();
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()/*主函数*/
{
int as;
start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n");
/*一下为功能选择模块*/
do
{
printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.修改学员信息\n\t\t\t\t7.查询学员信息\n\t\t\t\t8.从文件读入学员信息\n\t\t\t\t9.删除文件中学员信息\n\t\t\t\t10.保存学员信息\n\t\t\t\t11.退出\n");
printf("\t\t\t\t选择功能选项:");
fflush(stdin);
scanf("%d",&as);
switch(as)
{
case 1:system("cls");input();break;
case 2:system("cls");display();break;
case 3:system("cls");sort();break;
case 4:system("cls");insert();break;
case 5:system("cls");del();break;
case 6:system("cls");modify();break;
case 7:system("cls");find();break;
case 8:system("cls");read();break;
case 9:system("cls");del_file();break;
case 10:system("cls");save();break;
case 11:system("exit");exit(0);
default:system("cls");goto start;
}
}while(1);
/*至此功能选择结束*/
}
void input()/*原始数据录入模块*/
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);
printf("\n输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}
void sort()/*排序数据函数*/
{
struct student temp;
int i,j;
average();
for(i=1;i
<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave
<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void display()/*显示数据函数*/
{
int i;
char as;
average();
do
{
printf("\t\t\t班级学员信息列表\n");
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
for(i=0;i
<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void insert()/*插入数据函数*/
{
char ch;
do
{
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
}
void del()/*删除数据函数*/
{
int inum,i,j;
printf("输入要删除学员的编号:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i
<now_no;i++)
{
if(stu[i].no==inum)
{
if(i==now_no)now_no-=1;
else
{
stu[i]=stu[now_no-1];
now_no-=1;
}
sort();
break;
}
}
system("cls");
}
void save()/*保存数据函数*/
{
FILE *fp;
int i;
char filepath[20];
printf("输入要保存的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失败!");
exit(0);
}
for(i=0;i
<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
fclose(fp);
printf("学生信息已保存在%s中!\n",filepath);
system("pause");
system("cls");
}
void find()/*查询函数*/
{
int i;
char str[20],as;
do
{
printf("输入要查询的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i
<now_no;i++)
if(!strcmp(stu[i].name,str))
{
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void average()/*求平均数*/
{
int i;
for(i=0;i
<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
}
}
void modify()/*修改数据函数*/
{
int i;
char str[20],as;
printf("输入要修改的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i
<now_no;i++)
if(!strcmp(stu[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
fflush(stdin);
scanf("%d",&stu[i].no);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
sort();
break;
}
system("cls");
}
void read()
{
FILE *fp;
int i;
char filepath[20];
printf("输入要读入的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
system("pause");
exit(0);
}
now_no=0;
for(i=0;i
<max&&!feof(fp);i++)
{
fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i].no,stu[i].name,stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave);
now_no++;
}
fclose(fp);
printf("保存的在文件%s中的所有信息已经读入!\n",filepath);
system("pause");
system("cls");
}
void del_file()
{
FILE *fp;
char filepath[20];
printf("输入要删除的文件路径:");
fflush(stdin);
gets(filepath);
fp=fopen(filepath,"w");
fclose(fp);
printf("保存的在文件%s中的所有信息已经删除!\n",filepath);
system("pause");
system("cls");
}
楼主你好这是我的专周做的我也是大一的你可以稍加修改就好很适合大一的
#include
#include
#include
//包含使用strcmp的头文件
#include "baohan.h"
void main()
{
int chg=1,n;
printf("\t\t欢迎使用本管理系统,为了您的正常使用请在Debug下使用\n");
while(chg)
{
Menu();
scanf("%d",&n);
switch(n)
{
case 1:
Infobase(); //信息维护
break;
case 2:
Find(); //信息查询
break;
case 3:
InfoStat(); //成绩统计
break;
case 4:
Comp();
break; //成绩排序
case 0:
chg=0; //退出菜单
printf("谢谢使用!再见\n");
break;
default:
printf("选择错误(0~4)?请重新输入\n");
}
}
getch();
}
/************************************主菜单画面***********************************************/
void Menu()
{
printf("\t\t\t********************\n");
printf("\t\t\t** **\n");
printf("\t\t\t** 主菜单 **\n");
printf("\t\t\t** **\n");
printf("\t\t\t********************\n");
printf("\t\t\t 1 信息维护\n");
printf("\t\t\t 2 信息查询\n");
printf("\t\t\t 3 成绩统计\n");
printf("\t\t\t 4 成绩排序\n");
printf("\t\t\t 0 退出菜单\n");
}
/*************************************信息维护***********************************************/
void Infobase()
{
int n,chg=1;
while(chg)
{
printf("\t\t\t1 录入学生信息\n");
printf("\t\t\t2 修改学生信息\n");
printf("\t\t\t3 删除学生信息\n");
printf("\t\t\t0 回到主菜单\n");
scanf("%d",&n);
switch(n)
{
case 1:
Infobase_add(); //录入信息
break;
case 2:
Infobase_amend(); //修改信息
break;
case 3:
Delete(); //删除信息
case 0:
chg=0; //退回主菜单
break;
default :
printf("\t选择错误请重新输入\n:");
}
}
}
/*******************************录入信息*****************************************************/
void Infobase_add()
{
Student stu[1]; //定义Student型数组变量
FILE* fp=NULL; //声明文件指针
fp=fopen("专周.txt","a"); //以追加方式打开
printf("\t输入姓名 性别 学号 成绩(数学 外语 C语言)\n");
scanf("%s%s%d%d%d%d", //接收输入
stu[0].name,
stu[0].sex,
&stu[0].ID,
&stu[0].math,
&stu[0].english,
&stu[0].computer_C);
stu[0].sum=stu[0].english+stu[0].computer_C+stu[0].math;//计算总分
if(fprintf(fp," %s %s %d %d %d %d %d \n",//写入磁盘防错处理
stu[0].name,
stu[0].sex,
stu[0].ID,
stu[0].math,
stu[0].english,
stu[0].computer_C,
stu[0].sum)==0)
{
printf("写入失败");
}
fclose(fp); //关闭文件指针
}
/*********************************修改信息***************************************************/
void Infobase_amend()
{
int i,j;
char ch[10]; //声明字符数组以保存需修改的姓名
Student stu[50]; //声明Student型数组
FILE* fp=NULL; //声明文件指针
printf("\t输入需修改学生的名字");//提示输入
scanf("%s",ch); //接收输入姓名
fp=fopen("专周.txt","rt+"); //以可读写方式打开
for(i=0;;i++)
{
fscanf(fp," %s %s %d %d %d %d %d ",//从磁盘读入内存
stu[i].name,
stu[i].sex,
&stu[i].ID,
&stu[i].math,
&stu[i].english,
&stu[i].computer_C,
&stu[i].sum);
if(strcmp(stu[i].name,ch)==0) //判断是否查找所需
{
rewind(fp); //指针移到文件开头
printf("\t输入修改姓名 性别 学号 成绩(数学 外语 C语言)\n");
scanf("%s%s%d%d%d%d", //接收输入
stu[i].name,
stu[i].sex,
&stu[i].ID,
&stu[i].math,
&stu[i].english,
&stu[i].computer_C);
j=i;
stu[i].sum=stu[i].english+stu[i].computer_C+stu[i].math;
for(i=0;i
<j;i++)
{
fprintf(fp," %s %s %d %d %d %d %d \n",//原数据写入磁盘
stu[i].name,
stu[i].sex,
stu[i].ID,
stu[i].math,
stu[i].english,
stu[i].computer_C,
stu[i].sum);
}
fprintf(fp," %s %s %d %d %d %d %d ",//将修改数据写入磁盘
stu[i].name,
stu[i].sex,
stu[i].ID,
stu[i].math,
stu[i].english,
stu[i].computer_C,
stu[i].sum);
fclose(fp); //关闭文件指针
break;
}
}
}
/**************************************删除信息********************************************/
void Delete()
{
int i,j,k=0;
char ch[10]; //声明字符数组以保存需删除的姓名
Student stu[50]; //声明Student型数组
FILE* fp=NULL,*fp1=NULL; //声明文件指针
printf("\t输入需删除学生的名字"); //提示输入
scanf("%s",ch); //接收输入姓名
fp=fopen("专周.txt","rt+"); //以可读写方式打开
for(i=0;!feof(fp);i++)
{
fscanf(fp," %s %s %d %d %d %d %d ",//从磁盘读入内存
stu[i].name,
stu[i].sex,
&stu[i].ID,
&stu[i].math,
&stu[i].english,
&stu[i].computer_C,
&stu[i].sum);
if(strcmp(stu[i].name,ch)==0) //判断是否查找所需
j=i;
}
rewind(fp); //指针移动到开头
for(;j
<i-1;j++)
{
stu[j]=stu[j+1]; //覆盖需删除的后依次前移
}
for(i=0;i
<j;i++)
fprintf(fp," %s %s %d %d %d %d %d \n", //写入磁盘
stu[i].name,
stu[i].sex,
stu[i].ID,
stu[i].math,
stu[i].english,
stu[i].computer_C,
stu[i].sum);
}
fclose(fp);
/***************************************信息查询***********************************************/
void Find()
{
int n,chg=1; //声明chg变量用以循环
while(chg)
{
printf("\t\t\t1 按学号查询\n");
printf("\t\t\t2 按姓名查询\n");
printf("\t\t\t0 退回主菜单\n");
scanf("%d",&n);
switch(n)
{
case 1:
Find_ID(); //调用以学号查找的函数
break;
case 2:
Find_name(); //调用以姓名查找的函数
break;
case 0:
chg=0; //退回主菜单
break;
default :printf("\n选择错误请重新输入\n");
}
}
}
/*********************************按学号查找***************************************************/
void Find_ID()
{
int n,i;
Student stu[50]; //声明Student型数组变量
FILE* fp=NULL; //声明文件指针
printf("请输入学号"); //提示接收输入
scanf("%d",&n); //接收输入学号
fp=fopen("专周.txt","rt"); //以只读方式打开
for(i=0;!feof(fp);i++)
{
if(fscanf(fp," %s %s %d %d %d %d %d \n", //防止读入内存失败
stu[i].name,
stu[i].sex,
&stu[i].ID,
&stu[i].math,
&stu[i].english,
&stu[i].computer_C,
&stu[i].sum)==0)
printf("读取失败");
if(stu[i].ID==n) //判断是否需查找学生
{
printf("查找到:%s 性别%s 学号%d 数学%d 外语%d C语言%d 总分%d\n",//输出查找目标
stu[i].name,
stu[i].sex,
stu[i].ID,
stu[i].math,
stu[i].english,
stu[i].computer_C,
stu[i].sum);
break;
}
if(feof(fp)) //处理未找到情况
{
printf("无此学生信息\n");
}
}fclose(fp); //关闭文件指针
}
/******************************按姓名查找*****************************************************/
void Find_name()
{
int i;
char ch[10]; //声明字符数组以储存查找姓名
Student stu[50]; //声明Student型数组变量
FILE* fp=NULL; //声明文件指针
printf("请输入姓名\n"); //提示输入
scanf("%s",ch); //接收输入姓名
fp=fopen("专周.txt","rt"); //以只读方式打开
for(i=0;!feof(fp);i++) //循环,以文件指针到末尾结束循环
{
fscanf(fp," %s %s %d %d %d %d %d ",//从磁盘读入内存
stu[i].name,
stu[i].sex,
&stu[i].ID,
&stu[i].math,
&stu[i].english,
&stu[i].computer_C,
&stu[i].sum);
if(strcmp(stu[i].name,ch)==0) //判断是否查找学生
{
printf("查找到:%s 性别%s 学号%d 数学%d 外语%d C语言%d 总分%d\n",//输出查找目标
stu[i].name,
stu[i].sex,
stu[i].ID,
stu[i].math,
stu[i].english,
stu[i].computer_C,
stu[i].sum);
break;
}
if(feof(fp)) //处理未找到情况
{
printf("无此学生信息\n");
}
}fclose(fp); //关闭文件指针
}
/*********************************信息统计*****************************************************/
void InfoStat()
{
int n,m,i,count=0;
char ch[15]; //声明字符数组保存课程名
Student stu[60]; //声明Student型数组变量
FILE* fp=NULL; //声明文件指针
fp=fopen("专周.txt","rt"); //以只读方式打开
printf("输入课程名(数学 外语 C)和分数段(格式:数学 x1-x2)\n");
scanf("%s",ch); //接收输入课程名
scanf("%d-%d",&n,&m); //接收输入分数段
for(i=0;!feof(fp);i++) //以文件指针到文件末尾结束循环
{
if(fscanf(fp," %s %s %d %d %d %d %d \n", //防止读入内存失败
stu[i].name,
stu[i].sex,
&stu[i].ID,
&stu[i].math,
&stu[i].english,
&stu[i].computer_C,
&stu[i].sum)==0)
printf("读取失败");
count++;
}
fclose(fp); //关闭文件指针
/****************************以下输出查找目标**********************************************/
printf("姓名 性别 %s 总分\n",ch);
for(i=0;i
<count;i++)
if(strcmp(ch,"数学")==0 && stu[i].math>=n && stu[i].math<=m)
{
printf("%s\t%s\t%d\t%d\n",
stu[i].name,
stu[i].sex,
stu[i].math,
stu[i].sum);
}
for(i=0;i
<count;i++)
if(strcmp(ch,"外语")==0 && stu[i].english>=n && stu[i].english<=m)
{
printf("%s\t%s\t%d\t%d\n",
stu[i].name,
stu[i].sex,
stu[i].english,
stu[i].sum);
}
for(i=0;i
<count;i++)
if(!strcmp(ch,"C") && stu[i].computer_C>=n && stu[i].computer_C<=m)
{
printf("%s\t%s\t%d\t%d\n",
stu[i].name,
stu[i].sex,
stu[i].english,
stu[i].sum);
}
}
/******************************成绩排序*******************************************************/
void Comp()
{
int i,k,j,count=0;
char ch[15]; //声明字符数组保存课程名
Student stu[50],temp; //声明Student型变量
FILE *fp=NULL; //声明文件指针
printf("请输入需要排序的课程名"); //提示输入
scanf("%s",ch); //接收输入的课程名
fp=fopen("专周.txt","rt"); //以读方式打开文件
for(i=0;!feof(fp);i++) //以文件指针到末尾结束循环
{
if(fscanf(fp," %s %s %d %d %d %d %d \n", //防止读入内存失败
stu[i].name,
stu[i].sex,
&stu[i].ID,
&stu[i].math,
&stu[i].english,
&stu[i].computer_C,
&stu[i].sum)==0)
printf("读取失败");
count++; //记录文件内学生人数
}
fclose(fp); //关闭文件指针
if(strcmp(ch,"数学")==0)
{
for(i=0;i
<count-1;i++) 以下为以降序顺序排序
{
k=i;
for(j=i+1;j
<count;j++)
if(stu[k].math
<stu[j].math)
k=j;
if(i!=k)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("姓名 性别 学号 数学 外语 C语言 总分 数学成绩名次\n");
for(i=0;i
<count;i++)
{
printf("%-6s %4s %d %d %d %d %d %d\n", //输出信息
stu[i].name,
stu[i].sex,
stu[i].ID,
stu[i].math,
stu[i].english,
stu[i].computer_C,
stu[i].sum,i+1);
}
}
if(strcmp(ch,"外语")==0)
{
for(i=0;i
<count-1;i++) 以下为降序顺序排序
{
k=i;
for(j=i+1;j
<count;j++)
if(stu[k].english
<stu[j].english)
k=j;
if(i!=k)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("姓名 性别 学号 数学 外语 C语言 总分 外语成绩名次\n");
for(i=0;i
<count;i++)
{
printf("%-6s %4s %d %d %d %d %d %d\n", //输出信息
stu[i].name,
stu[i].sex,
stu[i].ID,
stu[i].math,
stu[i].english,
stu[i].computer_C,
stu[i].sum,i+1);
}
}
if(strcmp(ch,"C")==0)
{
for(i=0;i
<count-1;i++) 以下为降序顺序排序
{
k=i;
for(j=i+1;j
<count;j++)
if(stu[k].computer_C
<stu[j].computer_c)
k=j;
if(i!=k)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("姓名 性别 学号 数学 外语 C语言 总分 C语言成绩名次\n");
for(i=0;i
<count;i++)
{
printf("%-6s %4s %d %d %d %d %d %d\n", //输出信息
stu[i].name,
stu[i].sex,
stu[i].ID,
stu[i].math,
stu[i].english,
stu[i].computer_C,
stu[i].sum,i+1);
}
}
}以下是baohan头文件
void Menu(); //主菜单
void Infobase(); //信息维护
void Find(); //信息查询
void InfoStat(); //成绩统计
void Comp(); //成绩排序
void Find_ID(); //以学号查找
void Find_name(); //以姓名查找
void Infobase_add(); //录入信息
void Infobase_amend(); //修改信息
void Delete(); //删除信息
typedef struct //重命名学生信息结构体
{
char name[10]; //姓名
char sex[3]; //性别
int ID; //学号
int math; //数学成绩
int english; //英语成绩
int computer_C; //计算机C语言成绩
int sum; //成绩总和
}Student;
</count;i++)
</stu[j].computer_c)
</count;j++)
</count;i++)
</stu[j].english)
</count;j++)
</count;i++)
</stu[j].math)
</count;j++)
</count;i++)
</count;i++)
</j;i++)
</i-1;j++)
</max&&!feof(fp);i++)
</now_no;i++)
</now_no;i++)
</now_no;i++)
</now_no;i++)
</now_no;i++)
</now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
</stu[j].ave)
</now_no;i++)
</max&&!feof(fp);i++)
</now_no;i++)
</now_no;i++)
</now_no;i++)
</now_no;i++)
</now_no;i++)
</now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
</stu[j].ave)
</now_no;i++)
大一C语言课程设计题目, 求急! 加100分。
#include
#include
#define N 100
typedef struct AA
{
char name[20];
char phone[12];
char e_mail[30];
char relation[20];
}AA;
/*1。输入新联系人2。删除指定的联系人(输入姓名,若找掉则删除该联系人的信息)
3。根据输入的与本人关系,显示联系信息4。显示所有联系人的信息设计菜单*/
int input__(AA * s)
{
int len = 0,i = 0,n;
printf("请输入要添加的联系人个数,上限为%d个\n",N);
scanf("%d",&n);
for(i=0;i
<n;i++)
{
printf("请依次输入第%d联系人的姓名、电话、邮箱以及与本人的关系(中间使用空格隔开即可):\n",i);
scanf("%s%s%s%s",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);
}
return n;
}
void delete__(AA *s,int *n)
{
int i = 0,j = 0,status = 0;
char ca[20] = "";
printf("请输入要删除的联系人的姓名\n");
scanf("%s",ca);
for(i=0;i<*n;i++)
{
if(!strcmp(ca,s[i].name))
{
*n = *n-1;
status = 1;
for(j=i;j<*n;j++)
{
s[j] = s[j+1];
}
break;
}
}
if(status == 0)
printf("没有找到要删除的人的信息\n");
else
printf("删除成功\n");
}
void show__relation(AA *s,int n)
{
int i = 0,status = 0;
printf("请输入与联系人的关系\n");
char ca[20] = "";
scanf("%s",ca);
for(i=0;i
<n;i++)
{
if(!strcmp(ca,s[i].relation))
{
printf("name:%15s\tphone:%15s\ne-mail:%15s\trelation:%15s\n",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);
status = 1;
}
}
if(!status)
printf("没有找到相应的信息\n");
}
void show__all(AA *s,int n)
{
int i = 0;
for(i = 0 ; i
<n ; i++)
{
printf("name:%15s\tphone:%15s\ne-mail:%15s\trelation:%15s\n",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);
}
}
int main(void)
{
AA a[N];
int n = 0;
int i;
while(1)
{
printf("0------退出系统\n1------输入联系人信息\n2------删除指定联系人信息\n");
printf("3------显示与本人关系相通的联系人信息\n4------显示所有联系人的信息\n");
scanf("%d",&i);
if(i == 0)
break;
switch(i)
{
case 1:n = input__(a); break;
case 2:
if(n == 0)
{
printf("你还没有添加信息,请先添加信息:\n");
break;
}
else
{
delete__(a,&n);
break;
}
case 3:
{
if(n == 0)
{
printf("你还没有添加信息,请先添加信息:\n");
break;
}
else
{
show__relation(a,n);
break;
}
}
case 4:
{
if(n == 0)
{
printf("你还没有添加信息,请先添加信息:\n");
break;
}
else
{
show__all(a,n);
break;
}
}
default:
printf("您的选择有误,请重新选择\n");
break;
}
}
return 0;
}
//看看~~~刚刚写完~
</n;i++)
</n;i++)
求大一C语言课程设计200行的程序
设计一个简单游戏 学生管理系统 我代做的 大一额 各位同学们 做个图书管理系统吧 有时间就多实现几个功能 没时间就只是实现图书存储就好了
int i=1;
i++;
i++;/198行i++;
print(“&d”,i);
答案是199哟。。
C语言编写的迷宫小游戏 源代码
#include
#include
#include
#include
#include
#define N 20/*迷宫的大小,可改变*/
int oldmap[N][N];/*递归用的数组,用全局变量节约时间*/
int yes=0;/*yes是判断是否找到路的标志,1找到,0没找到*/
int way[100][2],wayn=0;/*way数组是显示路线用的,wayn是统计走了几个格子*/
void Init(void);/*图形初始化*/
void Close(void);/*图形关闭*/
void DrawPeople(int *x,int *y,int n);/*画人工探索物图*/
void PeopleFind(int (*x)[N]);/*人工探索*/
void WayCopy(int (*x)[N],int (*y)[N]);/*为了8个方向的递归,把旧迷宫图拷贝给新数组*/
int FindWay(int (*x)[N],int i,int j);/*自动探索函数*/
void MapRand(int (*x)[N]);/*随机生成迷宫函数*/
void PrMap(int (*x)[N]);/*输出迷宫图函数*/
void Result(void);/*输出结果处理*/
void Find(void);/*成功处理*/
void NotFind(void);/*失败处理*/
void main(void)/*主函数*/
{
int map[N][N]; /*迷宫数组*/
char ch;
clrscr();
printf("\n Please select hand(1) else auto\n");/*选择探索方式*/
scanf("%c",&ch);
Init(); /*初始化*/
MapRand(map);/*生成迷宫*/
PrMap(map);/*显示迷宫图*/
if(ch=='1')
PeopleFind(map);/*人工探索*/
else
FindWay(map,1,1);/*系统自动从下标1,1的地方开始探索*/
Result();/*输出结果*/
Close();
}
void Init(void)/*图形初始化*/
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\tc");
}
void DrawPeople(int *x,int *y,int n)/*画人工控制图*/
{/*如果将以下两句注释掉,则显示人工走过的路径,*/
setfillstyle(SOLID_FILL,WHITE); /*设置白色实体填充样式*/
bar(100+(*y)*15-6,50+(*x)*15-6,100+(*y)*15+6,50+(*x)*15+6);
/*恢复原通路*/
switch(n)/*判断x,y的变化,8个方向的变化*/
{
case 1: (*x)--;break; /*上*/
case 2: (*x)--;(*y)++;break ;/*右上*/
case 3: (*y)++;break; /*右*/
case 4: (*x)++;(*y)++;break; /*右下*/
case 5: (*x)++;break; /*下*/
case 6: (*x)++;(*y)--;break; /*左下*/
case 7: (*y)--;break; /*左*/
case 8: (*x)--;(*y)--;break; /*左上*/
}
setfillstyle(SOLID_FILL,RED);/*新位置显示探索物*/
bar(100+(*y)*15-6,50+(*x)*15-6,100+(*y)*15+6,50+(*x)*15+6);
}
void PeopleFind(int (*map)[N])/*人工手动查找*/
{
int x,y;
char c=0;/*接收按键的变量*/
x=y=1;/*人工查找的初始位置*/
setcolor(11);
line(500,200,550,200);
outtextxy(570,197,"d");
line(500,200,450,200);
outtextxy(430,197,"a");
line(500,200,500,150);
outtextxy(497,130,"w");
line(500,200,500,250);
outtextxy(497,270,"x");
line(500,200,450,150);
outtextxy(445,130,"q");
line(500,200,550,150);
outtextxy(550,130,"e");
line(500,200,450,250);
outtextxy(445,270,"z");
line(500,200,550,250);
outtextxy(550,270,"c");/*以上是画8个方向的控制介绍*/
setcolor(YELLOW);
outtextxy(420,290,"Press 'Enter' to end");/*压回车键结束*/
setfillstyle(SOLID_FILL,RED);
bar(100+y*15-6,50+x*15-6,100+y*15+6,50+x*15+6);/*入口位置显示*/
while(c!=13)/*如果按下的不是回车键*/
{
c=getch();/*接收字符后开始各个方向的探索*/
if(c=='w'&&map[x-1][y]!=1)
DrawPeople(&x,&y,1);/*上*/
else
if(c=='e'&&map[x-1][y+1]!=1)
DrawPeople(&x,&y,2);/*右上*/
else
if(c=='d'&&map[x][y+1]!=1)
DrawPeople(&x,&y,3);/*右*/
else
if(c=='c'&&map[x+1][y+1]!=1)
DrawPeople(&x,&y,4);/*右下*/
else
if(c=='x'&&map[x+1][y]!=1)
DrawPeople(&x,&y,5);/*下*/
else
if(c=='z'&&map[x+1][y-1]!=1)
DrawPeople(&x,&y,6); /*左下*/
else
if(c=='a'&&map[x][y-1]!=1)
DrawPeople(&x,&y,7); /*左*/
else if(c=='q'&&map[x-1][y-1]!=1)
DrawPeople(&x,&y,8); /*左上*/
}
setfillstyle(SOLID_FILL,WHITE); /*消去红色探索物,恢复原迷宫图*/
bar(100+y*15-6,50+x*15-6,100+y*15+6,50+x*15+6);
if(x==N-2&&y==N-2)/*人工控制找成功的话*/
yes=1; /*如果成功标志为1*/
}
void WayCopy(int (*oldmap)[N],int (*map)[N])/*拷贝迷宫数组 */
{
int i,j;
for(i=0;i
<n;i++)
for(j=0;j
<n;j++)
oldmap[i][j]=map[i][j];
}
int FindWay(int (*map)[N],int i,int j)/*递归找路*/
{
if(i==N-2&&j==N-2)/*走到出口*/
{
yes=1;/*标志为1,表示成功*/
return;
}
map[i][j]=1;/*走过的地方变为1*/
WayCopy(oldmap,map); /*拷贝迷宫图*/
if(oldmap[i+1][j+1]==0&&!yes)/*判断右下方是否可走*/
{
FindWay(oldmap,i+1,j+1);
if(yes)/*如果到达出口了,再把值赋给显示路线的way数组,也正是这个原因,所以具体路线是从最后开始保存*/
{
way[wayn][0]=i;
way[wayn++][1]=j;
return;
}
}
WayCopy(oldmap,map);
if(oldmap[i+1][j]==0&&!yes)/*判断下方是否可以走,如果标志yes已经是1也不用找下去了*/
{
FindWay(oldmap,i+1,j);
if(yes)
{
way[wayn][0]=i;
way[wayn++][1]=j;
return;
}
}
WayCopy(oldmap,map);
if(oldmap[i][j+1]==0&&!yes)/*判断右方是否可以走*/
{
FindWay(oldmap,i,j+1);
if(yes)
{
way[wayn][0]=i;
way[wayn++][1]=j;
return;
}
}
WayCopy(oldmap,map);
if(oldmap[i-1][j]==0&&!yes)/*判断上方是否可以走*/
{
FindWay(oldmap,i-1,j);
if(yes)
{
way[wayn][0]=i;
way[wayn++][1]=j;
return;
}
}
WayCopy(oldmap,map);
if(oldmap[i-1][j+1]==0&&!yes)/*判断右上方是否可以走*/
{
FindWay(oldmap,i-1,j+1);
if(yes)
{
way[wayn][0]=i;
way[wayn++][1]=j;
return;
}
}
WayCopy(oldmap,map);
if(oldmap[i+1][j-1]==0&&!yes)/*判断左下方是否可以走*/
{
FindWay(oldmap,i+1,j-1);
if(yes)
{
way[wayn][0]=i;
way[wayn++][1]=j;
return;
}
}
WayCopy(oldmap,map);
if(oldmap[i][j-1]==0&&!yes)/*判断左方是否可以走*/
{
FindWay(oldmap,i,j-1);
if(yes)
{
way[wayn][0]=i;
way[wayn++][1]=j;
return;
}
}
WayCopy(oldmap,map);
if(oldmap[i-1][j-1]==0&&!yes)/*判断左上方是否可以走*/
{
FindWay(oldmap,i-1,j-1);
if(yes)
{
way[wayn][0]=i;
way[wayn++][1]=j;
return;
}
}
return;
}
void MapRand(int (*map)[N])/*开始的随机迷宫图*/
{
int i,j;
cleardevice();/*清屏*/
randomize(); /*随机数发生器*/
for(i=0;i
<n;i++)
{
for(j=0;j
<n;j++)
{
if(i==0||i==N-1||j==0||j==N-1)/*最外面一圈为墙壁*/
map[i][j]=1;
else
if(i==1&&j==1||i==N-2&&j==N-2)/*出发点与终点表示为可走的*/
map[i][j]=0;
else
map[i][j]=random(2);/*其它的随机生成0或1*/
}
}
}
void PrMap(int (*map)[N])/*输出迷宫图*/
{
int i,j;
for(i=0;i
<n;i++)
for(j=0;j
<n;j++)
if(map[i][j]==0)
{
setfillstyle(SOLID_FILL,WHITE);/*白色为可走的路*/
bar(100+j*15-6,50+i*15-6,100+j*15+6,50+i*15+6);
}
else
{
setfillstyle(SOLID_FILL,BLUE);/*蓝色为墙壁*/
bar(100+j*15-6,50+i*15-6,100+j*15+6,50+i*15+6);
}
}
void Find(void)/*找到通路*/
{
int i;
setfillstyle(SOLID_FILL,RED);/*红色输出走的具体路线*/
wayn--;
for(i=wayn;i>=0;i--)
{
bar(100+way[i][1]*15-6,50+way[i][0]*15-6,100+
way[i][1]*15+6,50+way[i][0]*15+6);
sleep(1);/*控制显示时间*/
}
bar(100+(N-2)*15-6,50+(N-2)*15-6,100+
(N-2)*15+6,50+(N-2)*15+6); /*在目标点标红色*/
setcolor(GREEN);
settextstyle(0,0,2);/*设置字体大小*/
outtextxy(130,400,"Find a way!");
}
void NotFind(void)/*没找到通路*/
{
setcolor(GREEN);
settextstyle(0,0,2);/*设置字体大小*/
outtextxy(130,400,"Not find a way!");
}
void Result(void)/*结果处理*/
{
if(yes)/*如果找到*/
Find();
else/*没找到路*/
NotFind();
getch();
}
void Close(void)/*图形关闭*/
{
closegraph();
}
</n;j++)
</n;i++)
</n;j++)
</n;i++)
</n;j++)
</n;i++)
我是大一的,C语言期末作业是让我们设计一个程序,还要上交一份软件说明,求说明文件的格式.
就编一个叠加的啊
你说的是课程设计么?
背单词系统
#include
#include
#include
struct word //定义一个word的结构体,里面的两个成员分别放英语单词和相应的汉语翻译
{
char chinese[20];
char english[20];
};
int point=0; //统计分数的
int count1=0; //测试的次数
void tianjia(struct word str[100],int &count); //函数声明,往词库中添加词组
void shuchu(struct word str[100],int &count); //函数声明,输出词库中所有的词组
void fanyi1(struct word str[100],int &count); //函数声明,输入汉语,对英语翻译的考察
void fanyi2(struct word str[100],int &count);
void chaxun(int point,int count1); //函数声明,输出成绩!
void main()
{
int count=0;
struct word str[100]; //定义一个结构体数组str
int n;
char ch,chioch;
while(1)
{
printf("*************背单词系统*********************\n");
printf("*************1,添加词库*********************\n");
printf("*************2,汉译英***********************\n");
printf("*************3,英译汉***********************\n");
printf("*************4,输出所有词库*****************\n");
printf("*************5,成绩查询*********************\n");
printf("*************0,退出*************************\n");
printf("********************************************\n");
printf("请输入你要经行的操作:\n");
scanf("%d",&n);
switch(n)
{
case 1:tianjia(str,count);break; //函数调用
case 2:fanyi1(str,count);break; //函数调用
case 3:fanyi2(str,count);break; //函数调用
case 4:shuchu(str,count);break;
case 5:chaxun(point,count1);break; //函数调用
case 0:{printf("你确认要退出吗?y/n!!\n");
scanf("%c%c",&ch,&chioch);
if(ch=='y'||ch=='Y') exit(0);
}
default :printf("你输入了错误的操作,无法执行!!!");
exit(0);
}
}
}
void tianjia(struct word str[100],int &count) //往词库中添加词组
{
char ch;
do{
printf("录入词库!!!\n");
printf("请输入词库中的英语单词:\n");
scanf("%s",str[count].english);
printf("\n请输入相应的中文意思:\n");
scanf("%s",str[count].chinese);
count++;
printf("是否继续录入?y/n!!!\n");
scanf("%s",&ch);
}while(ch=='y');
printf("%d\n\n",count);
}
void shuchu(struct word str[100],int &count) // 输出词库中所有的词组
{
int i=0;
printf("输出词库中所有的单词!!!\n");
if(count<=0) {printf("没有任何单词,无法输出!!!\n");return;}
else {
for(i=0;i
<count;i++){
printf("英文单词是:%s",str[i].english);
printf("\n相应的中文意思是:%s",str[i].chinese);
printf("\n\n");
}
printf("词库所有单词输入完毕!!!!\n");
}
}
void fanyi1(struct word str[100],int &count) //输入汉语,对英语翻译的考察
{
int i;
char ch[20];
char bh[20];
printf("请输入英语单词:\n");
scanf("%s",ch);
printf("请输入翻译后的中文:\n");
scanf("%s",bh);
for(i=0;i
<count;i++)
{
if(strcmp(ch,str[i].english)==0)
{
if(strcmp(bh,str[i].chinese)==0)
{
point++;
count1++;
printf("恭喜你!!答对了!!!\n");
}
else
{
count1++;
printf("很遗憾,答错了!!!正确的翻译是:%s\n",str[i].chinese);
}
}
}
}
void fanyi2(struct word str[100],int &count) //输入英语,对汉语翻译的考察
{
int i;
char ch[20];
char bh[20];
printf("请输入中文:\n");
scanf("%s",ch);
printf("请输入翻译后的英文:\n");
scanf("%s",bh);
for(i=0;i
<count;i++)
{
if(strcmp(ch,str[i].chinese)==0)
{
if(strcmp(bh,str[i].english)==0){
point++;
count1++;
printf("恭喜你!!答对了!!!\n");
}
else
{
count1++;
printf("很遗憾,答错了!!!正确的翻译是:%s\n",str[i].english);
}
}
}
}
void chaxun(int point,int count1)
{
printf("本次测试的成绩是:\n");
printf("总共:%d个\n",count1);
printf("正确:%d个\n",point);
// printf("正确率为:%d\%\n",point*100/count1);
}
软件说明只要说明有哪些功能
</count;i++)
</count;i++)
</count;i++){
我是大一的,学期末c语言课程设计,要用c++6.0做一个只有加减法的简单的计算器!!!!!
去看看the C programming language吧里面有完整的计算器实现代码
#include
void main()
{
int a,b;
char op;
printf("输入一个数");
scanf("%d",&a);
printf("\n输入运算符:");
scanf("%s",&op);
printf("\n输入另一个数");
scanf("%d",&b);
switch(op)
{
case '+':
printf("\n =%d\n",a+b);
break;
case '-':
printf("\n =%d\n",a-b);
break;
case '*':
printf("\n =%d\n",a*b);
break;
case '/':
printf("\n =%d\n",a/b);
break;
default:
break;
}
}
C语言课程设计大作业 设计一个实用的小型学生成绩管理程序
#include
#include
#include
using namespace std;
class Student
{
public:
Student(int id,char *s,double sc)
{
ID=id;
name=s;
score=sc;
}
Student(){}
friend void Write(Student stu[],int n);
friend int Read(Student stu[]);
friend void Input(Student stu[]);
friend void Print(Student stu[]);
friend void Delete(Student stu[]);
friend void Add(Student stu[]);
protected:
int ID;
std::string name;
double score;
}stu[100];
int Menu()
{
cout<<"***************************欢迎使用肖氏学生管理系统**************************"<
<endl;
cout<
<endl;
cout<<" 1.输入学生信息 "<
<endl;
cout<
<endl;
cout<<" 2.显示学生信息 "<
<endl;
cout<
<endl;
cout<<" 3.删除学生信息 "<
<endl;
cout<
<endl;
cout<<" 4.增加学生信息 "<
<endl;
cout<
<endl;
cout<<" 5.退出学生管理系统 "<
<endl;
cout<<"*****************************************************************************"<
<endl;
int choice=0;
cout<<" 请输入您的选择 "<
<endl;
cin>>choice;
return choice;
}
void Write(Student stu[],int n)
{
char *filename = "student.txt";
ofstream ofs;
ofs.open(filename,ios::out);
if(!ofs)
{
cout<<"文件打开失败!"<
<endl;
exit(0);
}
int number=n;
ofs<
<number<<endl;
for(int i=1;i<=number;i++)
{
ofs<
<stu[i].id<<stu[i].name<<stu[i].score<<endl;
}
ofs.close();
}
int Read(Student stu[])
{
char names[100];
int idnum[100];
double scorenum[100];
char *filename = "student.txt";
ifstream ifs;
int number;
ifs.open(filename,ios::in);
if(!ifs)
{
cout<<"文件打开失败!"<
<endl;
exit(0);
}
ifs.seekg(0);
ifs>>number;
for(int i=0;i!=number;i++)
{
ifs>>idnum[i];
ifs.getline(names,50);
ifs>>scorenum[i];
}
ifs.close();
return number;
}
void Input(Student stu[])
{
system("cls");
char ch;
int i=0;
cout<<"请依次输入学生的学号,姓名,分数:"<
<endl;
while(ch!='N'&&ch!='n')
{
cin>>stu[i].ID>>stu[i].name>>stu[i].score;
i++;
cout<<"是否继续(Y/N)?"<
<endl;
cin>>ch;
}
Write(stu,i);
cout<<"************************本次输入结束****************************"<
<endl;
system("pause");
system("cls");
}
void Print(Student stu[])
{
system("cls");
int m=Read(stu);
for(int i=0;i!=m;i++)
{
cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"分数"<
<endl;
cout<
<stu[i].id<<"\t"<<stu[i].name<<"\t"<<stu[i].score<<endl;
}
cout<<"************************本次打印结束****************************"<
<endl;
system("pause");
system("cls");
}
void Delete(Student stu[])
{
int m=Read(stu);
system("cls");
cout<<"请输入想要删除对象的学号"<
<endl;
int id;
cin>>id;
for(int i=0;i<=m;i++)
{
if((id-1)==i)
{
cout<<"该学生的信息为:"<
<endl;
cout<
<stu[i].id<<"\t"<<stu[i].name<<"\t"<<stu[i].score<<endl;
}
}
if(id>m)
{
cout<<"没有找到该同学信息"<
<endl;
}
cout<<"您确定要删除该学生信息?Y/N"<
<endl;
char ch;
cin>>ch;
if(ch=='Y'||'y')
{
for(int j=i;j
<m-1;j++)
{
stu[j].ID=stu[j+1].ID;
stu[j].name=stu[j+1].name;
stu[j].score=stu[j].score;
}
Write(stu,m-1);
cout<<"删除成功!"<
<endl;
}
else
{
system("pause");
system("cls");
}
}
void Add(Student stu[])
{
system("cls");
int m=Read(stu);
cout<<"请输入添加学生的信息"<
<endl;
cin>>stu[m].ID>>stu[m].name>>stu[m].score;
Write(stu,m+1);
cout<<"添加成功!"<
<endl;
system("pause");
system("cls");
}
int main()
{
for( ; ; )
{
switch(Menu())
{
case 1: Input(stu);break;
case 2: Print(stu);break;
case 3: Delete(stu);break;
case 4: Add(stu);break;
case 5: cout<<"感谢您的使用"<
<endl;exit(0);
}
}
}
可能bug多,我们可以一起来改呀!
</endl;exit(0);
</endl;
</endl;
</endl;
</m-1;j++)
</endl;
</endl;
</stu[i].id<<"\t"<<stu[i].name<<"\t"<<stu[i].score<<endl;
</endl;
</endl;
</endl;
</stu[i].id<<"\t"<<stu[i].name<<"\t"<<stu[i].score<<endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</stu[i].id<<stu[i].name<<stu[i].score<<endl;
</number<<endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
C语言大作业,C语言高手们救下小弟啊```
/***************Score.h******************/
#ifndef _SCORE_H
#define _SCORE_H
#include
#include
#include
#include
#define N 10
#define STUDENT_COUNT 50 //学生数
#define LESSON_COUNT 3 //课程数
#define SUM_SORT 9
#define MATH_SORT 0
#define ENGLISH_SORT 1
#define COMPUTER_SORT 2
#define SUM_STATISTICS 4
#define MATH_STATISTICS 5
#define ENGLISH_STATISTICS 6
#define COMPUTER_STATISTICS 7
#define SEARCH 8
typedef struct _Student
{
char id[N]; //学号
char name[N]; //姓名
int score[LESSON_COUNT]; //成绩
int sum; //总分
}Student;
void swap(Student *stu1, Student *stu2);
int cmp(char a[N], char b[N]);
void Sort(Student stu[] , int count , int lessonId);
int Search(Student stu[] , int count, char studentId[10], Student * student);
int Sum(int score[] , int count);
int Menu();
void ReadData(Student stu[] , int count);
#endif
/****************Main.c*********************/
#include "Score.h"
void main()
{
Student stu[STUDENT_COUNT];
Student s;
int menuitem;
int i ;
int k = 0;
char n[10]={'\0'};
//清屏
system("cls");
//读入学生信息
ReadData(stu, STUDENT_COUNT);
//计算学生总成绩
for (i=0; i
<student_count; i++)
stu[i].sum = Sum(stu[i].score,3);
while(1)
{
//显示功能菜单,并获得选择的菜单项
menuitem = Menu();
switch(menuitem)
{
//按总分排序
case SUM_SORT:
{
Sort(stu, STUDENT_COUNT, SUM_SORT);
printf ("Id\t\tName\tMath\tEnglish\tComputer Sum\n");
for (i=0; i
<student_count; i++)
printf ("%s\t%s\t%d\t%d\t%d\t %d\n",stu[i].id,stu[i].name ,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum);
getchar();
break;
}
//按数学成绩排序
case MATH_SORT:
{
Sort(stu, STUDENT_COUNT, MATH_SORT);
printf ("Id\t\tName\tMath\tEnglish\tComputer Sum\n");
for (i=0; i
<student_count; i++)
printf ("%s\t%s\t%d\t%d\t%d\t %d\n",stu[i].id,stu[i].name ,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum);
getchar();
break;
break;
}
//按英语成绩排序
case ENGLISH_SORT:
{
Sort(stu, STUDENT_COUNT, ENGLISH_SORT);
printf ("Id\t\tName\tMath\tEnglish\tComputer Sum\n");
for (i=0; i
<student_count; i++)
printf ("%s\t%s\t%d\t%d\t%d\t %d\n",stu[i].id,stu[i].name ,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum);
getchar();
break;
break;
}
//按计算机成绩排序
case COMPUTER_SORT:
{
Sort(stu, STUDENT_COUNT, COMPUTER_SORT);
printf ("Id\t\tName\tMath\tEnglish\tComputer Sum\n");
for (i=0; i
<student_count; i++)
printf ("%s\t%s\t%d\t%d\t%d\t %d\n",stu[i].id,stu[i].name ,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum);
getchar();
break;
break;
}
//统计数学成绩不及格人数
case MATH_STATISTICS:
{
k=0;
Sort(stu, STUDENT_COUNT, MATH_SORT);
for (i=0; i
<student_count; i++)
if (stu[i].score[0]<60)
break;
for (;i
<student_count; i++)
printf ("%d\t%s\t%s\t%d\n",k++,stu[i].id,stu[i].name,stu[i].score[0]);
getchar();
break;
}
//按英语成绩统计
case ENGLISH_STATISTICS:
{
k=0;
Sort(stu, STUDENT_COUNT, ENGLISH_SORT);
for (i=0; i
<student_count; i++)
if (stu[i].score[1]<60)
break;
for (;i
<student_count; i++)
printf ("%d\t%s\t%s\t%d\n",k++,stu[i].id ,stu[i].name,stu[i].score[1]);
getchar();
break;
}
//按计算机成绩统计
case COMPUTER_STATISTICS:
{
k=0;
Sort(stu, STUDENT_COUNT, COMPUTER_SORT);
for (i=0; i
<student_count; i++)
if (stu[i].score[2]<60)
break;
for (;i
<student_count; i++)
printf ("%d\t%s\t%s\t%d\n",k++,stu[i].id,stu[i].name,stu[i].score[2]);
getchar();
break;
}
//按学号搜索学生,并显示学生成绩
case SEARCH:
{
printf ("Please enter an ID:");
scanf ("%s",n);
if (Search(stu,STUDENT_COUNT,n,&s))
{
printf ("Id\t Name\tMath\tEnglish\tComputer Sum\n");
printf ("%s %s\t%d\t%d\t%d\t %d",s.id,s.name,s.score [0],s.score [1],s.score [2],s.sum);
getchar();
}
else
{
printf ("No such student! %s\n",n);
getchar();
}
break;
}
}
printf("\nPress AnyKey to Continue... ");
getchar();
}
}
/*****************Menu.c******************/
#include "Score.h"
//显示功能菜单,返回选择的菜单项
int Menu()
{
int menuitem ;
int item;
while(1)
{
menuitem = -1;
item = -1;
while ( menuitem != 0 && menuitem != 1 && menuitem != 2 && menuitem != 3 )
{
system("cls");
printf("\n\t\t Main Menu\n") ;
printf("\n\t\t1. Sort\n");
printf("\t\t2. Statistics\n");
printf("\t\t3. Search\n");
printf("\t\t0. Exit\n\n");
printf("\tPlease choose an item(0-3):");
scanf("%d",&menuitem);
if (menuitem == 0 || menuitem == -1) exit(0);
}
switch(menuitem)
{
case 1:
{
while(item != 0 && item != 1 && item != 2 && item != 3 && item != 4)
{
system("cls");
printf("\n\t\t Sort Menu\n");
printf("\n\t\t1. Sort by Math score\n");
printf("\t\t2. Sort by English score\n");
printf("\t\t3. Sort by Computer score\n");
printf("\t\t4. Sort by Sum score\n");
printf("\t\t0. return\n\n");
printf("\tPlease choose an item(0-4):");
scanf("%d",&item);
if (item == 0 || item == -1) break;
}
switch(item)
{
case 1:
return MATH_SORT;
case 2:
return ENGLISH_SORT;
case 3:
return COMPUTER_SORT;
case 4:
return SUM_SORT;
}
break;
}
case 2:
{
while(item != 0 && item != 1 && item != 2 && item != 3 && item != 4)
{
system("cls");
printf("\n\t\t Statitics Menu\n");
printf("\n\t\t1. Statitics by Math score\n");
printf("\t\t2. Statitics by English score\n");
printf("\t\t3. Statitics by Computer score\n");
printf("\t\t0. return\n\n");
printf("\tPlease choose an item(0-4):");
scanf("%d",&item);
if (item == 0) break;
}
switch(item)
{
case 1:
return MATH_STATISTICS;
case 2:
return ENGLISH_STATISTICS;
case 3:
return COMPUTER_STATISTICS;
case 4:
return SUM_STATISTICS;
}
break;
}
case 3:
{
return SEARCH;
}
}
}
}
/**************ReadData.c******************/
#include "Score.h"
void ReadData(Student stu[] , int count)
{
FILE *fp;
int i;
char ch[10];
if((fp = fopen("Score.dat","r")) == NULL)
{
printf("\tCan't open the file: Score.dat.\n\tPress AnyKey to Exit... ");
getchar();
exit(0);
}
fscanf(fp,"%s%s%s%s%s",ch,ch,ch,ch,ch);
for(i = 0 ; i < count ; i++)
fscanf(fp,"%s %s%d%d%d",stu[i].id,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
}
/***************code.c****************/
#include "Score.h"
void swap(Student *stu1, Student *stu2)
{
int temp;
char s[N];
strcpy(s,(*stu1).id);
strcpy((*stu1).id , (*stu2).id);
strcpy((*stu2).id,s);
strcpy(s,(*stu1).name );
strcpy((*stu1).name,(*stu2).name );
strcpy((*stu2).name, s);
temp = (*stu1).score [0];
(*stu1).score [0] = (*stu2).score[0];
(*stu2).score[0] = temp;
temp = (*stu1).score [1];
(*stu1).score [1] = (*stu2).score[1];
(*stu2).score[1] = temp;
temp = (*stu1).score [2];
(*stu1).score [2] = (*stu2).score[2];
(*stu2).score[2] = temp;
temp = (*stu1).sum ;
(*stu1).sum = (*stu2).sum;
(*stu2).sum = temp;
}
int cmp(char a[N], char b[N])
{
int i = 0;
for (i=0; i<9; i++)
if (a[i]!=b[i])
return 0;
return 1;
}
/************************************************************************************************/
//Sort function
//功能:排序
//参数:Student stu[]
// int count:要排序的学生数目
// int lessonId:要排序的课程编号
// 数学:MATH_SORT; 英语:ENGLISH_SORT;计算机:COMPUTER_SORT;总分:SUM_SORT
/************************************************************************************************/
void Sort(Student stu[] , int count , int lessonId)
{
int i,k;
if (lessonId == SUM_SORT)//sort by sum
{
for (i=0; i
<count-1; i++)
for (k = i+1; k
<count; k++)
{
if (stu[i].sum < stu[k].sum )
{
swap(&stu[i],&stu[k]);//swap
}
}
}
else
{
for (i=0; i
<count-1; i++)
for (k = i+1; k
<count; k++)
{
if (stu[i].score[lessonId] < stu[k].score[lessonId] )
{
swap(&stu[i],&stu[k]);//sweet
}
}
}
}
/************************************************************************************************/
//功能:按学号搜索学生
//参数:Student stu[]
// int count:学生数目
// int lessonId:要搜索的学号
// Student * student: 搜索到的学生
//返回值:如果搜索到的学生返回1,否则返回0
/************************************************************************************************/
int Search(Student stu[] , int count, char studentId[10], Student * student)
{
int i;
int state = 0;
for (i=0; i
<student_count; i++)
if (cmp(stu[i].id,studentId))
{
strcpy((*student).id,stu[i].id);
strcpy((*student).name,stu[i].name );
(*student).score[0] = stu[i].score [0];
(*student).score[1] = stu[i].score [1];
(*student).score[2] = stu[i].score [2];
(*student).sum = stu[i].sum;
return 1;
}
return 0;
}
/************************************************************************************************/
//功能:计算所有课程的总分
//参数:Student stu[]
// int count:学科数目
//返回值:总分
/************************************************************************************************/
int Sum(int score[] , int count)
{
int sum = 0;
while (count >0)
sum += score[--count];
return sum;
}
上面这位哥们儿,我把你的代码拷走了哈……
谢谢了!!真厉害!
上面的程序符合 以磁盘文件保存 吗?
貌似这个问题是实现EXCEL的功能
大学里,老师就爱拿这个来出题来做。。。
这是我在大学做过的课程设计,你看看:
/*
程序功能:
能完成每位学生的某门课程的平时成绩和期末考试成绩的录入,
完成每位学生的总评成绩计算(平时成绩*30%+期末考试成绩*70%)并生成数据文件,
生成分数段统计文件(不及格人数,60-69数,70-79人数,80-89人数,90-100人数,及格率),
通过学生成绩的数据文件查询学生成绩(查询条件自定)。
通过学生成绩的分段统计文件输出学生成绩分段情况和及格率。
程序要求:
(1)能够完成300人以内任何人数的成绩处理。
(2)程序要有主控菜单
*/
#include
#include
#include
struct stud
{
long num;
char name[20];
double score;
};
typedef struct stucode
{
struct stud student ;
struct stucode *next;
}L;
void menu();
void createlist(struct stucode **r);
void out(struct stucode *r);
void search1(struct stucode *r);
void search2(struct stucode *r);
void del(struct stucode **r);
void insert(struct stucode **r);
void sort(struct stucode **r);
void main()
{
char choose;
int flag=1;
struct stucode *r=NULL;
while(flag)
{
system("cls");
menu();
choose=getchar();
switch(choose)
{
case '1':
createlist(&r);
out(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '2':
search1(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '3':
search2(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '4':
del(&r);
out(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '5':
insert(&r);
out(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '6':
sort(&r);
out(r);
printf("Testing function 1\nPress any key to continue\n");
getchar();
getchar();
break;
case '7':
out(r);
printf("Testing function 7\nPress any key to continue\n");
getchar();
getchar();
break;
case '0':
flag=0;
printf("The end.\n");
break;
default: printf("\nWrong Selection!(选择错误,请重选!)\n");getchar();getchar();
}
}
}
void createlist(struct stucode **r)
{
struct stucode *p,*t;
long n;
char a[20];
double s;
if(*r) *r=NULL;
printf(" \n请输入:\n 学号(请按学号升序排列) 姓名 分数 (若要结束请输入三个为零)\n");
scanf("%ld%s%lf",&n,a,&s);
if(n==0) return;
p=(L *)malloc(sizeof(L));
p->student.num=n;
strcpy(p->student.name,a);
p->student.score=s;
p->next=NULL;
*r=p;
scanf("%ld%s%lf",&n,a,&s);
while(n)
{
t=p;
p=(L *)malloc(sizeof(L));
p->student.num=n;
strcpy(p->student.name,a);
p->student.score=s;
p->next=NULL;
t->next=p;
scanf("%ld%s%lf",&n,a,&s);
}
}
void search1(struct stucode *r)
{
long x;
if(!r)
{
printf("没有学生信息可查询!\n");
return ;
}
printf(" 请输入要查询的学生信息的学生学号:\n");
scanf("%ld",&x);
while(r&&r->student.num!=x)
r=r->next;
if(r==NULL)
printf("Error! No such student !\n");
else
printf("%ld %s %.2lf\n",r->student.num,r->student.name,r->student.score);
}
void search2(struct stucode *r)
{
char m[20];
if(!r)
{
printf("没有学生信息可查询!\n");
return ;
}
printf(" 请输入要查询的学生信息的学生姓名:\n");
scanf("%s",m);
while(r&&strcmp(r->student.name,m))
r=r->next;
if(r==NULL)
printf("Error! No such student !\n");
else
printf("%ld %s %.2lf\n",r->student.num,r->student.name,r->student.score);
}
void del(struct stucode **r)
{
long k;
struct stucode *p=*r,*t;
if(!(*r))
{
printf("没有学生信息可删除 !\n");
return ;
}
printf(" 请输入要删除的学生信息的学生学号:\n");
scanf("%ld",&k);
if(p->student.num==k)
*r=(*r)->next,free(p);
else
{
while(p->next&&p->next->student.num!=k)
p=p->next;
if(p->next==NULL)
printf("Error! No such student !\n");
else
{
t=p->next;
p->next=p->next->next;
free(t);
}
}
}
void insert(struct stucode **r)
{
long n;
char a[20];
double s;
L *p,*t,*k;
printf(" 请输入要插入的学生信息的学生学号 姓名 分数:\n");
scanf("%ld%s%lf",&n,a,&s);
p=(L *)malloc(sizeof(L));
p->student.num=n;
p->student.score=s;
strcpy(p->student.name,a);
if(!(*r))
{
*r=p;
(*r)->next=NULL;
return ;
}
if(p->student.num<(*r)->student.num)
p->next=(*r),(*r)=p;
else
{
t=*r;
k=t;
while(t->next&&t->next->student.num<=p->student.num)
t=t->next;
p->next=t->next;
t->next=p;
*r=k;
}
}
void sort(struct stucode **r)
{
struct stucode *t,*p,*q,*z;
if(!r)
{
printf("没有学生信息可排序!\n");
return ;
}
if(!(*r)||!(*r)->next)
return;
t=*r;
p=t->next;
t->next=NULL;
while(p)
{
q=p->next;
if(p->student.score>t->student.score)
{
p->next=t;
t=p;
}
else
{
z=t;
while(z->next&&z->next->student.score>=p->student.score)
z=z->next;
p->next=z->next;
z->next=p;
}
p=q;
}
*r=t;
}
void out(struct stucode *r)
{
printf("\n\n");
if(!r)
{
printf("没有学生信息可输出!\n");
return ;
}
while(r)
{
printf("%ld %s %.2lf\n",r->student.num,r->student.name,r->student.score);
r=r->next;
}
printf("\n\n");
}
void menu()
{
printf("\n 学生信息管理系统\n");
printf("\n 菜单\n\n");
printf("\n 1建立链表并显示\n");
printf("\n 2查找某学号的学生信息\n");
printf("\n 3查找某姓名的学生信息\n");
printf("\n 4删除某学号的学生信息\n");
printf("\n 5插入新的学生信息\n");
printf("\n 6按分数降序排列输出\n");
printf("\n 7输出\n");
printf("\n 0退出\n");
printf("\n 请选择您要执行的选项:\n");
}
数据结构(C语言版)课程设计大作业,急!!!
int a[52]={0};//声明数组初始值,全为0,代表正面朝上
for(int i=2;i<53;i++)
for(int j=i;j<53;j++)
{
if(j%i==0)
{
if(a[j-1]==0)
a[j-1]=1; //1用来代表正面朝下
else
a[j-1]=0;
}
}
for(int k=0;k<52;k++)
{
if(a[k]==0)
printf("第%d张牌是正面向上的",k+1);
}
以数组模拟卡片
TRUE向上
FALSE向下
循环模拟翻卡片
满足条件
card[i]=!card[i];
最后输出值为TRUE的数组元素
#include
#include
int
main()
{
bool
card[52];
memset(card,true,52);
for
(int
i=2,n=1;i<=52;i++,n++)
{
for(int
j=n;j<52;j++)
{
if((j+1)%i==0)
card[j]=!card[j];
}
}
for(int
i=0;i<52;i++)
if(card[i])
printf("%d
",i+1);
return
0;
}
改进
根据题意的翻牌规则
即求约数的过程
一个数的约数如果去掉1
包含自身的个数为奇数
即被翻了奇数次
向下,反之则向上。
#include
int
main()
{
printf("1
");
for(int
i=4;i<=52;i++)
{
int
count=0;
for(int
j=2;j<=i/2;j++)
{
if(i%j==0)
count++;
}
if(count%2!=0)
printf("%d
",i);
}
return
0;
}
可见
在循环上节省了循环次数
而且去掉了申请CARD的空间
只需要一个count变量即可
以数组模拟卡片 TRUE向上 FALSE向下
循环模拟翻卡片 满足条件 card[i]=!card[i];
最后输出值为TRUE的数组元素
#include
#include
int main()
{
bool card[52];
memset(card,true,52);
for (int i=2,n=1;i<=52;i++,n++)
{
for(int j=n;j<52;j++)
{
if((j+1)%i==0) card[j]=!card[j];
}
}
for(int i=0;i<52;i++)
if(card[i]) printf("%d ",i+1);
return 0;
}
改进 根据题意的翻牌规则 即求约数的过程 一个数的约数如果去掉1 包含自身的个数为奇数 即被翻了奇数次 向下,反之则向上。
#include
int main()
{
printf("1 ");
for(int i=4;i<=52;i++)
{
int count=0;
for(int j=2;j<=i/2;j++)
{
if(i%j==0) count++;
}
if(count%2!=0) printf("%d ",i);
}
return 0;
}
可见 在循环上节省了循环次数 而且去掉了申请CARD的空间 只需要一个count变量即可
C语言课程设计
给我一百分我就报
如果我没有记错,这上面有:http://www.wenluxuan.com/
#include
#include
#include
#define N 20
#define M 100
struct Information //声明包含课程信息的结构体
{
char bianhao[N]; //课程编号
char mingcheng[N]; //课程名称
int zongxueshi; //总学时
float xuefen; //学分
int kaikexueqi; //开课学期
}lesson[M];
int n; //定义输入课程总数
FILE *fp; //定义指针变量
void add() /*定义录入功能函数*/
{
int i;
printf("\n请输入录入课程信息的总数:");
scanf("%d",&n);
fp=fopen("e:\\111.txt","wb+");
for (i=1;i<=n;i++)
{
printf("\n\t请输入第%d个课程的编号(10s):",i);
scanf("%s",lesson[i-1].bianhao);
printf("\n\t请输入第%d个课程的名称(10s):",i);
scanf("%10s",lesson[i-1].mingcheng);
printf("\n\t请输入第%d个课程的总学时(d):",i);
scanf("%5d",&lesson[i-1].zongxueshi);
printf("\n\t请输入第%d个课程的学分(f):",i);
scanf("%f",&lesson[i-1].xuefen);
printf("\n\t请输入第%d个课程的开课学期(d):",i);
scanf("%d",&lesson[i-1].kaikexueqi);
printf("\n\t提示:您已成功录入第%d条信息\n",i);
fwrite(&lesson[i-1],sizeof(struct Information),1,fp); /*保存设备信息至文件*/
}
}
void scan() /*定义浏览功能函数*/
{
int i;
printf("\n\t 显示所有浏览设备信息:");
printf("\n编号\t名称\t总学时\t学分\t开课学期");
fp=fopen("e:\\111.txt","rb");
for (i=0;i
<n;i++)
{
fread(&lesson[i],sizeof(struct Information),1,fp);
printf("\n%s,%8s,%5d,\t%.2f,%8d",lesson[i].bianhao,
lesson[i].mingcheng,lesson[i].zongxueshi,lesson[i].xuefen,lesson[i].kaikexueqi);
}
rewind(fp);
fclose(fp);
printf("\n");
system("pause");
}
void search() /*定义查询功能函数*/
{
int i,b,c;
do
{
float search;
char find[20];
fp=fopen("e:\\111.txt","rb");
printf("\n\t请选择查询方式:1.根据学分;2.根据课程编号;3.根据课程名称");
scanf("%d",&b);
switch (b)
{
case 1:
printf("\n**请输入课程的学分:");
scanf("%f",&search);
printf("\n编号\t名称\t总学时\t学分\t开课学期");
for(i=0;i
<n;i++)
{
if (lesson[i].xuefen==search)
{
printf("\n%s,%8s,%5d,\t%.2f,%8d",lesson[i].bianhao,
lesson[i].mingcheng,lesson[i].zongxueshi,lesson[i].xuefen,lesson[i].kaikexueqi);
}
}goto B;
case 2:
printf("\n**请输入课程的编号:");
scanf("%s",find);
printf("\n编号\t名称\t总学时\t学分\t开课学期");
for(i=0;i
<n;i++)
{
if (!strcmp(lesson[i].bianhao,find))
{
printf("\n%s,%8s,%5d,\t%.2f,%8d",lesson[i].bianhao,
lesson[i].mingcheng,lesson[i].zongxueshi,lesson[i].xuefen,lesson[i].kaikexueqi);
}
}goto B;
case 3:
printf("\n**请输入课程的名称:");
scanf("%s",find);
printf("\n编号\t名称\t总学时\t学分\t开课学期");
for(i=0;i
<n;i++)
{
if (!strcmp(lesson[i].mingcheng,find))
{
printf("\n%s,%8s,%5d,\t%.2f,%8d",lesson[i].bianhao,
lesson[i].mingcheng,lesson[i].zongxueshi,lesson[i].xuefen,lesson[i].kaikexueqi);
}
}goto B;
default:printf("输入错误,请重新输入:\n");
}
B:fclose(fp);
printf("\n\t**1.继续\n\t**0.返回主菜单");
printf("\n\t 请输入您的选择:");
scanf("%d",&c);
}while (c);
}
void correct() /*定义修改功能函数*/
{
int i;
char find[20];
printf("\n**请输入您修改课程的名称:");
scanf("%s",find);
for(i=0;i
<n;i++)
if (strcmp(lesson[i].mingcheng,find)==0)
{
char news[20];
printf("\n**请输入您要修改的课程信息:\n");
printf("\n\t请重新输入第%d个课程编号(10s):",i+1);
scanf("%s",news);strcpy(lesson[i].bianhao,news);
printf("\n\t请重新输入第%d个课程名称(10s):",i+1);
scanf("%s",news);strcpy(lesson[i].mingcheng,news);
printf("\n\t请重新输入第%d个课程总学时(d):",i+1);
scanf("%d",&lesson[i].zongxueshi);
printf("\n\t请重新输入第%d个课程学分(f):",i+1);
scanf("%f",&lesson[i].xuefen);
printf("\n\t请重新输入第%d个课程开课学期(d):",i+1);
scanf("%d",&lesson[i].kaikexueqi);
printf("\n\t提示:您已成功修改信息\n");
fp=fopen("e:\\steven.txt","a+");
rewind(fp);
fwrite(&lesson[i-1],sizeof(struct Information),1,fp);
}
}
void del() /*定义删除功能函数*/
{
char find[20];
int i;
printf("\n**请输入您删除课程的名称:");
scanf("%s",find);
for(i=0;i
<n;i++)
if (strcmp(lesson[i].mingcheng,find)==0)
{
strcpy(lesson[i].bianhao,lesson[i+1].bianhao);
strcpy(lesson[i].mingcheng,lesson[i+1].mingcheng);
lesson[i].zongxueshi=lesson[i+1].zongxueshi;
lesson[i].xuefen=lesson[i+1].xuefen;
lesson[i].kaikexueqi=lesson[i+1].kaikexueqi;
}
printf("\n***提示:您已成功删除该设备信息!");
n=n-1;
}
void menu() /*定义主菜单功能*/
{
printf("\n\t\t *********欢迎进入课程管理系统!*******");
printf("\n\t\t***1.录入功能");
printf("\t\t\t2.浏览功能");
printf("\n\t\t***3.查询功能");
printf("\t\t\t4.修改功能");
printf("\n\t\t***5.删除功能");
printf("\t\t\t0.*-EXIT-*");
printf("\n\n\t 请输入您的选择:");
}
void main()
{
system("color 5f");
int a;
C:menu();
scanf("%d",&a);
switch(a)
{
case 0:printf("***正在退出**谢谢使用本系统,再见");break;
case 1:add();goto C; /*录入功能*/
case 2:scan();goto C; /*浏览功能*/
case 3:search();goto C; /*查询功能*/
case 4:correct();goto C; /*修改功能*/
case 5:del();goto C; /*删除功能*/
}
}
</n;i++)
</n;i++)
</n;i++)
</n;i++)
</n;i++)
</n;i++)