找回密码
 注册
快捷导航
查看: 511|回复: 8

【求助】c语言达人请进,帮小弟完成课设啊,nb相谢

 关闭 [复制链接] |自动提醒
阅读字号:

661

回帖

12

积分

1254

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2005-8-14
发表于 2006-6-27 18:25:22| 字数 4,885| - 中国–江苏 移动/全省通用 | 显示全部楼层 |阅读模式
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
#include "mem.h"   
#include "ctype.h"
#include "alloc.h"
struct score
{
int mingci;
char number[8];
char Name[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;

void input()
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
  printf("cannot open this file.\n");
  getch();exit(0);
}
for(i=0;i<=1000;i++)
{
    printf("\nPlease input number:");
    gets(data.number);
    printf("Please input name:");
    gets(data.Name);
    printf("Please input Chinese score:");
    gets(temp);data.score[0]=atof(temp);
    printf("Please input math score:");
    gets(temp);data.score[1]=atof(temp);
    printf("Please input English score:");
    gets(temp);data.score[2]=atof(temp);
    printf("Please input physics score:");
    gets(temp);data.score[3]=atof(temp);
    printf("Please shur chemistry score:");
    gets(temp);data.score[4]=atof(temp);
    data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
    fwrite(&data,sizeof(data),1,fp);
    printf("another?y/n");
    ch=getch();
    if(ch=='n'||ch=='N')
    break;
} fclose(fp);
}
void xianshi()
{
    float s;int n;
    if((fp=fopen("s_score.txt","rb+"))==NULL)
    {
     printf("Cannot reading this file.\n");
     exit(0);
    }
    for(i=0;i<=1000;i++)
    {
     if((fread(&info,sizeof(info),1,fp))!=1)
     break;
    }
    printf("\nNumber  Name   chinese  math   English  physics  chemistry total\n");
    for(j=0,k=1;j<i;j++,k++)
    {
      info[j].mingci=k;
      printf("%6s %8s   %3.1f   %3.1f    %3.1f    %3.1f    %3.1f   %3.1f\n",info[j].number,info[j].Name,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_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
    {
     printf("Cannot open this file.\n");
     exit(0);
    }
    printf("\nPLease input xiugai number:");
    scanf("%d",&i); getchar();
    while((fread(&data,sizeof(data),1,fp))==1)
    {
    j=atoi(data.number);
        if(j==i)
        {
        printf("number:%s\nName:%s\n",data.number,data.Name);
            printf("Please input Name:");
            gets(data.Name);
            printf("Please input Chinese score:");
            gets(temp);data.score[0]=atof(temp);
            printf("Please input math score:");
            gets(temp);data.score[1]=atof(temp);
            printf("Please input English score:");
            gets(temp);data.score[2]=atof(temp);
            printf("Please input physics score:");
            gets(temp);data.score[3]=atof(temp);
            printf("Please input chemistry score:");
            gets(temp);data.score[4]=atof(temp);
            data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[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_score.txt","rb"))==NULL)
    {
    printf("\nCannot open this file.\n");
        exit(0);
    }
    printf("\nPLease input number to watch:");
    scanf("%d",&i);
    while(fread(&data,sizeof(data),1,fp)==1)
    {
        j=atoi(data.number);
        if(i==j)
        {
         printf("number:%s   Name:%s\nChinese:%f\n math:%f\n English:%f\n physics:%f\n chemistry:%f\n ",data.number,data.Name,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
        }getch();
    }
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
    {
     printf("\nopen score.txt 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(data.number);
        if(j==i)
        {

            printf("Anykey will delet it.\n");
            getch();
            continue;
        }
        fwrite(&data,sizeof(data),1,fp1);
    }
   fclose(fp);
   fclose(fp1);
   remove("s_score.txt");
   rename("temp.txt","s_score.txt");
   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>input        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':input();break;
    case '2':xiugai(); break;
    case '3':shanchu();  break;
    case '4':chazhao(); break;
    case '5':xianshi();   break;
    case '6':exit(0);
    default: continue;
    }
}
}


这个程序,运行以后 5 那个选项的察看部分,也就是代码中void xianshi()这个函数,想用
T41p 1.8G T2 1G 5K160/5K100 BT 2915ABG DVD SXGA+ 既然做不了潜水艇那我决定作水王

661

回帖

12

积分

1254

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2005-8-14
 楼主| 发表于 2006-6-27 18:26:16| 字数 4,284| - 中国–江苏 移动/全省通用 | 显示全部楼层
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int INDEX[32];
struct STUDENT
{
int id,age,chinese,math,english;
char name[21];
}students[32];

void page_title(char *menu_item)
{
clrscr();
printf(">>> Student manager system <<<\n\n- %s -\n\n",menu_item);
}

void return_confirm(void)
{
printf("\npress any key back……\n");
getch();
}

void student_new(void)
{
int n;
page_title("Input student basic information");
for(n=0;n<32;n++)
if(students[n].id==0) break;
printf("ID:");
scanf("%d",&students[n].id);
printf("Name:");
scanf("%s",&students[n].name);
printf("Age:");
scanf("%d",&students[n].age);
return_confirm();
}

int search_id(void)
{
int n,i;
printf("Please input student number:");
scanf("%d",&i);
for(n=0;n<32;n++)
{
if(students[n].id==i&&students[n].id!=0)
{
printf("ID:%d\n",students[n].id);
printf("Name:%s\n",students[n].name);
printf("Age:%d\n",students[n].age);
return n;
}
}
printf("\nWrong number or number to existed.\n");
return -1;
}

void student_del(void)
{
int n;
page_title("Delete student basic information");
if((n=search_id())!=-1) students[n].id=0;
printf("\n!Student had been delete.\n");
return_confirm();
}

void student_edit(void)
{
int n;
page_title("Edit student basic information");
if((n=search_id())!=-1)
{
printf("\nPlease input new inforambtion:\nID:");
scanf("%d",&students[n].id);
printf("Name:");
scanf("%s",&students[n].name);
printf("Age:");
scanf("%d",&students[n].age);
}
return_confirm();
}

void score_input(void)
{
int s,n,t;
page_title("Input result");
printf("\nUse number key to select subject\n1-Chinese 2-Math 3-English\n");
scanf("%d",&s);
for(n=0;n<32;n++)
{
if(students[n].id!=0)
{
printf("ID:%d Name:%s Result:",students[n].id,students[n].name);
scanf("%d",&t);
switch(s)
        {
        case 1 : students[n].chinese=t;break;
        case 2 : students[n].math=t;break;
        case 3 : students[n].english=t;break;
        }   
}  
}
return_confirm();
}

void score_edit(void)
{
int n;
page_title("Rewrite result");
if((n=search_id())!=-1)
{
printf("Chinese:%d Math:%d English:%d\n",students[n].chinese,students[n].math,students[n].english);
printf("\nPlease rewrite result:\nChinese:");
scanf("%d",&students[n].chinese);
printf("Math:");
scanf("%s",&students[n].math);
printf("English:");
scanf("%d",&students[n].english);
}
return_confirm();
}

void sort_it(char nn)
{
int n,m,p,x,t[32];
for(n=0;n<32;n++)
{
switch(nn)
{
case '1' : t[n]=students[n].id;break;
case '2' : t[n]=students[n].chinese;break;
case '3' : t[n]=students[n].math;break;
case '4' : t[n]=students[n].english;break;
case '5' : t[n]=students[n].chinese+students[n].math+students[n].english;break;
}
}
for(n=0;n<32;n++)
{
x=0;
p=-1;
for(m=0;m<32;m++)
{
if(t[m]>x)
        {
        x=t[m];
        p=m;
        }
}
t[p]=-1;
INDEX[n]=p;
}
}

void browser(void)
{
int n,x;
char k;
sort_it('1');
while(1)
{
page_title("Brower");
printf("Press number key to select or press 0 return\n");
printf("ID-1\tName\t\tAge\tChinese-2\tMath-3\tEnglish-4\tTotal-5\n");
for(n=0;n<32;n++)
{
if(INDEX[n]!=-1)
{
x=INDEX[n];
printf("%d\t%s\t",students[x].id,students[x].name);
printf("%d\t%d\t",students[x].age,students[x].chinese);
printf("%d\t%d\t",students[x].math,students[x].english);
printf("%d\n",students[x].chinese+students[x].math+students[x].english);
}
}
k=getch();
if(k<'6'&&k>'0') sort_it(k);
else if(k=='0') break;
else continue;
}
}


void main(void)
{textcolor(YELLOW);
textbackground(BLUE);
menu: page_title("Menu");
printf("Please use number key to operation \n\n");
printf("1 Input student basic information\n2 Rewrite student basic information\n");
printf("3 Delete student basic information\n4 Input result\n5 Rewrite result\n");
printf("6 Browing...\n \n0 Quit\n");
switch(getch())
{
case '1' : student_new();break;
case '2' : student_edit();break;
case '3' : student_del();break;
case '4' : score_input();break;
case '5' : score_edit();break;
case '6' : browser();break;
case '0' : exit(0);
}
goto menu;
}

这个程序的6(void browser(void))、的显示方法显示.也就是说把第一个程序的显示的方法改成第二个程序的显示方法,能在第一个程序的显示选项中,通过按数字键对不同科目进行排序.有没有达人能告诉小弟该怎么改void xianshi()这个函数阿,最好能把改好的代码放上来,谢谢啦,这是我的课设,过两天就要交了
T41p 1.8G T2 1G 5K160/5K100 BT 2915ABG DVD SXGA+ 既然做不了潜水艇那我决定作水王
回复 支持 反对

使用道具 举报

661

回帖

12

积分

1254

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2005-8-14
 楼主| 发表于 2006-6-27 19:42:46| 字数 4| - 中国–北京–北京 移动 | 显示全部楼层
再顶一下
T41p 1.8G T2 1G 5K160/5K100 BT 2915ABG DVD SXGA+ 既然做不了潜水艇那我决定作水王
回复 支持 反对

使用道具 举报

1064

回帖

0

积分

2685

资产值

入门会员 Rank: 1

注册时间
2004-3-3
发表于 2006-6-27 20:55:49| 字数 12| - 中国–北京–北京 歌华宽带 | 显示全部楼层
总要学会的,还是自己来吧
T61P 8891-CTO
NOKIA 6630
回复 支持 反对

使用道具 举报

1268

回帖

0

积分

2558

资产值

入门会员 Rank: 1

注册时间
2003-11-18
发表于 2006-6-27 23:10:29| 字数 56| - 中国–北京–北京–东城区 联通 | 显示全部楼层
QUOTE:
原帖由 MichaelOwen 于 2006-6-27 20:55 发表
总要学会的,还是自己来吧


说的挺好!!!
回复 支持 反对

使用道具 举报

661

回帖

12

积分

1254

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2005-8-14
 楼主| 发表于 2006-6-27 23:22:11| 字数 12| - 中国–北京–北京 移动 | 显示全部楼层
晕,已经自己改好一部分了
T41p 1.8G T2 1G 5K160/5K100 BT 2915ABG DVD SXGA+ 既然做不了潜水艇那我决定作水王
回复 支持 反对

使用道具 举报

3198

回帖

27

积分

5626

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2004-12-27
发表于 2006-6-28 09:24:06| 字数 9| - 中国–北京–北京 鹏博士BGP | 显示全部楼层
东东太长,看着晕!
封杀带链接的签名!
回复 支持 反对

使用道具 举报

727

回帖

9

积分

902

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2005-11-30
发表于 2006-6-28 11:05:02| 字数 19| - 中国–江苏–南京 电信 | 显示全部楼层
人总要自己学着长大。
俺不会。会也不帮。
demo x30 2672-4au
t60
回复 支持 反对

使用道具 举报

1万

回帖

148

积分

2万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2004-8-23
发表于 2006-6-28 14:03:55| 字数 11| - 中国–广东–广州–天河区 电信/越秀区电信 | 显示全部楼层
主要是太长了,懒得看。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-11-2 19:59 , Processed in 0.080775 second(s), 37 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部