欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      C語(yǔ)言課程設(shè)計(jì)——家庭財(cái)務(wù)管理系統(tǒng)[小編推薦]

      時(shí)間:2019-05-14 23:08:26下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《C語(yǔ)言課程設(shè)計(jì)——家庭財(cái)務(wù)管理系統(tǒng)[小編推薦]》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《C語(yǔ)言課程設(shè)計(jì)——家庭財(cái)務(wù)管理系統(tǒng)[小編推薦]》。

      第一篇:C語(yǔ)言課程設(shè)計(jì)——家庭財(cái)務(wù)管理系統(tǒng)[小編推薦]

      課程設(shè)計(jì)報(bào)告

      課程設(shè)計(jì)題目: 家庭財(cái)務(wù)管理系統(tǒng)

      學(xué)生姓名:

      業(yè): 信息工程 班

      級(jí):

      指導(dǎo)教師:

      2018年

      1月

      8日

      1.需求分析

      根據(jù)家庭賬務(wù)管理的需要,建立一個(gè)“家庭賬務(wù)管理系統(tǒng)”,以方便對(duì)家庭日常收入及支出進(jìn)行記錄和管理。該系統(tǒng)要求:①家庭月收入管理②家庭月支出管理③統(tǒng)計(jì)家庭總收入/總支出④系統(tǒng)提供收入/支出的添加、刪除和修改功能。

      2.總體設(shè)計(jì)

      根據(jù)以上分析,本家庭賬務(wù)管理系統(tǒng)主要包括: ①?gòu)逆I盤(pán)鍵入家庭月收入、月支出數(shù)據(jù); ②查詢?cè)率杖?、月支出明?xì); ③刪除收入、支出數(shù)據(jù); ④修改收入、支出數(shù)據(jù); ⑤統(tǒng)計(jì)總收入/總支出; ⑥退出系統(tǒng)。

      除main()函數(shù)之外,系統(tǒng)還定義了以下函數(shù)來(lái)實(shí)現(xiàn)各部分內(nèi)容: ①add_income():添加收入數(shù)據(jù)函數(shù)。②add_payout():添加支出數(shù)據(jù)函數(shù)。③search_data():查找數(shù)據(jù)函數(shù)。

      ④initialize():初始化函數(shù),讀取文本數(shù)據(jù)。⑤show_info():顯示數(shù)據(jù)函數(shù)。⑥count_total():統(tǒng)計(jì)函數(shù),統(tǒng)計(jì)總收入、總支出。⑦update_data():修改信息函數(shù)。⑧delete_data():刪除數(shù)據(jù)函數(shù)。⑨quit():退出函數(shù)。程序結(jié)構(gòu)功能圖如下:

      3.詳細(xì)設(shè)計(jì)

      3.1收入管理

      3.2支出管理

      4.測(cè)試結(jié)果

      4.1 程序運(yùn)行主菜單

      4.2 添加收入測(cè)試

      4.3 查詢收入明細(xì)測(cè)試

      4.4 刪除收入測(cè)試

      4.5 修改收入測(cè)試

      4.6 添加支出測(cè)試

      4.7 查詢支出明細(xì)測(cè)試

      4.8 刪除支出測(cè)試

      4.9 修改支出測(cè)試

      4.10 統(tǒng)計(jì)總收入/支出測(cè)試

      4.11 退出系統(tǒng)測(cè)試

      軟件操作使用說(shuō)明書(shū)

      本系統(tǒng)采用命令行對(duì)話方式進(jìn)行操作,運(yùn)行后出現(xiàn)主界面(如下圖所示),然后按照主界面菜單指引操作即可。

      6.總結(jié)

      編寫(xiě)程序之前要有一個(gè)整體的思路,不能寫(xiě)到哪里算哪里。這樣很容易遺漏,連續(xù)性也不好。通過(guò)本次的課程設(shè)計(jì)讓我對(duì)于數(shù)組、文件的存放、循環(huán)結(jié)構(gòu)等知識(shí)有了更加透徹的理解。希望在以后的課程設(shè)計(jì)中對(duì)于知識(shí)的運(yùn)用能夠更加的熟練。

      代碼:

      #include #include #include #include #define MAXNAME 11 //家庭成員姓名的最大長(zhǎng)度 #define MAXDETAIL 21 //注最大長(zhǎng)度

      //自定義枚舉類型fi_type,用來(lái)表示收入與支出 typedef enum _fi_type { income=1,//收入 payout =-1 //支出 } fi_type;// 家庭財(cái)務(wù)信息結(jié)構(gòu)體 typedef struct _fi_info { int year;int month;fi_type type;char name[9];float money;char detail[11];}fi_info;

      // 存儲(chǔ)財(cái)務(wù)數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)體 typedef struct _fi_data { fi_info info;struct _fi_data* next;} fi_data;fi_data *head;//財(cái)務(wù)數(shù)據(jù)的頭結(jié)點(diǎn) void menu();//菜單函數(shù) void add_income();void search_income();void delete_income();void update_income();void add_payout();void search_payout();void delete_payout();void update_payout();void count_total();void quit();// void search_data(fi_type type);void delete_data(fi_type type);void update_data(fi_type type);// void initialize();void save_to_file();void clear_data();fi_data *get_last();fi_data *get_previous(fi_data *p);void input_info(fi_info *info);void show_info(fi_data *p);void menu(){ printf(“n”);printf(“tt ~~~~~~~~~~~~~~~~~~~~~~n”);printf(“tt ~~~~~~~~~~~~~~~~~~~~~~n”);printf(“ttt 家庭財(cái)務(wù)管理系統(tǒng)n”);printf(“tt ~~~~~~~~~~~~~~~~~~~~~~n”);printf(“tt ~~~~~~~~~~~~~~~~~~~~~~n”);printf(“tt*******************************************n”);printf(“tt收入管理:”);printf(“1.添加收入”);printf(“ 2.查詢收入明細(xì)n”);printf(“ttt 3.刪除收入”);printf(“ 4.修改收入n”);printf(“tt*******************************************n”);printf(“tt支出管理:”);printf(“5.添加支出”);printf(“ 6.查詢支出明細(xì)n”);printf(“ttt 7.刪除支出”);printf(“ 8.修改支出n”);printf(“tt*******************************************n”);printf(“tt統(tǒng) 計(jì):”);printf(“9.統(tǒng)計(jì)總收入/總支出n”);printf(“tt*******************************************n”);printf(“tt退 出:0.退出系統(tǒng)n”);printf(“tt*******************************************nnn”);} void main(){ int selected=0;initialize();while(selected>=0&&selected<=9){ system(“cls”);menu();printf(“tt>請(qǐng)選擇要進(jìn)行的操作(0-9):”);if(scanf(“%d”,&selected)!=1||selected<0||selected>9){ printf(“tt>輸入有誤!請(qǐng)選擇(0-9)之間的數(shù)字!按任意鍵重試”);getchar();} else { switch(selected){ case 0:exit(0);clear_data();break;case 1:add_income();save_to_file();break;case 2:search_income();break;case 3:delete_income();save_to_file();break;case 4:update_income();save_to_file();break;case 5:add_payout();save_to_file();break;case 6:search_payout();break;case 7:delete_payout();save_to_file();break;case 8:update_payout();save_to_file();break;case 9:count_total();break;} }

      } } void add_income()//添加收入 { fi_data *p=(fi_data *)malloc(sizeof(fi_data));p->next=NULL;input_info(&(p->info));p->info.type=income;if(head==NULL)head=p;else get_last()->next=p;} void add_payout()//添加支出 { fi_data *p=(fi_data *)malloc(sizeof(fi_data));p->next=NULL;input_info(&(p->info));p->info.type=payout;if(head==NULL)head=p;else get_last()->next=p;} //輸入函數(shù)

      void input_info(fi_info *info){ printf(“tt>請(qǐng)輸入年月(YYYY/M)”);scanf(“%d/%d”,&(info->year),&(info->month));printf(“tt>請(qǐng)輸入家庭成員姓名(最大長(zhǎng)度為%d):”,MAXNAME-1);scanf(“%s”,info->name);printf(“tt>輸入金額:”);scanf(“%f”,&(info->money));printf(“tt>請(qǐng)輸入備注(最大長(zhǎng)度為%d):”,20);scanf(“%s”,info->detail);}

      //查找數(shù)據(jù)函數(shù)

      void search_data(fi_type type){ int year=0;int month=0;fi_data *p=NULL;int count=0;char input=' ';while(1){ printf(“tt>請(qǐng)輸入要查詢的年月(YYYY/M)”);if(scanf(“%d/%d”,&year,&month)!=2){ printf(“tt>輸入有誤n”);} else { p=head;count=0;while(p!=NULL){ if((p->info.year==year)&&(p->info.month==month)&&(p->info.type==type)){ show_info(p);system(“PAUSE”);count++;} p=p->next;} if(count==0){ printf(“tt>沒(méi)有找到數(shù)據(jù)n”);} printf(“tt>繼續(xù)查找其他數(shù)據(jù)?(y or n)”);input=getchar();if(input=='y'||input=='Y')continue;else break;} } } //初始化函數(shù),讀取文本數(shù)據(jù) void initialize(){ FILE * fp=NULL;fi_data *p=NULL;fi_data *last=NULL;int count=0;fp=fopen(“data.txt”,“rb”);if(fp==NULL){ fp=fopen(“data.txt”,“w”);fclose(fp);return;} p=(fi_data*)malloc(sizeof(fi_data));memset(p,0,sizeof(fi_data));p->next=NULL;while(fread(&(p->info),sizeof(fi_info),1,fp)==1){ if(head==NULL)head=p;else { last=get_last();last->next=p;} count++;fseek(fp,count*sizeof(fi_info),SEEK_SET);p=(fi_data *)malloc(sizeof(fi_data));memset(p,0,sizeof(fi_data));p->next=NULL;} free(p);p=NULL;fclose(fp);} //顯示信息函數(shù) void show_info(fi_data *p){ int i=0;printf(“|tt|tt|tt|tt|tt|tt|n”);printf(“|NO.t |年/月tt|類型tt|姓名tt|金額tt|備注tt|n”);

      printf(“|%5dt|%4d/%02dt|%4st|%10st|%10.2f|%20s|n”,i+1, p->info.year,p->info.month,p->info.type==income?“收入”:“支出”, p->info.name,p->info.money,p->info.detail);printf(“|tt|tt|tt|tt|tt|tt|n”);} //統(tǒng)計(jì)總收入、總支出 void count_total(){ float total_income=0.0;float total_payout=0.0;fi_data *p=head;while(p!=NULL){ if(p->info.type==income){ total_income+=p->info.money;} else { total_payout+=p->info.money;} p=p->next;} printf(“tt+tt+tt+n”);printf(“tt|合計(jì)收入t|合計(jì)支出t|結(jié)余t|n”);

      printf(“tt%12.2f|%12.2f|%12.2f|n”,total_income,total_payout,total_income-total_payout);printf(“tt+tt+tt+n”);printf(“tt>按任意鍵返回主菜單”);getchar();getchar();} //保存到文件

      void save_to_file(){ FILE *fp=fopen(“data.txt”,“wb”);fi_data *p=head;while(p!=NULL){ fwrite(&(p->info),sizeof(fi_info),1,fp);fseek(fp,0,SEEK_END);p=p->next;} fclose(fp);} //修改信息函數(shù)

      void update_data(fi_type type){ int year=0;int month=0;fi_data *p=NULL;fi_data *pre=NULL;char input;int count=0;int i=0;while(1){ printf(“tt>請(qǐng)輸入要查詢的年月(YYYY/M)”);if(scanf(“%d/%d”,&year,&month)!=2){ printf(“tt>輸入有誤n”);} else { p=head;count=0;while(p!=NULL){ if((p->info.year==year)&&(p->info.month==month)&&(p->info.type==type)){ count++;show_info(p);input_info(&(p->info));printf(“tt修改成功n”);p=get_previous(p);}

      p=p->next;} if(count==0)printf(“tt>沒(méi)有找到數(shù)據(jù)n”);printf(“tt>繼續(xù)查找其他數(shù)據(jù)?(y or n)”);input=getchar();if(input=='y'||input=='Y')continue;else break;} } } void delete_data(fi_type type)//刪除數(shù)據(jù)函數(shù) { int year=0;int month=0;fi_data *p=NULL;fi_data *pre=NULL;int count=0;char input=' ';int i=0;while(1){ printf(“tt>請(qǐng)輸入要查詢的年月(YYYY/M)”);if(scanf(“%d/%d”,&year,&month)!=2){ printf(“tt>輸入有誤n”);} else { p=head;count=0;while(p!=NULL){ if((p->info.year==year)&&(p->info.month==month)&&(p->info.type==type)){ count++;show_info(p);pre=get_previous(p);if(pre==NULL)head=head->next;else pre->next=p->next;free(p);printf(“tt>刪除成功n”);} p=p->next;} if(count==0)

      printf(“tt>沒(méi)有找到數(shù)據(jù)n”);printf(“tt>繼續(xù)查找其他數(shù)據(jù)?(y or n)”);input=getchar();if(input=='y'||input=='Y')continue;else break;} } } void clear_data()//清空鏈表數(shù)據(jù) { fi_data *p=NULL;while(head!=NULL){ if(head->next!=NULL){ p=head;head=head->next;free(p);p=NULL;} else { free(head);head=NULL;} } } fi_data *get_last(){ fi_data * p=head;if(p==NULL)return p;while((p!=NULL)&&(p->next!=NULL))p=p->next;return p;} fi_data *get_previous(fi_data *p){ fi_data *previous=head;while(previous!=NULL){ if(previous->next==p)break;previous=previous->next;} return previous;} void search_payout(){ search_data(payout);} void delete_payout(){ delete_data(payout);} void update_payout(){ update_data(payout);} void search_income(){ search_data(income);} void delete_income(){ delete_data(income);} void update_income(){ update_data(income);}

      第二篇:C語(yǔ)言課程設(shè)計(jì)火車(chē)票系統(tǒng)源代碼

      #include #include #include //火車(chē)票結(jié)構(gòu)體類型// typedef struct Node {int num;

      //編號(hào)// char name[20];

      //起點(diǎn)和終點(diǎn)// char time[5];

      //出發(fā)時(shí)間// int price;

      //車(chē)票價(jià)格// int amount;

      //剩余數(shù)量// struct Node *next;}Node;//創(chuàng)建鏈表并輸入數(shù)據(jù)// struct Node *creat(){ struct Node *head,*r,*s;

      int i=0;

      char choice;

      head=(struct Node *)malloc(sizeof(struct Node));head->next=NULL;r=head;do {

      s=(struct Node *)malloc(sizeof(struct Node));s->next=NULL;printf(“請(qǐng)輸入第%d種火車(chē)票的信息:n”,++i);printf(“請(qǐng)輸入火車(chē)的編號(hào):”);

      scanf(“%d”,&s->num);

      printf(“起點(diǎn)和終點(diǎn):”);scanf(“%s”,s->name);printf(“出發(fā)時(shí)間:”);scanf(“%s”,s->time);printf(“車(chē)票價(jià)格:”);scanf(“%d”,&s->price);printf(“剩余數(shù)量:”);scanf(“%d”,&s->amount);

      r->next=s;

      r=s;

      printf(“Continue?(Y/N)”);scanf(“%s”,&choice);}while(choice=='Y'||choice=='y');

      r->next=NULL;return(head);} //將單鏈表中的信息保存到文件1.txt中// void save(struct Node *h){

      struct Node *s;FILE *fp;

      char filename[10]=“1.txt”;

      fp=fopen(“1.txt”,“wt”);if(fp==NULL){

      printf(“n寫(xiě)文件出錯(cuò),按任意鍵退出!”);getchar();exit(1);}

      for(s=h->next;s!=NULL;s=s->next)

      fprintf(fp,“%d %s %s %d %d n”,s->num,s->name,s->time,s->price,s->amount);

      getchar();fclose(fp);} // 從文件1.txt中讀取信息并存入單鏈表中// struct Node *read(){ struct Node *head,*r,*s;FILE *fp;char filename[10]=“zl.txt”;fp=fopen(“1.txt”,“rt”);if(fp==NULL){

      printf(“讀文件錯(cuò)誤,按任意鍵退出!”);getchar();exit(1);} head=(struct Node *)malloc(sizeof(struct Node));head->next=NULL;r=head;while(!feof(fp)){

      s=(struct Node *)malloc(sizeof(struct Node));fscanf(fp,“%d %s %s %d %d”,&s->num,s->name,s->time,&s->price,&s->amount);

      r->next=s;r=s;

      } r->next=NULL;fclose(fp);

      return head;} //將鏈表中的數(shù)據(jù)輸出// void print(struct Node *h){

      struct Node *s;

      printf(“n火車(chē)票信息如下:n”);

      printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n”);printf(“編號(hào)

      起點(diǎn)和終點(diǎn)

      出發(fā)時(shí)間

      車(chē)票價(jià)格

      剩余票數(shù):n”);

      for(s=h->next;s->next!=NULL;s=s->next){ printf(“ %d

      %10s

      %5s %10d %6dn”,s->num,s->name,s->time,s->price,s->amount);} } //鏈表查詢// struct Node * find(struct Node *h){ int i,j;char s[20];printf(“tt

      查詢方法有以下幾種:n”);printf(“tt

      1.火車(chē)票編號(hào)n”);printf(“tt

      2.起點(diǎn)和終點(diǎn)n”);printf(“tt

      3.出發(fā)時(shí)間n”);printf(“tt

      4.車(chē)票價(jià)格n”);printf(“tt

      5.剩余票數(shù)n”);printf(“請(qǐng)輸入您要查詢的方法的序號(hào):”);scanf(“%d”,&i);switch(i){ case 1:printf(“請(qǐng)輸入你要查詢火車(chē)票的編號(hào):”);scanf(“%d”,&j);

      while(h->next!=NULL)

      {

      h=h->next;

      if(h->num==j)return h;

      }

      return NULL;break;case 2:printf(“請(qǐng)輸入您要查詢火車(chē)票的起點(diǎn)和終點(diǎn):”);scanf(“%s”,s);while(h->next!=NULL){

      h=h->next;if(strcmp(h->name,s)==0)

      return h;

      } return NULL;break;case 3:printf(“請(qǐng)輸入您要查詢火車(chē)票的時(shí)間:”);

      scanf(“%s”,s);

      while(h->next!=NULL)

      {

      h=h->next;

      if(strcmp(h->time,s)==0)

      return h;

      }

      return NULL;

      break;case 4:printf(“請(qǐng)輸入你要查詢火車(chē)票的價(jià)格 :”);scanf(“%d”,&j);

      while(h->next!=NULL)

      {

      h=h->next;

      if(h->price==j)

      return h;

      }

      return NULL;

      break;case 5:printf(“請(qǐng)輸入你要查詢火車(chē)票的剩余票數(shù):”);scanf(“%d”,&j);

      while(h->next!=NULL)

      {

      h=h->next;

      if(h->amount==j)

      return h;

      } return NULL;

      break;} } //修改信息// change(struct Node *h,int k){ int j;struct Node *p;p=find(h);printf(“------------n”);printf(“t

      您要修改哪一項(xiàng)?n”);printf(“t

      1.火車(chē)編號(hào)n”);printf(“t

      2.起點(diǎn)和終點(diǎn)n”);printf(“t

      3.出發(fā)時(shí)間n”);printf(“t

      4.車(chē)票價(jià)格n”);

      printf(“t

      5.剩余票數(shù)n”);printf(“t

      0.退出系統(tǒng)n”);

      printf(“------------n”);printf(“請(qǐng)輸入您要修改項(xiàng)的編號(hào):”);scanf(“%d”,&j);switch(j)

      { case 1:

      printf(“修改后的火車(chē)編號(hào):”);

      scanf(“%d”,&p->num);

      break;

      case 2:

      printf(“修改后的起點(diǎn)和終點(diǎn):”);

      scanf(“%s”,p->name);

      break;

      case 3:

      printf(“修改后的出發(fā)時(shí)間:”);

      scanf(“%s”,p->time);

      break;

      case 4:

      printf(“修改后的車(chē)票價(jià)格:”);

      scanf(“%d”,&p->price);

      break;

      case 5:

      printf(“修改后的剩余票數(shù):”);

      scanf(“%d”,&p->amount);

      break;

      case 0:break;} } //刪除信息// delete(struct Node *h){ struct Node *p;

      int j;

      printf(“請(qǐng)輸入您要?jiǎng)h除的火車(chē)票的編號(hào):”);scanf(“%d”,&j);p=h->next;

      if(p==NULL)

      return 0;while(p!=NULL){ if(p->num==j){

      h->next=p->next;

      free(p);

      return 1;} h=p;p=p->next;

      } return 0;} //添加信息// void append(){

      struct Node *p;

      FILE *fp;

      fp=fopen(“1.txt”,“at+”);

      if(fp==NULL)

      {

      printf(“寫(xiě)文件出錯(cuò),按任意鍵返回.n”);getchar();exit(1);

      }

      printf(“請(qǐng)輸入要添加的火車(chē)票的信息:火車(chē)編號(hào),起點(diǎn)和終點(diǎn),出發(fā)時(shí)間,車(chē)票價(jià)格,剩余票數(shù):n”);scanf(“%d%s%s%d%d”,&p->num,p->name,p->time,&p->price,&p->amount);fprintf(fp,“%d %s %s %d %dn”,p->num,p->name,p->time,p->price,p->amount);getchar();fclose(fp);} //數(shù)據(jù)的統(tǒng)計(jì)// void count(struct Node *h){ struct Node *s;s=h;int i,j,k,n=0;printf(“*****************************************************************************n”);

      printf(“tt

      請(qǐng)選擇您要統(tǒng)計(jì)項(xiàng)目的序號(hào):n”);

      printf(“tt

      1.車(chē)票價(jià)格n”);

      printf(“tt

      2.剩余票數(shù)n”);printf(“tt

      0.退出界面n”);

      scanf(“%d”,&i);switch(i)

      {

      case 1:

      printf(“請(qǐng)輸入您要統(tǒng)計(jì)車(chē)票的價(jià)格的標(biāo)準(zhǔn):”);

      scanf(“%d”,&j);

      printf(“tt

      請(qǐng)選擇低于或高于標(biāo)準(zhǔn):n”);

      printf(“tt

      1.價(jià)格低于%d的個(gè)數(shù)n”,j);

      printf(“tt

      2.價(jià)格高于%d的個(gè)數(shù)n”,j);

      scanf(“%d”,&k);

      if(k==1)

      {

      for(s=h->next;s->next!=NULL;s=s->next)

      if(s->price

      n++;

      printf(“車(chē)票價(jià)格低于%d的個(gè)數(shù)有%d個(gè).n”,j,n);

      }

      else

      {

      for(s=h->next;s->next!=NULL;s=s->next)

      if(s->price>j)

      n++;

      printf(“車(chē)票價(jià)格低于%d的個(gè)數(shù)有%d個(gè).n”,j,n);

      }

      break;

      case 2:

      printf(“請(qǐng)輸入您要統(tǒng)計(jì)剩余票數(shù)的數(shù)量:”);

      scanf(“%d”,&j);

      printf(“tt

      請(qǐng)選擇低于或高于所輸票數(shù):n”);

      printf(“tt

      1.票數(shù)低于%d的個(gè)數(shù)n”,j);

      printf(“tt

      2.票數(shù)高于%d的個(gè)數(shù)n”,j);

      scanf(“%d”,&k);

      if(k==1)

      {

      for(s=h->next;s->next!=NULL;s=s->next)

      if(s->amount

      n++;

      printf(“剩余票數(shù)低于%d的個(gè)數(shù)有%d個(gè).n”,j,n);

      }

      else

      {

      for(s=h->next;s->next!=NULL;s=s->next)

      if(s->amount>j)

      n++;

      printf(“剩余票數(shù)高于%d的個(gè)數(shù)有%d個(gè).n”,j,n);

      }

      break;

      case 0:break;

      } } //保存用戶和密碼到文件2.txt中// void save_user(){

      char file[10]=“2.txt”;FILE *fp;char name[20];char pwd[10];fp=fopen(“2.txt”,“at+”);if(fp==NULL){ printf(“n寫(xiě)文件出錯(cuò),按任意鍵退出.n”);

      getchar();exit(1);} printf(“請(qǐng)輸入用戶名:”);

      scanf(“%s”,name);printf(“請(qǐng)輸入密碼:”);

      scanf(“%s”,pwd);

      fprintf(fp,“%s %sn”,name,pwd);

      getchar();

      fclose(fp);

      printf(“用戶注冊(cè)成功!n”);} //檢驗(yàn)用戶和密碼是否匹配// int check(char *name,char *pwd){ char name1[20];char pwd1[10];FILE *fp;char file[10]=“2.txt”;if((fp=fopen(“2.txt”,“rt”))==NULL){

      printf(“讀文件出錯(cuò),按任意鍵退出!n”);

      getchar();

      exit(1);}

      while(!feof(fp)){

      fscanf(fp,“%s %s”,name1,pwd1);

      if(strcmp(name1,name)==0&&strcmp(pwd1,pwd)==0)

      return 1;} return 0;} //數(shù)據(jù)排序// void sort(struct Node *h){ struct Node *s,*p,*m,*n;int t,t1,t2,t3;char s1[20];char s2[10];

      printf(“車(chē)票價(jià)格由小到大排序如下:n”);for(s=h->next;s->next!=NULL;s=s->next)for(p=s->next;p->next!=NULL;p=p->next)

      if(s->price>p->price)

      {

      t1=s->num;s->num=p->num;p->num=t1;

      t2=s->price;s->price=p->price;p->price=t2;

      t3=s->amount;s->amount=p->amount;p->amount=t3;

      strcpy(s1,s->name);strcpy(s->name,p->name);strcpy(p->name,s1);

      strcpy(s2,s->time);strcpy(s->time,p->time);strcpy(p->time,s2);

      }

      print(h);printf(“nn剩余車(chē)票數(shù)量由多到少排序如下:n”);for(s=h->next;s->next!=NULL;s=s->next)

      for(p=s->next;p->next!=NULL;p=p->next)

      if(s->amount

      amount)

      {

      t1=s->num;s->num=p->num;p->num=t1;

      t2=s->price;s->price=p->price;p->price=t2;

      t3=s->amount;s->amount=p->amount;p->amount=t3;

      strcpy(s1,s->name);strcpy(s->name,p->name);strcpy(p->name,s1);

      strcpy(s2,s->time);strcpy(s->time,p->time);strcpy(p->time,s2);

      } print(h);} void main(){ struct Node *head,*p;int i,j,k;head=(struct Node *)malloc(sizeof(struct Node));head->next=NULL;char name[20];char pwd[10];printf(“n***************歡迎進(jìn)入火車(chē)票管理系統(tǒng)******************n”);printf(“tt 1.用戶登錄n”);printf(“tt 2.用戶注冊(cè)n”);printf(“tt 0.退出系統(tǒng) n”);printf(“請(qǐng)輸入所選序號(hào):”);scanf(“%d”,&k);

      switch(k){ case 1: printf(“請(qǐng)輸入用戶名:”);

      scanf(“%s”,name);

      printf(“請(qǐng)輸入密碼:”);

      scanf(“%s”,pwd);

      if(check(name,pwd))

      {

      printf(“密碼正確.n”);

      do

      {

      printf(“nntt*********************歡迎進(jìn)入火車(chē)票管理系統(tǒng)***********************n”);

      printf(“tt

      1.錄入火車(chē)票信息tt

      2.添加火車(chē)票信息n”);

      printf(“tt

      3.修改火車(chē)票信息tt

      4.刪除火車(chē)票信息n”);

      printf(“tt

      5.打印火車(chē)票信息tt

      6.查詢火車(chē)票信息n”);

      printf(“tt

      7.統(tǒng)計(jì)火車(chē)票信息tt

      8.火車(chē)票銷(xiāo)售排行n”);

      printf(“tt

      0.退出系統(tǒng)n”);

      printf(“請(qǐng)輸入您要進(jìn)入菜單的序號(hào)(0-8):”);

      scanf(“%d”,&i);

      switch(i)

      {

      case 1:

      printf(“請(qǐng)錄入火車(chē)票信息nn”);

      head=creat();

      save(head);

      head=read();

      break;

      case 2:

      append();

      break;

      case 3:

      printf(“請(qǐng)輸入您要修改的火車(chē)票的編號(hào):”);

      scanf(“%d”,&j);

      change(head,j);

      save(head);

      break;

      case 4:

      head=read();

      if(delete(head))

      {

      printf(“已正確刪除!n”);

      save(head);

      }

      else

      printf(“要?jiǎng)h除的結(jié)點(diǎn)不存在!n”);

      break;

      case 5:

      head=read();

      print(head);

      break;

      case 6:

      printf(“請(qǐng)輸入您要查詢火車(chē)票的編號(hào)(以0結(jié)束):”);

      scanf(“%d”,&j);

      {

      p=find(head);

      printf(“編號(hào)

      起點(diǎn)和終點(diǎn)

      出發(fā)時(shí)間

      車(chē)票價(jià)格

      剩余票數(shù):n”);

      printf(“%d

      %10s

      %5s %10d %6dn”,p->num,p->name,p->time,p->price,p->amount);

      printf(“請(qǐng)繼續(xù)輸入序號(hào)(以0結(jié)束):”);

      scanf(“%d”,&j);

      }

      break;

      case 7: head=read();count(head);break;

      case 8: sort(head);break;

      case 0: printf(“************************用!*****************************n”);break;

      }

      }while(i!=0);

      }

      else

      printf(“密碼錯(cuò)誤或用戶名不存在.n”);

      break;case 2:save_user();break;case 0:break;}

      使

      第三篇:語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)

      1、課程設(shè)計(jì)的目的、任務(wù)

      《匯編語(yǔ)言》課程設(shè)計(jì)對(duì)于鞏固匯編語(yǔ)言理論知識(shí),加強(qiáng)學(xué)生的實(shí)際動(dòng)手能力和提高學(xué)生綜合素質(zhì)十分必要。課程設(shè)計(jì)的目的主要是通過(guò)程序設(shè)計(jì)方法和技能的基本訓(xùn)練,鞏固在課堂上學(xué)到的有關(guān)程序設(shè)計(jì)的基本知識(shí)和基本方法,通過(guò)實(shí)際動(dòng)手能力的培養(yǎng),進(jìn)一步熟悉匯編語(yǔ)言的結(jié)構(gòu)和使用方法,達(dá)到能獨(dú)立閱讀、編制和調(diào)試一定規(guī)模的匯編語(yǔ)言程序的水平。

      2、軟件需求分析和設(shè)計(jì)

      2.1學(xué)生成績(jī)管理系統(tǒng)是對(duì)學(xué)生成績(jī)的管理,其中包括以下幾個(gè)模塊:(1).插入一個(gè)數(shù)據(jù)(插入學(xué)生學(xué)號(hào)以及語(yǔ)數(shù)外三個(gè)成績(jī))。(2)修改一個(gè)數(shù)據(jù)。(3)刪除學(xué)生成績(jī)數(shù)據(jù)。(4)查找學(xué)生成績(jī)。(5)查看學(xué)生成績(jī)的排名(6)查看學(xué)生成績(jī)分布(7)按esc鍵退出系統(tǒng)

      2.2學(xué)生成績(jī)管理系統(tǒng)應(yīng)該包含以下信息:學(xué)號(hào),語(yǔ)文成績(jī),英語(yǔ)成績(jī),數(shù)學(xué)成績(jī)。因此,系統(tǒng)應(yīng)該提供以下功能:(1)輸出顯示菜單。(2)輸入學(xué)生的成績(jī)(3)修改學(xué)生成績(jī)(4)刪除學(xué)生成績(jī)(5)查詢學(xué)生成績(jī)(6)顯示學(xué)生成績(jī)排名(7)顯示成績(jī)分布統(tǒng)計(jì)(8)按esc鍵退出系統(tǒng)

      2.3依據(jù)程序的功能需求,該系統(tǒng)的功能結(jié)構(gòu)圖如下

      系統(tǒng)功能結(jié)構(gòu)圖

      2.4 程序流程圖:

      主程序流程圖

      查找學(xué)生成績(jī)

      插入學(xué)生學(xué)號(hào)及成績(jī)

      修改學(xué)生的成績(jī)

      顯示各個(gè)學(xué)科各分?jǐn)?shù)段的人數(shù)

      3、程序?qū)崿F(xiàn)說(shuō)明

      3.1學(xué)生管理系統(tǒng)中各子程序如下:

      (1).輸入全部學(xué)生學(xué)號(hào)以及語(yǔ)文,英語(yǔ),數(shù)學(xué)三科的成績(jī)。子程序名:insert 子程序描述:該子程序?yàn)檩斎胱殖绦?。系統(tǒng)在開(kāi)始的時(shí)候是沒(méi)有數(shù)據(jù)的,通過(guò)該子程序可以初始化系統(tǒng),將學(xué)生的學(xué)號(hào)及成績(jī)輸入系統(tǒng)。

      代碼:

      insert proc near;定義進(jìn)程子程序:插入學(xué)生,學(xué)號(hào)及 成績(jī) call input;調(diào)用input add n,1 ret insert endp

      (2).修改輸入的成績(jī)。子程序名:modify 子程序描述:通過(guò)子程序修改學(xué)生的成績(jī) 代碼:

      modify proc near;定義進(jìn)程子程序:修改學(xué)生學(xué)號(hào),成績(jī) md1:output mess1;輸出mess1 shuru;調(diào)用宏shuru:二位數(shù)據(jù)輸入 mov bl,n mov bh,0 mov al,dl mov si,0 md: cmp al,xh[si];先查找輸入的學(xué)生是否存在

      je qq1_1;查到的話,就跳轉(zhuǎn)到qq1_1輸入修改的值,也就是重新輸入。;結(jié)果相等則跳轉(zhuǎn)到qq1_1 add si,1

      cmp si,bx jbe md;小于等于則跳轉(zhuǎn)到md output mess;輸出mess jmp md1;不相等繼續(xù)輸入學(xué)號(hào)

      qq1_1:;轉(zhuǎn)入修改的值重新輸入。mov di,si output mess2 output mess4 mov si,0 mov cx,3

      qq3_1:shuruu;cmp dx,78h;

      jbe qq2_1;output ts3;jmp qq1_1;qq2_1:mov buf[si],dl output bg;add si,1 loop qq3_1 mov al,buf[0];mov chi[di],al mov al,buf[1]

      分別輸入語(yǔ)文,英語(yǔ),數(shù)學(xué)成績(jī),并將其放 在緩沖區(qū)buf中 比較輸入的成績(jī)是否大于120,如果大于120的 話,那么重 新輸入成績(jī) 小于等于則轉(zhuǎn)移到qq2_1 輸出ts3 跳轉(zhuǎn)到qq1_1 輸出空格 將存入buf中的成績(jī),分別賦值給存放對(duì)應(yīng)科 目的成績(jī)的數(shù)組

      mov eng[di],al mov al,buf[2] mov mat[di],al ret modify endp

      (3).刪除學(xué)生的成績(jī)。子程序名:delete 子程序描述:通過(guò)子程序刪除學(xué)生的成績(jī) 代碼:

      de proc near;刪除某個(gè)學(xué)生的記錄 sc1:output mess1 shuru;調(diào)用宏shuru,接受輸入的學(xué)號(hào) mov bl,n mov bh,0 mov al,dl mov si,0 sc: cmp al,xh[si];查詢輸入學(xué)號(hào)的學(xué)生信息是否存在,不存在的話,重新輸入學(xué)號(hào) je sc2;相等則轉(zhuǎn)移到sc2 add si,1 cmp si,bx jbe sc;小于等于則轉(zhuǎn)移到sc output mess;輸出mess jmp sc1 sc2: sub bx,si cmp bx,0 je sc3;相等則轉(zhuǎn)移到sc3 mov cx,bx

      sc4:mov dl,chi[si+1] mov chi[si],dl mov dl,eng[si+1] mov eng[si],dl mov dl,mat[si+1] mov mat[si],dl mov dl,xh[si+1] mov xh[si],dl add si,1 loop sc4;loop循環(huán)指令,執(zhí)行操作(cx)<--(cx)-1.若 cx!=0,跳轉(zhuǎn)到標(biāo)號(hào)sc處循環(huán)執(zhí)行;cx=0,則推出

      循環(huán),執(zhí)行l(wèi)oop的下一條指令 sub n,1 sc3: ret de endp

      (3).查詢學(xué)生的成績(jī)。子程序名:find 子程序描述:通過(guò)子程序查詢學(xué)生的成績(jī) 代碼:

      find proc near;定義進(jìn)程子程序:查找學(xué)生成績(jī) call sum;求學(xué)生的總成績(jī) call ping;求學(xué)生的平均成績(jī)

      bj1:output mess1;輸出mess1 shuru;二位數(shù)數(shù)據(jù)輸入 mov bl,n mov bh,0 mov al,dl

      mov si,0

      bj: cmp al,xh[si];將輸入的學(xué)號(hào)與輸入的學(xué)號(hào)相比,je i;存在的話,將此學(xué)生的成績(jī)輸出。je表示結(jié)果相

      等則轉(zhuǎn)移。add si,1 cmp si,bx jbe bj;output mess jmp bj1 i: output strr2 shuzi xh[si];shuzi output bg;mov al,chi[si] cbw;shuzii ax;shuzii output bg;mov al,eng[si] cbw;shuzii ax;shuzii output bg

      mov al,mat[si] cbw shuzii ax output bg;

      mov al,pj[si] cbw

      小于等于則轉(zhuǎn)移到bj 為二位數(shù)據(jù)輸出 輸出空格 將字節(jié)變?yōu)樽?/p>

      為三位數(shù)據(jù)輸出。輸出空格 將字節(jié)變?yōu)樽?/p>

      為三位數(shù)據(jù)輸出 輸出空格的字符串,用于與標(biāo)題欄對(duì)齊

      shuzii ax output bg

      mov ax,si mov bl,2 mul bl mov bx,ax shuzii zc[bx];shuzii為三位數(shù)據(jù)輸出

      output bg;輸出空格的字符串,用于與標(biāo)題欄對(duì)齊 shuzi mc[si];shuzi為二位數(shù)據(jù)輸出 ret find endp

      (4).顯示學(xué)生的成績(jī)排名。子程序名:show 子程序描述:通過(guò)子程序顯示學(xué)生的成績(jī)排名 代碼:

      show proc near;定義進(jìn)程子程序:顯示結(jié)果排名 call sum;調(diào)用宏sum call ping;調(diào)用宏ping call rank;調(diào)用宏rank call shuchu;調(diào)用宏shuchu ret show endp

      3.2程序運(yùn)行抓圖:

      主菜單

      修改學(xué)生成績(jī)

      刪除學(xué)生成績(jī)

      顯示各個(gè)學(xué)科各分?jǐn)?shù)段的人數(shù)

      4、程序總結(jié)

      通過(guò)兩個(gè)星期的學(xué)習(xí),努力,終于完成了報(bào)告。系統(tǒng)可以很好的運(yùn)行。這兩個(gè)多星期的時(shí)間,幾乎每天不是在敲代碼,就是在看代碼,查書(shū),上網(wǎng)。系統(tǒng)中用到了很多最近才學(xué)習(xí)的知識(shí),比如宏,子程序。這些都使得代碼的運(yùn)行效率提高了,代碼行數(shù)減少了。系統(tǒng)還用到了bios的清屏功能。這些功能如果不是做課程設(shè)計(jì),我想我很難會(huì)接觸到這些知識(shí)。

      由于自己對(duì)知識(shí)掌握的不是很牢固,其中也會(huì)碰到一些困難。每當(dāng)遇到問(wèn)題的時(shí)候,我會(huì)先上網(wǎng)去查找,看看有沒(méi)有人提過(guò)這方面的問(wèn)題?;ヂ?lián)網(wǎng)是強(qiáng)大的,大部分的問(wèn)題通過(guò)網(wǎng)絡(luò)都可以解決。部分找不到的問(wèn)題,我就去請(qǐng)教班里學(xué)得好的同學(xué)。他們對(duì)知識(shí)的掌握遠(yuǎn)超過(guò)我。這樣下來(lái),很多問(wèn)題都迎刃而解了。

      課程設(shè)計(jì)是一個(gè)很好的掌握書(shū)本上知識(shí)的過(guò)程。平時(shí)上課之后,自己都不會(huì)想著去敲一些代碼聯(lián)系聯(lián)系。通過(guò)做課程設(shè)計(jì),將理論與實(shí)踐結(jié)合了起來(lái),對(duì)知識(shí)的理解更加深入了。

      第四篇:C語(yǔ)言課程設(shè)計(jì)學(xué)生選課系統(tǒng)

      題目

      一、學(xué)生選課管理系統(tǒng)

      第一部分:課程設(shè)計(jì)名稱、目的、要求

      第二部分:程序總體設(shè)計(jì)思路

      第三部分:程序功能劃分、圖示及流程圖

      第四部分:程序設(shè)計(jì)數(shù)據(jù)、運(yùn)行結(jié)果

      第五部分:程序的優(yōu)缺點(diǎn)

      第六部分:心得體會(huì)

      第七部分:附錄(源程序)

      第八部分:附錄(參考文獻(xiàn))

      目錄

      ..............................................................................第一部分:課程設(shè)計(jì)名稱、目的、要求

      名稱:學(xué)生選修課程系統(tǒng)設(shè)計(jì)

      目的:運(yùn)用C語(yǔ)言提高解決實(shí)際問(wèn)題的能力 實(shí)驗(yàn)環(huán)境:Microsoft Visual C++ 6.0 內(nèi)容:

      假定有n門(mén)課程,每門(mén)課程有課程編號(hào),課程名稱,課程性質(zhì),總學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開(kāi)課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課?!竟δ堋?/p>

      系統(tǒng)以菜單方式工作?

      課程信息錄入功能(課程信息用文件保存)--輸入? 課程信息瀏覽功能--輸出?

      查詢功能:(至少一種查詢方式)--算法? 按學(xué)分查詢? 按課程性質(zhì)查詢? 學(xué)生選修課程(可選項(xiàng))?

      第二部分:程序總體設(shè)計(jì)思路

      由于C語(yǔ)言是面對(duì)過(guò)程的語(yǔ)言,故我的設(shè)計(jì)思路是根據(jù)目標(biāo)程序運(yùn)行的過(guò)程來(lái)編寫(xiě)的。

      具體的設(shè)計(jì)思路如下:

      程序的要求是設(shè)計(jì)學(xué)生選修課管理系統(tǒng),對(duì)選修課程能夠進(jìn)行錄入和修改操作等,要求有菜單界面和退出功能。首先,考慮到程序的數(shù)據(jù)輸入,可以設(shè)置一個(gè)管理員登陸選項(xiàng),通過(guò)該選項(xiàng)進(jìn)入管理員界面,進(jìn)行選修課的錄入和修改操作,最后將錄入的課程保存到相應(yīng)的文件中。然后定義各種函數(shù)的功能包括查看,查詢,刪除等。另一個(gè)為學(xué)生登陸界面,該界面學(xué)生可以進(jìn)行課程選擇和瀏覽查詢等操作。在進(jìn)行該操作之前需要對(duì)管理員保存的文件進(jìn)行讀取,然后對(duì)其中的內(nèi)容進(jìn)行查詢等,在學(xué)生選好課程以后,可以將其選好的課程保存于相應(yīng)的文件中,以便下次進(jìn)行修改。通過(guò)函數(shù)的層層調(diào)用來(lái)實(shí)現(xiàn)程序的邏輯結(jié)構(gòu)。中間通過(guò)文件的打開(kāi)和關(guān)閉實(shí)現(xiàn)對(duì)文件內(nèi)部所包含的數(shù)據(jù)的操作。

      整個(gè)程序的設(shè)計(jì)思路到此結(jié)束。

      第三部分:程序功能劃分、圖示及流程圖

      【功能模塊劃分及其流程圖】

      本程序功能模塊根據(jù)程序設(shè)計(jì)的需求,綜合程序的實(shí)用性、人性化、智能化的考慮,將程序劃分為6個(gè)部分分別編寫(xiě),程序主體功能將由這9個(gè)部分來(lái)完成。這9個(gè)部分依次是:

      1.登錄界面函數(shù);void login()2.學(xué)生登錄界面據(jù)函數(shù):void stu_login()3.管理員登錄界面函數(shù):void man_login()4.退出界面函數(shù):void bye_sys()

      5.課程選擇函數(shù):void c_select()6.課程瀏覽函數(shù):void c_view()7.課程查詢函數(shù):void c_search()8.課程增加函數(shù):void c_add()9.課程刪除函數(shù):void c_delete()10.菜單函數(shù):void index()11.主函數(shù)部分; main()

      總體設(shè)計(jì):

      學(xué)生選課系統(tǒng)管理員登錄學(xué)生登錄新增課程刪除課程課程瀏覽查詢課程學(xué)生選課課程瀏覽課程查詢c_add函數(shù)c_delete函數(shù)c_view函數(shù)c_search函數(shù)c_select函數(shù)c_view函數(shù)c_search函數(shù)

      系統(tǒng)功能模塊圖

      部分函數(shù)流程圖:

      1、課程選擇函數(shù):

      開(kāi)始輸入要選擇的課程的編號(hào)j=0;j

      2、課程查詢函數(shù)

      開(kāi)始輸入要查詢的課程的編號(hào)j=0;j

      3、課程增加函數(shù)

      開(kāi)始輸入要增加的課程的編號(hào)j=0;j

      4、課程刪除函數(shù)

      開(kāi)始輸入要?jiǎng)h除的課程的編號(hào)nj=0;j

      本程序是一款應(yīng)用軟件,故數(shù)據(jù)設(shè)計(jì)、程序運(yùn)行結(jié)果應(yīng)在程序的

      運(yùn)用中得以體現(xiàn),現(xiàn)在通過(guò)一個(gè)程序的運(yùn)用事例來(lái)對(duì)程序運(yùn)行結(jié)果進(jìn)行演示與實(shí)現(xiàn)?!拒浖\(yùn)用舉例】

      1、程序開(kāi)始界面如下:

      選擇某個(gè)選項(xiàng),如進(jìn)行管理員登錄,進(jìn)行課程的增加 進(jìn)入管理員界面:

      2、再選擇所要進(jìn)行的操作,如進(jìn)行課程增加,結(jié)果如下:

      下面可以進(jìn)行繼續(xù)增加課程或者退出:

      3、選擇課程瀏覽,可以分頁(yè)查看相應(yīng)的課程信息: 第一頁(yè):

      第二頁(yè):

      4、課程查詢

      查找結(jié)果:

      4、管理員課程刪除操作:

      刪除后可以進(jìn)行瀏覽,觀察刪除后的結(jié)果:

      可見(jiàn)刪除后只有一條記錄。刪除操作完成正確。下面進(jìn)行學(xué)生操作的使用方法:

      1、學(xué)生登陸界面:

      2、選擇學(xué)生選課選項(xiàng):

      3、學(xué)生登陸也可進(jìn)行課程瀏覽和查詢函數(shù),其結(jié)果與管理員登陸相同,不再演示。

      第五部分:程序的優(yōu)缺點(diǎn)

      【程序的優(yōu)點(diǎn)】

      算法是程序的靈魂,程序的優(yōu)點(diǎn)首先表現(xiàn)在算法上的優(yōu)點(diǎn),其次才是功能上的。

      [算法上的優(yōu)點(diǎn)]主要體現(xiàn)在以下三點(diǎn):

      1.程序采用main主函數(shù)方式設(shè)計(jì),程序的主體的功能大都由該功能

      完成。程序如此設(shè)計(jì)有利于程序的進(jìn)一步改進(jìn)及有助于程序執(zhí)行效率的提高。

      2.程序?qū)ξ募?shù)據(jù)的讀寫(xiě)采用了fread和fwrite塊讀寫(xiě)函數(shù),能夠?qū)⑽募械臄?shù)據(jù)完全讀出,然后賦到定義的數(shù)組中,再在相應(yīng)的數(shù)組中進(jìn)行一系列操作,最終再寫(xiě)入文件。

      3.插入操作在本程序中將課程信息直接插入數(shù)組最后一個(gè)節(jié)點(diǎn),從而減少了數(shù)據(jù)的相互移動(dòng),節(jié)省了時(shí)間。

      [功能上的優(yōu)點(diǎn)] 主要體現(xiàn)在以下兩點(diǎn):

      1. 簡(jiǎn)潔明了的程序菜單。程序主要采用了層次不同的菜單,相互獨(dú)立又相互聯(lián)系,巧妙相接,符合用戶的使用習(xí)慣與思維。2. 人性化的程序提示語(yǔ)言,程序提示語(yǔ)言較人性化,不僅大多為祈使語(yǔ)句、疑問(wèn)句,而且提示明確,具有較強(qiáng)的明確的指導(dǎo)作用。程序提示不僅層次分明,提示方式多樣,而且提示信息井然有序,更加有利于用戶順利、準(zhǔn)確地看懂程序并進(jìn)行操作。

      【程序的缺點(diǎn)】 主要表現(xiàn)在以下兩點(diǎn):

      1、本程序沒(méi)有進(jìn)行相應(yīng)的密碼操作,所以對(duì)于使用者來(lái)說(shuō)可能存在比較大的不保密性。需要改善。

      2、本程序沒(méi)有使用文本讀寫(xiě)函數(shù)fscanf和fprintf,所以的到的課程文件和選課文件都是二進(jìn)制形式。

      第六部分:心得體會(huì)

      選課系統(tǒng)程序比起通訊錄程序來(lái)講好寫(xiě)一些,由于本程序用到了數(shù)組,對(duì)于數(shù)組的操作掌握的比較熟練,所以在編寫(xiě)程序的時(shí)候困難沒(méi)有那么多。

      本程序在編寫(xiě)的過(guò)程中用到了許多通訊錄中的模塊化設(shè)計(jì)和函數(shù)互相調(diào)用的思想,使得編寫(xiě)比較方便和好用。

      通過(guò)該系統(tǒng)的課程設(shè)計(jì)分析,我掌握了模塊化設(shè)計(jì)的方法,理解和運(yùn)用了結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法,掌握和提高了運(yùn)用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力。

      程序設(shè)計(jì)的過(guò)程,實(shí)際上是確定解決問(wèn)題的詳細(xì)步驟,而這個(gè)步驟通常叫做流程,在程序設(shè)計(jì)過(guò)程中理清楚整個(gè)問(wèn)題的流程很重要,然后采取逐步細(xì)化的方法實(shí)現(xiàn)整個(gè)程序。

      對(duì)于一個(gè)較大的應(yīng)用程序,一般不可能一次就設(shè)計(jì)出一個(gè)很完善的系統(tǒng)。通常要先設(shè)計(jì)滿足基本要求的系統(tǒng),然后再測(cè)試或者在使用的過(guò)程中不斷完善,慢慢地做成一個(gè)功能很完善選修課程管理系統(tǒng)。所以在進(jìn)行調(diào)試的時(shí)候需要對(duì)許多變量理解和掌握其變化規(guī)律等,這對(duì)于我更好的掌握visual C中調(diào)試的工具有很大的幫助。

      總之經(jīng)過(guò)這次課程設(shè)計(jì),我對(duì)c語(yǔ)言的使用和理解都有了很大的加深,對(duì)于編程的思想也有了很多新的理解和感受。

      第七部分:附錄

      一、參考文獻(xiàn):

      1、李麗娟主編,C語(yǔ)言程序設(shè)計(jì)教程(第二版),人民郵電出版社

      2、嚴(yán)蔚敏主編,數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言),清華大學(xué)出版社

      3、崔單主編,C語(yǔ)言程序設(shè)計(jì)案例精粹,電子工業(yè)出版社

      4、譚浩強(qiáng)主編,程序設(shè)計(jì)(第三版),清華大學(xué)出版社

      二、源程序

      #include“stdio.h” #include“stdlib.h” #include“windows.h” #include“string.h”

      void index();//首頁(yè) void login();void bye_sys();//退出界面

      void stu_login();//學(xué)生登錄菜單

      void c_select();void c_view();//課程瀏覽

      void c_add();//增加課程 void c_delete();void c_searchs();//學(xué)生查詢函數(shù) void c_searchm();//管理員查詢函數(shù) void c_viewm();//管理員瀏覽函數(shù) void c_views();//學(xué)生瀏覽函數(shù)

      struct course//定義課程結(jié)構(gòu)體

      {

      int c_num;

      char c_name[20];

      int c_score;

      int c_nelepeo;//課程已選人數(shù)

      int c_melepeo;//課程人數(shù)上限 };struct student { char s_number[10];

      char s_password[10];};struct manager { char m_name[10];char m_password[10];};

      void index()//首頁(yè) {

      char input;

      printf(“nnttt*****************************n”);

      printf(“ttt

      湖南大學(xué)學(xué)生選課系統(tǒng)n”);

      printf(“ttt*****************************nnn”);

      printf(“ttt*****************************nnn”);

      printf(“ttt*****************************nnn”);

      printf(“ttt*****************************nnn”);

      printf(“ttt**********設(shè)計(jì)者:劉曉斌******nnn”);

      input=getchar();

      system(“cls”);} void login()//登陸界面

      {

      void stu_login();

      void man_login();

      void bye_sys();

      int input;

      do

      {

      system(“cls”);

      printf(“nnnt1.學(xué)生登錄n”);

      printf(“t2.管理員登陸n”);

      printf(“t3.退出本系統(tǒng)n”);

      printf(“t請(qǐng)選擇服務(wù)類別:”);

      scanf(“%d”,&input);

      if(input!=1&&input!=2&&input!=3)//輸入數(shù)不等于選項(xiàng)的時(shí)候打印畫(huà)面

      {

      printf(“nt輸入出錯(cuò)!請(qǐng)重新選擇~n”);

      printf(“nt按任意鍵返回選擇頁(yè)面~nt”);

      getchar();getchar();

      system(“cls”);

      }

      if(input==3)//如果輸入3退出系統(tǒng)

      {

      bye_sys();

      }

      }while(input!=1&&input!=2&&input!=3);

      switch(input)

      {

      case 1:stu_login();break;

      case 2:man_login();break;

      } }

      void bye_sys()//退出界面 { exit(0);}

      void man_login(){

      void c_add();

      void c_delete();

      void c_view();

      void c_searchm();

      int in;

      do

      {

      system(“cls”);

      printf(“nnt1.新增課程n”);

      printf(“t2.刪除課程n”);

      printf(“t3.課程瀏覽n”);

      printf(“t4.課程查詢n”);

      printf(“t5.退出n”);

      printf(“nnt請(qǐng)選擇服務(wù)種類:”);

      scanf(“%d”,&in);

      if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5)

      {

      printf(“nt沒(méi)有這項(xiàng)服務(wù)t按任意重新選擇”);

      getchar();getchar();

      }

      }while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5);

      switch(in)

      {

      case 1:c_add();break;

      case 2:c_delete();break;

      case 3:c_viewm();break;

      case 4:c_searchm();break;

      case 5:login();break;

      } }

      void stu_login()//學(xué)生登錄菜單

      {

      void c_select();

      void c_view();

      void c_searchs();

      void login();

      int input;

      do

      {

      system(“cls”);

      printf(“nnnt--學(xué)生登陸--”);

      printf(“nnt1.學(xué)生選課n”);

      printf(“t2.課程瀏覽n”);

      printf(“t3.課程查詢n”);

      printf(“t4.退出n”);

      scanf(“%d”,&input);

      if(input!=1&&input!=2&&input!=3&&input!=4)

      {

      printf(“nt沒(méi)有這項(xiàng)服務(wù)~n”);

      printf(“t按任意鍵重新選擇”);

      getchar();

      getchar();

      }

      }while(input!=1&&input!=2&&input!=3&&input!=4);

      switch(input)

      {

      case 1:c_select();break;

      case 2:c_views();break;

      case 3:c_searchs();break;

      case 4:login();break;

      } }

      void c_select(){

      int n,in,i=0,j;int flag=0;

      FILE *fp;

      FILE *fp1;

      char input;

      struct course courses[10];

      if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程

      {

      printf(“nnnt課程不存在nn”);

      printf(“t<按任意鍵返回管理菜單>nt”);

      input=getchar();

      input=getchar();

      stu_login();//進(jìn)入學(xué)生登陸菜單

      }

      else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

      {

      do

      {

      fread(&courses[i],sizeof(struct course),1,fp);

      i=i+1;

      }

      while(!feof(fp));

      fclose(fp);//文件讀完后關(guān)閉

      }

      printf(“nntt請(qǐng)輸入你要選課程的編號(hào):”);

      scanf(“%d”,&n);

      if((fp1=fopen(“courseselect.dat”,“rb”))==NULL)

      {

      fp1=fopen(“courseselect.dat”,“wb”);

      }

      else

      {

      fclose(fp1);

      fp1=fopen(“courseselect.dat”,“ab”);

      }

      for(j=0;j

      if(courses[j].c_num==n)

      flag++;

      if(flag==0)

      {

      printf(“nntt不存在對(duì)應(yīng)課程n”);

      printf(“nntt繼續(xù)選課請(qǐng)按1,退出請(qǐng)按2:n”);

      scanf(“%d”,&in);

      switch(in)

      {

      case 1:c_select();break;

      case 2:stu_login();break;

      default:

      printf(“輸入錯(cuò)誤,將返回登錄界面!n”);

      login();break;

      }

      }

      else

      {

      fwrite(&courses[j],sizeof(struct course),1,fp1);

      fclose(fp1);

      printf(“nntt選課成功t請(qǐng)選擇:”);

      printf(“nntt1.繼續(xù)選課”);

      printf(“nntt2.退出,返回登錄界面!”);

      scanf(“%d”,&in);

      switch(in)

      {

      case 1:c_select();break;

      case 2:stu_login();break;

      default:break;

      }

      } }

      void c_viewm()//課程瀏覽

      {

      void stu_login();

      void c_view();

      int

      inp,i=0,n=0;

      FILE *fp;

      char input;

      struct course courseview[10];

      if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程

      {

      system(“cls”);

      printf(“nnnt課程不存在nn”);

      printf(“t<按任意鍵返回管理菜單>nt”);

      getchar();getchar();

      stu_login();//進(jìn)入學(xué)生登陸菜單

      }

      else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

      {

      do

      {

      fread(&courseview[i],sizeof(struct course),1,fp);

      i=i+1;

      }

      while(!feof(fp));

      fclose(fp);//文件讀完后關(guān)閉

      do

      {

      system(“cls”);

      if(i==1)

      {

      printf(“nnnttt沒(méi)有記錄!n”);

      getchar();getchar();

      man_login();

      }

      else

      {

      printf(“nt------共有%d條記錄-------”,i-1);

      printf(“nnt課程編號(hào): %dn”,courseview[n].c_num);

      printf(“nnt課程名字: %sn”,courseview[n].c_name);

      printf(“nnt課程學(xué)分: %dn”,courseview[n].c_score);

      printf(“nnt課程已選人數(shù): %dn”,courseview[n].c_nelepeo);

      printf(“nnt課程人數(shù)上限: %dn”,courseview[n].c_melepeo);

      printf(“nnt1.上一頁(yè)t2.下一頁(yè)t3.回目錄”);

      printf(“n請(qǐng)選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:

      {

      if(n==0)

      {

      printf(“nt已到達(dá)首頁(yè) t按任意鍵返回”);

      input=getchar();

      input=getchar();

      }

      else

      {

      n=n-1;

      }

      break;

      }

      case 2:

      {

      if(n==i-2)

      {

      printf(“nt已到達(dá)尾頁(yè)t按人意見(jiàn)返回”);

      input=getchar();

      input=getchar();

      }

      else

      {

      n=n+1;

      }

      break;

      }

      case 3:{man_login();break;}

      default:

      {

      printf(“nt操作錯(cuò)誤t按任意鍵返回”);

      getchar();getchar();

      break;

      }

      }

      }

      }while(inp!=3);

      } }

      void c_views()//課程瀏覽

      {

      void stu_login();

      void c_view();

      int

      inp,i=0,n=0;

      FILE *fp;

      char input;

      struct course courseview[10];

      if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程

      {

      system(“cls”);

      printf(“nnnt課程不存在nn”);

      printf(“t<按任意鍵返回管理菜單>nt”);

      getchar();getchar();

      stu_login();//進(jìn)入學(xué)生登陸菜單

      }

      else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

      {

      do

      {

      fread(&courseview[i],sizeof(struct course),1,fp);

      i=i+1;

      }

      while(!feof(fp));

      fclose(fp);//文件讀完后關(guān)閉

      do

      {

      system(“cls”);

      if(i==1)

      {

      printf(“nnnttt沒(méi)有記錄!n”);

      getchar();getchar();

      stu_login();

      }

      else

      {

      printf(“nt------共有%d條記錄-------”,i-1);

      printf(“nnt課程編號(hào): %dn”,courseview[n].c_num);

      printf(“nnt課程名字: %sn”,courseview[n].c_name);

      printf(“nnt課程學(xué)分: %dn”,courseview[n].c_score);

      printf(“nnt課程已選人數(shù): %dn”,courseview[n].c_nelepeo);

      printf(“nnt課程人數(shù)上限: %dn”,courseview[n].c_melepeo);

      printf(“nnt1.上一頁(yè)t2.下一頁(yè)t3.回目錄”);

      printf(“n請(qǐng)選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:

      {

      if(n==0)

      {

      printf(“nt已到達(dá)首頁(yè) t按任意鍵返回”);

      input=getchar();

      input=getchar();

      }

      else

      {

      n=n-1;

      }

      break;

      }

      case 2:

      {

      if(n==i-2)

      {

      printf(“nt已到達(dá)尾頁(yè)t按人意見(jiàn)返回”);

      input=getchar();

      input=getchar();

      }

      else

      {

      n=n+1;

      }

      break;

      }

      case 3:{stu_login();break;}

      default:

      {

      printf(“nt操作錯(cuò)誤t按任意鍵返回”);

      getchar();getchar();

      break;

      }

      }

      }

      }while(inp!=3);

      } }

      void c_searchs(){

      void stu_login();

      void c_searchs();

      int id,i=0,j,inp,k;

      int flag=0;

      FILE *fp;

      struct course coursesear[10];

      if((fp=fopen(“course.dat”,“rb”))==NULL)

      //判斷課程信息是否存在 {

      system(“cls”);

      printf(“nnt課程不存在t按任意鍵返回”);

      getchar();getchar();

      stu_login();

      }

      else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

      {

      do

      {

      fread(&coursesear[i],sizeof(struct course),1,fp);

      i=i+1;

      }while(!feof(fp));

      fclose(fp);

      }

      system(“cls”);

      printf(“nnttt請(qǐng)輸入你要查詢的課程編號(hào):”);

      scanf(“%d”,&id);

      do//檢查輸入是否符合要求

      {

      for(j=0;j

      {

      if(id==coursesear[j].c_num)

      {

      flag++;

      k=j;

      }

      }

      if(flag==1)

      {

      system(“cls”);

      printf(“nnt課程編號(hào):%dn”,coursesear[k].c_num);

      printf(“nnt課程名字:%sn”,coursesear[k].c_name);

      printf(“nnt課程學(xué)分:%dn”,coursesear[k].c_score);

      printf(“nnt課程已選人數(shù):%dn”,coursesear[k].c_nelepeo);

      printf(“nnt課程人數(shù)上限:%dn”,coursesear[k].c_melepeo);

      getchar();getchar();

      printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

      printf(“請(qǐng)選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:c_searchs();

      case 2:stu_login();

      default:

      {

      printf(“nt沒(méi)有這項(xiàng)服務(wù)t請(qǐng)按任意鍵重新輸入”);

      getchar();getchar();

      }

      }

      }

      else

      {

      system(“cls”);

      printf(“nnt不存在對(duì)應(yīng)記錄n”);

      printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

      printf(“請(qǐng)選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:c_searchs();

      case 2:stu_login();

      default:

      {

      printf(“nt沒(méi)有這項(xiàng)服務(wù)t請(qǐng)按任意鍵重新輸入”);

      getchar();getchar();

      }

      }

      }

      }while(inp!=1);

      }

      void c_searchm(){

      void stu_login();

      void c_searchm();

      int id,i=0,j,inp,k;

      int flag=0;

      FILE *fp;

      struct course coursesear[10];

      if((fp=fopen(“course.dat”,“rb”))==NULL)

      //判斷課程信息是否存在 {

      system(“cls”);

      printf(“nnt課程不存在t按任意鍵返回”);

      getchar();getchar();

      stu_login();

      }

      else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

      {

      do

      {

      fread(&coursesear[i],sizeof(struct course),1,fp);

      i=i+1;

      }while(!feof(fp));

      fclose(fp);

      }

      system(“cls”);

      printf(“nnttt請(qǐng)輸入你要查詢的課程編號(hào):”);

      scanf(“%d”,&id);

      do//檢查輸入是否符合要求

      {

      for(j=0;j

      {

      if(id==coursesear[j].c_num)

      {

      flag++;

      k=j;

      }

      }

      if(flag==1)

      {

      system(“cls”);

      printf(“nnt課程編號(hào):%dn”,coursesear[k].c_num);

      printf(“nnt課程名字:%sn”,coursesear[k].c_name);

      printf(“nnt課程學(xué)分:%dn”,coursesear[k].c_score);

      printf(“nnt課程已選人數(shù):%dn”,coursesear[k].c_nelepeo);

      printf(“nnt課程人數(shù)上限:%dn”,coursesear[k].c_melepeo);

      getchar();getchar();

      printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

      printf(“請(qǐng)選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:c_searchm();

      case 2:man_login();

      default:

      {

      printf(“nt沒(méi)有這項(xiàng)服務(wù)t請(qǐng)按任意鍵重新輸入”);

      getchar();getchar();

      }

      }

      }

      else

      {

      system(“cls”);

      printf(“nnt不存在對(duì)應(yīng)記錄n”);

      printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

      printf(“請(qǐng)選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:c_searchm();

      case 2:man_login();

      default:

      {

      printf(“nt沒(méi)有這項(xiàng)服務(wù)t請(qǐng)按任意鍵重新輸入”);

      getchar();getchar();

      }

      }

      }

      }while(inp!=1);}

      void c_add()//增加課程 {

      void c_add();

      void man_login();

      int i=0,j,inp;

      FILE *fp;

      struct course course_new;

      struct course courses[10];

      system(“cls”);

      printf(“nntt請(qǐng)輸入課程信息”);

      printf(“nntt1.課程編號(hào):”);

      scanf(“%d”,&course_new.c_num);

      printf(“nntt2.課程名字:”);

      scanf(“%s”,course_new.c_name);

      printf(“nntt3.課程學(xué)分:”);

      scanf(“%d”,&course_new.c_score);

      printf(“nntt4.課程已選人數(shù):”);

      scanf(“%d”,&course_new.c_nelepeo);

      printf(“nntt5.課程人數(shù)上限:”);

      scanf(“%d”,&course_new.c_melepeo);

      if((fp=fopen(“course.dat”,“rb”))!=NULL)

      {

      do

      {

      fread(&courses[i],sizeof(struct course),1,fp);

      i=i+1;

      }while(!feof(fp));

      fclose(fp);

      for(j=0;j<=i-1;j++)

      if(course_new.c_num==courses[j].c_num)

      {

      system(“cls”);

      printf(“nnttt對(duì)不起,這個(gè)編號(hào)已經(jīng)使用過(guò)nntt按任意鍵返回管理菜單”);

      getchar();getchar();

      man_login();

      break;

      }

      }

      if((fp=fopen(“course.dat”,“rb”))==NULL)

      {

      fp=fopen(“course.dat”,“wb”);

      }

      else

      {

      fclose(fp);

      fp=fopen(“course.dat”,“ab”);

      }

      fwrite(&course_new,sizeof(struct course),1,fp);

      fclose(fp);

      printf(“nntt信息輸入完畢t按任意鍵繼續(xù)”);

      getchar();getchar();

      do

      {

      system(“cls”);

      printf(“nntt1.繼續(xù)輸入”);

      printf(“nntt2.返回管理菜單”);

      printf(“nntt請(qǐng)選擇”);

      scanf(“%d”,&inp);

      if(inp!=1&&inp!=2)

      {

      printf(“輸入不符合要求t按任意鍵重新選擇”);

      getchar();getchar();

      }

      }while(inp!=1&&inp!=2);

      switch(inp)

      {

      case 1:c_add();break;

      case 2:man_login();break;

      } }

      void c_delete()//查詢后刪除 {

      FILE *fp;

      int i=0,j,n,k,flag=0;

      struct course courses[10];

      void c_delete();

      void man_login();

      printf(“nntt請(qǐng)輸入你要?jiǎng)h除的課程編號(hào):”);

      scanf(“%d”,&n);

      if((fp=fopen(“course.dat”,“rb”))!=NULL)

      {

      do

      {

      fread(&courses[i],sizeof(struct course),1,fp);

      i=i+1;

      }while(!feof(fp));

      fclose(fp);

      }

      else

      {

      printf(“nntt不存在任何課程t按任意鍵返回”);

      getchar();getchar();

      man_login();

      }

      for(j=0;j

      {

      if(courses[j].c_num==n)

      {

      flag=1;

      fp=fopen(“course.dat”,“wb”);

      for(k=0;k

      fwrite(&courses[k],sizeof(struct course),1,fp);

      fclose(fp);

      fp=fopen(“course.dat”,“ab”);

      for(k=j+1;k

      {

      fwrite(&courses[k],sizeof(struct course),1,fp);

      }

      printf(“nntt記錄已刪除!t按任意鍵返回ntt”);

      getchar();getchar();

      man_login();

      fclose(fp);

      }

      }

      if(flag==0)

      {

      printf(“nntt不存在對(duì)應(yīng)的課程t按任意鍵返回”);

      getchar();getchar();

      man_login();

      } // printf(“nntt記錄已刪除!t按任意鍵返回ntt”);

      }

      int main(){

      index();login();return 0;}

      第五篇:C語(yǔ)言課程設(shè)計(jì) 倉(cāng)庫(kù)管理系統(tǒng)

      C語(yǔ)言課程設(shè)計(jì) 倉(cāng)庫(kù)管理系統(tǒng)

      #include

      struct cangku {

      int num;

      char name[20];

      char introdution[50];

      float square;

      };typedef struct cangku Cangku;

      int Input(Cangku t[]);void List(Cangku t[],int n);void SearchOnName(Cangku t[],int n);int DeleteRecord(Cangku t[],int n);int AlterRecord(Cangku t[],int n);int AddRecord(Cangku t[],int n);void SortOnName(Cangku t[],int n);void SortOnSquare(Cangku t[],int n);void SaveRecord(Cangku t[],int n);int LoadRecord(Cangku t[]);int LoadRecord1(Cangku t[]);void Save(Cangku t[],int n);void Load(Cangku t[],int n);void Load1(Cangku t[]);int Menu_select();

      void main(){

      Cangku ck[50];int i,l,length,w=1;int q[4]={5,2,1,0};

      system(“cls”);printf(“請(qǐng)輸入第1個(gè)密碼:n”);for(i=0;i<4;i++)

      {

      scanf(“%d”,&l);

      system(“cls”);

      if(l==q[i])

      printf(“正確,繼續(xù)輸入第%d個(gè)密碼:.n”,i+2);

      else

      {

      w=0;

      printf(“輸入錯(cuò)誤!n”);

      break;

      } }

      while(w)

      {

      switch(Menu_select())

      {

      case 1:

      length=Input(ck);

      SaveRecord(ck,length);

      break;

      case 2:

      length=LoadRecord(ck);

      SearchOnName(ck,length);

      break;

      case 3:

      length=LoadRecord(ck);

      length=DeleteRecord(ck,length);

      SaveRecord(ck,length);

      break;

      case 4:

      length=LoadRecord(ck);

      length=AlterRecord(ck,length);

      SaveRecord(ck,length);

      break;

      case 5:

      length=LoadRecord(ck);

      length=AddRecord(ck,length);

      SaveRecord(ck,length);

      break;

      case 6:

      length=LoadRecord(ck);

      system(“cls”);

      List(ck,length);

      break;

      case 7:

      length=LoadRecord(ck);

      system(“cls”);

      SortOnName(ck,length);

      SaveRecord(ck,length);

      break;

      case 8:

      length=LoadRecord(ck);

      system(“cls”);

      SortOnSquare(ck,length);

      SaveRecord(ck,length);

      break;

      case 9:

      length=LoadRecord(ck);

      system(“cls”);

      Save(ck,length);

      break;

      case 0:

      length=LoadRecord1(ck);

      Load1(ck);

      system(“cls”);

      Load(ck,length);

      break;

      case 10: exit(0);

      }

      } }

      int Menu_select(){ int c;

      printf(“按任意鍵進(jìn)入倉(cāng)庫(kù)管理菜單n”);

      getchar();

      system(“cls”);

      system(“color F0”);printf(“

      ******************************倉(cāng)庫(kù)管理*******************************n”);

      printf(“

      *

      1.錄入倉(cāng)庫(kù)初始記錄

      *n”);

      printf(“

      *

      2.按倉(cāng)庫(kù)名稱查找記錄

      *n”);

      printf(“

      *

      3.刪除倉(cāng)庫(kù)記錄

      *n”);

      printf(“

      *

      4.修改倉(cāng)庫(kù)記錄

      *n”);printf(“

      *

      5.增加倉(cāng)庫(kù)信息

      *n”);

      printf(“

      *

      6.顯示全部記錄

      *n”);

      printf(“

      *

      7.按倉(cāng)庫(kù)名稱排序

      *n”);

      printf(“

      *

      8.按倉(cāng)庫(kù)面積排序

      *n”);

      printf(“

      *

      9.備份

      *n”);printf(“

      *

      0.恢復(fù)

      *n”);printf(“

      *

      10.退出

      *n”);

      printf(“

      *********************************************************************n”);do {

      printf(“n輸入您想要進(jìn)行的操作選項(xiàng)鍵(0-10):”);

      if(scanf(“%d”,&c)!=1)

      {

      while(getchar()!='n')

      continue;

      } }

      while(c<0||c>10);return c;}

      int Input(Cangku t[]){ int i,n;

      system(“cls”);

      printf(“n請(qǐng)輸入要輸入的倉(cāng)庫(kù)數(shù)目:n”);

      scanf(“%d”,&n);

      printf(“開(kāi)始輸入倉(cāng)庫(kù)信息:n”);

      for(i=0;i

      {

      system(“cls”);

      printf(“n第%d個(gè)倉(cāng)庫(kù)的編號(hào):”,i+1);

      scanf(“%d”,&t[i].num);

      printf(“第%d個(gè)倉(cāng)庫(kù)的名稱:”,i+1);

      scanf(“%s”,t[i].name);

      printf(“第%d個(gè)倉(cāng)庫(kù)的面積:”,i+1);

      scanf(“%f”,&t[i].square);

      printf(“第%d個(gè)倉(cāng)庫(kù)的說(shuō)明:”,i+1);

      scanf(“%s”,t[i].introdution);}

      return(n);}

      void List(Cangku t[],int n){ int i;

      printf(“

      *********************************************************************n”);

      printf(“

      **

      編號(hào)

      名稱

      面積

      說(shuō)明n”);

      printf(“

      -------n”);for(i=0;i

      printf(“%17d%13s%20f%14sn”,t[i].num,t[i].name,t[i].square,t[i].introdution);}

      printf(“

      *********************************************************************n”);

      printf(“n”);getchar();} void SearchOnName(Cangku t[],int n){ char s[20];

      int i,flag=0;

      system(“cls”);

      printf(“請(qǐng)輸入要查找的倉(cāng)庫(kù)名稱:n”);

      scanf(“%s”,s);

      for(i=0;i

      {

      if(strcmp(s,t[i].name)==0)

      {

      flag=1;

      system(“cls”);

      printf(“nn要查找的倉(cāng)庫(kù)信息如下:n”);

      printf(“n”);

      printf(“

      *********************************************************************n”);

      printf(“

      **

      編號(hào)

      名稱

      面積

      說(shuō)明n”);

      printf(“

      -------n”);{

      printf(“%17d%13s%20f%14sn”,t[i].num,t[i].name,t[i].square,t[i].introdution);}

      printf(“

      *********************************************************************n”);

      printf(“n”);

      } }

      if(flag==0)

      printf(“要查找的倉(cāng)庫(kù)不存在!n”);getchar();} int DeleteRecord(Cangku t[],int n){

      char s[20];

      char ch;

      int i,j,flag=0;

      system(“cls”);

      printf(“請(qǐng)輸入要?jiǎng)h除的倉(cāng)庫(kù)名稱n”);

      scanf(“%s”,s);

      for(i=0;i

      if(strcmp(s,t[i].name)==0)

      {

      flag=1;

      system(“cls”);

      printf(“nn要?jiǎng)h除的倉(cāng)庫(kù)信息如下:n”);

      printf(“n”);

      printf(“

      *********************************************************************n”);

      printf(“

      **

      編號(hào)

      名稱

      面積

      說(shuō)明n”);

      printf(“

      -------n”);{

      printf(“%17d%13s%20f%14sn”,t[i].num,t[i].name,t[i].square,t[i].introdution);}

      printf(“

      *********************************************************************n”);

      printf(“n”);

      printf(“確定刪除倉(cāng)庫(kù)信息嗎?(Y/N)n”);

      ch=getchar();

      ch=getchar();

      if(ch=='Y'||ch=='y')

      {

      for(j=i;j

      t[j]=t[j+1];

      n--;

      i--;

      printf(“刪除成功.n”);

      }

      }

      }

      if(flag==0)

      printf(“要?jiǎng)h除的倉(cāng)庫(kù)不存在!n”);

      getchar();

      return n;}

      int AlterRecord(Cangku t[],int n){

      int i,flag=0;

      char s[20],ch;

      system(“cls”);

      printf(“請(qǐng)輸入要修改的倉(cāng)庫(kù)名稱n”);

      scanf(“%s”,s);

      for(i=0;i

      {

      if(strcmp(s,t[i].name)==0)

      {

      flag=1;

      system(“cls”);

      printf(“nn要修改的倉(cāng)庫(kù)信息如下:n”);

      printf(“n”);

      printf(“

      *********************************************************************n”);

      printf(“

      **

      編號(hào)

      名稱

      面積

      說(shuō)明n”);

      printf(“

      -------n”);

      {

      printf(“%17d%13s%20f%14sn”,t[i].num,t[i].name,t[i].square,t[i].introdution);

      }

      printf(“

      *********************************************************************n”);

      printf(“n”);

      printf(“確定修改倉(cāng)庫(kù)信息嗎?(Y/N)n”);

      ch=getchar();

      ch=getchar();

      if(ch=='y'||ch=='Y')

      {

      system(“cls”);

      printf(“請(qǐng)輸入修改后的信息:n”);

      printf(“請(qǐng)輸入倉(cāng)庫(kù)新的名稱:”);

      scanf(“%s”,t[i].name);

      printf(“請(qǐng)輸入%s倉(cāng)庫(kù)新的編號(hào):”,t[i].name);

      scanf(“%d”,&t[i].num);

      printf(“請(qǐng)輸入%s倉(cāng)庫(kù)新的面積:”,t[i].name);

      scanf(“%f”,&t[i].square);

      printf(“請(qǐng)輸入%s倉(cāng)庫(kù)新的說(shuō)明:”,t[i].name);

      scanf(“%s”,t[i].introdution);

      }

      }

      }

      if(flag==0)

      printf(“要修改的倉(cāng)庫(kù)不存在!n”);

      getchar();

      return n;}

      int AddRecord(Cangku t[],int n){

      int i,m;

      system(“cls”);

      printf(“n請(qǐng)輸入再增加的記錄數(shù):n”);

      scanf(“%d”,&m);

      printf(“開(kāi)始追加記錄n”);

      for(i=n;i

      { system(“cls”);

      printf(“n第%d個(gè)倉(cāng)庫(kù)的編號(hào):”,i+1);

      scanf(“%d”,&t[i].num);

      printf(“第%d個(gè)倉(cāng)庫(kù)的名稱:”,i+1);

      scanf(“%s”,t[i].name);

      printf(“第%d個(gè)倉(cāng)庫(kù)的面積:”,i+1);

      scanf(“%f”,&t[i].square);

      printf(“第%d個(gè)倉(cāng)庫(kù)的說(shuō)明:”,i+1);

      scanf(“%s”,t[i].introdution);

      }

      return(n+m);}

      void SortOnName(Cangku t[],int n){ int i,j;

      struct cangku temp;

      for(j=1;j

      for(i=0;i

      if((strcmp(t[i].name,t[i+1].name))>0)

      {

      temp=t[i];

      t[i]=t[i+1];

      t[i+1]=temp;

      }

      printf(“排序成功!!n”);

      printf(“排序后倉(cāng)庫(kù)信息列表如下:n”);

      List(t,n);}

      void SortOnSquare(Cangku t[],int n){ int i,j;

      struct cangku temp;

      for(j=1;j

      for(i=0;i

      if(t[i].square

      {

      temp=t[i];

      t[i]=t[i+1];

      t[i+1]=temp;

      }

      printf(“排序成功!!n”);

      printf(“排序后倉(cāng)庫(kù)信息列表如下:n”);

      List(t,n);}

      void SaveRecord(Cangku t[],int n){ int i;

      FILE *fp;

      if((fp=fopen(“record.txt”,“w”))==NULL)

      {

      printf(“不能打開(kāi)文件!n”);

      exit(1);}

      for(i=0;i

      {

      fwrite(&t[i],sizeof(struct cangku),1,fp);

      }

      fclose(fp);}

      int LoadRecord(Cangku t[]){

      int n=0;

      FILE *fp;

      if((fp=fopen(“record.txt”,“a+”))==NULL)

      {

      printf(“不能打開(kāi)文件!n”);

      exit(1);}

      while(fread(&t[n],sizeof(struct cangku),1,fp))n++;

      fclose(fp);

      printf(“從文件中成功讀出記錄!!n”);

      return n;} int LoadRecord1(Cangku t[]){

      int n=0;

      FILE *fp;

      if((fp=fopen(“bkrecord.txt”,“a+”))==NULL)

      {

      printf(“不能打開(kāi)文件!n”);

      exit(1);}

      while(fread(&t[n],sizeof(struct cangku),1,fp))n++;

      fclose(fp);

      printf(“從文件中成功讀出記錄!!n”);

      return n;} void Save(Cangku t[],int n){ int i;

      FILE *fp;

      if((fp=fopen(“bkrecord.txt”,“w”))==NULL)

      {

      printf(“不能打開(kāi)文件!n”);

      exit(1);}

      for(i=0;i

      {

      fwrite(&t[i],sizeof(struct cangku),1,fp);

      }

      fclose(fp);

      printf(“備份成功.n”);

      getchar();}

      void Load1(Cangku t[]){

      int n=0;

      FILE *fp;

      if((fp=fopen(“bkrecord.txt”,“a+”))==NULL)

      {

      printf(“不能打開(kāi)文件!n”);

      exit(1);

      } while

      (fread(&t[n],sizeof(struct cangku),1,fp))n++;

      fclose(fp);

      getchar();}

      void Load(Cangku t[],int n){ int i;

      FILE *fp;

      if((fp=fopen(“record.txt”,“w”))==NULL)

      {

      printf(“不能打開(kāi)文件!n”);

      exit(1);}

      for(i=0;i

      {

      fwrite(&t[i],sizeof(struct cangku),1,fp);

      }

      fclose(fp);

      printf(“恢復(fù)成功.n”);}1

      下載C語(yǔ)言課程設(shè)計(jì)——家庭財(cái)務(wù)管理系統(tǒng)[小編推薦]word格式文檔
      下載C語(yǔ)言課程設(shè)計(jì)——家庭財(cái)務(wù)管理系統(tǒng)[小編推薦].doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        財(cái)務(wù)管理課程設(shè)計(jì)心得

        課程設(shè)計(jì)心得體會(huì) 本次課程設(shè)計(jì)中心內(nèi)容主要是企業(yè)集團(tuán)相關(guān)的財(cái)務(wù)管理策略與政策,以及如何規(guī)范集團(tuán)財(cái)務(wù)決策與控制而進(jìn)行的全面系統(tǒng)研究。其具體總結(jié)為以下幾方面: 一、企業(yè)......

        家庭財(cái)務(wù)管理系統(tǒng)調(diào)研報(bào)告(優(yōu)秀范文五篇)

        家庭財(cái)務(wù)管理系統(tǒng) 調(diào)研報(bào)告 組員:王嘉楠 家庭財(cái)務(wù)管理系統(tǒng)調(diào)研報(bào)告 一、選題背景 目前中國(guó)人的理財(cái)觀點(diǎn)和思想還處于朦朧狀態(tài),缺乏正確的理財(cái)思想。掌握更好的理財(cái)方法,通過(guò)合......

        教師獎(jiǎng)金計(jì)算系統(tǒng)-C語(yǔ)言課程設(shè)計(jì)

        演講稿 工作總結(jié) 調(diào)研報(bào)告 講話稿 事跡材料 心得體會(huì) 策劃方案 教師獎(jiǎng)金計(jì)算系統(tǒng)-C語(yǔ)言課程設(shè)計(jì) #include void main() { int a=0,b=0,c=0,d=0,e=0,f=0,g=0,i=1,j=1,h=0;......

        C語(yǔ)言課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)源代碼

        #include //標(biāo)準(zhǔn)輸入、輸出頭文件 #include //包含字符串函數(shù)處理頭文件 #include //包含access函數(shù)的頭文件 #define N 9999 //定義最多的航班數(shù) #define PRINT "%dtt......

        c語(yǔ)言課程設(shè)計(jì)——小學(xué)數(shù)學(xué)出題系統(tǒng)

        通信工程C語(yǔ)言強(qiáng)化訓(xùn)練實(shí)驗(yàn)報(bào)告 學(xué) 號(hào): 姓 名: 提交日期: 成 績(jī): 評(píng) 語(yǔ): 教師簽字: 通信工程C語(yǔ)言強(qiáng)化訓(xùn)練實(shí)驗(yàn)報(bào)告 小學(xué)數(shù)學(xué)出題系統(tǒng) 1、 強(qiáng)化訓(xùn)練目的 a) C語(yǔ)言基本知識(shí)的鞏固......

        C語(yǔ)言課程設(shè)計(jì)任務(wù)書(shū)-學(xué)生通訊系統(tǒng)(范文模版)

        2007-2008學(xué)年第二學(xué)期 《C語(yǔ)言程序設(shè)計(jì)》 課程設(shè)計(jì)報(bào)告 系部: 三系專業(yè)班級(jí): 電子資訊工程(2)班 學(xué)號(hào):070306210姓名: 冀鵬超設(shè)計(jì)題目:同學(xué)通訊錄設(shè)計(jì)起訖日期: 2008.6.16 至 2008.6......

        c語(yǔ)言課程設(shè)計(jì)-學(xué)籍管理系統(tǒng)(含源代碼)

        課 程 設(shè) 計(jì) 課程設(shè)計(jì)名稱: C語(yǔ)言程序設(shè)計(jì) 題 目:學(xué)籍管理系統(tǒng) 學(xué) 生 姓 名: 學(xué)生學(xué)號(hào) : 學(xué) 院(系): 軟件學(xué)院 專 業(yè) 班 級(jí): 112021 指 導(dǎo) 教 師: 設(shè)計(jì)時(shí)間: 2012 年 9 月 日......

        家庭財(cái)務(wù)管理規(guī)定(合集)

        家庭財(cái)務(wù)管理規(guī)定第一條設(shè)立一本家庭財(cái)務(wù)收支日記帳,由家庭輪值主席統(tǒng)一記帳。其他家庭成員可隨時(shí)申請(qǐng)查閱,家庭財(cái)務(wù)對(duì)全體成員公開(kāi)透明。 第二條設(shè)立獨(dú)立公共賬戶,由家庭輪值......