楼主你好这是我的专周做的我也是大一的你可以稍加修改就好很适合大一的
#include <stdioh>
#include <conioh>
#include <stringh> //包含使用strcmp的头文件
#include "baohanh"
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;
我这是源代码已经调试过了,在VC++上运行成功了。
#include "stdioh" /I/O函数/
#include "stdlibh" /其它说明/
#include "stringh" /字符串函数/
#include "conioh" /屏幕 *** 作函数/
#include "memh" /内存 *** 作函数/
#include "ctypeh" /字符 *** 作函数/
#include "alloch" /动态地址分配函数/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE fp,fp1;
void shuru()
{
if((fp=fopen("s_scoretxt","ab+"))==NULL)
{
printf("cannot open this file\n");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{
printf("\nPlease shuru xuehao:");
gets(dataxuehao);
printf("Please shuru mingzi:");
gets(datamingzi);
printf("Please shuru yuwen score:");
gets(temp);datascore[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);datascore[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);datascore[2]=atof(temp);
printf("Please shuru wuli score:");
gets(temp);datascore[3]=atof(temp);
printf("Please shur huaxue score:");
gets(temp);datascore[4]=atof(temp);
datascore[5]=datascore[0]+datascore[1]+datascore[2]+datascore[3]+datascore[4];
fwrite(&data,sizeof(data),1,fp);
printf("anothery/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen("s_scoretxt","rb+"))==NULL)
{
printf("Cannot reading this file\n");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\n");
for(j=0,k=1;j<i;j++,k++)
{
info[j]mingci=k;
printf("%6s %8s %31f %31f %31f %31f %31f %31f\n",info[j]xuehao,info[j]mingzi,info[j]score[0],info[j]score[1],info[j]score[2],info[j]score[3],info[j]score[4],
info[j]score[5]);
}
getch();
fclose(fp);
}
void xiugai()
{
if((fp=fopen("s_scoretxt","rb+"))==NULL||(fp1=fopen("temptxt","wb+"))==NULL)
{
printf("Cannot open this file\n");
exit(0);
}
printf("\nPLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(dataxuehao);
if(j==i)
{
printf("xuehao:%s\nmingzi:%s\n",dataxuehao,datamingzi);
printf("Please shuru mingzi:");
gets(datamingzi);
printf("Please shuru yuwen score:");
gets(temp);datascore[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);datascore[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);datascore[2]=atof(temp);
printf("Please input wuli score:");
gets(temp);datascore[3]=atof(temp);
printf("Please input huaxue score:");
gets(temp);datascore[4]=atof(temp);
datascore[5]=datascore[0]+datascore[1]+datascore[2]+datascore[3]+datascore[4];
} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}
fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_scoretxt","rb"))==NULL)
{
printf("\nCannot open this file\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(dataxuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",dataxuehao,datamingzi,datascore[0],datascore[1],datascore[2],datascore[3],datascore[4],datascore[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_scoretxt","rb+"))==NULL||(fp1=fopen("temptxt","wb+"))==NULL)
{
printf("\nopen scoretxt was failed!");
getch();
exit(0);
}
printf("\nPlease input ID which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(dataxuehao);
if(j==i)
{
printf("Anykey will delet it\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_scoretxt");
rename("temptxt","s_scoretxt");
printf("Data delet was succesful!\n");
printf("Anykey will return to main");
getch();
}
main()
{
while(1)
{
clrscr(); /清屏幕/
gotoxy(1,1); /移动光标/
textcolor(YELLOW); /设置文本显示颜色为**/
textbackground(BLUE); /设置背景颜色为蓝色/
window(1,1,99,99); / 制作显示菜单的窗口,大小根据菜单条数设计/
clrscr();
printf("welcome to use student manage\n");
printf("menu\n");
printf(" ========================================================= \n");
printf(" 1>shuru 2>xiugai \n");
printf(" 3>shanchu 4>chazhao \n");
printf(" 5>xianshi 6>exit \n");
printf(" \n");
printf(" --------------------------------------------------------- \n");
printf(" Please input which you want(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':exit(0);
default: continue;
}
}
#include<stdioh>
#include<stdlibh>
#include<timeh>
int main(){
int i,a[50],b[50],sum=0,count=0;
float average;
printf("随机生成50个两位正整数:\n");
srand((unsigned)time(NULL));
for(i=0;i<50;i++){
a[i]=rand()%90+10;
sum=sum+a[i];
if((i+1)%10==0)
printf("%d\n",a[i]);
else
printf("%d ",a[i]);
}
average=(float)sum/50;
printf("高于平均值的元素:\n");
for(i=0;i<50;i++){
if(a[i]>average){
count++;
if(count%10==0)
printf("%d\n",a[i]);
else
printf("%d ",a[i]);
}
}
printf("\n含有数字5的元素:\n");
count=0;
for(i=0;i<50;i++){
if(a[i]/10==5 || a[i]%10==5){
b[count]=a[i];
count++;
}
}
for(i=0;i<count;i++){
if(b[i]%10==0)
printf("%d\n",b[i]);
else
printf("%d ",b[i]);
}
return 0;
}
#include <stdioh>
int main(void)
{
int i,x,n;
int a[10];
printf("输入数组元素的个数:");
scanf("%d",&n);
printf("输入数组%d个元素:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("输入x:");
scanf("%d",&x);
for(i=0;i<n;i++)
{
if(a[i]!=x)continue;
if(i>n)
printf("没有找到与%d相同的元素!\n",x);
else
printf("和%d相同的数组元素是a[%d]=%d\n",x,i,a[i]);
}
return 0;
}
加上括号就可以了
《C程序设计语言习题解答》(CLVIS LTONDO)电子书网盘下载免费在线阅读
链接:> 密码:2tj7
书名:C程序设计语言习题解答
作者:CLVIS LTONDO
出版社:清华大学出版社
出版年份:1997-11-1
页数:216
内容简介:《大学计算机教育丛书·C程序设计语言习题解答(第2版)(影印版)》由清华大学出版社出版。
以上就是关于我是大一的学生 老师让我们做一个c语言课程设计 现在给出三道 希望大家 帮帮忙 编写一个工资管理的程序。全部的内容,包括:我是大一的学生 老师让我们做一个c语言课程设计 现在给出三道 希望大家 帮帮忙 编写一个工资管理的程序。、C语言课程设计~~~ 要求编写一段程序,题目是《校际运动会管理系统》、C语言程序设计这道题,求求等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)